Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практика.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
2.23 Mб
Скачать

Занятие №11: Решение задач на обработку одномерных массивов. Использование массивов в качестве параметров в подпрограммах.

1. Числовая последователъность формируется по правилу: (значения заданы).Среди тех элементов последовательности , которые превышают по модулю заданное значение , найти максимальный и минимальный элементы, после чего обменять их местами ( ).

program prac1;

const N=7;

var x,h,b:real;

i,max,min:byte;

U:array[0..N] of real;

begin

readln(h,x,b);

U[0]:=cos(x);

for i:=1 to N do

begin

U[i]:=cos(x+h*i);

if abs(U[i])>=b then

if U[i]>U[max] then max:=i else

if U[i]<U[min] then min:=i;

end;

x:=U[max];

U[max]:=U[min];

U[min]:=x;

for i:=0 to N do writeln(U[i]:0:7);

writeln('Vipolnil Kovrigin Anatoliy');

readln;

end.

2 . В целочисленном массиве определить количество серий, состоящих из квадратов натуральных чисел.

program prac2;

const N=10;

var i,c:byte;

t:real;

X:array[1..N] of word;

begin

for i:=1 to N do readln(X[i]);

i:=1;

while i<=N do

begin

t:=sqrt(X[i]);

if t=trunc(t) then

begin

inc(i);

if i>N then break;

t:=sqrt(X[i]);

if t=trunc(t) then

begin

repeat

inc(i);

if i>N then begin

inc(c);

break;

end;

t:=sqrt(X[i]);

until t<>trunc(t);

inc(c);

end;

end;

inc(i);

end;

writeln('C=',c);

readln;

end.

  1. Заданы вещественные числа .Пары чисел ( ) - это левые и правые концы окрашенный отрезков на одной прямой ( ). Некоторые из этих отрезков частично или полностью перекрывают друг друга. Определить, сколько изолированных окрашенных отрезков имеется на этой прямой.

program prac3;

label z;

const N=5;

var A,B:array[1..N] of real;

c,i,j:byte;

begin

for i:=1 to N do

begin

readln(A[i]);

readln(B[i]);

end;

for i:=1 to N-1 do

begin

for j:=i+1 to N do

if (A[i]<=B[j]) and (B[i]>B[j]) or (B[i]>A[j]) and (A[i]<=A[j]) then goto z;

inc(c);

z:

end;

writeln('kol=',c);

writeln('Vipolnil Kovrigin Anatoliy');

readln;

end.

Занятие №12: Двумерные массивы.

  1. Дана прямоугольная матрица размера m×n. Составить программу, которая находит столбцы с наибольшей и наименьшей суммой элементов. Вывести найденные столбцы и суммы их элементов.

program prac1;

const N=10;const M=10;

var matrix:array[1..N,1..M] of byte;

smax,i,j,smin,cmin,cmax,s:integer;

begin

cmin:=1;cmax:=1;

smax:=0;smin:=0;

randomize;

for j:=1 to N do

begin

for i:=1 to M do

begin

matrix[i,j]:=random(10);

write(matrix[i,j],' ');

end;

writeln;

end;

for i:= 1 to M do smax:=smax+matrix[i,1];

smin:=smax;

for j:=2 to N do

begin

s:=0;

for i:=1 to M do s:=s+matrix[j,i];

if s>smax then

begin

smax:=s;cmax:=j;

end

else if s<smin then

begin

smin:=s;cmin:=j;

end;

end;

for i:=1 to M do write(matrix[cmax ,i]);

writeln;

for i:=1 to M do write(matrix[cmin ,i]);

writeln;

writeln(smax);

writeln(smin);

readln;

end.