Задание 2.
Постановка задачи:
Заполнить массив из 10 элементов случайными числами в интервале [-10..10] и найти в нем два максимальных элемента и их номера.
Таблица 2- Таблица внешних спецификаций
|
Имя переменной |
Назначение переменной |
Тип переменной |
Входные данные |
i
a |
индекс элемента массива
массив |
integer integer |
Выходные данные |
a[imax]
max
imax
k |
Максимальный элемент 1
Максимальный элемент 2
Номер максимального элемента 1
Номер максимального элемента 2 |
integer
integer
integer
integer |
Расчет контрольных примеров:
Блок-схема:
Рисунок 2 – Блок-схема к заданию №2
Программная реализация:
program laba1_4;
uses crt;
type
mas=array[1..10] of integer;
var
a:mas;
i,imax,max,k:integer;
begin
clrscr;
randomize;
write('Массив a:');
for i:=1 to 10 do
begin
a[i]:=random(20)-10;
write(a[i]:4);
end;
imax:=1;
for i:=2 to 10 do
if a[i]>a[imax] then imax:=i;
k:=imax;
max:=a[imax];
imax:=1;
for i:=2 to 10 do
if (a[i]>a[imax]) and (a[i]<>max) then imax:=i;
writeln;
writeln('Максимум равен:',a[imax], ' и ',max);
write('Максимальный элемент стоит:',imax,' и ',k);
end.
ОБРАБОТКА ЭЛЕМЕНТОВ ДВУМЕРНОГО МАССИВА
Цель работы: овладение практическими навыками работы с двумерными массивами, особенностями их ввода и вывода, приобретение дальнейших навыков по организации программ циклической структуры с использованием приемов программирования.
Задание 1.
Постановка задачи:
Дана матрица размера M × N. Для каждого столбца матрицы найти произведение его элементов.
Таблица 3 - Таблица внешних спецификаций
|
Имя переменной |
Назначение переменной |
Тип переменной |
Входные данные |
i
j
N
M
A |
индекс элемента массива (строка)
индекс элемента массива (столбец)
количество столбцов матрицы
количество строк матрицы
двумерный массив |
integer integer integer
integer
integer |
Выходные данные |
p |
Произведение всех элементов в столбце
|
integer |
Расчет контрольных примеров:
1)
2)
Блок-схема:
Рисунок 3 – Блок-схема к заданию №1
Программная реализация:
program laba2_2;
uses
crt;
var
A:array [1..10,1..10] of integer;
i,j,p,m,n:integer;
begin
clrscr;
write('Введите количество строк M(1<=M<=10): ');
readln(m);
write('Введите количество столбцов N(1<=N<=10): ');
readln(n);
for i:=1 to M do
for j:=1 to N do
A[i,j]:=random(10)-5;
for i:=1 to M do
begin
for j:=1 to N do
write(a[i,j]:4);
writeln;
end;
writeln;
for j:=1 to N do
begin
p:=1;
for i:=1 to M do
p:=p*a[i,j];
write(p:4);
end;
end.
Задание 2.
Постановка задачи:
Дана матрица размера M × N. В каждой ее строке найти количество элементов, меньших среднего арифметического всех элементов этой строки.
Таблица 4 - Таблица внешних спецификаций
|
Имя переменной |
Назначение переменной |
Тип переменной |
Входные данные |
i
j
N
M
A
S |
индекс элемента массива (строка)
индекс элемента массива (столбец)
количество столбцов матрицы
количество строк матрицы
двумерный массив
сумма элементов в строке |
integer integer integer
integer
integer
integer |
Выходные данные |
SRed
k |
Среднее арифметическое строки
Количество элементов меньших среднего арифметического |
real
integer |
Расчет контрольных примеров:
Блок-схема:
Рисунок 4 – Блок-схема к заданию №2
Программная реализация:
program laba2_6;
uses
crt;
var
k,j,i,M,N,S:integer;
a: array [1..10,1..10] of integer;
SRed:real;
begin
clrscr;
write('Введите количество строк M(1<=M<=10): ');
readln(m);
write('Введите количество столбцов N(1<=N<=10): ');
readln(n);
for i:=1 to M do
for j:=1 to N do
A[i,j]:=random(10)-5;
for i:=1 to M do
begin
for j:=1 to N do
write(a[i,j]:4);
writeln;
end;
writeln;
writeln('Ответ:');
for i:=1 to M do
begin
S:=0;
k:=0;
for j:=1 to N do S:=S+a[i,j];
SRed:=S/N;
for j:=1 to N do
begin
if SRed>a[i,j] then k:=k+1;
end;
writeln(i,')');
writeln('Среднее арифметическое: ',SRed);
writeln('количество элементов: ',k );
end;
end.
СИМВОЛЬНЫЕ СТРОКИ
Цель работы: овладение навыками алгоритмизации и программирования задач, связанных с обработкой символьных строк. Изучение основных процедур и функций для обработки символьных строк.
