Составить программу назначения стипендии студентам по результатам сессии - Turbo Pascal (29158)
Формулировка задачи:
Вот эту посмотрите тоже нифига у меня не работает условие такое
Составить программу назначения стипендии студентам по результатам сессии, используя следующие правила: если все оценки 5, то назначается повышенная стипендия; если все оценки 4 и 5, то назначается обычная стипендия; если есть оценка 3, то стипендия не назначается. Вывести списки студентов, назначенных на повышенную и обычную стипендию с указанием их фамилий, курса и группы.
Решение задачи: «Составить программу назначения стипендии студентам по результатам сессии»
textual
Листинг программы
type
spisok=record
fam:string;
stepen:string;
matem:integer;
fizik:integer;
himia:integer;
end;
var
student:array [1..20] of spisok;
i:integer;
begin
for i:= 1 to 3 do
begin
write ('vvedite familiu ',i, ' studenta');
readln(student[i].fam);
write('vvedite ocenki po matem,fizike,himii ');
readln(student[i].matem,student[i].fizik,student[i].himia);
if (((student[i].matem = 5) and (student[i].fizik=5)) and( student[i].himia=5)) then student[i].stepen:= 'pov' else
if ((student[i].matem>=4) and (student[i].fizik>=4) and (student[i].himia>=4)) then student[i].stepen:='norm'
else if((student[i].matem<=3)and(student[i].fizik<=3)and(student[i].himia<=3))then student[i].stepen:='nety';
end;
for i:= 1 to 3 do begin
if student[i].stepen='pov' then writeln('povishennaya y:',student[i].fam)
else if student[i].stepen='norm' then writeln('normalnaya y:',student[i].fam)
else if student[i].stepen='nety' then writeln('net y:',student[i].fam)
else Writeln('vsem naznachili');
end;
readln;
end.
Объяснение кода листинга программы
- Создается тип данных
spisok, который представляет собой запись с полямиfam(семья),stepen(степень),matem(математика),fizik(физика),himia(химия). - Создается переменная
student, которая является массивом из 20 элементов типаspisok. - Создается переменная
i, которая будет использоваться как индекс для доступа к элементам массиваstudent. - Запускается цикл
for, который повторяется три раза. На каждой итерации цикла выполняется следующий блок кода:- Выводится запрос на ввод фамилии студента.
- Чтение введенной фамилии из потока ввода и сохранение ее в соответствующее поле записи
spisok. - Выводится запрос на ввод оценок по математике, физике и химии.
- Чтение введенных оценок из потока ввода и сохранение их в соответствующие поля записи
spisok. - Проверяется условие для определения степени студента. Если оценки по математике, физике и химии равны или превышают 5, то степень студента считается нормальной. В противном случае степень студента считается плохой.
- Если степень студента равна
pov, выводится сообщение о том, что студент получил повышенную степень. - Если степень студента равна
norm, выводится сообщение о том, что студент получил нормальную степень. - Если степень студента равна
nety, выводится сообщение о том, что студент получил нетипичную степень. - Если все студенты получили нормальный или повышенный уровень, выводится сообщение
vsem naznachili.
- После завершения цикла
forвыполняется блок кода, который выводит сообщения о степенях студентов. - Программа завершается вызовом функции
readln.