Описать структуру с именем STUDENT - Turbo Pascal (29911)
Формулировка задачи:
Нужна помощь!
Описать структуру с именем STUDENT, содержащую следующие поля:
- номер;
- фамилия и имя;
- год рождения;
- год поступления в университет;
- структура OCENKI, содержащая четыре поля: физика, математика, программирование, история;
написать программу, выполняющую следующие действия с помощью процедур или функций:
- ввод с клавиатуры данных в файл, состоящий из структур типа STUDENT; записи должны быть упорядочены номеру;
- чтение данных из этого файла;
- вывод на дисплей анкетных данных студентов, получивших одну оценку 3;
- если таких студентов нет, вывести соответствующее сообщение.
Решение задачи: «Описать структуру с именем STUDENT»
textual
Листинг программы
- program pr;
- type
- student=record
- number:integer;
- nameson:string[50];
- yearofbirth:integer;
- enter:integer;
- end;
- marks=record
- phisical:integer;
- math:integer;
- prog:integer;
- history:integer;
- end;
- var
- i,n:integer;
- stud:array [1..100] of student; // массив студентов (массив структур student)
- ocenki:array [1..100] of marks;
- procedure fill();
- var i:integer;
- f:file of student;
- begin
- assign(f,'c:\studentsfill.txt');
- rewrite(f);
- for i:=1 to n do begin
- writeln('Введите номер студента');
- readln(stud[i].number);
- writeln('Введите имя и фамилию студента');
- readln(stud[i].nameson);
- writeln('Введите год рождения');
- readln(stud[i].yearofbirth);
- writeln('Введите год поступления');
- readln(stud[i].enter);
- writeln('Введите оценки по физике');
- readln(ocenki[i].phisical);
- writeln('Введите оценки по математике');
- readln(ocenki[i].math);
- writeln('Введите оценки по программированию');
- readln(ocenki[i].prog);
- writeln('Введите оценки по истории');
- readln(ocenki[i].history);
- write(f,stud[i]);
- end;
- close (f);
- end;
- procedure show();
- var i:integer;
- f:file of student;
- begin
- assign(f,'c:\studentsfill.txt');
- reset (f);
- while not eof (f) do
- begin
- inc(i);
- read(f,stud[i]);
- writeln(stud[i].number);
- writeln(stud[i].nameson);
- writeln(stud[i].yearofbirth);
- writeln(stud[i].enter);
- writeln('Физика:',ocenki[i].phisical);
- writeln('Математика:',ocenki[i].math);
- writeln('Программирование:',ocenki[i].prog);
- writeln ('История:',ocenki[i].history);
- writeln;
- end;
- close (f);
- end;
- procedure bad(s:student);
- var i,j:integer;
- begin
- for i:=1 to n do
- if (ocenki[i].phisical=3) or (ocenki[i].math=3)or (ocenki[i].prog=3) or (ocenki[i].history=3)then
- begin
- writeln('Тройка у:');
- writeln(stud[i].nameson);
- end;
- end;
- begin
- writeln('Введите количество студентов:');
- readln(n);
- fill();
- show();
- bad(stud[i+1]);
- end.
Объяснение кода листинга программы
- Создается тип данных
student
, который представляет структуру с именем STUDENT. - Создается переменная
i
иn
типаinteger
. - Создается массив
stud
типаarray [1..100] of student
. Это означает, что будет создано 100 экземпляров структуры STUDENT и они будут храниться в массивеstud
. - Создается массив
ocenki
типаarray [1..100] of marks
. Это означает, что будет создано 100 экземпляров структуры MARKS и они будут храниться в массивеocenki
. - Создается процедура
fill
, которая будет заполнять массивstud
данными о студентах. - Внутри процедуры
fill
происходит цикл, который повторяется n раз. Для каждого студента вводятся его номер, имя и фамилия, год рождения и год поступления. Затем вводятся оценки по физике, математике, программированию и истории. Данные о студенте записываются в файлstudentsfill.txt
. - После завершения цикла
fill
файлstudentsfill.txt
закрывается. - Создается процедура
show
, которая будет выводить информацию о студентах из массиваstud
. - Внутри процедуры
show
происходит цикл, который повторяется до конца файлаstudentsfill.txt
. Для каждого студента выводятся его номер, имя, фамилия, оценки по физике, математике, программированию и истории. - После завершения цикла
show
файлstudentsfill.txt
закрывается. - Создается процедура
bad
, которая будет выводить информацию о студентах, у которых оценки по определенным предметам равны 3. - Внутри процедуры
bad
происходит цикл, который повторяется до конца массиваstud
. Если у студента оценки по физике, математике, программированию или истории равны 3, то выводится его имя. - После завершения цикла
bad
происходит выход из программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д