1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения. 3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора). 5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM! 6. Одна тема - один вопрос (задача) 7.Проверяйте программы перед тем, как разместить их на форуме!!! 8.Спрашивайте и отвечайте четко и по существу!!!
...недавно прошёл школьный этап олимпиады по информатике. это одна из задач, которую я не смогла решить. помогите, пожалуйста, с решением и если можно объясните как решать...
Цитата
Во входном файле записана последовательность чисел в странном формате: у каждого числа сначала записано количество цифр в этом числе, а потом через пробел - сами цифры. Последовательность заканчивается числом 0.
В выходной файл нужно вывести сначала количество чисел в последовательности, а потом - сами числа.
Количество чисел в последовательности не превышает 1000. В числах - не более 4-х знаков.
Этап чтения и формирования массива чисел для дальнейшего вывода. 1. Организуем бесконечный цикл чтения
repeat ....... until FALSE;
2. Согласно формату входных данных считываем количество цифр в будущем числе
Read(input, NumLen);
3. Проверяем условие завершения входной последовательности, т.е. роверяем введённое число на 0
if NumLen=0 then Break;
4. Теперь, понимая, что нужно принять ещё одно число, начинаем его считывать из входного файла по одной цифре, и формировать из цифр число
Number:=0; for i:=1 to NumLen do begin Read(input, Digit); Number:=Number*10+Digit; end;
5. Теперь у нас есть число Number и мы для дальнейшего использования (вывода в файл) сохраняем его в массиве, а заодно подсчитываем количество введённых чисел (Count)
Inc(Count); a[Count]:=Number;
6. Переход к п.2.
Этап вывода результатов в файл. 1. Выводим в файл количество введённых чисел
Write(output, Count);
2. Организуем цикл от 1 до количества введённых чисел (Count) и выводим числа в файл