Come faccio quest' esercizio? PASCAL?

dato un vettore di N componenti, con N<=100, e un numero X, costruisci un vettore le cui componenti di indice pari siano uguali a quelle di indice pari del vettore moltiplicate per X e quelle di indice dispari siano uguali a quelle di indice dispari del vettore incrementate di X.

Non ci ho capito una mazza di sta traccia! che devo fare? O.o

Comments

  • .

    .

    .

    Var

    VettoreOrigine: array[1..100] of integer;

    VettoreDestinazione: array[1.100] of integer:

    n: integer;

    X:integer;

    Resto:Integer;

    .

    .

    .

    begin

    n:=0;

    Resto:=0;

    .

    .

    .

    for n:=1 to 100 do

    begin

    (*Controllo se n è pari o dispari*)

    Resto = n mod 2;

    if Resto = 0 then

    (*Moltiplico per X il valore di origine nei casi di n pari*)

    VettoreDestinazione[n]:=VettoreOrigine[n] * X;

    else

    (*Sommo X al valore di origine nei casi di n dispari*)

    VettoreDestinazione[n]:=VettoreOrigine[n] + X;

    end;

    .

    .

    .

    end;

    Vado a memoria, perché sono decenni che non programmo più in pascal, magari c'è qualche errore di sintassi. Ho scritto solo la parte centrale del programma, quella che effettivamente esegue l'algoritmo richiesto.

  • Ti fornisco una soluzione alternativa anche io andando a memoria e scrivendo solo il cuore del programma:

    ...

    Var

    {le variabili già descritte da Ale}

    ...

    pari:boolean;

    ...

    begin

    ...

    pari:=TRUE;

    for n:=1 to 100 do

    begin

    if (pari) VettoreDestinazione[n] := VettoreOrigine[n] * X;

    else VettoreDestinazione[n] := VettoreOrigine[n] + X;

    pari := not pari;

    end;

    ...

    end.

Sign In or Register to comment.