Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УМК_ОАиП.doc
Скачиваний:
6
Добавлен:
01.04.2025
Размер:
5.06 Mб
Скачать

Лабораторная работа № 37.

Тема: Разработка алгоритмов и программ с использованием динамических массивов.

Цель работы: Научиться разрабатывать алгоритмы и программы с использованием динамических массивов.

Средства: ПЭВМ, среда разработки Pascal.

Актуализация опорных знаний

1. Статическое и динамическое распределение памяти.

2. Понятие указателя.

3. Описание и обработка динамических массивов.

Примеры выполнения заданий

Задание 1: Разработать алгоритм и программу решения задачи, в которой необходимо вычислить сумму неотрицательных чисел и подсчитать количество нулевых элементов в динамическом одномерном массиве B.

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

Program L15_1;

Uses Crt;

Type

mas=array[1..20] of real;

Var

b:^mas;

n,i,k:integer;

s:extended;

Begin

clrscr;

new(b);

write(‘Введите размерность массива N’);

readln(n);

for i:=1 to n do

begin

write(‘Введите элемент массива b[’,i,’]’);

readln(b^[i]);

end;

s:=0; k:=0;

for i:=1 to n do

begin

if b^[i]>0 then s:=s+b^[i];

if b^[i]=0 then k:=k+1;

end;

dispose(b);

writeln(‘S= ’,sr8:4,’ k=’,k);

End.

Задание 2: Разработать алгоритм и программу решения задачи, в которой необходимо подсчитать количество положительных элементов массива, лежащих выше главной диагонали в двумерном динамическом массиве A(N,N).

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

Program L15_2;

Uses Crt;

Type

mas=array[1..20] of real;

mas2=array[1..20] of ^mas;

Var

a:^mas2;

i,j,n,k:integer;

Begin

clrscr;

write(‘Введите размерность массива N’);

readln(n);

new(a);

for i:=1 to n do

new(a^[i]);

for i:=1 to n do

for j:=1 to n do

begin

write(‘Введите элемент массива a[’,i,’ ’,j,’]’);

readln(a^[i]^[j]);

end;

k:=0;

for i:=1 to n do

for j:=1 to n do

if (j>i) and (a^[i]^[j]>0) then k:=k+1;

write(‘k= ’,k);

for i:=1 to n do

dispose(a^[i]);

dispose(a);

End.

Задания

1. Разработать алгоритмы и программы решения задач:

a) найти среднее арифметическое элементов каждого из столбцов двумерного динамического массива A[N,N], состоящего из элементов целого типа.

b) заменить нулями все элементы, расположенные на побочной диагонали двумерного динамического массива A[N,N], состоящего из элементов целого типа.

2. Разработать алгоритмы и программы решения задач:

a) найти среднее арифметическое из всех отрицательных элементов двумерного динамического массива A[N,N], состоящего из элементов целого типа.

b) заменить нулями все элементы, расположенные на главной диагонали и ниже ее двумерного динамического массива A[N,N], состоящего из элементов целого типа.

3. Разработать алгоритмы и программы решения задач:

a) найти сумму и произведение всех положительных элементов двумерного динамического массива A[N,N], состоящего из элементов целого типа.

b) заменить нулями все элементы, расположенные на главной диагонали и выше ее двумерного динамического массива A[N,N], состоящего из элементов целого типа.

4. Разработать алгоритмы и программы решения задач:

a) найти сумму и произведение всех отрицательных элементов двумерного динамического массива A[N,N], состоящего из элементов целого типа.

b) заменить нулями все элементы, расположенные на побочной диагонали и выше ее двумерного динамического массива A[N,N], состоящего из элементов целого типа.

5. Разработать алгоритмы и программы решения задач:

a) найти сумму всех элементов двумерного динамического массива A[N,N], состоящего из элементов вещественного типа и заменить ею элементы главной диагонали.

