Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Программирование на C / C++ / Лабораторные работы2 / УГАТУ АСОИ-136 пр-ние на ЯВУ лаб.№5 вар.№25_Рустам

.doc
Скачиваний:
22
Добавлен:
02.05.2014
Размер:
335.36 Кб
Скачать

Уфимский государственный авиационный технический университет

Кафедра АСУ

Отчёт по лабораторной работе №5

по дисциплине ”Программирование на ЯВУ”.

вариант №25.

Выполнил: студент группы АСОИ-136

Хайдаршин Р.Р. Проверил: доцент кафедры АПрИС

Фёдорова Н.И.

Уфа 2007.

Тема: Многомерные массивы.

Цель работы:

Вариант №25.

Задание:

Задана матрица {aij} размерности N*N. Из ее элементов сформировать одномерный массив

{bk} k=1, N2 в следующем порядке:

Решение:

Нужно создать такую программу, которая превращала данную матрицу в одномерный массив нужной последовательности.

Блок-схема

Текст программы на С++

#include<iostream.h>

#include<conio.h>

#include<math.h>

void main()

{const n=3;

double a[n][n],b[n*n];

int k,i,j,t,x;

clrscr();

cout<<"VVedite matricy\n";

for(i=0;i<n;i++)

{cout<<"a["<<i+1<<"]=";

for(j=0;j<n;j++)

cin>>a[i][j];

}

cout<<endl;

k=1;

for(t=1;t<=n;t=t+2)

{

for(i=0;i<t;i++)

{

b[k]=a[i][i+n-t];

k++;

}

if(i==n)break;

for(i=t;i>=0;i--)

{

b[k]=a[i][i+n-t-1];

k++;

}

}

x=2;

if(n%x==0)

for(t=n-1;t>0;t=t-2)

{ for(i=n-t;i<n;i++)

{

b[k]=a[i][i-n+t];

k++;

}

for(i=n-1;i>n-t;i--)

{

b[k]=a[i][i-n+t-1];

k++;

}

}

else

for(t=n-1;t>=0;t=t-2)

{

for(i=n-1;i>=n-t;i--)

{

b[k]=a[i][i-n+t];

k++;

}

for(i=n-t+1;i<n;i++)

{

b[k]=a[i][i-n+t-1];

k++;

}

}

for(k=1;k<=n*n;k++)

cout<<b[k]<<" ";

getch();

}

Проверка:

Матрица: 10 4 3 1

11 9 5 2

15 12 8 6

16 14 13 7

Получаем: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16;

Матрица: 11 10 4 3 1

19 12 9 5 2

20 12 13 8 6

24 21 17 14 7

25 23 22 16 15

Получаем: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25.

5