Цитата:
Сообщение от borntank
Спасибо конечно за алгоритм, но, к сожалению, не могу понять задачи связанные с файлами.
|
Ну что же - давайте разбираться. И, заодно, учиться.
Цитата:
В разделе переменных:
1. Определяете переменные для типизированных файлов и для циклов.
|
Код:
Var
F,G:File of Integer;
i,N,P:Integer;
Здесь добавлена еще переменная P - счетчик нечетных чисел.
Цитата:
2. Ассоциируете файловые переменные с путями к файлам.
|
Код:
Assign(F,'D:\First');
Assign(G,'D:\Second');
Здесь файлы с именами "First" и "Second" располагаются на диске D. Естественно, имена файлов и пути к ним Вы можете изменить на свой вкус.
Цитата:
3. Открываете файл F по перезаписи командой rewrite(f).
|
Цитата:
4. Инициализируете генератор псевдослучайных чисел командой randomize.
|
Цитата:
5. В цикле записываете в файл 1000 случайных чисел из указанного диапазона. Получить их можно, к примеру, командой round(random*101)-50.
|
Код:
For i:=1 to 1000 do
begin
N:=-50+Random(101);
Write(F,N);
end;
Close(F);
Здесь - одно замечание. Конечно, генерацию чисел можно организовать и так, как предлагает AlexZir, но мне представляется этот переход от вещественного к целочисленному формату излишним и перегружающим программу. Поэтому я предлагаю более простой и прямой вариант.
Цитата:
6. Переоткрываете файл F по чтению командой reset(f), а файл G - по перезаписи командой rewrite(G).
|
Код:
ReSet(F);
ReWrite(G);
Цитата:
7. В цикле считываете число из F, анализируете его на делимость на 2, если не делится - записываете в файл G.
|
Код:
P:=0;
For i:=1 to 1000 do
begin
Read(F,N);
If (N mod 2)<>0 then
begin
Write(G,N);
P:=P+1;
end;
end;
Добавлен подсчет количества нечетных чисел.
Цитата:
По окончании работы программы можете просмотреть содержимое полученных файлов, к примеру, через Блокнот.
|
Вот тут - внимание! Это так, но ТОЛЬКО если тип файлов - текстовый (Text). Если же, как в данном случае, объявлен числовой формат файлов, то всё, что Вы увидите, открыв их Блокнотом - это цепочку крякозябров. Ибо информация закодирована. Поэтому я вставил чтение и вывод на экран нечетных чисел, содержащихся в файле G, для чего мне и понадобился счетчик P:
Код:
ReSet(G);
For i:=1 to P do
begin
Read(G,N);
Write(N:4);
end;
Ну и заканчиваем программу. Оператор Readln поставлен для того, чтобы приостановить работу и посмотреть на результат. Возможно, в АВС он не нужен - не знаю.
Теперь осталось только состыковать фрагменты листинга. Это я предоставляю Вам.