Скачиваний:
10
Добавлен:
25.12.2018
Размер:
219.14 Кб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

      1. Федеральное государственное автономное образовательное учреждение высшего образования

«Санкт-Петербургский государственный университет аэрокосмического приборостроения»

КАФЕДРА № 2

Преподаватель

доцент, к.т.н. Куртяник Д.В.

Отчёт

по лабораторной работе №4

по дисциплине Информатика

на тему: « Статические двумерные массивы»

Работу выполнил

студент гр. 4616 Павлов А.В.

Санкт-Петербург

Цель лабораторной работы: изучение структурной организации массивов и способов доступа к их элементам; совершенствование навыков процедурного программирования на языке C/С++ при решении задач обработки статических двумерных массивов.

Задание на программирование: используя технологию процедурного программирования, разработать программу обработки двумерных статических массивов (матриц) в соответствии с индивидуальным заданием.

Порядок выполнения работы:

1) Получить у преподавателя индивидуальное задание и выполнить постановку задачи: сформулировать условие, определить входные и выходные данные, их ограничения.

2) Разработать математическую модель: описать с помощью формул и рисунков структуру массивов и процесс их преобразования.

3) Построить схему алгоритма решения задачи.

4) Составить программу на языке C/C++.

5) Входные данные на этапах тестирования и демонстрации работы преподавателю должны задаваться либо с использованием специально подобранных арифметических формул, либо вводиться с клавиатуры по запросу. Датчики псевдослучайных чисел использовать запрещается.

Выходные данные должны выводиться на экран с пояснениями.

6) Проверить и продемонстрировать преподавателю работу программы на полном наборе тестов, в том числе с ошибочными входными данными. Входные и выходные массивы должны выводиться в одном и том же формате.

7) Использовать стандартные потоковые объекты ввода/вывода cin и cout.

8) Оформить отчет о лабораторной работе в составе: постановка задачи, математическая модель, схема алгоритма решения, текст программы, контрольные примеры.

1-3)

Вариант 10

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

Задается массив 10х10. Ищется наименьшие элемент в массиве когда находит записывает номер строки в переменную у. Меняет строку местами под номером переменной у с последней строкой

Текст программы.

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

наименьший по абсолютной величене элемент матрицы*/

#include <iostream>

#include <math.h>

using namespace std;

const int raz = 4 ; //максимальный размер для каждого измерения массива

typedef int telem ; //определение типа элементов массива

typedef telem tmas[raz][raz] ; //определение типа массива

void inputmas(tmas a);

int main(){

setlocale(LC_ALL,"Russian") ;

tmas a;

int var,x, //переменная содержащая наименьший абсолютный элемент массива

y=0; //переменная содержащая строку наименьшего абсолютного элемента массива

cout<<"в заданной матрице поменять меставми последнюю строку со строкой,\nсодержащей наименьший по абсолютной величене элемент (по модулю) матрицы";

//Выбор

for(;;){

cout<<"\n\nВид действия:\n1 - вычисления предела произведения\n2 - завершения задачи\nвведите вид действия -> ";

cin>>var;

switch(var){

case 1:

//инечиализация массива

inputmas(a);

x=fabs(a[0][0]);

//нахождение наименьшего абсолютного значения в массиве

for(int i=1;i<raz;i++){

for(int q=0;q<raz;q++){

if(x>fabs(a[i][q])){

x=fabs(a[i][q]);y=i;}

}}

//перестановка местами элементов массива (наименьшего абсолютного и последнего элемента)

for(int i=0;i<raz;i++){

x=a[raz-1][i];

a[raz-1][i]=a[y][i];

a[y][i]=x;

}

//ввывод конечного массива

cout<<"\nконечный массив:\n";

for(int i=0;i<raz;i++){

for(int q=0;q<raz;q++){

cout<<a[i][q]<<" ";}

cout<<endl;}

break;

case 2:return 0;

}//switch

}//for

}

//инициализация массива

void inputmas(tmas a){

cout<<"введите в одной строке элементы массива "<<raz<<"x"<<raz<<", состоящего из целых чисел,\nи нажмите <ENTER>\n";

for(int i=0;i<raz;i++){

for(int q=0;q<raz;q++){

cin>>a[i][q];

}}

//ввывод изначального массива

cout<<"\nизначальный массив:\n";

for(int i=0;i<raz;i++){

for(int q=0;q<raz;q++){

cout<<a[i][q]<<" ";}

cout<<endl;}

}

Примеры.

Соседние файлы в предмете Основы программирования и алгоритмизации