Вывести список хорошистов

Azhar

Здравствуйте!Необходимо вывести список хорошистов,не пойму где ошибка помогите найти
program std_spisok;
type chil=record
name:string;
F:string;
end;
var spis,spisotl:array[1..3] of chil;k,s,i,j:integer;otcenca:array[1..3] of integer;
begin
for i:=1 to 3 do
begin writeln;
writeln('Введите Фамилию и имя ученика');
with spis[i] do begin
readln(F,name);
for j:=1 to 3 do
begin writeln('введите оценку', j);  readln(otcenca[j]) end;
end;
end;
k:=0;
for i:=1 to 3 do
begin s:=0;
for j:=1 to 3 do
with spis[i] do
 if (otcenca[j]=5) or (otcenca[j]=4) then s:=s+1;
 if s=3 then begin k:=k+1; spisotl[k]:=spis[i] end
 end;
 for i:=1 to k do
 with spisotl[i] do writeln(F,name);
  end.
3 ответа

Azhar

список хорошистов
Хорошист это кто? Точное условие.


Azhar

вывести список учеников оценки которых 4 или 5


Azhar

Наверное это те у кого нет 2 и 3 и не все три 5.
program std_spisok;
type chil=record
          name:string;
          faml:string;
          otcn:array[1..3] of integer;
          end;
var spis:array[1..n] of chil;
    k,s,i,j:integer;
begin
for i:=1 to n do
 begin
  writeln('Ââåäèòå Г¤Г*Г*Г*ûå ГіГ·ГҐГ*ГЁГЄГ* ',i);
  with spis[i] do
   begin
    write('Г”Г*ìèëèÿ: ');readln(faml);
    write('Èìÿ: ');readln(name);
    writeln('Ââåäèòå 3 îöåГ*ГЄГЁ:');
    for j:=1 to 3 do
    readln(otcn[j])
   end;
 end;
k:=0;
for i:=1 to n do
 begin
  with spis[i] do
   begin
    s:=0;
    for j:=1 to 3 do
    if otcn[j]>3 then s:=s+otcn[j];
    if s<15 then
     begin
      k:=1;
      writeln(faml,' ',name);
     end;
  end;
 end;
if k=0 then write('Õîðîøèñòîâ Г*ГҐГІ');
end.