Создать файл для результатов работы программы
Для записи результатов работы программы необходимо создать файл. В ходе работы программа будет постоянно обращаться к этому файлу : брать КОПИЮ последней записи в файл ( сохраняя саму запись,иначе чего весь сыр-бор городить ), проделывать с этой КОПИЕЙ арифметические операции и записывать полученное число в хвост записи, т.е. файл будет постоянно пополняемый ( и еще нужно,чтобы после каждой новой записи-он должен быть постоянно сохраняемый). Файл создается с одним числом - 5 ( № 1 ).
Как наиболее правильно сформулировать такую задачу программе и где это записать : до или после объявления переменных ? |
Язык программирования, естественно, у вас из разряда "сами знаете какой"?
Исходя из раздела, могу в общих чертах назвать команды для работы с файлами: assign(f,'путь к файлу.расширение') - связать файловую текстовую переменную с файлом, имеющим адрес. reset(f) - открыть файл по чтению, понадобится при поиске последней строки в файле путем перебора. append(f) - открыть файл для добавления информации в конец файла. read(f, t) - считать из файла значение в переменную t. write(f,t) - записать в файл значение переменной t. Более подробно и детально можно будет вести диалог в случае не столь туманного описания задачи. |
Цитата:
Yug7 И еще - какой тип файла? Что представляет собой каждая запись (текст, число, строка, переменная типа "запись")? К сожалению, наши штатные экстрасенсы убыли в отпуск, а нам без них про всё это не догадаться... |
Создать файл для результатов работы программы
:tehnari_ru_117: Море извинений за бестолково заданный вопрос. Уточняю : 1) Язык - Turbo Pascal.
2) " Запись" - число. |
:tehnari_ru_117: А еще я наврал в вопросе с числом под № 1 - это не 5,а 3.
|
:tehnari_ru_117: И еще. Спасибо за участие.
|
Файл типизированный или нетипизированный?
Насколько я понял, в исходном файле должно быть только одно число в начале выполнения программы и в процессе выполнения программы в него записывается ряд чисел, полученных в результате неких арифметических действий. Я вас правильно понял? Работа с текстовым файлом вас устроит? |
Допустим, что все числа в файле записываются с новой строки и сам файл должен носить имя c:\results.txt и первоначально не создан.
Код:
var f:text; |
Приведенную программу можно зациклить на выполнение вычислений до наступления события, например, до нажатия на кнопку Esc для выхода. Сделать это можно, добавив цикл с условием, используя команды перехвата нажатия клавиш.
|
AlexZir ! Вы соверщенно правы: и изложил туманно и как верно сказано "...не удосужился выложить все техзадание для реализации программы."
Исправляюсь. Но, боюсь,что будет еще запутанней. Я хочу написать программу, генерирующую прогрессию таким образом : сначала объявить ДВЕ переменные : а ( непрерывно циклически принимает значения "0" или "1",цикл такой : =0,=1,=0,=1,=0 ...) , b ( непрерывно циклически принимает значения "1" или "0",цикл такой : =1,=0,=0,=1,=0,=0,=1 ...). 1. for i:=1 to n do 2. if i mod 3=1 then write(1) else write(0); Так можно ? Или лучше взять a и b, как тип Boolean ? А алгоритм работы такой : программа сравнивает первые значения переменных и если хоть одна переменная =1,программа переходит к оценке вторых значения переменных,а на счетчик идет k+1,так до тех пор,пока а=0 и b=0. Тогда из файла берется КОПИЯ последнего туда записанного числа, к нему +счетчик (после чего он обнуляется) и полученное записывается в файл. Затем вводится еще одна переменная того же типа,но со своим циклом. Для вычисления цикла из файла берется КОПИЯ последней записи(то,что вычислили) и от нее вычитается 1. Это и будет количество нулей между единицами в цикле. Цикл новой переменной начинается с 1, остальные переменные начинают оттуда,где остановились : а=0, b=0, c=1. Дальше алгоритмы повторяются. Количество переменных растет, в файл записываются все новые и новые члены прогрессии. Еще больше тумана напустил ? |
Часовой пояс GMT +4, время: 03:40. |
Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.