- •Разработка циклических программ с заданным числом повторений
- •3.6 Определение и использование данных типа "массив"
- •Обработка матриц
- •4 Нахождение экстремумов
- •5 Суммирование элементов строк матрицы
- •6 Перестановка элементов массива
- •7 Преобразование матрицы
- •8 Формирование нового массива из значений элементов матрицы
- •3.7. Варианты заданий
- •3.8. Содержание отчета (см. Файл «Оформление_отчета_Pas»).
- •3.9. Контрольные вопросы
Обработка матриц
Ввод/вывод значений элементов матрицы
1-1 Заполнение элементов матрицы с клавиатуры
program zadacha1;
{ввод - с клавиатуры, вывод - в столбик}
var
а: аrray [1..10,1..10] of real
i, j: integer;
begin
for i: =1 to 10 do
for j: =1 to 10 do
begin
readln (a[i,j]);
writeln (‘a(‘, i, ‘.,’,.j,’)=’, a[i,j]){вывод -в столбик}
епd.
1-2 Пример программы ввода-вывода матрицы
2 Заполнение элементов матрицы по формуле
program zadacha2;
{ввод - по формуле, вывод - таблицей}
var
а: аrray [1..10,1..10] of real;
i, j: integer;
begin
for i: =1 to 10 do begin
for j: =1 to 10 do begin
begin
а[i,j]: = (i+0.5)/(j+sin(j)); {ввод – по формуле}
write (a[i,j], ‘ ‘]) {вывод - таблицей}
епd;
writeln
епd;
епd;
епd.
3 Заполнение элементов матрицы случайными числами
program zadacha3;
{ ввод случайных чисел, вывод - в строчку}
var
а: аrray [1..10,1..10] of integer;
i, j: integer;
begin
randomize; {оператор, позволяющий генерировать новую}
{последовательность случайных чисел при}
{новом запуске программы на выполнение}
for i: =1 to 10 do
for j: =1 to 10 do
begin
а[i,j]: = random (30); {генерация случайного числа от 0 до x-1,
{в данном случае, от 0 до 29}
write (‘a(‘,I, ‘,’,j,’)=’, a[i,j])
епd;
епd.
4 Вывод массива
Варианты вывода массива:
{вывод элементов в строчку через пробел}
{вывод элементов в строчку без пробелов}
{вывод элементов в столбец}
{вывод элементов в строчку с указанием номера элемента
(аналогично - в столбец)}
Типовые задачи на матрицы
1 Суммирование значений элементов матрицы
Дана матрица А(1,15), заполненная датчиком случайных чисел. Найти сумму значений всех элементов данной матрицы.
2 Нахождения количества значений элементов матрицы
Дана матрица А(10,20), заполненная датчиком случайных чисел в диапазоне от -10 до 19 включительно. Подсчитать количество положительных значений элементов каждой строкиматрицы.
program zadacha
{кол-во знач. элементов в каждой строке матрицы}
var
а: аrray [1..10,1..20] of integer;
i, j,k: integer;
begin
randomize;
for i: =1 to 10 do
begin
k:=0
for j: =1 to 20 do
begin
а[i,j]: = random (30)-10;
if a[i,j]>0 then k:=k+1
епd;
writeln ('кол-во полож. знач. в', i, ' строке=',k);
епd;
епd.
3 Поиск элементов массива
В одномерном массивеМ, состоящем из N целых чисел, найти элементы, значения которых равны заданному числуk.
Исходными данными являются:
массив целых чисел М,
число для поиска k.
Результат:
номера элементов массива, значения которых равны заданному числу.
Схема программы данного примера представлена на рисунке.
Вывод номера элемента,
совпадающего по значению с числом k
Сообщение 1:
Чисел, равных k, в массиве М нет.
Примечание:подобная задача может быть поставлена для двумерных массивов и массивов большей размерности (с использованием при вводе и обработке данных вложенных циклов).