Записи о студентах: вывести номер курса, на котором больше всего мужчин - Turbo Pascal
Формулировка задачи:
Решение задачи: «Записи о студентах: вывести номер курса, на котором больше всего мужчин»
uses crt; const n=100;{максимальное количество студентов} type tStr=string[20]; tData=record Fam,Nam,Sur,Sex,Age,Krs:tStr; end; var a:array[0..n]of tData; b:tData; c:char; z:integer; {подпрограммма ввода} procedure pInput; var c:tStr; begin repeat writeln('I N P U T D A T A'); write(b.Fam,':'); readln(c); if length(c)>0 then begin inc(z); a[z].Fam:=c; write(b.Nam,':'); readln(c); a[z].Nam:=c; write(b.Sur,':'); readln(c); a[z].Sur:=c; write(b.Sex,':'); readln(c); a[z].Sex:=c[1]; write(b.Age,':'); readln(c); a[z].Age:=c; write(b.Krs,':'); readln(c); a[z].Krs:=c[1]; end; until length(c)=0; end; {подпрограмма получения значения записи} function Fild(c:tStr;d:integer):tStr; begin with a[d] do begin if c=b.Fam then Fild:=Fam; if c=b.Nam then Fild:=Nam; if c=b.Sur then Fild:=Sur; if c=b.Sex then Fild:=Sex; if c=b.Age then Fild:=Age; if c=b.Krs then Fild:=Krs; end end; {подпрограмма поиска по заданию а} procedure pFind; var c,d,e,f,g:integer; begin f:=0; for d:=1 to z do begin e:=0; for c:=1 to z do if(Fild('Sex',c)='m')and(Fild('Kurs',c)=Fild('Kurs',d))then inc(e); if e>f then begin f:=e; g:=d; end; end; Write('Kurs = ',a[g].Krs,' : ',f); ReadKey end; {подпрограмма просмотра всех записей} procedure pList; var c:integer; begin for c:=1 to z do with a[c]do writeln(Fam,',',Nam,',',Sur,',',Sex,',',Age,',',Krs); ReadKey end; {основная программа} begin {setup data} b.Fam:='Familya'; b.Nam:='Name'; b.Sur:='Surname'; b.Sex:='Sex'; b.Age:='Age'; b.Krs:='Kurs'; z:=0; {меню} repeat ClrScr; writeln('0 - exit'); writeln('1 - input data'); writeln('2 - find data'); writeln('3 - list data'); c:=ReadKey; case c of '1':pInput; '2':pFind; '3':pList; end until c='0' end.
Объяснение кода листинга программы
В данном коде используется язык программирования Turbo Pascal. Он содержит структуру данных tData, которая представляет запись о студенте. Эта структура содержит поля Fam (семья), Nam (имя), Sur (фамилия), Sex (пол), Age (возраст) и Krs (курс). Для хранения информации о студентах используется массив a, который содержит n записей о студентах. Функция Fild используется для получения значения поля записи по его имени. Процедура pFind используется для поиска студента по полу и курсу. Она изменяет переменные f и g, которые представляют номер найденного студента и его пол. Процедура pList используется для вывода информации о всех студентах. Она проходит по всем записям в массиве a и выводит информацию о студенте. Основная программа начинается с инициализации структуры данных tData и переходит к меню, которое предлагает пользователю выбрать действие. В зависимости от выбранного действия выполняется соответствующая процедура. Код использует подпрограмму ввода данных, которая запрашивает у пользователя информацию о студентах и записывает ее в массив a. Вложенных списков в данном коде нет.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д