b) заменить нулями все элементы, расположенные на побочной диагонали и ниже ее двумерного динамического массива A[N,N], состоящего из элементов целого типа.

6. Разработать алгоритмы и программы решения задач:

a) найти произведение всех положительных элементов двумерного динамического массива A[N,N], состоящего из элементов целого типа и заменить им элементы главной диагонали.

b) найти сумму всех элементов, расположенных на побочной диагонали и выше ее двумерного динамического массива A[N,N], состоящего из элементов целого типа.

7. Разработать алгоритмы и программы решения задач:

a) найти сумму наименьших элементов каждой строки двумерного динамического массива A[N,N], состоящего из элементов целого типа.

b) найти сумму всех элементов, расположенных на побочной диагонали и ниже ее двумерного динамического массива A[N,N], состоящего из элементов целого типа.

8. Разработать алгоритмы и программы решения задач:

a) найти количество отрицательных элементов в каждой строке двумерного динамического массива A[N,N], состоящего из элементов целого типа.

b) найти сумму всех элементов, расположенных на главной диагонали и выше ее матрицы двумерного динамического массива A[N,N], состоящего из элементов целого типа.

9. Разработать алгоритмы и программы решения задач:

a) получить новый двумерный динамический массив путем деления всех элементов двумерного динамического массива A[N,N], состоящего из элементов вещественного типа не равных нулю, на его наибольший по модулю элемент.

b) найти сумму всех элементов, расположенных на главной диагонали и ниже ее двумерного динамического массива A[N,N], состоящего из элементов целого типа.

10. Разработать алгоритмы и программы решения задач:

a) найти количество отрицательных элементов в каждом столбце двумерного динамического массива A[N,N], состоящего из элементов целого типа.

b) найти произведение всех элементов, расположенных на побочной диагонали и выше ее двумерного динамического массива A[N,N], состоящего из элементов целого типа.

11. Разработать алгоритмы и программы решения задач:

a) найти сумму элементов столбца, в котором расположен наименьший элемент двумерного динамического массива A[N,N], состоящего из элементов целого типа.

b) найти произведение всех элементов, расположенных на побочной диагонали и ниже ее двумерного динамического массива A[N,N], состоящего из элементов целого типа

12. Разработать алгоритмы и программы решения задач:

a) получить двумерный динамический массив путем умножения всех элементов двумерного динамического массива A[N,N], состоящего из элементов целого типа, на его наибольший по модулю элемент.

b) найти сумму элементов строки, в которой расположен наименьший элемент в двумерного динамического массива A[N,N], состоящего из элементов целого типа.

13. Разработать алгоритмы и программы решения задач:

a) заменить нулями все элементы, расположенные на главной диагонали двумерного динамического массива A[N,N], состоящего из элементов целого типа.

b) найти произведение всех элементов, расположенных на главной диагонали и ниже ее двумерного динамического массива A[N,N], состоящего из элементов целого типа

14. Разработать алгоритмы и программы решения задач:

a) сформировать одномерный динамический массив из суммы элементов строк двумерного динамического массива A[N,N], состоящего из элементов целого типа.

b) найти произведение всех элементов, расположенных на главной диагонали и выше ее двумерного динамического массива A[N,N], состоящего из элементов целого типа

15. Разработать алгоритмы и программы решения задач:

a) сформировать одномерный динамический массив из разностей наибольших и наименьших значений элементов строк двумерного динамического массива A[N,N], состоящего из элементов целого типа.

b) найти сумму всех элементов, расположенных ниже побочной диагонали двумерного динамического массива A[N,N], состоящего из элементов целого типа.

16. Разработать алгоритмы и программы решения задач:

a) найти среднее арифметическое элементов каждой строки двумерного динамического массива A[N,N], состоящего из элементов целого типа.

b) найти сумму всех элементов, расположенных ниже главной диагонали двумерного динамического массива A[N,N], состоящего из элементов целого типа .