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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.09.2015, 16:57   #1
TIGERMAX777
 
Регистрация: 15.09.2015
Сообщений: 6
По умолчанию Поменять местами элементы квадратной матрицы, которые симметричны побочной диагонали.

Поменять местами элементы квадратной матрицы, которые симметричны побочной диагонали. Составить блок-схему и написать код в C++. Помогите, прошу!
Заранее говорю, к учителю подходил и не один раз, он объяснить нормально не может. Однокурсники тоже ничем помочь не могут. Сам тоже пытался разобраться. Надеюсь вы поможете мне.

Последний раз редактировалось TIGERMAX777; 15.09.2015 в 17:05.
TIGERMAX777 вне форума Ответить с цитированием
Старый 15.09.2015, 17:11   #2
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

На Паскале:
Код:
var p:array[1..5,1..5] of integer;
    i,j,z:integer;
begin
   Randomize;
   For i:=1 to 5 do
   begin
      For j:=1 to 5 do
      begin
         p[i,j]:=Random(10);
         Write(p[i,j],'  ');
      end;
      Writeln;
   end;
   Writeln;
   For i:=1 to 4 do
      For j:=1 to 5-i do
      begin
         z:=p[i,j];
         p[i,j]:=p[6-j,6-i];
         p[6-j,6-i]:=z;
      end;
   For i:=1 to 5 do
   begin
      For j:=1 to 5 do
         Write(p[i,j],'  ');
      Writeln;
   end;
   Writeln;
   Readln;
end.
Сойдет?

Про блок-схему: мне не охота рисовать
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Старый 15.09.2015, 17:11   #3
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

полистайте этот (кликабельно) материал. Аккурат ваш случай.
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Старый 15.09.2015, 17:46   #4
TIGERMAX777
 
Регистрация: 15.09.2015
Сообщений: 6
По умолчанию

Цитата:
Сообщение от newerow1989 Посмотреть сообщение
На Паскале:
Код:
var p:array[1..5,1..5] of integer;
    i,j,z:integer;
begin
   Randomize;
   For i:=1 to 5 do
   begin
      For j:=1 to 5 do
      begin
         p[i,j]:=Random(10);
         Write(p[i,j],'  ');
      end;
      Writeln;
   end;
   Writeln;
   For i:=1 to 4 do
      For j:=1 to 5-i do
      begin
         z:=p[i,j];
         p[i,j]:=p[6-j,6-i];
         p[6-j,6-i]:=z;
      end;
   For i:=1 to 5 do
   begin
      For j:=1 to 5 do
         Write(p[i,j],'  ');
      Writeln;
   end;
   Writeln;
   Readln;
end.
Сойдет?

Про блок-схему: мне не охота рисовать
Спасибо большое, что отозвались и помогли, но мне нужно на С++.

Искал, но, к сожалению, не нашел(

Последний раз редактировалось Stilet; 15.09.2015 в 18:20.
TIGERMAX777 вне форума Ответить с цитированием
Старый 15.09.2015, 17:54   #5
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Пожалуйста! Опять мимо с выбором языка программирования!
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]

Последний раз редактировалось newerow1989; 15.09.2015 в 17:57.
newerow1989 вне форума Ответить с цитированием
Старый 15.09.2015, 18:28   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Тогда вот такой набросок:
Код:
int main(){
 int p[5][5],i,j,z;
 srand();
   for(i=1;i<5;i++){
    for(j=1;j<5;j++){ p[i][j]=rand()%10;printf("%5d",p[i][j]);}
    printf("\n");
   }

   printf("\n");
   for(i=1;i<5;i++){
    for(j=1;j<5;j++){ z=p[i][j];p[i][j]=p[5-j][5-i];p[5-j][5-i]=z;}
   }

   for(i=1;i<5;i++){
    for(j=1;j<5;j++) printf("%5d",p[i][j]);}
    printf("\n");
   }

 getchar();
}
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.09.2015, 22:12   #7
TIGERMAX777
 
Регистрация: 15.09.2015
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Тогда вот такой набросок:
Код:
int main(){
 int p[5][5],i,j,z;
 srand();
   for(i=1;i<5;i++){
    for(j=1;j<5;j++){ p[i][j]=rand()%10;printf("%5d",p[i][j]);}
    printf("\n");
   }

   printf("\n");
   for(i=1;i<5;i++){
    for(j=1;j<5;j++){ z=p[i][j];p[i][j]=p[5-j][5-i];p[5-j][5-i]=z;}
   }

   for(i=1;i<5;i++){
    for(j=1;j<5;j++) printf("%5d",p[i][j]);}
    printf("\n");
   }

 getchar();
}
Ошибочки выбивает.
Update: все исправил)
Вот только выдает такой результат
Она работает или нет?

Последний раз редактировалось TIGERMAX777; 15.09.2015 в 22:37.
TIGERMAX777 вне форума Ответить с цитированием
Старый 16.09.2015, 22:34   #8
anticlown111
Пользователь
 
Регистрация: 16.09.2015
Сообщений: 10
По умолчанию

Идея: Симметрию относительно побочной диагонали можно представить в виде композиции симметрии относительно вертикали, симметрии относительно главной диагонали и снова вертикальной симметрии. В программе предполагается ввод размера матрицы и самой матрицы из консоли, числа матрицы предполагаются вещественными.

Код:
#include <stdio.h>

void Main_diag_sym(double *a,int n);
void Vertical_sym(double *a,int n);

int main(void)
{
int i,j;

printf("Vvedite razmer kvadratnoy matrici:");
int n; scanf("%d",&n);

printf("Vvedite matricy:\n");
double a[n*n];
for(i=0;i<n;i++)
	for(j=0;j<n;j++)
		scanf("%lf",&a[i*n+j]);

Vertical_sym(a,n);
Main_diag_sym(a,n);
Vertical_sym(a,n);
	
for(i=0;i<n;i++){
	printf("\n");
	for(j=0;j<n;j++)
		printf("%.2lf ",a[i*n+j]);
	}
return 0;
}

void Main_diag_sym(double *a,int n)
{
	int i,j;
	double tmp;
	for(i=0;i<n;i++)
		for(j=i;j<n;j++){
			tmp=a[i*n+j];
			a[i*n+j]=a[j*n+i];
			a[j*n+i]=tmp;
		}	
return;
}

void Vertical_sym(double *a,int n)
{
	int i,j;
	double tmp;
	
	for(i=0;i<n;i++)
		for(j=0;j<=(n-1)/2;j++){
			tmp=a[i*n+j];
			a[i*n+j]=a[i*n+n-j-1];
			a[i*n+n-j-1]=tmp;		
		}
return;
}

Последний раз редактировалось anticlown111; 16.09.2015 в 22:36.
anticlown111 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
поменять элементы относительно побочной диагонали и вывести на экран(delphi) tane Помощь студентам 4 25.01.2014 00:45
В квадратной матрице заменить элементы главной и побочной диагонали единицами.Язык Си. East Undia Trading Помощь студентам 17 21.12.2013 20:56
Поменять местами K-ю строку и K-й столбец квадратной матрицы VoltZZZ Паскаль, Turbo Pascal, PascalABC.NET 2 14.03.2012 14:50
В целочисленной квадратной матрице наибольший элемент каждой строки поменять местами с элементом главной диагонали DesignGenius C# (си шарп) 0 18.10.2011 20:22
Найти отношения суммы элементов главной диагонали и суммы элементов побочной диагонали квадратной матрицы Elmander Помощь студентам 2 21.06.2007 07:15