- •Введение Алгоритмизация
- •Автоматизация математических вычислений на компьютере
- •Лабораторная работа № 1. Программирование последовательных вычислений Элементы языка Pascal
- •Операции и функции в языке Pascal
- •Порядок выполнения
- •Примеры программ на языке Pascal
- •Дополнительное задание
- •Контрольные вопросы
- •Лабораторная работа № 2. Программирование разветвлений Алгоритм линейной структуры
- •Алгоритм разветвляющейся структуры
- •Порядок выполнения
- •Примеры задач
- •Дополнительное задание
- •Контрольные вопросы
- •Лабораторная работа № 3. Программирование циклов Алгоритм циклической структуры
- •Порядок выполнения
- •Примеры задач
- •Дополнительное задание
- •Контрольные вопросы
- •Лабораторная работа № 4. Программирование задач с одномерными массивами Одномерные массивы
- •Порядок выполнения
- •Пример задачи
- •Дополнительное задание
- •Фрагменты вычисления характеристик одномерного массива
- •Фрагменты операций с одномерными массивами
- •Контрольные вопросы
- •Лабораторная работа № 5. Программирование задач с двумерными массивами Двумерные массивы
- •Порядок выполнения
- •Пример задачи
- •Дополнительное задание
- •Фрагменты вычисления характеристик строк и столбцов двумерного массива
- •Фрагменты операций с двумерными массивами
- •Квадратные матрицы
- •Контрольные вопросы
- •Лабораторная работа № 6. Программирование процедур и функций Подпрограммы
- •Порядок выполнения
- •Дополнительное задание
- •Примеры задач
- •Контрольные вопросы
- •Лабораторная работа № 7. Программирование структурных типов данных Файлы
- •Порядок выполнения
- •Примеры задач
- •Дополнительное задание
- •Контрольные вопросы
Порядок выполнения
Зайти в Borland Pascal.
Набрать текст программы для решения задачи № 1 и получить ответ для контрольного примера.
Исправить программу так, чтобы она находила сумму и произведение элементов выше главной диагонали.
Исправить программу так, чтобы она находила минимальное и максимальное значение отрицательных элементов.
Исправить программу так, чтобы она находила количество нулевых и среднее значение положительных элементов.
Пример задачи
Задача 1. Дан двумерный массивA (m,n). Найти сумму и произведение всех элементов, а также вычислить минимальный и максимальный элементы. |
Program lab5; Var A: array [1..10,1..15] of real; i, j, m, n: integer; s, p, min, max: 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]); s:=0; p:=1; min:=A[1,1]; max:=A[1,1]; for i:=1 to m do for j:=1 to n do begin s:=s+A[i,j]; p:=p*A[i,j]; if A[i,j]<min then min:=A[i,j]; if A[i,j]>max then max:=A[i,j]; end; writeln('s=',s:10:3,' p=',p:10:3, ' min=',min:10:3,' max=',max:10:3); End. | |
Контрольный пример. | ||
Исходные данные: |
; ; . | |
Результаты: |
; ; ; . |
Дополнительное задание
Дан массив B (m,n). Найти сумму положительных элементов и количество элементов в диапазоне от 10 до 20.
Дан массив C (m,n). Найти произведение элементов, больших среднего значения.
Дан массив D (m,n). Найти среднее значение среди элементов, не совпадающих с минимальным.
Дан массив L (n,n). Найти максимальный среди отрицательных элементов и сумму элементов на главной диагонали.
Дан массив P (n,n). Элементы выше главной диагонали заменить на ноль, а ниже главной диагонали – округлить.
Сформировать двумерный массив A (m,n), элементы которого вычисляются по формуле:, гдеR (m,n) – двумерный массив случайных величин.
Дан массив R (m,n). Найти произведения элементов в каждой строке и максимальные элементы в каждом столбце.
Дан массив W (m,n). Найти суммы элементов в каждом столбце и минимальные элементы в каждой строке.
Дан массив S (m,n). Найти массив минимальных элементов в каждой строке, а затем в новом массиве отсортировать элементы по возрастанию.
Дан массив T (m,n). Отсортировать столбцы по убыванию их средних значений.
Фрагменты вычисления характеристик строк и столбцов двумерного массива
Характеристика |
Для каждой строки |
Для каждого столбца |
s |
for i:=1 to m do begin s[i]:=0; for j:=1 to n do s[i]:=s[i]+A[i,j]; end; |
for j:=1 to n do begin s[j]:=0; for i:=1 to m do s[j]:=s[j]+A[i,j]; end; |
p |
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 p[j]:=1; for i:=1 to m do p[j]:=p[j]*A[i,j]; end; |
max |
for i:=1 to m do begin max[i]:=A[i,1]; for j:=1 to n do if A[i,j]>max[i] then max[i]:=A[i,j]; end; |
for j:=1 to n do begin max[j]:=A[1,j]; for i:=1 to m do if A[i,j]>max[j] then max[j]:=A[i,j]; end; |
min |
for i:=1 to m do begin min[i]:=A[i,1]; for j:=1 to n do if A[i,j]<min[i] then min[i]:=A[i,j]; end; |
for j:=1 to n do begin min[j]:=A[1,j]; for i:=1 to m do if A[i,j]<min[j] then min[j]:=A[i,j]; end; |