назад
Условие задачи 5.2.1:
Найти среднюю величину стипендии и вывести
фамилии, имена и отчества студентов, чья стипендия меньше средней более чем
на 20%.
Построение задачи:
Сначала формируем, вводим запись, состоящую
из фамилии, имени, отчества и стипендии. Затем проверяем введенные данные на
соответствие условию, т.е. чья стипендия меньше средней более чем не 20%.
Если запись удовлетворяет условию, то записываем её в файл и так
n-ое
количество раз.
Текст программы:
Program
Stipendiya;
Uses crt;
Type
Student=record
Name:record
Name1:string;
Name2:string;
Name3:string;
End;
Year:word;
Sex:String;
Ph:byte;
Ma:byte;
Inf:byte;
Sc:word;
Gr:string;
End;
Var
gro:student; fi:file of string;
i,n:byte;
s:real;
f:boolean;
ch:char;
begin
i:=0;s:=0;
repeat
i:=i+1;
clrscr;
writeln('Введите
фамилию
студента');
readln(gro.name.name1) ;
clrscr;
writeln('Введите
имя');
readln(gro.name.name2);
clrscr;
writeln('Введите
отчество');
readln(gro.name.name3) ;
clrscr;
writeln('Введите
стипендию');
readln(gro.sc) ;
clrscr;
writeln('Вводить
ещё?
(y/n)'); ch:=readkey;
s:=s+gro.sc;
until
ch='n';
s:=s/i;
writeln('Средняя
стипендия:
',s:3:3);
Assign(fi,'d:/red.txt');
Reset(fi);
Rewrite(fi);
if
gro.sc<(s-s*0.2)
then
write(fi,gro.name.name1);
write(gro.name.name1);
write(fi,gro.name.name2);
write(gro.name.name2);
write(fi,gro.name.name3);
write(gro.name.name3);
close(fi);
readkey;
end.
Тест программы:
Вводимые данные:
Количество студентов
|
Ф.И.О.
|
Стипендия
|
1
|
Аверушкин Дмитрий
|
2000
|
2
|
Гудейкис Роман
|
900
|
3
|
Акимов Евгений
|
800
|
4
|
Сорокин Дмитрий
|
2300
|
Результат программы:
Акимов Евгений: 800
Гудейкис Роман: 900
Средняя стипендия: 1500