- •Министерство образования Российской Федерации
- •К.Ю. Круценюк Информатика
- •Часть I Норильск 2002
- •Введение
- •Задание к работе
- •Пример выполнения работы Задание 1
- •Задание 2
- •Контрольные вопросы
- •Задание к работе
- •Пример выполнения работы Задание 1
- •Задание 2
- •Контрольные вопросы
- •Задание к работе
- •Пример выполнения работы Задание 1
- •Задание 2
- •Контрольные вопросы
- •Задание к работе
- •Пример выполнения работы
- •Лабораторная работа №5 «Обработка одномерных массивов»
- •Задание к работе
- •Пример выполнения работы
- •Контрольные вопросы
- •Задание к работе
- •Пример выполнения работы Задание 1
- •Задание 2
- •Контрольные вопросы
- •Лабораторная работа №7 «Обработка матриц»
- •Задание к работе
- •Пример выполнения работы
- •Контрольные вопросы
- •Лабораторная работа №8 «Программирование с использованием подпрограмм пользователя»
- •Задание к работе
- •Пример выполнения работы Задание 1
- •Задание 2
- •Контрольные вопросы
- •Список использованных источников
- •Содержание
Пример выполнения работы
Условие: Расположить по возрастанию элементы побочной диагонали матрицы.
Программа:
{Лабораторная работа №7}
{Обработка матриц}
{Выполнена Ф.И.О.}
{Группа }
program lab7;
uses crt;
var a:array[1..10,1..10] of integer;
m,k,strok,stolbz,i,j:integer;
b:array[1..10] of integer;
begin
randomize;
clrscr;
writeln('Введите размерность матрицы');
writeln('не более 10 на 10');
readln(strok,stolbz);
writeln;
writeln(’Сформированная матрица’);
writeln;
for j:=1 to stolbz do
write(' ':3,j);
writeln;
for i:=1 to strok do
begin
write(i:2);
for j:=1 to stolbz do
begin
a[i,j]:=800-random(1000);
write(' ',a[i,j]:3);
end;
writeln;
end;
j:=1;
for i:=1 to strok do
begin
b[j]:=a[i,strok+1-i];
j:=j+1;
end;
writeln;
writeln('Элементы побочной диагонали');
for j:=1 to strok do
writeln('b[',j,']=',b[j]);
for k:=1 to strok-1 do
for j:=k+1 to strok do
begin
if b[k]>b[j] then
begin
m:=b[k];
b[k]:=b[j];
b[j]:=m;
end;
end;
writeln;
writeln('Элементы побочной диагонали,');
writeln(’расположенные по возрастанию’);
for j:=1 to strok do
writeln('b[',j,']=',b[j]);
end.
Результат выполнения программы:
введите размерность матрицы
не более 10 на 10
5
5
Сформированная матрица
1 2 3 4 5
1 -38 54 480 330 8
2 513 -143 219 161 254
3 606 475 -49 -76 14
4 112 2 127 671 -51
5 121 -83 635 380 739
элементы побочной диагонали
b[1]=8
b[2]=161
b[3]=-49
b[4]=2
b[5]=121
элементы побочной диагонали,
расположенные по возрастанию
b[1]=-49
b[2]=2
b[3]=8
b[4]=121
b[5]=161
Контрольные вопросы
Указать основные правила организации вложенных циклов.
Указать способы выхода из внутреннего цикла.
Сколько раз выполняются операторы К=0 и К=К+1 в программе примера?
Как организовать вывод матрицы в общепринятом виде?
Как организовать вывод нижней треугольной матрицы в общепринятом виде?
Как организовать ввод матрицы размером NM элементов?
Лабораторная работа №8 «Программирование с использованием подпрограмм пользователя»
Цель работы – овладение навыками алгоритмизации и программирования задач и использованием подпрограмм пользователя различных видов, овладение навыками написания подпрограмм и обращения к ним, выбора параметров подпрограмм.
Задание к работе
1. Составить программу, использующую подпрограмму-функцию, в соответствии с номером параметра, указанным в таблице 10.
Таблица 10
Вариант задания |
Условия задачи |
Примечания |
1 |
Вычислить большие корни квадратных уравнений x2-ax+b=0 cy2-dx-f=0 |
Все корни действительные |
2 |
Подсчитать число точек, находящихся внутри круга радиусом r с центром в начале координат; координаты заданы массивами X(100), Y(100) |
Расстояние точки от начала координат вычислять в подпрограмме |
3 |
Определить периметры треугольников, заданных координатами их вершин XA(5), XB(5), XC(5), YA(5), YB(J), YC(5) |
Длину стороны треугольников вычислять в подпрограмме |
4 |
Подсчитать число точек, находящихся внутри круга радиусом r с центром в точке с координатами (1,1); координаты заданны массивами X(80), Y(80) |
Расстояние точки от центра круга определять в подпрограмме |
5 |
Вычислить
|
v1 вычислять в подпрограмме |
6 |
Вычислить суммы положительных элементов массивов X(N), Y(M), Z(K) |
N60 M60 K70 |
7 |
Вычислить среднее арифметическое положительных элементов для массивов A(N1), B(N2), C(N3) |
N1100 N2100 N3100 |
8 |
Подсчитать количество элементов матриц X(10,15) и Y(20,12), удовлетворяющих условиям 0xij1 и 0yij1 |
|
9 |
Вычислить суммы положительных элементов каждой строки для матриц А(10,12) и В(15,10) |
|
10 |
Вычислить
|
|
11 |
Вычислить суммы элементов главных диагоналей матриц А(N,N) В(М,М) |
М20 N30 |
12 |
Вычислить
|
Обе суммы вычислять в одной подпрограмме |
13 |
Подсчитать число нулевых элементов для матриц А(N,М) и В(М,N) |
М20 N20 |
14 |
Вычислить суммы элементов нижних треугольных матриц для матриц А(15,15) и В(20,20) |
|
15 |
Определить число положительных элементов до первого отрицательного в массивах Х (40), Y(50), Z(N) |
N50 |
Выполнить на компьютере программу, использующую подпрограмму-процедуру в соответствии с номером, указанным в таблице 11.
Таблица 11
Вариант задания |
Условие задачи |
Примечания |
1 |
Вычислить
|
М100 N100 |
2 |
Вычислить
|
Обе суммы вычислять в одной подпрограмме |
3 |
Вычислить и запомнить суммы положительных элементов каждой строки матрицы А(10,20), В(15,10) |
|
4 |
Вычислить z=(x1+y1)/(x2-y2), где x1 и х2 – корни уравнения 2х2 +x-4=0, у1 и у2 – корни уравнения ау2+2у-1=0 |
Все корни действительные |
5 |
Найти наибольшие элементы и их порядковые номера массивов Х (N) и Y (М) |
N80 М70 |
6 |
Переписать положительные элементы массива Х(100) и Y(80) в массив Z подряд |
Запись в массив Z осуществлять в подпрограмме |
7 |
Найти наименьшие элементы и номера строк и столбцов, в которых они расположены, для матриц А(10,15) и В(15,12) |
|
8 |
Вывести на печать элементы целочисленных матриц N(5,8) и М(10,6), кратные трем |
|
9 |
Вычислить
|
Все суммы вычислять в одной подпрограмме |
10 |
Вычислить
|
xmax и ymin вычислять в одной подпрограмме |
11 |
Вычислить и запомнить количество отрицательных элементов каждого столбца для матриц А(10,10), В(15,20) |
|
12 |
Вычислить суммы элементов верхней треугольной матрицы для матриц А(10,10), В(15,15) |
|
13 |
Найти средние значения и стандартные отклонения для элементов массивов X(N),Y(M) |
N100 М100 |
14 |
Вычислить суммы и количества элементов, находящихся в интервале от а до b матриц Х(10, 8) и Y(10,12) |
|
15 |
Преобразовать массивы Х(50) и Y(60), расположив в них подряд только положительные элементы. Вместо остальных элементов записать нули |
|

где
s1 и k1 – сумма и количество положительных
элементов массива Х(100); s2 и k2 – сумма
и количество отрицательных элементов
массива Y(80)
где
xi
и yi
заданы массивами