Обработка одномерных массивов и матриц

ЛАБОРАТОРНАЯ РАБОТА 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.

Вывод результата

Вывод: я изучил и применил методы программирования действий по обработке одномерных массивов и матриц.


Обработка одномерных массивов и матриц