Informatică, întrebare adresată de Deshtepu, 8 ani în urmă

Am nevoi de un program care va alege elevii cu note inte 5 si 7,5
Eu am încercat , însă îmi dă numai un elev

Program P85;
{ Tablou cu componente de tipul elev }
type Elev = record
Nume : string;
Prenume : string;
Nota: real;
end;
ListaElev = array [1..40] of Elev;
var E : Elev;
LE : ListaElev;
n : 1..40;
i : integer;
begin
write ('n='); readln (n);
for i:=1 to n do
begin
writeln ('Dati datele elevului ', i);
write ('Nume: '); readln(LE[i] .Nume);
write ('Prenume: '); readln (LE[i].Prenume);
write ('Nota: ');readln (LE[i].Nota);
end;
for i:=1 to n do
if LE[i].Nota > 5 then E:=LE[i]
else if LE[i].Nota <7.5 then E:=LE[i] ;
writeln('Elevii cu nota intre 5 si 7.5:');
writeln(E.Nume,' ', E.Prenume,':',E.Nota : 5:2 );
readln;
end.


andreidiaconescu18: Pai si normal sa iti salveze doar unu. Odata vezi si cu conditia aia care se putea scrie direct cu and intre si ca sa ii extragi pe toti iti mai trebuie un tablou. Cum vrei tu sa extragi mai multi elevi si sa ii pui intr-o singura variabila?
boiustef: se poate daca acea variabila primeste repetat valoare in ciclu
andreidiaconescu18: m-am uitat la codu scris de tine si tu doar ai afisat. nici nu aveai nevoie de variabila aceea auxiliara pentru asta. cum ziceam, daca vrea sa salveze iti mai trebuie un tablou
Deshtepu: Important ca lucrează
andreidiaconescu18: ai scris ca ai nevoie de un program care alege si subliniez alege, daca scriai afiseaza atunci clar merge direct fara variabila auxiliara and stuff. Data viitoare atentie la exprimare.

Răspunsuri la întrebare

Răspuns de boiustef
1

Program P85;

{ Tablou cu componente de tipul elev }

type Elev = record

    Nume : string;

    Prenume : string;

    Nota: real;

    end;

ListaElev = array [1..40] of Elev;

var E : Elev;

   LE : ListaElev;

   n : 1..40;

   i, contor: integer;

begin

  write ('n='); readln (n);

  for i:=1 to n do

    begin

       writeln ('Dati datele elevului ', i);

       write ('Nume: '); readln(LE[i] .Nume);

       write ('Prenume: '); readln (LE[i].Prenume);

       write ('Nota: ');readln (LE[i].Nota);

    end;

     

   writeln('Elevii cu nota intre 5 si 7.5:');

   contor:=0;

   for i:=1 to n do

     begin

        if (LE[i].Nota > 5)and(LE[i].Nota <7.5 )

         then begin

                E:=LE[i];  contor:=contor+1;

                writeln(E.Nume,' ', E.Prenume,':',E.Nota : 5:2 );

              end;

     end;

     

    if contor=0 then writeln('NU EXISTA...');

 readln;

end.

Alte întrebări interesante