![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Vasya_linux |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 17 Пол: Мужской Реальное имя: Вася Репутация: ![]() ![]() ![]() |
Здравствуйте уважаемые форумчане!
Задача: Ввод матрицы из файла и вывод этой же матрицы под другим именем в другой файл (файлы задаются пользователем). В итоге на экран вывод нормальный, а в файл только в строку или в столбец. Где ошибка не пойму. Помогите пожалуйста. Вот код:
|
TarasBer |
![]()
Сообщение
#2
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
Ты забыл кое-что:
for j:=1 to m do write(f,new_matr[i,j]:8:3); writeln(f); end; Сообщение отредактировано: TarasBer - 12.01.2012 11:38 -------------------- |
Vasya_linux |
![]()
Сообщение
#3
|
Новичок ![]() Группа: Пользователи Сообщений: 17 Пол: Мужской Реальное имя: Вася Репутация: ![]() ![]() ![]() |
Ты забыл кое-что: for j:=1 to m do write(f,new_matr[i,j]:8:3); writeln(f); end; Благодарю за оперативность. Спасибо, выручили крепко. Но... Появилось еще несколько вопросов. Посоветуйте пожалуйста. 1. Где можно найти примеры программ на Паскале для сеточных вычислений. Хотя бы алгоритмы. 2. Как обойти или расширить выделяемую Паскалем память. Может быть есть какие-нибудь директивы. Боюсь для сеток не хватит памяти. Или мне на Питон перейти, он вроде как родной для Линукса? Заранее благодарен. |
TarasBer |
![]()
Сообщение
#4
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
Ограничения по памяти связаны с тем, что Турбопас под дос и реальный режим, у которого с памятью хреново. Короче, FPC линуксовый возьми, там нет ограничений на память.
Что такое сеточные вычисления - не знаю. -------------------- |
Vasya_linux |
![]()
Сообщение
#5
|
Новичок ![]() Группа: Пользователи Сообщений: 17 Пол: Мужской Реальное имя: Вася Репутация: ![]() ![]() ![]() |
На FPC линуксовом и работаю, спасибо.
Не знал, что там нет ограничений на память. ![]() |
TarasBer |
![]()
Сообщение
#6
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
Ты только в настройках компилятора поройся хорошенько, там это есть.
Выставь 32-битный режим например. -------------------- |
Vasya_linux |
![]()
Сообщение
#7
|
Новичок ![]() Группа: Пользователи Сообщений: 17 Пол: Мужской Реальное имя: Вася Репутация: ![]() ![]() ![]() |
Тарас, благодарю за помощь. Прошу еще немного терпения.
Тема еще не закрыта. Я хочу сделать модификацию этой самой программы, но так, чтобы она считывала данные с исходного файла по частям. Скажем, в файле несколько матриц размером 3х4, но они без разрывов находятся в файле (т.е. одна матрица под другой). Программа считывает 1-ю и умножает на 2-ю и выводит в 3-ю. Так как матрицы одной размерности, то все должно быть хорошо. Одно удручает - мой код совсем плох. Если у тебя будет время, подскажи, где ошибка. Может я неправильно мыслю. Вот код: const Может мне пораспихивать эти матрицы по файлам. Но тогда как открыть 3-4 файла на чтение сразу? Сообщение отредактировано: Vasya_linux - 12.01.2012 16:24 |
TarasBer |
![]()
Сообщение
#8
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
В чём проблема? Матрицы последовательно считываются из файла, да.
> Но тогда как открыть 3-4 файла на чтение сразу? В данном случае это не нужно, но вообще - заводишь 3-4 файловые переменные и каждую связываешь со своим файлом. -------------------- |
Vasya_linux |
![]()
Сообщение
#9
|
Новичок ![]() Группа: Пользователи Сообщений: 17 Пол: Мужской Реальное имя: Вася Репутация: ![]() ![]() ![]() |
>>> В чём проблема? Матрицы последовательно считываются из файла, да.
Проблема в том, что этот код не работает. Выводятся 0. Сообщение отредактировано: Vasya_linux - 12.01.2012 16:51 |
TarasBer |
![]()
Сообщение
#10
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
хз.
Почему первая матрица читается в строки for i:=1 to 2 do а вторая в for i:=3 to N do -------------------- |
Vasya_linux |
![]()
Сообщение
#11
|
Новичок ![]() Группа: Пользователи Сообщений: 17 Пол: Мужской Реальное имя: Вася Репутация: ![]() ![]() ![]() |
хз. Почему первая матрица читается в строки for i:=1 to 2 do а вторая в for i:=3 to N do Эту задачу нужно решить двумя путями. 1. В исходном файле данных одна большая матрица, скажем 9х4 9 строк и 4 столбца. Программа считывает первые 3 строки и 4 столбца - т.е. первую часть этой матрицы, которая будет самостоятельной матрицей и над которой можно будет выполнять преобразования. Далее считываются строки от 4-й по 6-ю включительно и т.д. 2. Но можно и по другому (что в принципе проще) открыть на чтение 3 файла со своими матрицами 3х4 и спокойно считывать и работь с этими матрицами. |
IUnknown |
![]()
Сообщение
#12
|
![]() a.k.a. volvo877 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: ![]() ![]() ![]() |
Файл данных совсем нельзя привести, на котором у тебя происходит некорректная работа программы? Чтоб не выдумывать что-то свое, а взять то, что у тебя УЖЕ не работает и проверить...
|
TarasBer |
![]()
Сообщение
#13
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
Но ты совместил эти пути, считывая в разные строки разных матриц.
Хотя обрабатываешь (делаешь покомпонентное умножение) ты их так, будто ты считывал в один строки. -------------------- |
Vasya_linux |
![]()
Сообщение
#14
|
Новичок ![]() Группа: Пользователи Сообщений: 17 Пол: Мужской Реальное имя: Вася Репутация: ![]() ![]() ![]() |
Файл данных совсем нельзя привести, на котором у тебя происходит некорректная работа программы? Чтоб не выдумывать что-то свое, а взять то, что у тебя УЖЕ не работает и проверить... Да просто заполните матрицу так: 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.0 Вот и все данные (1- первая матрица, 2 -вторая ...). |
TarasBer |
![]()
Сообщение
#15
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
Ты работаешь с данными так, словно они находятся в разных матрицах:
-------------------- |
Vasya_linux |
![]()
Сообщение
#16
|
Новичок ![]() Группа: Пользователи Сообщений: 17 Пол: Мужской Реальное имя: Вася Репутация: ![]() ![]() ![]() |
Ты работаешь с данными так, словно они находятся в разных матрицах:
Именно так и есть! Просто мне трудно объяснить. Ладно вот код, который немного иначе построен - это 2-й вариант:
Но опять не работает. Я уже замучался сам, да и Вас замучал. Помогите пожалуйста исправить ошибку(ки). Сообщение отредактировано: Vasya_linux - 13.01.2012 12:06 |
IUnknown |
![]()
Сообщение
#17
|
![]() a.k.a. volvo877 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата Да просто заполните матрицу так: А теперь просто зайди в отладчик и посмотри, что прочиталось из файла ![]() Цитата for i:=3 to N do {s4itivaem 2-y matrisy iz isxodnogo faila} Сообщение отредактировано: IUnknown - 13.01.2012 12:17 |
Vasya_linux |
![]()
Сообщение
#18
|
Новичок ![]() Группа: Пользователи Сообщений: 17 Пол: Мужской Реальное имя: Вася Репутация: ![]() ![]() ![]() |
|
IUnknown |
![]()
Сообщение
#19
|
![]() a.k.a. volvo877 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: ![]() ![]() ![]() |
Читай выше, я написал в чем проблема...
|
Vasya_linux |
![]()
Сообщение
#20
|
Новичок ![]() Группа: Пользователи Сообщений: 17 Пол: Мужской Реальное имя: Вася Репутация: ![]() ![]() ![]() |
Хорошо, но в моей последней редакции кода все нормально.
Т.е. матрицы считываются каждая со своего файла, но воз и ныне там. Код не работает. Где ошибка ??? 3 файла, 2 матрицы, 3-я матрица результирующая. И все, этого достаточно. Помогите пожалуйста. Сообщение отредактировано: Vasya_linux - 13.01.2012 13:32 |
![]() ![]() |
![]() |
Текстовая версия | 11.06.2024 1:27 |