Форум «Всё о Паскале» _ Задачи _ PЗаписи работа с ними
Автор: nEGOR 7.04.2006 23:36
В этой программе вводятся различные данные о студенте.В частности имя (FirstName),Фамлия(SecondName),отчество(ThirdName),возраст( Age) и т.д. Записей о студентах будет несколько.Их количество хранится в константе n. Как её(программу) доделать так, чтоб выводились частовстречаемые имена? Заранее очень благодарен.
Код
program zad_144; uses crt; const n=10; type Student=record FirstName:string; SecondName:string; ThirdName:string; Age,Kurs:byte; Pol:string; end; var vuz:array[1..n] of Student; MostMale,MostFemale:string; i:byte; begin ClrScr; for i:=1 to n do begin Writeln('==Na4alo vvoda ',i,'-oy zapisi=='); Write('Vvedite imya-');readln(vuz[i].FirstName); Write('Vvedite familiju-');readln(vuz[i].SecondName); Write('Vvedite ot4estvo-');readln(vuz[i].ThirdName); Write('Vvedite vozrast-');readln(vuz[i].Age); Write('Vvedite kurs-');readln(vuz[i].Kurs); Write('Vvedite pol-');readln(vuz[i].Pol); Writeln('==Konets vvoda ',i,'-oy zapisi=='); end; end.
Автор: мисс_граффити 7.04.2006 23:49
Что есть "частовстречаемые"? которые встречаются больше всего раз? или просто не один раз? \
Автор: volvo 7.04.2006 23:49
Цитата(nEGOR @ 7.04.2006 19:36)
Как её(программу) доделать так, чтоб выводились частовстречаемые имена?
Определи, что для тебя есть ЧАСТОвстречаемые имена? сколько раз из 10 должно встретиться имя, чтобы быть ЧАСТОвстречаемым?
Потом определи массив (например, так):
var OftenNames = Array[1 .. n] of Record Name: string; count: integer; End;
, проходи во всем записям, и подсчитывай, сколько раз встречается каждое имя:
curr_count := 0; for i := 1 to n do begin
found := false; for j := 1 to curr_count do if OftenNames[j].name = vuz[i].FirstName then begin Inc(OftenNames[j].count); found := true; end;
if not found then begin inc(curr_count); With OftenNames[curr_count] Do Begin Name := vuz[i].FirstName; count := 1; end; end; end;
Ну, и наконец, пройди по счетчикам всех имен и если какое-то имя встретилось больше определенного числа раз, значит оно - ЧАСТОвстречающееся:
for i := 1 to curr_count do with OftenNames[i] do begin if count > СколькоТебеНадо then writeln(Name); end;
P.S. Набирал прямо здесь - могут быть неточности... Главное - пойми идею.
Автор: Гость 8.04.2006 0:42
Всем большое спасибо за помощь.Часто встречаемое-одно женское, одно мужское