Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на языке Pascal


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Pascal

Выпуск № 212
от 11.09.2006, 18:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 203, Экспертов: 56
В номере:Вопросов: 1, Ответов: 1


Вопрос № 54535: Здравствуйте. Помогите с задачкой: Написать программу, вычисляющую определитель матрицы размера mxm (m от 1 до 5). Входной файл содержит матрицу, определитель которой нужно подсчитать. Выходной файл содержит значение определителя. В общем...

Вопрос № 54.535
Здравствуйте.
Помогите с задачкой:
Написать программу, вычисляющую определитель матрицы размера mxm (m от 1 до 5). Входной файл содержит матрицу, определитель которой нужно подсчитать. Выходной файл содержит значение определителя.
В общем решал так:
Взял текстовый файл, ввел в него матрицу, числа там разделены для удобства запятыми. Думаю понятно, что кроме текстовых файлов жругие использовать нельзя, т.к. только в текстовые файлы можно вводить так, с помощью редактора матрицу. Там еще условие, что m от 1 до 5, но как тут поступать? Матрица ведь может быть больше или вообще пустой файл, надо это как-то проверить, пока что-то не могу понять как? Или просто брать, выделять определитель слева сверху 5х5 и его считать, если вдруг матрица больше. В цикле просматриваю файл, пока не конец, i2,i2 счетчики массива, куда записываются числа, т.е. массив - это определитель. Потом в цикле считываю символы, пока не конец строки. Проверяю, если пробел, то конец какого-то числа настал и записываю его в массив. Если это конец строки, то break. Дальше присваиваю s очередной символ, если числа 2-х, 3-х,4-х или 5-ти значное. Тут единственная проблема в том, что как перевести число из строки в число. Т.е. если дано число 123, то это будет тр и символа и как их перевести в число 123 не знаю. А может как-то по-другому можно решить задачу?

Приложение:

Отправлен: 06.09.2006, 18:06
Вопрос задал: korsar (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Сухомлин Кирилл Владимирович
Здравствуйте, korsar!
А зачем "while not EOLN(f1)" и "if (c=#10) or (c=#13) then break;" одновременно?
Если вы хотите считать строку, то читайте сразу с помощью readln(f1, s); А вообще-то Read-ом можно читать любые типы аргументов. В т.ч. и целиком числа. Только тогда лучше разделяйте не запятыми, а пробелами или даже знаками табуляции - так нагляднее при редактировании.
Для перевода из строки в число используется функция Str. В каком порядке у нее парамтеры - не помню, посмотрите в хелпе. В крайнем случае, компилятор ругнется - поменяется местами. А всего параметров там два: string и integer. Однако, в данном случае она вам не понадобится =)

Приложение:

---------
Не узнаешь - не попробуешь.

Ответ отправил: Сухомлин Кирилл Владимирович (статус: Студент)
Ответ отправлен: 07.09.2006, 01:01


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.36 от 06.09.2006
Яндекс Rambler's Top100

В избранное