![](/user_photo/2706_HbeT2.jpg)
- •Работа с массивами чисел
- •6.1. Структурированные типы данных Turbo Pascal 7.0
- •6.2. Массивы
- •Каждый элемент массива имеет свой индекс.
- •6.3. Фрагменты программ обработки массивов
- •6.3.1 Заполнение массивов
- •6.3.2 Вывод элементов массива на экран
- •6.3.3. Подсчет отрицательных и положительных элементов, их сумм и средних значений
- •6.3.4. Нахождение минимального и максимального элементов двумерного массива
- •6.3.5. Сортировка массива
- •7. Лабораторные задания и методические указания по их выполнению
- •9. Контрольные вопросы
- •6.1. Символьный (char) и строковый (string) тип данных
- •6.2.1. Основные задачи обработки текста
- •6.2.3. Выделение слов из текста (слова разделены несколькими пробелами)
- •6.2.4. Выделение символов в строке и расположение их по алфавиту
- •6.2.5. Выделение символов в строке и подсчет их вхождения
- •6.2.6. Выделение символов в строке и подсчет слов в строке
- •6.2.7. Выделение слов и упорядочение их по длине
- •6.2.8. Расположение слов по алфавиту
- •6.3. Файлы
- •Текстовые файлы определяются в разделе Var следующим образом:
- •7. Лабораторные задания и методические указания по их выполнению
- •9. Контрольные вопросы
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. Выводы по результатам выполнения заданий и заключение по работе в целом.