Newsgroup: it.comp.lang.pascal
Titolo: aiuto sugli array

Salve a tutti. Dovendo sostenere l'esema di informatica mi sono imbattuto
nella programmazione in pascal, vorrei sapere come poter memorizzare il
risultato di una operazione in un array. Nello specifico mi si chiedi di
immettere una lista di 20 numeri e far stampare due liste, una con i pari e
l'altra coi dispari. Qualcuno mi puņ dare un aiuto? (Il programmino sarebbe
il massimo) Grazie

il massimo) Grazie
program Arrays ;
var array_pari    : array [1..20] of integer ;
    array_dispari : array [1..20] of integer ;
    lista         : array [1..20] of integer ;
    i             : integer ;
    n_pari        : integer ;
    n_dispari     : integer ;
begin
  n_pari := 0 ;
  n_dispari := 0 ;
  for i := 1 to 20 do
  begin
    readln( lista[i] ) ;
    if ( lista[i] mod 2 = 0 ) then 
    begin
      n_pari := n_pari + 1 ;
      array_pari[n_pari] := lista[i] ;
    end
    else
    begin
      n_dispari := n_dispari + 1 ;
      array_dispari[n_dispari] := lista[i] ;
    end ;
  end ;
  writeln( 'pari : ' ) ;
  for i := 1 to n_pari do writeln( n_pari[i] ) ;
  writeln( 'dispari : ' ) ;
  for i := 1 to n_dispari do writeln( n_dispari[i] ) ;
end.  
 
--
Andrea Laforgia (
andrea_...@bigfoot.com
)
---------------------------------------------

 wrote in message
86pp8g$1i5$1...@nslave2.tin.it...


Program Esame;
Uses Crt;
Var
   Vettore   : Array[1..20] Of Integer; {ho messo interi ma puoi usare anche
reali}
   I,
   ContPari,
   ContDisp  : Integer;
   Vet_Pari  : Array[1..10] Of Integer;
   Vet_Disp  : Array[1..10] Of Integer;
Begin
  Clrscr;
  For I:=1 to 20 Do
  Begin
    Write('Numero ',I,': ');
    Readln(Vettore[I]);
  End;
  ContPari:=0;
  ContDisp:=0;
  For I:=1 to 20 Do
  Begin
    If (Vettore[I] Mod 2=0) Then
    Begin
      ContPari:=ContPari+1;
      Vet_Pari[ContPari]:=Vettore[I];
    End
    Else
    Begin
      ContDisp:=ContDisp+1;
      Vet_Disp[ContDisp]:=Vettore[I];
    End
  End;
  For I:=1 to 10 Do
    Writeln(I,'° num. pari : ',Vet_Pari[I]:5,' ------- ',I,'° num. dispari :
',Vet_Disp[I]);
  Readln;
End.
Questo dovrebbe funzionare se hai 10 num pari e 10 dispari. Divertiti a
trovare una sol che funzioni anche se non hai num pari e dispari in ungual
numero

program Speranza;
var
Numeri : array[1..20] of integer;
nuovaP : array[1..10] of integer;
nuovaD : array[1..10] of integer;
i, x, m : integer;
begin
m := 0; x := 0;
for i := 1 to 20 do begin
if i mod 2 = 0 then begin
nuovaP[x] := i;
x := x +1;
end else begin
nuovaD[m] := i;
m := m +1;
end;
writeln('Pari');
for i := 1 to 10 do begin
writeln(nuovaP[x]);
end;
writeln('Dispari');
for i := 1 to 10 do begin
writeln(nuovaD[m]);
end;
end.
Questa funziona? Non ho voglia di provarla :-)
-=Azathoth=-

Non ho voglia di provarla :-)
neanch'io ;))


eheh, fidiamoci!
-=Azathoth=-

il massimo) Grazie
Questo dovrebbe far al caso tuo ...
--------------------------------
Var ListaNumeri: Array[1..20] of Integer;  { Se Integer è troppo limitato, metti LongInt }
     Cont       : Integer;
  Begin
For Cont:=1 to 20 do	{ Chiede 20 volte di inserire un numero }
 Begin
  Write('Inserisci num. ',cont,' ');
  Readln(listanumeri[cont]);
 End;
Writeln;
Writeln('Lista numeri pari');	
Writeln('-------------------------');
For Cont:=1 to 20 do
If ListaNumeri[Cont] mod 2=0 then	{ se il resto del numero diviso per due è 0, allora è pari }
   Writeln('Posizione #',cont,' = ',listanumeri[cont]);
Writeln('-------------------------');
Writeln;
Writeln('Lista numeri dispari');
Writeln('-------------------------');
For Cont:=1 to 20 do
If ListaNumeri[Cont] mod 2<>0 then  { Se il resto del numero diviso per 2 è diverso da 0, è dispari}
   Writeln('Posizione #',cont,' = ',listanumeri[cont]);
End.
-=> NeGuS <=-
www.infinito.it/utenti/negus80