|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
20.12.2020, 16:31 | #1 |
Новичок
Джуниор
Регистрация: 20.12.2020
Сообщений: 2
|
Программа на паскале, помогите пожалуйста
Написать программу, которая формирует новый файл последовательного доступа, компонентами которого являются значения произведений двух соседних компонент исходного файла.
Нужно на паскале abc, без использования массивов. С файлами я разобралась, не могу понять как без массивов поэлементно перемножать... у меня получаются квадраты чисел первого файла Код:
Последний раз редактировалось Marina22126; 20.12.2020 в 19:22. Причина: добавила свой код |
20.12.2020, 18:50 | #2 |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,309
|
Не знаю какая версия Паскаля вас интересует, но после записи в файл, когда вы формируете тестовый файл, его необходимо закрывать:
Код:
В цикле чтения файла сделайте последовательно чтение двух строк. Используйте две переменные. Перемножайте полученные значения и сохраняйте в новом файле. Понятно, что при таком режиме чтения необходимо контролировать попадание на конец файла, если число элементов файла нечётное. Для этого можно воспользоваться директивами компилятора и перехватывать сообщение об ошибке ввода/вывода. Предлагаю любимую мной книжку Т.А. Павловская, Программирование на ЯВУ. Паскаль. Электронная версия этой книги есть в соответствующем разделе. Там вы найдёте и примеры с использованием директив при работе с файлом. PS: Копируйте код на форум, выделите его и нажмите на кнопку [CODE], которая есть над формой ввода. Это позволит лучше форматировать код и он будет более читаемым.
Как-то так, ...
|
20.12.2020, 19:29 | #3 | |
Новичок
Джуниор
Регистрация: 20.12.2020
Сообщений: 2
|
Цитата:
чтение каких двух строк? у меня же компоненты - это числа, записанные в исходный файл случайным образом. |
|
20.12.2020, 20:22 | #4 | |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,309
|
Цитата:
Запишите числа с добавлением разделителя, например пробела или используйте writeln(). В этом случае одно число будет в одной строке. Думаю, что нисколько не противоречя условию задачи, можно записать в строке по два числа, разделив их пробелом. А потом по два и читать. Это упростит проверку на конец файла. Ваши компоненты - это числа в ASCII формате. При записи в файл они преобразуются к ASCII формату, а при чтении, если верно указан тип переменной - обратно, в число. Числа записаны не случайным образом, как пишите вы, а последовательно. Сами числа имеют псевдослучайное значение. Из текстового файла числа можно читать по одному (или два - в предложенной выше версии). PS: Подготовьте файл с данными. Закройте его нормально и откройте в Блокноте. Там всё будет видно.
Как-то так, ...
|
|
20.12.2020, 21:42 | #5 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,552
|
А разве сказано, что представление чисел в файле ASCII ? Я этого в вопросе не увидел. А если
file of real ? Впрочем, кто знает, как у них там в АВС, простите за выражение... |
20.12.2020, 22:04 | #6 | |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,309
|
Цитата:
Выделяют бестиповые - записываем слепки ОЗУ и компонентные - для хранения однотипных элементов, например записи, массив. Эти два типа записываются и читаются блоками. Можно читать и изменять любой элемент блока. Выбрали блок, прочитали, обработали. С текстовыми (последовательного доступа) так поступать нельзя. Данные читаются последовательно и при необходимости, переписываются в новый файл. В новый файл можно вносить изменения и дополнять данными из обрабатываемого. В последовательном файле нельзя прочитать, например, 13-ю строку, не прочитав предыдущие. Это как работа с магнитной лентой. PS: Это больше для ТС.
Как-то так, ...
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите в паскале решить пожалуйста | Gogol | Помощь студентам | 18 | 27.01.2009 21:36 |
привет всем! помогите пожалуйста решить две задачи на паскале. я в паскале полный ноль. | Пищенок Саша | Паскаль, Turbo Pascal, PascalABC.NET | 5 | 20.01.2009 13:46 |
Помогите Помогите Пожалуйста Решить Одну Задачку в Паскале!!! | VisTBacK | Помощь студентам | 6 | 19.09.2008 13:44 |