0 / 0 / 0
Регистрация: 11.02.2016
Сообщений: 1
1

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

11.02.2016, 09:30. Показов 844. Ответов 1
Метки нет (Все метки)

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

Прошу помочь с решением. Будет восхитительно, если возможно будет решить хотя бы одно из условий. Безмерно благодарен!
Код самой программы ниже:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
uses crt;
type bible=record
     imya: string[20];
     familiya: string[20];
     otchestvo: string[20];
     pol: string[10];
     vozrast: string[10];
     kurs: integer;
     end;
var ppl: array [1..100] of bible;
    a, k, n, max, p, d: integer;
    i, j:byte;
    amax, c:string;
    s:bible;
begin
 writeln('Добро пожаловать в мобильную базу данных отдела кадров.');
 writeln('Пожалуйста, заполните слудующие данные:');
 write('Количество студентов: ');
 readln(n);
 writeln;
 write('Вносимых в БД кадров: ', n, '.');
 writeln;
 for i:=1 to n do
  begin
   writeln;
   writeln('Введите сведения о ',i,'-м студенте');
   write('Фамилия: ');
   readln(ppl[i].familiya);
   write('Имя: ');
   readln(ppl[i].imya);
   write('Отчество: ');
   readln(ppl[i].otchestvo);
   writeln('Пол(муж/жен):'); 
   readln(ppl[i].pol);
   writeln('Возраст(число):');
   readln(ppl[i].vozrast);
   writeln('Курс(номер): ');
   readln(ppl[i].kurs);
  end;
 writeln;
 repeat
   textcolor(7);
   writeln('Нумерация условий: a) = 1, б) = 2, в) = 3, г) = 4, Выход = 0');
   write('Введите номер условия для обработки списка: ');
   readln(k);
   writeln;
   if k > 4 then
    begin
     textcolor(4);
     writeln('ОШИБКА!');
     writeln('Введен неверный номер');
     writeln;
    end;
 until k<4;
 repeat
 textcolor(7);
 if k=1 then // ПЕРВОЕ УСЛОВИЕ
  begin
  end;
 textcolor(7);
 if k=2 then // ВТОРОЕ УСЛОВИЕ
  with ppl[i] do
  begin
   max:=1;
   i:=1;
   while i<n do
    begin
     a:=1;
     j:=i+1;
     while j<=n do
      if ppl[j].imya=ppl[i].imya then 
       begin
        a:=a+1;
        if j=n then n:=n+1
        else
         begin
          for p:=j to n-1 do
           ppl[p].imya:=ppl[p+1].imya;
           n:=n-1;
         end;
       end
      else j:=j+1;
      if a>max then
       begin
        max:=a;
        amax:=ppl[i].imya;
       end;
     i:=i+1;
    end;
    if max=1 then
     writeln('Одинаковых имен нет')
    else 
     writeln('Самое распространенное имя:',amax,'. Количестов студентов с таким именем ', max);
  end;  
 textcolor(7);
 if k=3 then // ТРЕТЬЕ УСЛОВИЕ
 begin
  for i:=1 to n-1 do
   for j:=i+1 to n do
    if ppl[i].familiya>ppl[j].familiya then
     begin
      s:=ppl[i];
      ppl[i]:=ppl[j];
      ppl[j]:=s;
     end;
   for I:=1 to n do
    writeLn(ppl[i].familiya:10);
  end;
 textcolor(14);
 if k=4 then // ЧЕТВЕРТОЕ УСЛОВИЕ
  begin
  end;
 writeln;
 textcolor(7);
 if k=0 then exit;
 textcolor(7);
 write('Введите следующий номер условия. Для отмены - "0"): ');
 readln(k);
 writeln;
 until k=0;
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.02.2016, 09:30
Ответы с готовыми решениями:

Вывести информацию о студентах номер курса, на котором больше всего мужчин
На каждого студента имеется следующая информация: фамилия, имя, отчество, пол, возраст, курс. В...

Написать программу ввода информации о студентах и вывода номера курса, на котором больше всего мужчин
Ребята помогите пожалуйста, сессия близко препод задачами валит, если остальные еще как-то могу...

Вывод номера курса, на котором больше всего мужчин
Народ посмотрите програамудо понедельника очень нужно Записи На каждого студента имеется...

Определить номер курса, на котором мужчин больше
Сведения о студентах факультета состоят из следующей информации: фамилия, имя, отчество, пол,...

1
3406 / 1825 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
11.02.2016, 18:41 2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
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.
1
11.02.2016, 18:41
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.02.2016, 18:41
Помогаю со студенческими работами здесь

найти номер курса на котором больше всего мужчин(пол указывается буквой Ч (чоловiк) или Ж (жiнка)).
Всем привет! Дан файл с &quot;базой данных&quot; нужно его прочитать и найти номер курса на котором больше...

Вывести номер курса, на котором наибольший процент мужчин
Имеется следующая информация о каждом из 2000 студентов вуза: фамилия, имя, отчество, пол, возраст,...

Вывести номер курса, на котором наибольший процент мужчин
Сведения о студентах вуза записаны в массиве и содержат следующую информацию: фамилия, имя,...

Из файла с информацией о студентах узнать номер курса с наибольшим процентом мужчин
Здравствуйте, буду благодарен всем за помощь со следующей задачей: Дан файл, в котором содержится...

Номер курса, на котором наибольший процент мужчин
Помогите пожалуйста На основе таблицы,содержащей следующую информацию о группе студентов...

Структуры: определить номер курса, на котором наибольший процент мужчин
Имеется список студентов с информацией: фамилия, имя отчество, пол, возраст и курс. Нужно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru