Операции над записями - Pascal
Формулировка задачи:
В данную программу сделать так:
У кого средний бал больше 4.0 того выводит на экран.
Program KK; const N=3; //количество студентов type FIO = record family : string[20]; // фамилия name : string[15]; // имя surname : string[20]; // отчество end; type mas=array[1..5] of byte; type student=record studentFIO : FIO; group : byte; points : mas; end; //******************************************************* var BAZA : array[1..N] of student; m : student; i,j,k : integer; begin //******************заполнение данных********************************** for i:=1 to N do begin write('Фамилия: '); readln(BAZA[i].studentFIO.family); write('Имя: '); readln(BAZA[i].studentFIO.name); write('Отчество: '); readln(BAZA[i].studentFIO.surname); write('Группа: '); readln(BAZA[i].group); writeln('оценки:'); for j:=1 to 5 do begin write(j,') '); readln(BAZA[i].points[j]); end; end; //******************Вывод данных********************************** for i := 1 to N-1 do for j := 1 to N-i do if BAZA[j].studentFIO.family > BAZA[j+1].studentFIO.family then begin //SWAP(BAZA[j], BAZA[j+1]); m := BAZA[j]; BAZA[j] := BAZA[j+1]; BAZA[j+1] := m; end; writeln('*********************************************************'); for i:=1 to N do begin write('Фамилия: '); writeln(BAZA[i].studentFIO.family); write('Имя: '); writeln(BAZA[i].studentFIO.name); write('Отчество: '); writeln(BAZA[i].studentFIO.surname); write('группа: '); writeln(BAZA[i].group); writeln('оценки:');; for j:=1 to 5 do write(BAZA[i].points[j]:3); writeln; writeln('*********************************************************'); end; //***************************************************************** k:=0; for i:=1 to N do begin for j:=1 to 5 do if BAZA[i].points[j] = 4 then begin k:=k+1; if k = 1 then writeln('Студенты, чей средний балл больше 4.0:'); writeln(BAZA[i].studentFIO.family,' ',BAZA[i].group); break; end; end; if k = 0 then writeln('студентов с двойками нет!'); end.
Решение задачи: «Операции над записями»
textual
Листинг программы
program KK; const N = 3;//количество студентов type FIO = record family: string[20]; // фамилия name: string[15]; // имя surname: string[20]; // отчество end; type mas = array[1..5] of byte; type student = record studentFIO: FIO; group: integer; points: mas; end; //******************************************************* var BAZA: array[1..N] of student; m: student; i, j, k: integer; sr: real; begin //******************заполнение данных********************************** for i := 1 to N do begin write('Фамилия: ');readln(BAZA[i].studentFIO.family); write('Имя: ');readln(BAZA[i].studentFIO.name); write('Отчество: ');readln(BAZA[i].studentFIO.surname); write('Группа: ');readln(BAZA[i].group); writeln('оценки:'); for j := 1 to 5 do begin write(j, ') '); readln(BAZA[i].points[j]); end; end; //******************Вывод данных********************************** for i := 1 to N - 1 do for j := 1 to N - i do if BAZA[j].studentFIO.family > BAZA[j + 1].studentFIO.family then begin m := BAZA[j]; BAZA[j] := BAZA[j + 1]; BAZA[j + 1] := m; end; writeln('*********************************************************'); for i := 1 to N do begin write('Фамилия: '); writeln(BAZA[i].studentFIO.family); write('Имя: '); writeln(BAZA[i].studentFIO.name); write('Отчество: '); writeln(BAZA[i].studentFIO.surname); write('группа: '); writeln(BAZA[i].group); writeln('оценки:');; for j := 1 to 5 do write(BAZA[i].points[j]:3); writeln; writeln('*********************************************************'); end; //***************************************************************** sr := 0; writeln('Студенты, чей средний балл больше 4.0:'); for i := 1 to N do begin for j := 1 to 5 do sr := sr + BAZA[i].points[j]; sr := sr / 5; if sr > 4 then writeln(BAZA[i].studentFIO.family, ' ', BAZA[i].group); end; end.
Объяснение кода листинга программы
- Определение константы
N
и присвоение ей значения3
. - Определение типа записи
FIO
со следующими полями:family
(фамилия),name
(имя),surname
(отчество). - Определение массива
mas
размером 5 элементов, каждый из которых имеет типbyte
. - Определение типа записи
student
с полями:studentFIO
(типаFIO
),group
(целое число),points
(массив типаmas
). - Объявление переменных:
BAZA
как массив из N элементов типаstudent
,m
как переменную типаstudent
,i
,j
,k
как целые числа,sr
как вещественное число. - Заполнение данных о студентах, включая их ФИО, группу и оценки.
- Сортировка студентов по фамилии в алфавитном порядке.
- Вывод всех данных о студентах: ФИО, группа, оценки.
- Вычисление и вывод студентов, чей средний балл выше 4.0.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д