Записи о студентах: вывести номер курса, на котором больше всего мужчин - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток! Немного о задаче: Дан список студентов, который вводится пользователем. Вводятся след. данные: количество вносимых студентов, фамилия, имя, отчество, пол, возраст и курс. Все это читается через запись "bible=record;" Условия задачи: а) программа должна выводить на экран номер курса, на котором больше всего мужчин; г) программа должна выводить на экран инициалы(!) тех девушек, чьи возраст и отчество являются самыми распространенными. Пример условия "а): Вводится информация о 3-х студентах, пол которых "м" или "муж". Курсы: 1, 3 и 1. Т.е. на экран должно выводится сообщение в виде - На "1"(, 'n' ,) курсе больше всего мужчин. Пример условия "г)": Вводится информация о 3-х студентах, пол которых "ж" или "жен". Инициалы/возраст: первой Алла Генадевна Жилкина 21 год, второй Маша Даниловна Арчук( М Д ) 18 лет, третьей Люда Генадьевна Жилкина( Л Г ) 21 год.(все имена взяты с потолка). Т.е. на экран должно выводится сообщение типа - Самое распространенные возраст/отчество: 21, Генадьевна. Прошу помочь с решением. Будет восхитительно, если возможно будет решить хотя бы одно из условий. Безмерно благодарен! Код самой программы ниже:

Решение задачи: «Записи о студентах: вывести номер курса, на котором больше всего мужчин»

textual
Листинг программы
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. Вложенных списков в данном коде нет.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.909 из 5
Похожие ответы