Определить количество студентов, у которых средний балл превышает заданное пользователем значение - 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.