назад
   
 
Условие задачи 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
Hosted by uCoz