
Дьяченко В.Б. ЛП_И
.pdf30
ВАРИАНТЫ ЗАДАНИЙ
№1. Дан двумерный массив В(m,n). Найти среднее значение положительных элементов. Результаты вывести на экран.
№2. Дан двумерный массив С(m,m). Найти сумму диагональных элементов. Результаты вывести на экран.
№3. Найти сумму элементов последней строки для матрицы В(m,m). Результаты вывести на экран.
№4. В заданном двумерном массиве В(m,n) найти количество элементов в диапазоне от –10 до 45. Результаты вывести на экран.
№5. Дан двумерный массив Р(n,m). Найти среднее значение элементов этого массива. Результаты вывести на экран.
№6. Дан двумерный массив К(m,m). Найти минимальный элемент и произведение положительных элементов. Результаты вывести на экран.
№7. В заданном двумерном массиве С(m,n) найти количество элементов в диапазоне от –5 до 72. Результаты вывести на экран.
№8. В заданном двумерном массиве В(m,m) найти произведение отрицательных элементов выше главной диагонали. Результаты вывести на экран.
№9. В заданном двумерном массиве В(m,n) найти произведение элементов третьего столбца в диапазоне от –4 до 50. Результаты вывести на экран.
№10. Дан двумерный массив А(m,n). Найти минимальный элемент и его порядковый номер (номер строки и номер столбца). Результаты вывести на экран.
№11. Дан двумерный массив Z(n,м). Найти максимальный элемент и его порядковый номер (номер строки и номер столбца). Результаты вывести на экран.
№12. Дан двумерный массив С(m,n). Найти произведение и сумму всех элементов. Результаты вывести на экран.
№13. Дан двумерный массив А(n,n). Найти количество его отрицательных элементов Результаты вывести на экран.
№14. Дан двумерный массив S(m,n). Найти его минимальный элемент. Результаты вывести на экран.
№15. Дан двумерный массив А(m,m). Найти минимальный элемент и количество отрицательных элементов. Результаты вывести на экран.
№16. Дан двумерный массив О(m,m). Найти минимальный элемент и количество положительных элементов. Результаты вывести на экран.
№17. Дан двумерный массив А(m,m). Найти максимальный элемент и сумму отрицательных элементов. Результаты вывести на экран.
№18. Найти произведение и сумму элементов, расположенных на главной диагонали для матрицы В(m,m). Результаты вывести на экран.
№19. Найти сумму и количество положительных элементов, лежащих на главной диагонали для массива А(m,m). Результаты вывести на экран.
№20. Дан двумерный массив D(n,m). Найти его максимальный элемент. Результаты вывести на экран.
№21. Найти произведение элементов последнего столбца и сумму элементов в диапазоне от –40 до –15 для матрицы A(m,m). Результаты вывести на экран.
31
ЛАБОРАТОРНАЯ РАБОТА № 8
ОБРАБОТКА ДВУМЕРНЫХ МАССИВОВ
(Характерные приемы программирования)
Ц е л ь р а б о т ы . Овладение практическими навыками работы с массивами, особенностями ввода – вывода и обработки их элементов, организация программ циклической структуры и использования характерных приёмов программирования.
З а д а н и е к р а б о т е
1.Разработать алгоритм решения в соответствии с заданием.
2.Составить блок-схему решения задачи и написать программу на алгоритмическом языке ПАСКАЛЬ.
3.Набрать программу.
4.Выполнить программу на ПК.
5.Проверить правильность работы программы на тестовом варианте исходных данных, вычислив по заданию результат.
6.Записать результат работы программы.
Пример выполнения работы
1.Алгоритм решения отображаем на блок-схеме.
2.Составляем программу на языке ПАСКАЛЬ.
3.Выполняем тестовый вариант, вычисление по заданным условиям обработки одномерного массива.
4.Набираем программу, проверяем и при наличии ошибок исправляем, используя порядок работы в Pascal АВС.
5.Выполняем программу на ПК, сравниваем результат с тестовым вариантом, если результаты не совпадают, вносим изменения в программу и вновь выполняем программу.
6.Записываем результаты работы программы.
Задание
В двумерном массиве a(m,n) определить сумму положительных элементов по столбцам, образовать новый массив b(m,n) , умножая отрицательные элементы исходного массива на сумму третьего столбца. Результаты вывести на экран.
Входные данные:
a – имя двумерного массива;
m – число строк; n – число столбцов;
i – порядковый номер элемента в строке; j – порядковый номер элемента в столбце.
Выходные данные:
S – имя одномерного массива сумм положительных элементов (a[i] > 0), по столбцам; b – имя нового двумерного массива.

