Получить фамилии тех учеников класса, которые являются хорошистами и отличниками по итогам года. Также указать, насколько их средний балл отличается от среднего балла класса.
спросил 18 Дек, 18 от cevka в категории школьный раздел


решение вопроса

+7
uses crt;
type Tuchen=record
           fam:string[15];
           ocn:array[1..10]of byte;
           srb:real;
           end;
var sp:array[1..50] of Tuchen;
    n,i,k,j,f:byte;
    srk:real;
    c:char;
begin
clrscr;
writeln('Введите данные об учениках, окончание ввода Esc:');
n:=0;
srk:=0;
repeat
n:=n+1;
writeln(' Ученик',n);
write('   Фамилия: ');readln(sp[n].fam);
writeln(' Оценки за четверть:');
sp[n].srb:=0;
for j:=1 to 10 do
 begin
  repeat
  write('  Оценка ',j,'=');
  readln(sp[n].ocn[j]);
  until sp[n].ocn[j] in [2..5];
  sp[n].srb:=sp[n].srb+sp[n].ocn[j]/10;
 end;
srk:=srk+sp[n].srb;
c:=readkey;
until c=#27;
srk:=srk/n;
clrscr;
writeln('Список учеников, являющихся хорошистами и отличниками:');
writeln('          средний балл по классу=',srk:0:2);
writeln;
writeln('-------------------------------------------------------');
writeln('|  Фамилия  | Оценки за четверть | Ср.балл |Отклонение|');
writeln('-------------------------------------------------------');
f:=0;
for i:=1 to n  do
 begin
  k:=0;
  for j:=1 to 10 do
  if (sp[i].ocn[j]=4)or(sp[i].ocn[j]=5) then k:=k+1;
  if k=10 then
   begin
    f:=1;
    gotoXY(1,whereY);
    write('| ',sp[i].fam);
    gotoXY(13,whereY);
    write('| ');
    for j:=1 to 10 do
    write(sp[i].ocn[j],' ');
    gotoXY(34,whereY);
    write('|  ',sp[i].srb:0:2);
    gotoXY(44,whereY);
    if sp[i].srb>srk then write('|  +',sp[i].srb-srk:0:2)
    else write('|  ',sp[i].srb-srk:0:2);
    gotoXY(55,whereY);
    write('|');
    writeln;
   end;
 end;
writeln('-------------------------------------------------------');
if f=0 then write('Таких учеников нет!');
readln
end.
ответил 18 Дек, 18 от Olenka

Связанных вопросов не найдено

Обучайтесь и развивайтесь всесторонне вместе с нами, делитесь знаниями и накопленным опытом, расширяйте границы знаний и ваших умений.

Популярное на сайте:

Как быстро выучить стихотворение наизусть? Запоминание стихов является стандартным заданием во многих школах. 

Как научится читать по диагонали? Скорость чтения зависит от скорости восприятия каждого отдельного слова в тексте. 

Как быстро и эффективно исправить почерк?  Люди часто предполагают, что каллиграфия и почерк являются синонимами, но это не так.

Как научится говорить грамотно и правильно? Общение на хорошем, уверенном и естественном русском языке является достижимой целью.