Лабораторная работа: Обработка одномерных массивов и матриц
ЛАБОРАТОРНАЯ РАБОТА 5
Цель работы: изучение и применение методов программирования действий по обработке одномерных массивов и матриц.
Задача 1
Массив из 30 целых чисел заполнить, присваивая элементам, делящимся на 4, значения 0, остальным элементам значение -1. Cоставить три варианта программы с использованием различных операторов организации циклов.
Вариант 1. Использование оператора For
Текст программы
program lab5_1_1;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
m:array [1..30] of integer;
i:byte;
begin
for i:=1 to 30 do begin
if i mod 4 =0 then m[i]:=0
else m[i]:=-1;
writeln(m[i]);
end;
readln;
end.
Вывод результата
Вариант 2. Использование оператора While
Текст программы
program lab5_1_2;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
m:array [1..30] of integer;
i:byte;
begin
i:=0;
while i<=30 do begin
i:=i+1;
if i mod 4 =0 then m[i]:=0
else m[i]:=-1;
writeln(m[i]);
end;
readln;
end.
Вывод результата
Вариант 3. Использование оператора Repeat
Текст программы
program lab5_1_3;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
m:array [1..30] of integer;
i:byte;
begin
i:=0;
repeat
i:=i+1;
if i mod 4 =0 then m[i]:=0
else m[i]:=-1;
writeln(m[i]);
until i=30;
readln;
end.
Вывод результата
Задача 2
массив число программа цикл
Для заданной функции y = cos(0.5x/2)+cos(x) вычислить массив 11 ее значений в равноотстоящих точках интервала [2,4]. Вывести на экран таблицу значений функции. Обработать массив значений функции указанным образом. Результаты вывести на экран. Найти квадрат максимального из четных элементов массива и общее число нулевых элементов.
Текст программы
program lab2;
{$APPTYPE CONSOLE}
uses
SysUtils;
var my:array [1..11] of real;
mx:array [1..11] of real;
max,y,x1,x2,x,h:real;
i,k:byte;
begin
x1:=2;
x2:=4;
x:=x1;
h:=(x2-x1)/10;
mx[1]:=x;
for i:=1 to 11 do
begin
y:=cos((0.5*x)/2)+cos(x);
my[i]:=y;
x:=x+h;
mx[i+1]:=x;
writeln('x=',mx[i]:5:2,' y=',my[i]:5:2);
end;
max:=my[1];
for i:=1 to 11 do
if (max<my[i]) and (i mod 2 =0) then
max:=my[i];
max:= max*max;
writeln ('max kvadr y= ',max:5:2);
for i:=1 to 11 do
if my[i]=0 then k:=k+1;
writeln ('vsego nulevyh elementov= ',k);
readln;
end.
Вывод результата
Задача 3
Дан двумерный массив [3..4]. Получить новый массив путем умножения всех элементов исходного массива на его элемент, наибольший по абсолютной величине.
Текст программы (массив заполняется случ. числами).
program lab5_3;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
m:array [1..3,1..4] of real;
i,j:byte;
max:real;
begin
randomize;
{zapolnenie}
for i:=1 to 3 do
for j:=1 to 4 do
begin
m[i,j]:=random;
writeln(m[i,j]:5:3);
end;
{nahozhdenie max}
max:=m[1,1];
for i:=1 to 3 do
for j:=1 to 4 do
if max<m[i,j] then max:=m[i,j];
writeln ('max= ',max:5:3);
{umnozhenie}
for i:=1 to 3 do
for j:=1 to 4 do
begin
m[i,j]:=m[i,j]*max;
{vyvod}
writeln('new massiv= ',m[i,j]:5:3);
end;
readln;
end.
Вывод результата
Вывод: я изучил и применил методы программирования действий по обработке одномерных массивов и матриц.