32
Блок - схема
НАЧАЛО
Ввод
m,n
i=1
j=1
Ввод а[i,j]
j=j+1
да
j<=n
нет
i=i+1
да
i<=m
нет
1
1
j=1
S[j]=0
i=1
нет
a[i,j]>0
да
s[j]:=s[j]
+
a[i,j]
i=i+1
да i<=m
нет
Вывод
s[j]
j=j+1
да
j<=n
нет
2

33
Продолжение блок-схемы
2
i=1
j=1
|
|
да |
|
|
|
нет |
|||
|
a[i,j]<0 |
||||||||
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
b[i,j]= |
|
|
|
|
|
|
b[i,j]= |
||
a[i,j]*s[3] |
|
|
|
|
|
|
a[i,j] |
||
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
j=j+1
да
j<=n
нет
i=i+1
да
i<=m
нет
3

34
Продолжение блок-схемы
да
да
3
i=1
j=1
Вывод b [i,j]
j=j+1
j<=n
нет
«Перевод строки»
i=i+1
i<=m
нет
КОНЕЦ
35
Программа на языке Паскаль
program z8; var
a,b:array[1..10,1..10] of real; i,j,n,m:integer;
s, p:array[1..10] of real;
Begin
writeln(‘Ввод размера массива’); readln(m,n);
writeln(‘Ввод элементов массива’);
for i:=1 to m do for j:=1 to n do read(a[i,j]);
{S - по столбцам}
writeln(‘ Суммы по столбцам: ‘);
for j:=1 to n do begin s[j]:=0;
for i:=1 to m do
if a[i,j]>0 then s[j]:=s[j] + a[i,j]; writeln(‘S[‘, j , ‘]= ‘, s[j]:8:2); end;
writeln(‘ Новый массив В: ‘);
for i:=1 to m do for j:=1 to n do if a[i,j]<0 then
b[i,j]:=a[i,j]) * s[3] else b[i,j]:=a[i,j];
for i:=1 to m do { Вывод массива в виде матрицы}
Begin
for j:=1 to n do
writeln(‘B[‘, i , ‘,’, j , ‘]= ‘, b[i,j]:8:2); writeln;
end;
End.
36
Тестовый вариант
Исходные данные:
Размеры массива (m,n) 3, 4
Элементы двумерного массива:
5 |
-2 |
-5 |
1 |
1 |
6 |
3 |
2 |
10 2 |
7 |
3 |
Вычисляем суммы по столбцам: S[1] = 16 , S[2] = 8 , S[3] = 10, S[4] = 6
Результат работы программы
Ввод исходных данных
Ввод размера массива m, n 3 4
Ввод элементов массива А
5 |
-2 |
-5 |
1 |
1 |
6 |
3 |
2 |
10 2 |
7 |
3 |
Вид результата на экране:
Суммы по столбцам:
S[1] = 16.00
S[2] = 8.00
S[3] = 10.00
S[4] = 6.00
Новый массив В, сформированный в результате отработки программы:
B[1,1]= 5.00 |
B[1,2]= -20.00 |
B[1,3]= -50.00 |
B[1,4]= 1.00 |
|
B[2,1]= |
1.00 |
B[2,2]= 6.00 |
B[2,3]= 3.00 |
B[2,4]= 2.00 |
B[3,1]= |
10.00 |
B[3,2]= 2.00 |
B[3,3]= 7.00 |
B[3,4]= 3.00 |
37
ВАРИАНТЫ ЗАДАНИЙ
№1. Дан двумерный массив C(m,m). Найти произведение диагональных элементов и сумму элементов выше главной диагонали. Получить новый массив D(m,m), уменьшая положительные элементы массива C(m,m) на сумму. Результаты вывести на экран.
№2. В заданном двумерном массиве C(m,n) найти минимальный элемент. Образовать новый массив D(m,n), делением минимального элемента на каждый элемент массива C(m,n). Результаты вывести на экран.
№3. В заданном двумерном массиве A(m,n) найти максимальный элемент. Образовать новый массив B(m,n), делением максимального элемента на каждый элемент массива A(m,n). Результаты вывести на экран.
№4. Дан двумерный массив C(m,m). Найти сумму диагональных элементов. Подучить новый массив D(m,m), умножая положительные элементы массива C(m,m) на сумму. Результаты вывести на экран.
№5. В заданном двумерном массиве B(m,n) найти количество элементов в диапазоне от –10 до 45, выше главной диагонали. Образовать новый массив A(m,n), умножением каждого элемента на найденное количество. Результаты вывести на экран.
№6. В заданном двумерном массиве C(m,m) найти количество элементов в диапазоне от –5 до 72, ниже главной диагонали. Образовать новый массив B(m,m), умножением каждого элемента на найденное количество. Результаты вывести на экран.
№7. В заданном двумерном массиве B(n,n) найти произведение отрицательных элементов выше главной диагонали. Образовать новый массив A(n,n), увеличивая каждый элемент на найденное произведение. Результаты вывести на экран.
№8. В заданном двумерном массиве B(m,n) найти произведение элементов третьего столбца в диапазоне от –4 до 50. Образовать новый массив T(m,n), заменой отрицательных элементов заданного массива В на найденное произведение. Результаты вывести на экран.
№9. Найти сумму элементов в двумерном массиве B(m,m) в диапазоне от – 40 до –15 ниже главной диагонали. Образовать новый массив A(m,m), заменой положительных элементов заданного массива B на найденную сумму, а отрицательных − на нули. Результаты вывести на экран.
№10. Найти произведение элементов последнего столбца для матрицы A(m,n). Образовать новый массив B(m,n), делением каждого элемента на найденное произведение. Результаты вывести на экран.
38
№11. Найти сумму элементов последней строки для матрицы B(m,m). Образовать новый массив A(m,m), умножением отрицательных элементов на найденную сумму. Результаты вывести на экран.
№12. Найти сумму и количество положительных элементов, лежащих на главной диагонали для массива A(n,n). Образовать новый массив B(n,n), делением каждого элемента исходного массива на найденную сумму. Результаты вывести на экран.
№13. Найти произведение и сумму элементов, расположенных на главной диагонали для матрицы B(m,m). Заменить все отрицательные элементы исходного массива на найденную сумму. Результаты вывести на экран.
№14. В заданном двумерном массиве C(m,n) найти сумму элементов пятого столбца. Образовать новый массив B(m,n), увеличивая каждый элемент исходного массива на найденную сумму. В новом массиве определить количество элементов, значения которых не меньше 3 и не больше 9. Результаты вывести на экран.
№15. В заданном двумерном массиве Z(m,m) найти количество элементов в диапазоне от –2 до 52, выше главной диагонали. Образовать новый массив D(m,m), уменьшением каждого элемента на найденное количество. Результаты вывести на экран.
№16. В заданном двумерном массиве A(m,n) найти сумму положительных элементов последней строки. Образовать новый массив V(m,n), заменой отрицательных элементов на найденную сумму. Результаты вывести на экран.
№17. В заданном двумерном массиве C(n,n) найти произведение элементов в диапазоне от –7 до 85, выше главной диагонали. Образовать новый массив B(n,n), заменой нулевых элементов на квадрат найденного произведения. Результаты вывести на экран.
№18. В заданном двумерном массиве B(m,n) найти минимальный элемент. Образовать новый массив D(m,n), увеличением минимального элемента на положительные элементы массива C(m,n). Результаты вывести на экран.
39
ПРИЛОЖЕНИЕ А
КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ
КОМПЬЮТЕР − это электронный прибор для автоматической обработки информации.
ПЕРСОНАЛЬНЫЙ КОМПЬЮТЕР (ПК) − универсальная система в составе которой имеются следующие узлы и блоки:
СИСТЕМНЫЙ БЛОК МОНИТОР КЛАВИАТУРА МЫШЬ.
Как правило, ПК работает под управлением ОПЕРАЦИОННОЙ СИСТЕМЫ, например WINDOWS.
Операционная система записывается поставщиком ПК на жестком диске (винчестере) и при включении ПК загружается автоматически.
Необходимая информация записывается пользователем в файлы.
ФАЙЛ − это поименованная область данных на диске или другом машинном носителе.
Файлы размещаются в папках. В именах файла (каталога) используется любое сочетание символов (русских, латинских, пробелов)
−длинные имена до 255 знаков вместе с пробелами и расширением
−короткие имена(8 символов и 3 знака расширение)
Например, (ИМЯ ФАЙЛА)
IM114FI.PAS
РАСШИРЕНИЕ PAS − это программы созданные на алгоритмическом языке ПАСКАЛЬ.
КОРНЕВОЙ КАТАЛОГ не имеет имени, обозначается символом « \ » -
ОБРАТНОЙ КОСОЙ ЧЕРТОЙ
Когда текущим является корневой каталог, системное приглашение вы-
глядит таким образом: С:\>
Для местонахождения файлов в структуре каталогов (папок) относительно КОРНЕВОГО КАТАЛОГА используются пути.
СТРУКТУРА ПУТИ
C:\Мои документы\Школина\ С-1-1_Петров АВ\PROG_1.PAS ,
где С – имя диска;
Мои документы, Школина, С-1-1_Петров АВ – папки;
PROG_1.PAS – имя файла.