1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code]. 3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора). 5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM! 6. Одна тема - один вопрос (задача) 7.Проверяйте программы перед тем, как разместить их на форуме!!! 8.Спрашивайте и отвечайте четко и по существу!!!
Вот условия: Составить программу назначения степендиии студентам по результатам сессии используя следующие правила.
1) Если все оценки 5 назначается повышенная степендия 2) Если все оценки 4 и 5 назначается обычная степендия 3) Еслиоцени 3 стипендия не назначается
В результате работы программы должен быть напечатат список с оценкой и средним баллом каждого студента Во втором списке фамилии (назначенные на повышенную и обычную стипендию)
program stude; uses crt; type student=record kod:byte; fam:string[20]; im:string[10]; ot:string[15]; gr:string[6]; kurs:byte; m:array[1..5] of byte; end; var m:array[1..5] of byte; ysp:integer; i:byte; fstud:file of student; rab:student; flag:boolean; fio:string[25]; key:0..4; procedure vvod; {Ввод данных с клавиатуры} begin clrscr; with rab do begin write('Фамилия: '); readln(fam); if fam='9999' then exit; write('Имя: '); readln(im); write('Отчество: '); readln(ot); write('Группа: '); readln(gr); write('Курс: '); readln(kurs); write('Успеваемость: '); readln(m[1],m[2],m[3],m[4],m[5]); kod:=i; end {with} end; {vvod} procedure vivod; {Ввывод на экран} begin with rab do begin fio:=fam+' '+im[1]+' '+ot[1]+' '; write(kod:4,fio:18); writeln(gr:8,kurs:8,m[1]:8,m[2]:2,m[3]:2,m[4]:2,m[5]:2); end end; procedure form; {формировать массив} begin rewrite(fstud); i:=1; vvod; while rab.fam<>'9999' do begin write(fstud,rab); i:=i+1; vvod end; close(fstud) end; procedure print; {Печать} begin reset(fstud); writeln('-----------------------------------------------------------------------------------'); writeln('I № I Фио I Группа I Курс I Успеваемость I Степендия I Ср. бал'); writeln('-----------------------------------------------------------------------------------'); while not eof (fstud) do begin read(fstud,rab); vivod end ; writeln('-----------------------------------------------------------------------------------'); readkey; close(fstud) end; procedure print2; {Печать} begin reset(fstud); writeln('------------------------------------------------------------'); writeln('I Повышенная степендия I Обычная степендия '); writeln('------------------------------------------------------------'); while not eof (fstud) do begin read(fstud,rab); with rab do if (m[1]=2)or(m[2]=2)or(m[3]=2)or(m[4]=2)or(m[5]=2)then vivod; end ; writeln('------------------------------------------------------------'); readkey; close(fstud) end; begin flag:=false; assign(fstud,'Студенты'); repeat clrscr; writeln('Выберите пункт меню'); writeln; writeln('1-Формировать массив'); writeln('2-Печать всего массива'); writeln('3-Печать на повышен. и обычн. степендию'); writeln('0-выход'); readln(key); case key of 1:form; 2:print; 3:print2; 0:flag:=true end; until flag; end.