Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Pascal] Обмен элементов в матрице 
V
    Опции темы
crus
Дата 4.1.2007, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 24.12.2006

Репутация: нет
Всего: нет



Помогите пожайлуста с задачей:

задача:
Переставить местами элементы побочной диагонали матрицы , симметричные относительно её центра.

0 3 0
1 0 4
0 2 0

1 надо поменять с 2
3 поменять с 4. 




PM MAIL   Вверх
skyboy
Дата 4.1.2007, 18:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 5
Всего: 260



Цитата(crus @  4.1.2007,  17:19 Найти цитируемый пост)
Переставить местами элементы побочной диагонали матрицы , симметричные относительно её центра.

нет. для данного условия надо менять местами нули в позициях (1,3) и (3,1), а также ноль в позиции (2,2) с самим собой

Добавлено @ 18:44 
Код

var a: array[1..12,1..12] of integer;
      i,j,N: integer;
begin
writeln('Введите размерность матрицы');
readln(N);
writeln('Вводим матрицу...');
for i:=1 to N do
 for j:=1 to N do 
  begin
   write('[',i,',',j,']?');
   readln(a[i,j]);
  end;
writeln('Исходная матрица:');
for i:=1 to N do
 begin
  for j:=1 to N do
   write(a[i,j],#8);
  writeln;
 end;
for i:=1 to N do
 begin
  j:= a[i,N - i + 1];
  a[i, N - i + 1]:= a[N - i + 1, i];
  a[N - i + 1, i]:= j;
 end;
writeln('Преобразованная матрица:');
for i:=1 to N do
 begin
  for j:=1 to N do
   write(a[i,j],#8);
  writeln;
 end;
readln;
end. 

PM MAIL   Вверх
apook
Дата 4.1.2007, 20:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 794
Регистрация: 12.7.2006

Репутация: 10
Всего: 23



Код

Program test;


var

    matrix :array[0..3, 0..3] of integer;
    i, j, tmp :integer;

begin
    matrix[0][0]:=0;
    matrix[0][1]:=3;
    matrix[0][2]:=0;

    matrix[1][0]:=1;
    matrix[1][1]:=0;
    matrix[1][2]:=4;

    matrix[2][0]:=0;
    matrix[2][1]:=2;
    matrix[2][2]:=0;

    i:=0;
    j:=0;

    while( i <3 ) do
    begin
        while( j <3 ) do
        begin
            Write( matrix[i][j] );
            j:=Succ( j );
        end;
        j:=0;
        i:=Succ( i );
        Writeln( '' );
    end;
    Writeln( '' );


    i:=0;
    j:=0;
    while( i < 3 ) do
    begin
        while( j < 3 ) do
        begin
            if (i=0) and (j =1) then
            begin
                tmp:=matrix[i][j];
                matrix[i][j] :=matrix[i+1][j+1];
                matrix[i+1][j+1]:=tmp;
            end;

            if (i=1) and (j =0) then
            begin
                tmp:=matrix[i][j];
                matrix[i][j] :=matrix[i+1][j+1];
                matrix[i+1][j+1]:=tmp;
            end;
            j:=Succ( j );  
        end;
        j:=0;  
        i:=Succ( i );
    end;

    i:=0;
    j:=0;
    while( i <3 ) do
    begin
        while( j <3 ) do
        begin
            Write( matrix[i][j] );
            j:=Succ( j );  
        end;
        j:=0; 
        i:=Succ( i );
        Writeln( '' );
    end;
    Writeln( '' );

end.


Это сообщение отредактировал(а) Alexeis - 5.1.2007, 18:21


--------------------
Мои руки из дуба, голова из свинца ну и пусть ...
PM MAIL   Вверх
crus
Дата 4.1.2007, 20:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 24.12.2006

Репутация: нет
Всего: нет



спасибо
PM MAIL   Вверх
MOPEDE
Дата 4.1.2007, 23:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 4.1.2007

Репутация: нет
Всего: нет



Если работает ставь галочку что вопрос закрыт
PM MAIL   Вверх
crus
Дата 5.1.2007, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 24.12.2006

Репутация: нет
Всего: нет



Skyboy 
я сделал как ты написал , но почемуто в преобразованной матрице получается тоже самое что и в исходной.
PM MAIL   Вверх
skyboy
Дата 5.1.2007, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 5
Всего: 260



хм.. переборщил smile
строку 20 меняем с "for i:=1 to N do" на "for i:=1 to N div 2 do" - у меня менялись сначала один раз элементы  местами... А  потом снова менялись, становясь на прежние места smile
И замени #8(это backspace) на #9(tab)
PM MAIL   Вверх
crus
Дата 5.1.2007, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 24.12.2006

Репутация: нет
Всего: нет



спасибо , работает
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0527 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.