Помогите, пожалуйста, нарисовать блок схему.

[email protected] в категроии Информатика, вопрос открыт 11.07.2018 в 21:51

type
tstud = record
fam: string[12];
group: 1..7;
geom: word;
algeb: word;
inf: word;
end;

var
stud: array[1..100] of tstud;
sr: array[1..2,1..7] of real;
sred,buf: real;
n,i,k,j: integer;

begin
write('Введите количество студентов : ');
readln(n);
writeln('Заполнение массива по зимней сессии');
for i:=1 to n do
begin
write('Введите фамилию : ');
readln(stud[i].fam);
repeat
write('Введите номер группы (1-7) : ');
readln(stud[i].group);
until (stud[i].group >=1) and (stud[i].group <= 7);
repeat
write('Введите оценку по геометрии : ');
readln(stud[i].geom);
until (stud[i].geom >=2) and (stud[i].geom <= 5);
repeat
write('Введите оценку по алгебре : ');
readln(stud[i].algeb);
until (stud[i].algeb >=2) and (stud[i].algeb <= 5);
repeat
write('Введите оценку по информатике : ');
readln(stud[i].inf);
until (stud[i].inf >=2) and (stud[i].inf <= 5);
end;
writeln;
writeln('Фамилии студентов имеющих задолженность хотя бы по одному предмету : ');
for i:=1 to n do
if (stud[i].geom < 3) or (stud[i].algeb < 3) or (stud[i].inf < 3) then
writeln(' - ',stud[i].fam);
write('Процент студентов, сдавших все экзамены на 4 и 5 : ');
k:=0;
for i:=1 to n do
if (stud[i].geom >= 4) and (stud[i].algeb >= 4) and (stud[i].inf >= 4) then k:=k+1;
if k <> 0 then writeln(((k*100)/n):0:2,' %')
else writeln(' - таких студентов в списке нет!');

writeln('Название предмета, который был сдан лучше всего : ');
for i:=1 to n do
begin
if (stud[i].geom >= stud[i].algeb) and (stud[i].geom >= stud[i].inf) then writeln(' - ',stud[i].fam,' : Геометри (',stud[i].geom,')')
else if (stud[i].algeb >= stud[i].geom) and (stud[i].algeb >= stud[i].inf) then writeln(' - ',stud[i].fam,' : Алгебра (',stud[i].algeb,')')
else if (stud[i].inf >= stud[i].geom) and (stud[i].inf >= stud[i].algeb) then writeln(' - ',stud[i].fam,' : Информатика (',stud[i].inf,')')
end;

for i:=1 to 7 do
begin
sred:=0;
k:=0;
for j:=1 to n do
begin
if stud[j].group = i then
begin
sred:=sred+(stud[i].inf+stud[i].algeb+stud[i].geom)/3;
k:=k+1;
end;
end;
sr[1,i]:=i;
if k <> 0 then sr[2,i]:=(sred/k) else sr[2,i]:=0;
end;
for i := 1 to 7-1 do
for j := 1 to 7-i do
if sr[2,j] < sr[2,j+1] then
begin
buf:= sr[2,j];
sr[2,j] := sr[2,j+1];
sr[2,j+1] := buf;
buf:= sr[1,j];
sr[1,j] := sr[1,j+1];
sr[1,j+1] := buf;
end;
write('Номера групп в порядке убывания средней успеваемости их студентов : ');
for i := 1 to 7 do if sr[2,i] <> 0 then write(sr[1,i],' ');
readln;
end.

0 ответов

Нет результатов.
Оставлять ответы могут только авторизированные пользователи.
Зарегистрируйтесь или  авторизируйтесь на сайте чтобы оставить ответ на вопрос.