Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.10.2008, 19:24   #1
Axel1981
Пользователь
 
Регистрация: 01.10.2008
Сообщений: 17
По умолчанию Арифметические действия над матрицами и транспонирование

Вот текст задания:
"Программа должна выполнять арифметические действия над матрицами и транспонирование. Программа должна считывать данные о матрицах из одного или двух входных файлов. При запуске программа запрашивает операцию, которую необходимо выполнить, и имена файлов (с матрицей А и(или) с матрицей В). В процессе функционирования программа выполняет действия над матрицами и выводит результаты в файл. Результатом является матрица того же размера что и входной(ые) файл(ы). Допустимыми действиями являются: элементарные арифметические действия (+, -, *), транспонирование.
Ограничения: матрицы размерами m*n, при условии что m,n<=10. Значения элементов матрицы не должны превышать 1000. Элементы матрицы в строках разделяются символами пробелов (до 10), дробная часть числа отделяется от целой символом "точка". Отдельная строка матрицы записывается отдельной строкой во входной файл. Строки матрицы должны содержать одинаковое количество элементов."
Программу надо написать в Паскале.

Последний раз редактировалось Axel1981; 01.10.2008 в 19:28.
Axel1981 вне форума Ответить с цитированием
Старый 01.10.2008, 19:43   #2
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Наверное ты уже что-то начал делать и на каком-то этапе застрял. Расскажи нам, что в этой задаче ты не смог сделать. Проблемы с описанием матрицы на Паскале, или с чтением и записью в файл, или какая-то операция над матрицами не получается.
Sibedir вне форума Ответить с цитированием
Старый 01.10.2008, 20:01   #3
Axel1981
Пользователь
 
Регистрация: 01.10.2008
Сообщений: 17
По умолчанию

Проблемы с чтением и записью в файл, никогда раньше с этим не сталкивался, поэтому и не могу разобраться самостоятельно.
Вот, кое-что нарыл в инете. Помогите переделать, плиз.
Вложения
Тип файла: txt MATRIX.txt (8.2 Кб, 195 просмотров)
Axel1981 вне форума Ответить с цитированием
Старый 01.10.2008, 20:49   #4
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Вот пример считывания матрицы из файла и самого такого файла
Matr.zip
Запись аналогично.

P.S.: До чего дошли преподаватели в учебных заведениях. Не дауют даже таких элементарных знаний. Бедные студенты\ученики. Всё сами, всё сами. Вот мы, например, считывание и запись матрицы в файл на лекции на 1-ом курсе подробно разбирали. Куда катится этот мир?
Sibedir вне форума Ответить с цитированием
Старый 01.10.2008, 21:18   #5
Axel1981
Пользователь
 
Регистрация: 01.10.2008
Сообщений: 17
По умолчанию

Две верхние цифры в текстовом файле, это я как понял размерность матрицы?
Подскажите можно ли сделать так, чтобы при чтении из файла программа выдавала ошибку, если количество строк/столбцов в матрице больше 10?

Последний раз редактировалось Axel1981; 01.10.2008 в 21:54.
Axel1981 вне форума Ответить с цитированием
Старый 02.10.2008, 06:38   #6
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

if (m>10) or (n>10) then {Ошибка}
Sibedir вне форума Ответить с цитированием
Старый 02.10.2008, 08:49   #7
Axel1981
Пользователь
 
Регистрация: 01.10.2008
Сообщений: 17
По умолчанию

Спасибо большое, Sibedir
Axel1981 вне форума Ответить с цитированием
Старый 02.10.2008, 11:00   #8
Axel1981
Пользователь
 
Регистрация: 01.10.2008
Сообщений: 17
По умолчанию

Продолжаю мучить программку... Пока написал только для суммы матриц А и В. Вот что у меня получилось:

У меня такой вопрос : мне нужно, чтобы программа результат суммы матриц записала в новый файл и чтобы я сам в ходе выполнения программы указал путь и имя нового файла.

Помогите кто чем сможет...

По ходу возник ещё вопрос: куда и как правильно вписать условие, чтобы значения элементов матрицы не превышали 1000?
Вложения
Тип файла: rar Matr.rar (6.7 Кб, 35 просмотров)

Последний раз редактировалось Axel1981; 02.10.2008 в 11:39.
Axel1981 вне форума Ответить с цитированием
Старый 02.10.2008, 13:12   #9
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Поскольку матрица хранится в файле и оттуда считывается то так:
Код:
for j:= 1 to n1 do
       Read (f, matr1 [i, j]);
       if matr1 [i, j]>1000 then matr1 [i, j]:=1000;
puporev вне форума Ответить с цитированием
Старый 02.10.2008, 18:23   #10
Axel1981
Пользователь
 
Регистрация: 01.10.2008
Сообщений: 17
По умолчанию

Кое-как сам разобрался, как матрицу в файл записывать.

Код:
 writeln('Введите имя файла:');
         readln(f3);
         Assign(f, f3);
         Rewrite(f); 
         writeln (f, m1, n1);
         for i:=1 to m1 do
          begin
           for j:=1 to n1 do
           Write(f,matr3[i,j]);
           writeln (f);
          end;
          Close (f);
В результате выполнения программы в файл записывается следующее:
34
3431
35810
2436

А надо, чтобы выглядело так:
3 4
3 4 3 1
3 5 8 10
2 4 3 6

Может кто поделиться советом...
Axel1981 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с матрицами Shmey Паскаль, Turbo Pascal, PascalABC.NET 9 25.09.2008 18:33
очень срочно нужен макрос на транспонирование таблицы kievlyanin Microsoft Office Excel 10 25.06.2008 13:20
Транспонирование матрицы на i8080 RANDOM223 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 29.04.2008 17:33
Арифметические операции Ассемблер BAV Помощь студентам 9 05.03.2008 00:21
Задачка с матрицами на С urgu_st Помощь студентам 4 02.11.2007 17:44