Laboratornaya_rabota_1
.docxФГБОУ ВО
Уфимский государственный авиационный технический университет
Кафедра ТК
ОТЧЕТ
по лабораторной работе № 1
по дисциплине «Программирование»
Вариант № 13
Выполнил: студент гр. ИВТ-114
Балыбердин Н.А.
Проверил: доцент каф. ТК
Федорова Н.И.
Уфа 2017
Тема работы: Массивы.
Цель работы: Навык составления и отладки простейших программ на языке С++
Задачи работы:
написание программы на языке С++ с использованием различных типов функций.
тестирование работоспособности программы для различных исходных данных.
Вариант № 13
Задание: Формирование одномерного массива b[k] из двумерного a[i][j] по следующему принципу:
Выполнение задания:
Решение задачи:
Входные данные: a[i][j];
Выходные данные: b[k];
Схема алгоритма работы программы:
4
5
3
2
1
5
3
2
1
a[i]=new
int[n]
i=0; n; 1
j=0; n; 1
i=z+1; n-z-1; 1
b[k]=a[i][n-z-1]; k++;
i++
a[i][j]
k=0;
z=0; n; 1
b[k]
6
Конец
4
Текст программы:
#include<iostream>
#include<conio.h>
using namespace std;
void main()
{
setlocale(LC_ALL, "Russian");
int **a, *b, n, i, j, k, z;
cout << "Введите размер матрицы: ";
cin >> n;
cout << endl;
cout << "Введите элементы: ";
cout << endl;
b = new int[n*n];
a = new int*[n];
for (i = 0; i<n; i++)
a[i] = new int[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;
cout << "Исходная матрица:\n";
for (i = 0; i<n; i++)
{
for (j = 0; j<n; j++)
cout << a[i][j] << " ";
cout << endl;
}
cout << endl;
cout << "Вывод результатов: \n";
k=0;
for (z = 0; z < n ; z++)
{
for (j = n-z-1; j >= z; j--)
{
b[k] = a[n-z-1][j];
k++;
}
for (i = n - z - 2; i > z; i--)
{
b[k] = a[i][z];
k++;
}
for (j = z; j < n-z; j++)
{
b[k] = a[z][j];
k++;
}
for (i = z+1; i < n-z-1; i++)
{
b[k] = a[i][n-z-1];
k++;
}
}
for (k=0;k<n*n;k++)
cout<<b[k]<<" ";
cout << endl;
getch();
}
Пример работы программы:
Вывод: В ходе выполнения работы были получены навыки работы с функциями и динамическими массивами на языке С++.