Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ заполнение массива данными из файла

Автор: VEDA 2.12.2007 1:38

Вот такая задача:

В текстовом файле содержится последовательность действительных чисел. Вычислить произведение чисел, порядковые номера которых кратны трем. Результат дописать в конец исходного файла. Имя файла вводится с клавиатуры.

Как объяснить что данные из файла это массив? Ничего не могу поделать sad.gif

это все что вышло


Прикрепленные файлы
Прикрепленный файл  Z3.PAS ( 440 байт ) Кол-во скачиваний: 255

Автор: VEDA 2.12.2007 2:17

Или хоть подскажите где это обсуждалось... Четыре часа лазию по подобным форумам, не могу похожее найти... wub.gif

Автор: volvo 2.12.2007 2:23

Цитата
Как объяснить что данные из файла это массив?
А это обязательное условие - работа с файлом? Тогда придется поэлементно читать числа из файла в массив:

i := 1;
while not eof(f) do begin
readln(f, a[i]);
inc(i);
end;
, но учти, что файл не должен хранить больше 10 чисел, у тебя ограничен размер массива. Как лучше делать - говорить не буду, я уже один раз сделал замечание Непогрешимому - в итоге я же и остался виноват... Кто знает, возможно то что я предложу опять Ему не понравится... dry.gif

Автор: klem4 2.12.2007 2:28

1. открываешь текстовый файл (содержащий числа) для чтения (reset)
2. обнуляешь счетчик (count = 0); и произведение (p = 1)
3. начинаешь цикл прохода по файлу (while not eof(f) do beign ...)
в цикле:
a. читаешь очередное значение (readln(f, value));
б. увеличиваешь счетчик на 1 (count = count + 1)
в. проверяешь: if (count mod 3) = 0 ( если число кратно трем, то )then p := p * value; (добавляешь значение к произведению)
конец цикла.

4. открываешь файл для записи (append)
5. дописываешь в него значение value: writeln(f, value);
6. закрываешь файл.

вроде все smile.gif

http://forum.pascal.net.ru/index.php?showtopic=3584



добавлено:
или я что-то не так понял ?