Вопрос № 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. Однако, в данном случае она вам не понадобится =)