ОП_ЛР8
.doc
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
-
Федеральное государственное автономное образовательное учреждение высшего образования
«Санкт-Петербургский государственный университет аэрокосмического приборостроения»
КАФЕДРА № 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;}
}
Примеры.