|
Главная | Правила | Регистрация | Дневники | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
|
Опции темы | Опции просмотра |
07.01.2016, 19:35 | #1 (permalink) |
Member
Регистрация: 07.01.2016
Сообщений: 15
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Записи на языке Pascal
Вот код, который получился у меня. работает не так, как хотелось бы. Прошу помощи) заранее спасибо) Type anketa=record vosr:17..21; curs:1..3; FIO:record name:string[10]; otch_vo:string[20]; end; end; var student:array [1..5] of anketa; i,kol,j, kol1,kol2, k_max,k_max1, k_max2,max2, course,course1,course2:integer; max, max1:string; begin for i:=1 to 5 do with student[i] do begin writeln ('введите данные ', i, ' студента'); writeln ('введите имя'); readln (FIO.name); writeln ('введите отчество'); readln (FIO.otch_vo); writeln ('введите возраст'); readln (vosr); writeln ('введите курс'); readln (curs); end; k_max:=0; k_max1:=0; k_max2:=0; for i:=1 to 5 do begin kol:=0; for j:=1+1 to 5 do if student[i].FIO.name=student[j].FIO.name then kol:=kol+1; end; for i:=1 to 5 do begin kol1:=0; for j:=1 to 5 do if student[i].FIO.otch_vo=student[j].FIO.otch_vo then kol1:=kol1+1; end; for i:=1 to 5 do begin kol2:=0; for j:=1 to 5 do if student[i].vosr=student[j].vosr then kol2:=kol2+1; end; if kol>k_max then begin k_max:=kol; max:=student[i].FIO.name; course:=student[i].curs; end; if kol1>k_max1 then begin k_max1:=kol1; max1:=student[i].FIO.otch_vo; course1:=student[i].curs; end; if kol2>k_max2 then begin k_max2:=kol2; max2:=student[i].vosr; course2:=student[i].curs; end; writeln ('распространненое имя ', max,' ', 'на курсе', ' ', course); writeln ('распространненое отчество ', max1, ' ', 'на курсе', ' ', course1); writeln ('распространненый возраст ', max2, ' ' ,'на курсе', ' ', course2); end. |
07.01.2016, 19:35 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Лучшее, что можно сделать сразу - это просмотреть аналогичные обсуждения на форуме Помогите написать программы на языке Pascal Типизированные файлы на языке Pascal Практические задачи на языке Pascal Нужно написать программы на языке Pascal Обработка символов и строк на языке Pascal |
07.01.2016, 21:35 | #3 (permalink) |
Member
Регистрация: 07.01.2016
Сообщений: 15
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
составить программу, которая будет выводить номер курса, на котором распространенные(часто встречающиеся) женские и мужские имена, отчество, возраст. имена, отчества и возраст вводятся с клавиатуры
|
07.01.2016, 21:49 | #4 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
В общем, глухо. Извините. Перепишите для начала задание так, чтобы фразы были согласованы хотя бы в рамках русского языка. Пока я вижу бессвязный набор слов. |
|
07.01.2016, 21:58 | #5 (permalink) |
Member
Регистрация: 07.01.2016
Сообщений: 15
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
дело в том, что другого условия предоставить не могу. да, нужно заранее придумать список своих "распространенных" имен, отчеств и возрастов. например, 1.Юлия Викторовна 19 лет 2 курс; 2.Лилия Викторовна 20 лет 2 курс; 3.Юлия Сергеевна 19 лет 2 курс. В итоге получается, что на 2 курсе самое распространенное имя Юлия, отчество Викторовна, возраст-19. я понимаю так.
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
07.01.2016, 22:12 | #6 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
В любом случае - сегодня уже не буду этим заниматься, завтра с утра посмотрю. |
|
07.01.2016, 22:19 | #7 (permalink) |
Member
Регистрация: 07.01.2016
Сообщений: 15
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
вы всё верно поняли. надо определить для каждого курса имя, отчество и возраст. на слово "одновременно" не обращайте внимание. но возможно ли будет делить имена на мужские и женские? заранее вас благодарю)
|
08.01.2016, 11:06 | #8 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Ну вот, что-то такое сотворил и отладил:
Код:
Const N=10; Type anketa=record vosr:17..21; curs:1..3; FIO:record name:string[10]; otch_vo:string[20]; end; end; C_Dat=record Ns:Byte; Nm,Np:Array[1..N] of string[10]; Na:Array[1..N] of Byte; end; Var student:array [1..N] of anketa; Cr_Dt:Array[1..3] of C_Dat; Numb:Array[1..N] of Byte; i,j,C,k_max,Imax,D:integer; Begin for i:=1 to N do with student[i] do begin writeln ('Enter the data for ', i, ' student'); write('Name: '); readln(FIO.name); write('Patronymic: '); readln(FIO.otch_vo); write('Age: '); readln(vosr); write('Course: '); readln(curs); with Cr_Dt[curs] do begin Ns:=Ns+1; Nm[Ns]:=FIO.name; Np[Ns]:=FIO.otch_vo; Na[Ns]:=vosr; end; end; writeln('List of sudents:'); for i:=1 to N do with student[i] do begin write(FIO.name); D:=15-Length(FIO.name); for j:=1 to D do write(' '); write(FIO.otch_vo); D:=15-Length(FIO.otch_vo); for j:=1 to D do write(' '); writeln(vosr:5,Curs:5); end; writeln('Press "Enter" to continue'); readln; for C:=1 to 3 do begin Writeln('Course ',C,':'); with Cr_Dt[C] do begin for i:=1 to Ns do begin Numb[i]:=1; for j:=1 to Ns do if (j<>i) and (Nm[j]=Nm[i]) then Inc(Numb[i]); end; k_max:=0; for i:=1 to Ns do if Numb[i]>k_max then begin k_max:=Numb[i]; Imax:=i; end; if k_max=1 then writeln('All names are different') else writeln ('Common name: ', Nm[Imax]); for i:=1 to Ns do begin Numb[i]:=1; for j:=1 to Ns do if (j<>i) and (Np[j]=Np[i]) then Inc(Numb[i]); end; k_max:=0; for i:=1 to Ns do if Numb[i]>k_max then begin k_max:=Numb[i]; Imax:=i; end; if k_max=1 then writeln('All patronymics are different') else writeln ('Common patronymic: ', Np[Imax]); for i:=1 to Ns do begin Numb[i]:=1; for j:=1 to Ns do if (j<>i) and (Na[j]=Na[i]) then Inc(Numb[i]); end; k_max:=0; for i:=1 to Ns do if Numb[i]>k_max then begin k_max:=Numb[i]; Imax:=i; end; if k_max=1 then writeln('All ages are different') else writeln ('Common age: ', Na[Imax]); end; writeln; end; Readln End. |
08.01.2016, 11:08 | #9 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
Опции темы | |
Опции просмотра | |
|
|