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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.09.2008, 22:50   #1
Shmey
 
Аватар для Shmey
 
Регистрация: 24.09.2008
Сообщений: 5
По умолчанию Проблема с матрицами

В общем дана матрица например C (n, m) (N<=10), после некоторой обработки, требуется поменять местами элементы находящиеся над главной диагональю и под ней, вот собственно я не представляю как это сделать если можете, помогите (можно алгоритм, блок схему код вообщем хоть чтото). Или дайте ссылку какой нить задачник с примерами по матрицам. Заранее благодарен.
Shmey вне форума Ответить с цитированием
Старый 24.09.2008, 23:09   #2
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Код:
uses crt;
var a:array [1..10,1..10] of integer;
    n,i,j,x:integer;
begin
clrscr;
write('n=');readln(n);
for i:=1 to n do
  begin
     for j:=1 to n do
       begin
         a[i,j]:=10*i+j;
         write(a[i,j]:4);
       end;
     writeln;
  end;
writeln;
for i:=1 to n do
for j:=1 to n do
if i>=j then
    begin
      x:=a[i,j];
      a[i,j]:=a[j,i];
      a[j,i]:=x;
    end;
for i:=1 to n do
   begin
     for j:=1 to n do
     write(a[i,j]:4);
     writeln;
   end;
readln
end.
puporev вне форума Ответить с цитированием
Старый 25.09.2008, 00:13   #3
Shmey
 
Аватар для Shmey
 
Регистрация: 24.09.2008
Сообщений: 5
По умолчанию

Спасибо за код, попробую. А вот хотелось бы спросить не имеет ли кто ссылки на книжку "Искусство программирования" том 3. На сколько мне известно там приведено множество типовых алгоритмов.
Shmey вне форума Ответить с цитированием
Старый 25.09.2008, 06:53   #4
Plague
Забанен
Форумчанин Подтвердите свой е-майл
 
Аватар для Plague
 
Регистрация: 01.11.2006
Сообщений: 420
По умолчанию

Цитата:
Код:
for i:=1 to n do
for j:=1 to n do
if i>=j then
    begin
      x:=a[i,j];
      a[i,j]:=a[j,i];
      a[j,i]:=x;
    end;
меняем на
Код:
for i:=1 to n do
for j:=i+1 to n do
  begin
     x:=a[i,j];
     a[i,j]:=a[j,i];
     a[j,i]:=x;
  end;
и никаких лишних шагов.
Если ничто другое не помогает, прочтите, наконец, инструкцию! Аксиома Кана
Plague вне форума Ответить с цитированием
Старый 25.09.2008, 06:59   #5
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Том 3 посвящен сортировкам и поиску. Наберите в Гугле "Скачать Искусство программирования том 3" и первые две ссылки Ваши.
Вот рабочая ссылка. Формат DjVu, 6МГб.
http://www.proklondike.com/contentview.php?content=238

Последний раз редактировалось puporev; 25.09.2008 в 07:48.
puporev вне форума Ответить с цитированием
Старый 25.09.2008, 10:17   #6
Shmey
 
Аватар для Shmey
 
Регистрация: 24.09.2008
Сообщений: 5
По умолчанию

Собственно программа Не меняет треугольники местами просто меняет элементы треугольников местами а не сами треугольники
Изображения
Тип файла: gif Untitled-1.gif (1.9 Кб, 126 просмотров)

Последний раз редактировалось Shmey; 25.09.2008 в 10:25.
Shmey вне форума Ответить с цитированием
Старый 25.09.2008, 10:34   #7
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Цитата:
требуется поменять местами элементы находящиеся над главной диагональю и под ней
Вот собственно Ваше задание. Интересно, а как Вы хотите поменять треугольники, нарисуйте.
puporev вне форума Ответить с цитированием
Старый 25.09.2008, 18:10   #8
Shmey
 
Аватар для Shmey
 
Регистрация: 24.09.2008
Сообщений: 5
По умолчанию

Извините все разобрался с этой проблемой.
- Но вот еще одна например в той же матрице C (N, N) (N<=10) найти сумму элементов под главной диагональю.

p/s просто пытаюсь написать кое какую расчетную программу по алгебре.
и игру
Shmey вне форума Ответить с цитированием
Старый 25.09.2008, 18:29   #9
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

sum:=0;
for i:=1 to n do
for j:=1 to i-1 do
sum:=sum+a[i,j];
puporev вне форума Ответить с цитированием
Старый 25.09.2008, 18:33   #10
Shmey
 
Аватар для Shmey
 
Регистрация: 24.09.2008
Сообщений: 5
По умолчанию

спасибо когда напишу программу обязательно выложу. Программа будет в помощь школьнику, решения уравнений 2-й 3-й степени решение матриц(2-3 порядка), решение геометрических задач по заданным параметрам. Вот только почитаю литературу чтобы интерфейс сделать
Shmey вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с матрицами. Массивы. Xeon332 Помощь студентам 9 16.01.2008 21:03
Поблема с матрицами Ilius Помощь студентам 13 18.12.2007 19:27
Задачка с матрицами на С urgu_st Помощь студентам 4 02.11.2007 17:44
help!!! работа с матрицами Zagran Паскаль, Turbo Pascal, PascalABC.NET 4 08.01.2007 15:54