Лабораторная работа 13 Программирование задач с двумерными массивами Пятибратов А. Р. Студент 1 курса 380302пмао21
Скачать 0.97 Mb.
|
ЮРГПУ (НПИ) Лабораторная работа №13 Программирование задач с двумерными массивами Выполнил: Пятибратов А.Р. Студент 1 курса; 380302-ПМа-о21 Проверил: доц., к.т.н. Косиченко М.Ю. Содержание: 1.1. Постановка задачи 1.2. Формулировки решаемых задач 1.3. Описание выполнения заданий 1,2,3,4,5 1.1. Постановка задачи: 1. Изучить следующие вопросы применительно к языку программирования Pascal в системе программирования PascalABC.NET: понятия и используемую в двумерных массивах терминологию; синтаксис описания двумерного массива; синтаксис доступа к элементу двумерного массива; типовые программные фрагменты вычисления отдельных характеристик двумерных массивов; типовые программные фрагменты вычисления в двумерных массивах отдельных характеристик по строкам и столбцам; типовые программные фрагменты операций, выполняемых с двумерными массивами; особенности программирования задач с двумерными массивами; особенности составления блок-схем для решения задач с двумерными массивами. 2. Выполнить следующие задания: 1.2. Формулировки решаемых задач: Задача 1. В регионе в течение m месяцев фиксируют среднюю температуру в n населенных пунктах ( i =1, 2,...,m; j =1, 2,...,n ). Определить населенные пункты с максимальной и минимальной температурой за указанный период, а также количество значений средней температуры, которые не лежат в диапазоне от -10+0+1до 15+0+1. Указание. Преобразовать условие задачи следующим образом. Рас- смотреть двумерный массив А, содержащий m строк и n столбцов. Найти в массиве максимальное значение max, минимальное значение min и количество k элементов массива, значения которых лежат вне диапазона от -10+1+1до 15+1+1. Все элементы массива в задаче считать действительными числами. Вывести результаты, включающие 1+10 знаков, из них 1+2 цифр после запятой (для дробных чисел). Количество строк m, количество столбцов n и массив А рассматривать как исходные данные, заданные следующими значениями: m =3; n= 4; А = Задача 2. В двумерном массиве A из m строк и n столбцов найти сумму всех элементов и произведение элементов, меньших 0+1. Количество строк m, количество столбцов n и массив A рассматривать как исходные данные, заданные следующими значениями: т = 3; n = 4; А = Задача 3. В двумерном массиве A из m строк и n столбцов найти максимальное значение в каждой строке и минимальное значение в каждом столбце. Количество строк m, количество столбцов n и массив A рассматривать как исходные данные. Массив А определяется условием задачи 2. Задача 4. В двумерном массиве A из m строк и n столбцов уменьшить положительные элементы на 30 и сформировать массив B увеличением элементов массива A на 40. Количество строк m, количество столбцов n и массив A рассматривать как исходные данные. Массив А берется из задачи 2. Задача 5. В двумерном массиве A из n строк и n столбцов найти сумму всех элементов и заменить на нули элементы на главной диагонали. Количество строк m, количество столбцов n и массив A рассматривать как исходные данные, заданные следующим образом: n = 4; А = 1.3. Описание выполнения заданий: Задача 1: Program Lab13_1; Var A:array[1..10,1..15] of real; max,min:real; i,j,m,n,k:integer; Begin writeln('Введи m,n'); read(m,n); writeln('Введи массив A'); for i:=1 to m do for j:=1 to n do read(A[i,j]); max:=A[1,1]; min:=A[1,1]; k:=0; for i:=1 to m do for j:=1 to n do begin if A[i,j]>max then max:=A[i,j]; if A[i,j] then min:=A[i,j]; if (A[i,j]<-8) or (A[i,j]>26) then k:=k+1; end; writeln('max= ',max:11:3); writeln('min=',min:11:3); writeln('k= ',k:11); End. Задача 2. Program Lab13_2; Var A:array[1..10,1..15] of real; s,min:real; i,j,m,n:integer; Begin writeln('Введи m,n'); read(m,n); writeln('Введи массив A'); for i:=1 to m do for j:=1 to n do read(A[i,j]); s:=0; for i:=1 to m do for j:=1 to n do s:=s+A[i,j]; min:=1E10; for i:=1 to m do for j:=1 to n do if (A[i,j] and (A[i,j]>2) then min:=A[i,j]; writeln('s=',s:11:3); writeln('min=',min:11:3); End. Задача 3. Program Lab13_3; Var A:array[1..10,1..15] of real; p,sr:array[1..100] of real; i,j,m,n:integer; s: real; Begin writeln('Введи m,n'); read(m,n); writeln('Введи массив A'); for i:=1 to m do for j:=1 to n do read(A[i,j]); for i:=1 to m do begin p[i]:=1; for j:=1 to n do p[i]:=p[i]*A[i,j]; end; for j:=1 to n do begin s:=0; for i:=1 to m do s:=s+A[i,j]; sr[j]:=s/m; end; writeln('Массив p'); for i:=1 to m do writeln(p[i]:11:3); writeln('Массив sr'); for j:=1 to n do writeln(sr[j]:11:3); End. Задача 4. Program Lab13_4; Var A:array[1..10,1..15] of real; i,j,m,n:integer; sum:real; Begin writeln('Введи m,n'); read(m,n); writeln('Введи массив A'); for i:=1 to m do for j:=1 to n do read(A[i,j]); for i:=1 to m do for j:=1 to n do if A[i,j]>0 then A[i,j]:=A[i,j]+50; sum:=0; for i:=1 to n do begin sum:=sum+A[m,i]; end; writeln('Массив A'); for i:=1 to m do begin for j:=1 to n do write(A[i,j]:11:3); writeln; end; writeln('sum=',sum:11:3); End. Задача 5. Program Lab13_5; Var A,B:array[1..10,1..15] of real; i,j,n,k:integer; sr,s: real; begin writeln('Введи n, n'); read(n,n); writeln('Введи массив A'); for i:=1 to n do for j:=1 to n do read(A[i,j]); s:=0; k:=0; for i:=1 to n do for j:=1 to n do if i begin k:=k+1; s:=s+A[i,j]; sr:=s/k; end; Writeln('sr=',sr:11:3); for i:=1 to n do for j:=1 to n do B[i,j]:=A[i,j]-20; writeln('Массив B'); for i:=1 to n do begin for j:=1 to n do write(B[i,j]:11:3); writeln; end; End. Выполнил: Пятибратов Артем Романович студент 1 курса; 380302-ПМа о21 Проверил: доц., к.т.н. Косиченко М.Ю. |