Определить количество студентов, у которых средний балл превышает заданное пользователем значение - Pascal
Формулировка задачи:
Указания. Исходные данные должны быть предварительно записаны в текстовый файл. Программа считывает данные, используя одну или несколько переменных типа record, и выводит их на экран. После этого пользователь вводит данные для запроса и получает ответ на него.
Составить программу, выводящую на экран студенческую ведомость (Ф. И. О.,оценки за три экзамена, средний балл).Определить количество студентов, у которых средний балл превышает заданное пользователем значение.
Решение задачи: «Определить количество студентов, у которых средний балл превышает заданное пользователем значение»
textual
Листинг программы
{$MODE TP} const m_max = 3; type TMarks = Array[0..m_max - 1] Of Byte; TStudent = record name: String[150]; marks: TMarks; end; var stud: TStudent; i, j, n: Byte; f: Text; begin Assign(f, 'f.txt'); ReWrite(f); repeat Write('How much students add? '); ReadLn(n); until (n > 0); for i := 0 to n - 1 do begin with stud do begin Write('Input name: '); ReadLn(name); for j := 0 to m_max - 1 do begin Write('Input ', j + 1, ' mark: '); ReadLn(marks[j]); end; WriteLn(f, name); for j := 0 to m_max - 1 do Write(f, ' ', marks[j]); WriteLn(f); end; end; Close(f); end.
Объяснение кода листинга программы
- Настройки компилятора:
- Настройка режима компилятора:
{$MODE TP}
. Предполагается, что это указание, что компилятор должен работать в режиме Turbo Pascal. - Объявление констант:
-
m_max = 3
. Это объявление константыm_max
со значением 3. - Объявление пользовательских типов:
-
TMarks = Array[0..m_max - 1] Of Byte;
. Создание пользовательского типаTMarks
, являющегося массивом байтов размеромm_max
. - Объявление записей:
-
TStudent = record name: String[150]; marks: TMarks; end;
. Создание записиTStudent
с полямиname
(строка с максимальной длиной 150 символов) иmarks
(массив байтовTMarks
). - Объявление переменных:
-
stud: TStudent
. Объявление переменнойstud
типаTStudent
. -i, j, n: Byte
. Объявление переменныхi
,j
,n
типаByte
. - Открытие файла:
-
Assign(f, 'f.txt'); ReWrite(f);
. Назначение файлаf.txt
для записи. - Ввод количества студентов:
-
repeat Write('How much students add? '); ReadLn(n); until (n > 0);
. Повторное выполнение ввода значения переменнойn
, покаn
не станет больше 0. - Ввод данных студентов и запись в файл:
-
for i := 0 to n - 1 do begin with stud do begin Write('Input name: '); ReadLn(name); for j := 0 to m_max - 1 do begin Write('Input ', j + 1, ' mark: '); ReadLn(marks[j]); end; WriteLn(f, name); for j := 0 to m_max - 1 do Write(f, ' ', marks[j]); WriteLn(f); end; end;
. Цикл для каждого студента: ввод имени, ввод оценок и запись их в файл. - Закрытие файла:
-
Close(f);
. Закрытие файла. - Конец программы:
-
end.
. Завершение программы. Этот код создает и записывает данные студентов (их имена и оценки) в файлf.txt
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д