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

7. Лабораторные задания и методические указания по их выполнению

Написать программу работы с массивом чисел.

Варианты заданий приведены в таблице 7.1.

В программе использовать:

- подпрограммы-процедуры (Procedure) для оформления решения отдельных подзадач (например, поиска минимального элемента или вывода элементов на экран);

- дополнительные процедуры и функции модуля Crt для управления режимом отображения текста программы при ее выполнении.

Рекомендуется сначала отдельно написать и протестировать решение задачи, а затем оформить отдельные подзадачи как процедуры.

Общий алгоритм выполнения программы:

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

2. Заполнить массив заданной размерности случайными числами или числами, введенными пользователем с клавиатуры.

3. Вывести все элементы массива на экран построчно.

4. Решить основное задание, согласно варианту из таблицы 7.1 (например, найти максимальный элемент и обнулить строку, в которой он находиться).

5. Вывести результаты решения основного задания на экран.

6. Вывести обновленные значения элементов массива на экран.

При написании программы можно использовать примеры, приведенные в п. 6.3.

Таблица 7.1 – Варианты основных заданий

Основное задание

1

Найти максимальный элемент массива. Вывести все элементы строки, в которой он находится. Найти их сумму и среднее значение

2

Найти минимальный и максимальный элемент массива. Найти сумму всех элементов массива

3

Найти минимальный элемент массива. Все элементы массива разделить на значение минимального элемента

4

Найти максимальный элемент массива. Все элементы столбца, в котором он находится, обнулить

5

Найти среднее значение элементов массива. От значений элементов отнять среднее значение. Вывести отрицательные элементы массива на экран

6

Найти сумму элементов массива. Все элементы массива разделить на это значение. Найти максимальный элемент массива

7

Найти среднее значение элементов массива. От значений элементов отнять среднее значение. Найти минимальный элемент массива

8

Найти минимальный и максимальный элемент массива. Все элементы строк и столбцов, в которых они находятся обнулить

9

Найти среднее значение элементов массива. От значений элементов отнять среднее значение. Вывести положительные элементы массива на экран

10

Найти минимальный элемент массива. Все элементы строки и столбца, в котором он находиться обнулить

Пример:

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

В программе использовать:

- подпрограммы-процедуры (Procedure) для оформления решения отдельных подзадач (например, поиска минимального элемента или вывода элементов на экран);

- дополнительные процедуры и функции модуля Crt для управления режимом отображения текста программы при ее выполнении.

Текст программы без использования процедур:

Program lab_7;

Uses crt;

Var

m, n, v, i, j, k, l: integer;

mass : array[1..10,1..10] of real;

max : real;

Begin

writeln('Выберите способ ввода:');

writeln('1 – Автозаполнение случайными числами');

writeln('2 – Заполнение числами, введенными с клавиатуры');

writeln('3 – Выход из программы');

readln(v);

if (v<>1) and (v<>2) then halt;

writeln('Введите число строк – m, m<10');

readln(m);

writeln('Введите число столбцов – n, n<10');

readln(n);

if v = 1 then

begin

randomize;

for i:=1 to m do

for j:=1 to n do

mass[i,j]:=random(100);

end

else if v=2 then

begin

for i:=1 to m do

for j:=1 to n do

begin

writeln('Введите элемент [',i,',',j,']');

readln(mass[i,j]);

end;

end

else exit;

for i:=1 to m do begin

for j:=1 to n do

begin

write(' [',i,',',j,']=',mass[i,j]:2:1);

end;

readkey;

end;

max:=mass[1,1]; k:=1; l:=1;

for i:=1 to m do

for j:=1 to n do

begin

if mass[i,j]>max then begin

max:=mass[i,j];

k:=i; l:= j;

end;

end;

writeln ('Максимальный элемент массива [',k,',',l,']=',max:2:2);

readkey;

for j:=1 to n do

mass[k,j]:=0;

for i:=1 to m do begin

for j:=1 to n do

begin

write(' [',i,',',j,']=',mass[i,j]:2:1);

end;

readkey;

end;

End.

Текст программы для такого же задания, но с использованием процедур, приведен ниже.

Program lab_7;

Var

i, j, k, l, m, n, v: integer;

mass : array[1..10,1..10] of real;

max : real;

Procedure autovvod_elementov;

Begin

randomize;

for i:=1 to m do

for j:=1 to n do

mass[i,j]:=random(100);

End;

Procedure vvod_elementov;

Var

i, j : integer;

Begin

for i:=1 to m do

for j:=1 to n do

begin

writeln('Введите элемент [',i,',',j,']');

readln(mass[i,j]);

end;

End;

Procedure max_element;

Begin

max:=mass[1,1]; k:=1; l:=1;

for i:=1 to m do

for j:=1 to n do

begin

if mass[i,j]>max then begin

max:=mass[i,j];

k:=i; l:= j;

end;

end;

writeln ('Максимальный элемент массива  [',k,',',l,']=',max:2:2);

readln;

for j:=1 to n do

mass[k,j]:=0;

End;

Procedure vyvod_elementov;

Begin

for i:=1 to m do begin

for j:=1 to n do

begin

write(' [',i,',',j,']=',mass[i,j]:2:1);

end;

readln;

end;

End;

Begin

writeln('Выберите способ ввода:');

writeln('1 – Автозаполнение случайными числами');

writeln('2 – Заполнение числами, введенными с клавиатуры');

writeln('3 – Выход из программы');

readln(v);

if (v<>1) and (v<>2) then halt;

writeln('Введите число строк – m, m<10');

readln(m);

writeln('Введите число столбцов – n, n<10');

readln(n);

case v of

1: autovvod_elementov;

2: vvod_elementov;

end;

vyvod_elementov;

max_element;

vyvod_elementov;

End.

Результаты выполнения программы:

Выберите способ ввода:

1 – Автозаполнение случайными числами

2 – Заполнение числами, введенными с клавиатуры

3 – Выход из программы

1

Введите число строк – m, m<10

2

Введите число столбцов – n, n<10

4

[1,1]=8.0 [1,2]=32.0 [1,3]=58.0 [1,4]=64.0

[2,1]=26.0 [2,2]=38.0 [2,3]=21.0 [2,4]=15.0

Максимальный элемент массива [1,4]=64.00

[1,1]=8.0 [1,2]=32.0 [1,3]=58.0 [1,4]=64.0

[2,1]=26.0 [2,2]=38.0 [2,3]=21.0 [2,4]=15.0

8. СОДЕРЖАНИЕ ОТЧЕТА ПО ЛАБОРАТОРНОЙ РАБОТЕ

8.1. Результаты выполнения подготовительного задания: титульный лист, цель и задачи работы, краткие теоретические сведения.

8.2. Результаты выполнения лабораторных заданий, оформленные в виде листинга программы с указанием результата ее выполнения.

8.3. Выводы по результатам выполнения заданий и заключение по работе в целом.