Автор | Сообщение |
|
Отправлено: 15.01.17 12:30. Заголовок: Можно ли выводить данные сразу же?
Здравствуйте! Подскажите, пожалуйста, является ли верным такое решение задачи №4? Сама задача: 4) На вход программы подаются фамилии и имена учеников. Известно, что общее количество учеников не превосходит 100. В первой строке вводится количество учеников, принимавших участие в соревнованиях, N. Далее следуют N строк, имеющих следующий формат: <Фамилия> <Имя> Здесь <Фамилия> – строка, состоящая не более чем из 20 символов; <Имя> – строка, состоящая не более чем из 15 символов. При этом <Фамилия> и <Имя> разделены одним пробелом. Примеры входных строк: Иванова Мария Петров Сергей Требуется написать программу, которая формирует и печатает уникальный логин для каждого ученика по следующему правилу: если фамилия встречается первый раз, то логин – это данная фамилия, если фамилия встречается второй раз, то логин – это фамилия, в конец которой приписывается число 2 и т.д. Например, для входной последовательности Иванова Мария Петров Сергей Бойцова Екатерина Петров Иван Иванова Наташа будут сформированы следующие логины: Иванова Петров Бойцова Петров2 Иванова2 Решение на PascalABC: var a:array[1..100] of string;//сюда сохраняем повторяющиеся фамилии только по одному разу b:array[1..100] of integer; i1,i,n,p,j:integer; t:boolean; s:string; begin readln(n); i1:=0; for i:=1 to n do begin t:=false; readln(s); p:=pos(' ',s); s:=copy(s,1,p-1);//определили фамилию for j:=1 to i1 do if a[j]=s then begin t:=true;//проверили, присутствует ли она в списке inc(b[j]); writeln(s,b[j]);//если да, вывели логин break; end; if t=false then begin inc(i1); a[i1]:=s; b[i1]:=0; inc(b[i1]); writeln(s);//если нет, записали фамилию и вывели логин end; end; end. Можно ли выводить информацию по мере ее поступления и не проходиться по массиву очередной раз? Заранее спасибо за ответ!
|
|
|
Новых ответов нет
[см. все]
|
|
|
| Администратор
|
Сообщение: 1236
|
|
Отправлено: 16.01.17 06:21. Заголовок: Nastyan пишет: Можно..
Nastyan пишет: цитата: | Можно ли выводить информацию по мере ее поступления и не проходиться по массиву очередной раз? |
|
Думаю, что можно. В условии никаких ограничений нет. Но все зависит от критериев, которые будут выданы экспертам во время проверки.
|
|
|
|
Отправлено: 16.01.17 08:09. Заголовок: А каким образом данн..
А каким образом данные вводятся в программу? Через файл?)
|
|
|
|
| Администратор
|
Сообщение: 1237
|
|
Отправлено: 16.01.17 08:13. Заголовок: Nastyan пишет: А как..
Nastyan пишет: цитата: | А каким образом данные вводятся в программу? Через файл?) |
|
Обычно предполагается, что данные идут из входного потока (с клавиатуры). Могут читаться из файла, могут поступать через сеть. Это не важно - используем readln.
|
|
|
|
Отправлено: 24.01.17 11:35. Заголовок: Вот, а я никак не мо..
Вот, а я никак не мог найти ответ. Спасибо. полусфера
|
|
|
|