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

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

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

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

Кафедра АСУ

ОТЧЕТ по лабораторной работе №5

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

вариант №__

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

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

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

Уфа 2007.

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

Цель работы:

Вариант №__.

Задание:

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

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

Решение:

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

9

10

11

12

13

8

21

22

23

14

7

20

25

24

15

6

19

18

17

16

5

4

3

2

1


Блок-схема

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

#include<iostream.h>

#include<math.h>

#include<conio.h>

void main()

{

const n=4;

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

int i,j,k,l,m;

clrscr(); m=n;

cout<<"\n\n ----vvedite matricy----\n\n";

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

{

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

{

cout<<" a["<<i+1<<","<<j+1<<"]=";

cin>>a[i][j];

}

}

cout<<endl<<endl<<" ---orginal matricy---"<<endl;

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

{cout<<endl<<" ";

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

cout<<a[i][j]<<" ";

}

k=1;

for(l=n-1;l>=(n/2);l--)

{ i=l;

for(j=l;j>m-l-1;j--)

{

b[k]=a[i][j];

k++;

}

j=m-l-1;

for(i=l;i>m-l-1;i--)

{

b[k]=a[i][j];

k++;

}

i=m-l-1;

for(j=m-l-1;j<l;j++)

{

b[k]=a[i][j];

k++;

}

j=l;

for(i=m-l-1;i<l;i++)

{

b[k]=a[i][j];

k++;

}

}

if((m%2)!=0)

b[k]=a[n/2][n/2];

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

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

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

getch();

}Проверка:

Матрица: 7 8 9 10

6 15 16 11

5 14 13 12

4 3 2 1

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

Матрица: 13 14 15 16 17 18 19

12 33 34 35 36 37 20

11 32 45 46 47 38 21

10 31 44 49 48 39 22

9 30 43 42 41 40 23

8 29 28 27 26 25 24

7 6 5 4 3 2 1

Получаем: 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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49.

5