1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения. 3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора). 5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM! 6. Одна тема - один вопрос (задача) 7.Проверяйте программы перед тем, как разместить их на форуме!!! 8.Спрашивайте и отвечайте четко и по существу!!!
Люди, пожалуйста, помогите решить задачу! Угроза недопуска к экзаменам
Организовать типизированный файл, в котором находятся данные об участниках соревнований по многоборью: фамилия, имя, страна, массив результатов. Найти победителя – участника, набравшего наибольшее количество баллов. Напишите встроенную подпрограмму-процедуру для организации безопасного ввода фамилии и имени участника, а также страны.
Ну вот, кажется готово.. Я попытался максимально сохранить твою прогу, но кое-что все же пришлось изменить. Например, вместо фиксированной размерности 10 я ввел константу M, в файле она равна 10. Просто в отладке вводить все десять записей было в лом.. Далее, твое поле name я заменил на поле imq (имя). Но главное - рекордсменов (т.е. тех, кто набрал максимальный балл) может быть несколько. Поэтому программа усложнилась. Я снабдил ее подробными коментариями, так что думаю, ты разберешься. Если есть вопросы - задавай.
uses CRT; const M=10; type base=record fam, imq, strana:string; rez:real; end; var igrok:array[1..M] of base; i,p:integer; MaxRez:real; w:array[1..M] of integer;
begin writeln('ввдите данные об участниках соревнований'); for i:=1 to M do with igrok[i] do begin writeln ('введите фамилию участника:'); readln(fam); Writeln ('введите имя участника:'); readln(imq); Writeln('введите страну. которую представляет участник:'); readln (strana); writeln('введите количество баллов, набранных участником:'); readln(rez); WriteLn('-----------------------'); end; MaxRez:=0; {Подготавливаем переменную для максимального результата} {Поиск максимального результата} for i:=1 to M do with igrok[i] do if rez>MaxRez then begin {Найден новый рекорд} p:=1; {Рекорд пока один} w[1]:=i; {Запоминаем номер рекордсмена} MaxRez:=rez; {Запоминаем рекорд} end else if rez=MaxRez then begin {Найден результат, равный рекорду} Inc(p); {Увеличиваем количество рекордсменов} w[p]:=i; {Запоминаем номер нового рекордсмена} end; {Вывод окончательных данных} WriteLn('Максимальный результат: ',MaxRez); WriteLn('Всего игроков набрало максимальный результат: ',p); for i:=1 to p do with igrok[w[i]] do writeln (fam,' ',imq, ' - ',strana); {Цикл по номерам рекордсменов} readln end.
--------------------
я - ветер, я северный холодный ветер я час расставанья, я год возвращенья домой