![]() |
|
Модераторы: volvo877, Snowy, MetalFan |
![]()
|
|
| SlePoY_SniPeR |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 12.9.2006 Репутация: нет Всего: нет |
Люди добрые, сижу вот, изучаю TurboPascal (я в институте, 1 курс Народ, подскажите как правильно использовать TurboPascal в этих целях Жду... |
|||
|
||||
| Coder |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 733 Регистрация: 13.12.2004 Репутация: нет Всего: 11 |
различие между reset, rewrite, append смотри в своей книге (или по чему ты там изучаем) Это сообщение отредактировал(а) Coder - 13.9.2006, 00:45 |
|||
|
||||
| Fighter |
|
||||||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 810 Регистрация: 5.1.2005 Репутация: нет Всего: 2 |
Хм, а мне кажется так не правильно. Если конкретно то: эту штуку надо заменить на
Да и еще файл открывается в режиме reset а потом используется процедура write - компилятор стошнит - он выведет ошибку. Перед write нужно rewrite. Вот пример:
В результате выполнения этого кода в файл d:\file.txt запишется строка 246 (а не отдельно 2 4 6), в следствие чего после выполнения кода
В переменную int1 запишется число 246, а не 2 как скорее всего задумывалось. Остальные переменные примут нулевые значения. Выход в том чтобы вместо записи всех переменных в вызове одной процедуры write выполнять запись через процедуры writeln. Да, кстати, процедура write не переносит курсор на новую строку а вот writeln переносит - это вы уже знаете, и кстати, тоже самое применимо и к файлам. Режимы открытия: Для работы с файлами нужно объявить файловую переменную. Вообще файлы бывают нескольких типов, но так как ты выбрал тектовый я от этого и буду отходить. Чтобы использовать текстовый файл тебе нужно объявить текстовую переменную, например:
Затем эту переменную нужно связать с каким-нибудь конкретным файлом на диске, и это все не так сложно и делается это через процедуру Assign, т.е. вот так
После того как переменная связана, с файлом нужно что-то сделать. Вот все то что мы сможем сделать с файлами: rewrite(<файловая переменная>) - открыть файл для записи (если такой файл существует, то тогда все записи в нем будут удалены, а если нет - то тогда будет создан новый файл) reset(<файловая переменная>) - открыть файл для чтения. append(<файловая переменная>) - открыть файл для того чтобы в него добавить записи. После того как мы открыли файл, то мы можем использовать процедуры read/write, readln/writeln для чтения/записи. По своему опыту скажу тебе, что все-таки чаще всего приходилось использовать writeln/readln для работы с файлами, нежели read/write. В конце работы с файлом не забываем закрывать его close(<файловая переменная>). Это сообщение отредактировал(а) Fighter - 13.9.2006, 01:16 |
||||||||||
|
|||||||||||
| SlePoY_SniPeR |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 12.9.2006 Репутация: нет Всего: нет |
Спасибо всем, кто отписался в этом топике, ибо в принципе я разобрался
В общем, перед тем как взяться за свою лабу по инфе, решил написать банальную программулину, которая решает квадратное уравнение и все ответы запихивает в файл... Код набил минут за 15, + 2 с лишним часа мучался над тем, как засунуть результаты в файл (ну никак не получается)... Взгляните, пожалуйста на код, может я что-то не так сделал? Собственно, код:
Вот содержимое файла RES.TXT: 3.1400000000E+02,-3.1100000000E+02 Это сообщение отредактировал(а) SlePoY_SniPeR - 13.9.2006, 20:43 |
|||
|
||||
| volvo877 |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2073 Регистрация: 15.11.2004 Репутация: 2 Всего: 116 |
Compile -> Destination не в Memory часом установлено? Не форматируешь программу, поэтому не видишь очевидного... Вот, смотри, как ТВОЯ ЖЕ программа выглядит при соблюдении отступов:
|
||||
|
|||||
| SlePoY_SniPeR |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 12.9.2006 Репутация: нет Всего: нет |
Ага, уже на каком-то форуме вычитал, поменял... Все теперь с этим ок...
else if D=0 then T:=-B/2*A; writeln('The equation has 1 decision x',T); Да вроде все описал :\ У меня вот теперь проблема с содержимым res.txt. Вот содержимое: 3.1400000000E+02,-3.1100000000E+02 (эт при уравнении x^2 -3x -4 | ну так, для примера взял...) Как в человеческие цифры все это перевести? |
||||
|
|||||
| volvo877 |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2073 Регистрация: 15.11.2004 Репутация: 2 Всего: 116 |
Да не все... Насколько я понимаю в программировании, тебе надо, чтобы при D = 0 выполнялось И это
И вот это:
попробуй уравнение X^2 + 2*X + 3 = 0 Что должно получиться? Нет действительных корней, т.к. D < 0? А программа вылетит с ошибкой, когда попытается извлечь корень из отрицательного числа...
|
||||||
|
|||||||
| Fighter |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 810 Регистрация: 5.1.2005 Репутация: нет Всего: 2 |
Хорошо, тогда вопрос. А как тогда при таком содержимом файле ты будешь считывать это все если тебе понадобится?
Не лучше ли использовать:
|
|||
|
||||
| albertn |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 368 Регистрация: 17.7.2006 Где: г. Ставрополь Репутация: нет Всего: 34 |
volvo877, ты кстати тоже не совсем правильно отформатировал лесенку операторов if - else - if, к тому же что у тебя программа выведет при A=0,B<>0,C=0?
К тому-же в нем begin и end стоят не там, где надо. |
|||
|
||||
| volvo877 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2073 Регистрация: 15.11.2004 Репутация: 2 Всего: 116 |
||||
|
||||
![]()
|
| Правила форума "Delphi" | |
|
|
Запрещается! 1. Обсуждать и делится взломанными компонентами или программным обеспечением 2. Публиковать ссылки на варез 3. Оффтопить
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |