С Новым годом! Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 15.04.2014
Сообщений: 2
1

Найти и вывести самые распространенные женские те мужские имена

15.04.2014, 12:51. Показов 3576. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
О каждом студенте факультета доступна следующая информация: фамилия, имя, отчество, пол, возраст, курс. Найти и вывести самые распространенные женские те мужские имена.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.04.2014, 12:51
Ответы с готовыми решениями:

Вывести на экран возможные мужские и женские имена в зависимости от введенного пола
Дан пол человека:м-мужчина,ж-женщина.Вывести на экран возможные мужские и женские имена в...

Вывести самые распространенные мужское и женское имена среди студентов
Во входном файле записана следующая информация о каждом из 20 студентов некоторого вуза: ...

Файлы. Организовать вывод на экран в 2 столбца с 20 и 50 позиции женские и мужские имена
даны 2 текстовых файла.девушки.txt и юноши.txt в которых написаны имена,по 20 имен в каждом (каждое...

Вывести самые распространенные женские и мужские имена
Помогите решить задачу пожалуйста! Написать программу, которая формирует файл записей данной...

3
Модератор
Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows
5616 / 2614 / 183
Регистрация: 27.06.2011
Сообщений: 10,623
15.04.2014, 12:52 2
Вы вообще о чем?
0
0 / 0 / 0
Регистрация: 15.04.2014
Сообщений: 2
15.04.2014, 12:53  [ТС] 3
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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
uses crt;
const n=20;{количество записей по условию}
type Tstud=record{тип запись}
           f,i,o:string[12];{фамилия, имя, отчество}
           p:string[1];{пол}
           v:16..35;{возраст}
           k:1..5;{курс}
           end;
procedure Convert(var a:string);{процедура для перевода русских символов из кодировки ANSI(в текстовом файле) в кодировку ASCII(в Паскаль). Если файл написан на латинице, нужно убрать}
var i:integer;
begin
for i:=1 to length(a) do
if ord(a[i]) in [192..239] then a[i]:=chr(ord(a[i])-64)
else if ord(a[i]) in [240..255] then a[i]:=chr(ord(a[i])-16)
else if ord(a[i])=168 then a[i]:=chr(ord(240))
else if ord(a[i])=184 then a[i]:=chr(ord(241));
end;
var sp,sp1,sp2:array[1..n] of Tstud;{массив записей и 2 массива-клоны исходного при поске частых возрастов и отчеств}
    f:text;{текстовый файл}
    bf:Tstud;{переменная типа записи-буфер при сортировке обменом}
    s,s1:string;{вспомогательные строки при преобразовании текста в запись}
    cho:string[12];{самое частое отчество}
    chv:byte;{самый частый возраст}
    i,j,k,l:byte;{счетчики циклов}
    max,imaxv,imaxo:byte;{максимальное значения и его номера при поиске самых частых возраста(imaxv) и отчества(imaxo)}
    n1,n2:byte;{размер массива при поиске}
    t,c:integer;{переменные для перевода строки в число, t-число, с- код ошибки}
begin
clrscr;
assign(f,'file1.txt');{связываем переменную с файлом}
reset(f);{открываем его для чтения}
writeln('Полный список студентов:':40);{создаем таблицу}
writeln('-------------------------------------------------------------');
writeln('|  Фамилия  |     Имя    |  Отчество  | Пол | Возраст | Курс|');
writeln('-------------------------------------------------------------');
for i:=1 to n do
   begin
    readln(f,s);{читаем строку}
    Convert(s);{конвертируем}
    sp[i].f:=copy(s,1,pos(';',s)-1);{первое слово до точкм с запятой-фамилия}
    gotoXY(1,whereY);write('| ',sp[i].f);{ставим курсор на текущей строке(whereY) в позицию 1, вводим фамилию}
    delete(s,1,pos(';',s));{удаляем это слово вмесе с точкой с запятой}
    sp[i].i:=copy(s,1,pos(';',s)-1);{второе слово-имя, тоже}
    gotoXY(13,whereY);write('| ',sp[i].i);
    delete(s,1,pos(';',s));
    sp[i].o:=copy(s,1,pos(';',s)-1);{3 слово-отчество}
    gotoXY(26,whereY);write('| ',sp[i].o);
    delete(s,1,pos(';',s));
    sp[i].p:=copy(s,1,pos(';',s)-1);{4 слово из 1 буквы-пол }
    gotoXY(39,whereY);write('|  ',sp[i].p);
    delete(s,1,pos(';',s));
    s1:=copy(s,1,pos(';',s)-1);{запоминаем 5 слово-возраст}
    val(s1,t,c);{преобразуем в число}
    sp[i].v:=t;{заносим в запись}
    gotoXY(45,whereY);write('|   ',sp[i].v);
    delete(s,1,pos(';',s));
    val(s,t,c);{последнее слово(точки с запятой нет) - курс, тоже как возраст}
    sp[i].k:=t;
    gotoXY(55,whereY);write('|  ',sp[i].k);
    gotoXY(61,whereY);write('|');{последняя вертикальная черта}
    writeln;
  end;
writeln('-------------------------------------------------------------');
readln;{читаем}
clrscr;{очищаем экран}
{ищем самый частый возраст}
n1:=n;sp1:=sp;{запоминаем размер массива и сам массив, т.к. при поиске они изменятся}
i:=1;max:=0;imaxv:=0;{первый элемент массива}
while i<=n1 do{пока не конец массива}
  begin
   k:=1;{встретили 1 раз}
   for j:=n1 downto i+1 do {смотрим до конца}
   if sp1[j].v=sp1[i].v then {если еще такой же}
     begin
       k:=k+1;{пртбавляем}
       if k>max then{если насчитали больше чем до этого}
         begin
           max:=k;{это макс}
           imaxv:=i;{запомним его номер}
         end;
      for l:=j to n1-1 do{от этого элемента до предпоследнего}
      sp1[l]:=sp1[l+1];{присваиваем значения следующего, сдвигаем массив влево, удаляем повторяющиеся элементы}
      n1:=n1-1;{уменьшаем длину массива}
     end;
    i:=i+1;{переходим к следующему элементу}
   end;
chv:=sp[imaxv].v;{запоминаем самый частый возраст}
{поиск самого частого отчества точно также}
n2:=n;sp2:=sp;
i:=1;max:=0;imaxo:=0;
while i<=n2 do
  begin
   k:=1;
   for j:=n2 downto i+1 do
   if sp2[j].o=sp2[i].o then
     begin
       k:=k+1;
       if k>max then
         begin
           max:=k;
           imaxo:=i;
         end;
      for l:=j to n2-1 do
      sp2[l]:=sp2[l+1];
      n2:=n2-1;
     end;
    i:=i+1;
   end;
cho:=sp[imaxo].o;{запоминаем самое частое отчество}
{сортируем массив по возрастанию фамилий, т.е. по алфавиту обменом, методом пузырька}
for i:=1 to n-1 do
for j:=i+1 to n do
if sp[i].f>sp[j].f then
   begin
    bf:=sp[i];
    sp[i]:=sp[j];
    sp[j]:=bf;
   end;
writeln('Список студенток с самым частым возрастом и отчеством:');
writeln;
writeln('-------------------------------------------------------------');
writeln('|  Фамилия  |     Имя    |  Отчество  | Пол | Возраст | Курс|');
writeln('-------------------------------------------------------------');
for i:=1 to n do
if (sp[i].p='Ж')and(sp[i].v=chv)and(sp[i].o=cho)then{если пол Ж и самые частые возраст и отчество, выводим в таблицу}
  begin
    gotoXY(1,whereY);write('| ',sp[i].f);
    gotoXY(13,whereY);write('| ',sp[i].i);
    gotoXY(26,whereY);write('| ',sp[i].o);
    gotoXY(39,whereY);write('|  ',sp[i].p);
    gotoXY(45,whereY);write('|   ',sp[i].v);
    gotoXY(55,whereY);write('|  ',sp[i].k);
    gotoXY(61,whereY);write('|');
    writeln;
  end;
readln
end.

ну что то типо такого
0
0 / 0 / 1
Регистрация: 12.11.2014
Сообщений: 6
23.11.2014, 21:22 4
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
Program primer;
Const n=6;
Type inf=record
   fam: string[20];
   im: string[20];
   ot: string[20];
   pol: char;
   voz: integer;
   ku: integer;
end;
Var st:inf;
j,l,imm,img,max_m,max_g: integer;
r_imm,r_img: string[20];
V,K:ARRAY[1..n] of integer;
F,I,O:Array[1..n] of string[20];
P:Array[1..n] of char;
 Begin
  Writeln('Введите данные по студентам');
   For j:=1 to n do
    Begin
     Write('Фамилия ',j,'-гo: ');
       Readln(st.fam);
       F[j]:=st.fam;
     Write('Имя ',j,'-гo: ');
       Readln(st.im);
       I[j]:=st.im;
     Write('Отчество ',j,'-гo: ');
       Readln(st.ot) ;
       O[j]:=st.ot;
     Write('Пол ',j,'-гo:   ');
       Readln(st.pol) ;
       P[j]:=st.pol;
     Write('Возраст ',j,'-гo: ');
       Readln(st.voz) ;
       V[j]:=st.voz;
     Write('Курс ',j,'-гo: ');
       Readln(st.ku) ;
       K[j]:=st.ku;     
  end;
  Writeln;
  r_imm:=''; r_img:='';
  max_m:=1; max_g:=1;
   For j:=1 to n do
    begin 
     imm:=1; img:=1;
      For l:=1 to n do
       begin
        If ((l<>j) and (I[l]=I[j]) and (P[j]=P[l]))
        Then begin
               If (P[l]='м') Then imm:=imm+1 Else img:=img+1;
               End;
       End;          
     If (imm>max_m) and (P[j]='м')
     Then begin
          max_m:=imm;
          r_imm:=I[j];
             end;
     If (img>max_g) and (P[j]='ж')
     Then begin
         max_g:=img;
         r_img:=I[j];
            end;
    End;
  If (r_imm='') Then r_imm:='-';
  If (r_img='') Then r_img:='-';
   Writeln('Распостранённое мужское имя: ',r_imm);
   Writeln('Распостранённое женское имя: ',r_img);
  END.
0
23.11.2014, 21:22
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.11.2014, 21:22
Помогаю со студенческими работами здесь

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

Записать в файл женские имена и отдельно мужские
Составить список женских имен и отдельно имен мужских.Каждому имени присвоит лексему(целое число)....

Женские и мужские тематики
Натолкнули на мысль - давайте обсудим кликабельность в женских и мужских тематиках. Женщины...

Разбить массив имен на женские и мужские
Помогите решить задачу. Пользователь вводит в программу массив имен, программа разбивает на массив...

В списке имен выделить женские(мужские)
Как создать массив который будет делить людей по полу и подсчитывать их процент ?

Определить периоды, когда в парикмахерской свободные женские и мужские мастера
Здравствуйте форумчане, у меня к вам несколько нескромная просьба, помогите мне пожалуйста, оформив...


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

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