Форум » Обработка числовых последовательностей » Можно ли выводить данные сразу же? » Ответить

Можно ли выводить данные сразу же?

Nastyan: Здравствуйте! Подскажите, пожалуйста, является ли верным такое решение задачи №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. Можно ли выводить информацию по мере ее поступления и не проходиться по массиву очередной раз? Заранее спасибо за ответ!

Ответов - 4

Поляков: Nastyan пишет: Можно ли выводить информацию по мере ее поступления и не проходиться по массиву очередной раз? Думаю, что можно. В условии никаких ограничений нет. Но все зависит от критериев, которые будут выданы экспертам во время проверки.

Nastyan: А каким образом данные вводятся в программу? Через файл?)

Поляков: Nastyan пишет: А каким образом данные вводятся в программу? Через файл?) Обычно предполагается, что данные идут из входного потока (с клавиатуры). Могут читаться из файла, могут поступать через сеть. Это не важно - используем readln.


skameykin22: Вот, а я никак не мог найти ответ. Спасибо.полусфера



полная версия страницы