Разработка ПАСКАЛЬ - программы со сложным циклом
Сложные циклы
Схема алгоритма сложного цикла
Двухмерный массив
Описание массива
Матрица чисел X
Разработка программы со сложным циклом
Алгоритм
Процедура ввода
Процедура вывода
Обработка двумерного массива
Процедура определения номеров строк матрицы, все элементы которых принадлежат заданному диапазону
130.59K
Category: databasedatabase

Разработка программы Паскаль со сложным циклом. (Лабораторная работа 7)

1. Разработка ПАСКАЛЬ - программы со сложным циклом

Разработка ПАСКАЛЬ программы со сложным
циклом
Лабораторная работа №7

2. Сложные циклы

• Сложными называются такие циклические
вычислительные процессы, которые состоят
из двух и более включенных друг в друга
циклов.
• При этом циклы, объемлющие другие
циклы, принято называть внешними, а
циклы, входящие во внешние циклы,
внутренними (вложенными).

3. Схема алгоритма сложного цикла

внешний
цикл
i=1,n
j=1,m
Р1,P2,.…
For i:=1 to n do
внутренний
цикл
For j:=1 to m do
Begin
Процедура Р1
Процедура Р2
………
end;

4. Двухмерный массив

y11 y12 y13
y21 y22 y23

5. Описание массива

VAR
Y: ARRAY [1..20, 1..10] OF REAL;
Например:
y[1,3], y[2,5], y[10,10]
- соответствует индексированным переменным
y1,3, y2,5, y10,10
y[k,l]

6. Матрица чисел X

x1,1 x1,2 … x1,n
x2,1 x2,2 … x2,n
x=

xm,1 xm,2 … xm,n
m – количество строк матрицы
(элементов в столбце)
n – количество столбцов матрицы
(элементов в строке)
xi,j - число, i = 1, m j = 1, n
xi,j
при i=2 и j=1

7. Разработка программы со сложным циклом

• Цель работы: получение практических навыков по
использованию вложенных друг в друга структур
повторения при алгоритмизации и
программировании, по разработке и использованию
подпрограмм с такими структурами.
• Задание по лабораторной работе
Разработать подпрограмму обработки матрицы чисел,
представленной в виде двумерного массива, для
задачи:
1) определения номеров строк матрицы,
последние элементы которых равны сумме предыдущих
элементов

8. Алгоритм

Для исполнения подпрограммы использовать
модуль Program, в котором должны
предусматриваться:
• создание двумерного массива чисел (ввод
чисел в качестве элементов массива);
• вызов подпрограммы обработки массива;
• вывод результатов обработки массива
(предусмотреть вариант отсутствия данных
по условию задачи)

9. Процедура ввода

Н
ввод
n,k
i=1,n
j=1,k
ввод
aa(i,j)
Var aa: ARRAY [1..10, 1..6] of real;
n,k,i,j: integer;
Begin
writeln ('Введите размеры массива - кол-во
строк и кол-во столбцов');
readln(n,k);
writeln('Введите элементы массива ');
for i:=1 to n do
for j:=1 to k do read (aa[i,j]);
{ или for j:=1 to k do readln(aa[i,j]);}
End;

10. Процедура вывода

i=1,n
j=1,k
вывод
aa(i,j)
writeln (‘Исходные данные');
for i:=1 to n do
begin
for j:=1 to k do write (aa[i,j]:7:2);
writeln;
end;

11. Обработка двумерного массива

Вычисления сумм элементов
каждой строки
Type ta2 = array [1..20, 1..20] of integer;
ta1 = array [1..20] of integer;
Var
x: ta2;
s: ta1;
m, n, i, j: integer;

For i := 1 to m do
begin
s[i] := 0;
For j := 1 to n do s[i] := s[i] + x[i, j];
end;

Вычисления сумм элементов
каждого столбца
Type ta2 = array [1..20, 1..20] of integer;
ta1 = array [1..20] of integer;
Var
x: ta2;
s: ta1;
m, n, i, j: integer;

For j := 1 to n do
begin
s[j] := 0;
For i := 1 to m do s[j] := s[j] + x[i,j];
end;

12. Процедура определения номеров строк матрицы, все элементы которых принадлежат заданному диапазону

Program P7;
Type ta1= array [1..20] of integer;
ta2= array [1..20, 1..20] of integer;
( условие: d1<= x[i,j]<=d2)
Procedure PMatrix
(x: ta2; m, n: integer; d1, d2: integer; Var num: ta1; Var k: integer);
Var i, j: integer; r: boolean;
Begin
{Формирование массива номеров искомых строк}
k:=0;
For i:=1 to m do
begin
{Поиск в строке элемента, не принадлежащего диапазону}
r:= true; j:=1;
While (j<=n) and (r= true) do
If (x[i, j] < d1) or (x[i, j] > d2) then r:= false else j:=j+1;
If r= true then {все элементы в диапазоне}
begin
k:=k+1; num[k]:=i;
end;
end;
End;
English     Русский Rules