Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
отчёт Паскаль 3.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
139.78 Кб
Скачать
  1. Практическая часть

Программа №1:

Блок схема:

f:= palindrom(a) or palindrom(b)

нет

да

m:= n;

p:= 0;

i:= m mod 10;

p:= p*10 + i;

m:= m div 10

Palindrom:=p=n

Словесное описание алгоритма:

Цель: Выяснить, является ли хоть одно из них палиндромом.

Запускается функция f.

Запускается проверка условия, если хотя бы одно число палиндром, то на экран выводится: «Хотя бы одно число палиндром». Если чисел палиндромов нет, то на экран выводится: «Оба не палиндромы».

Конец.

Функция f:

Выполняется цикл пока m>0

Число записывается с конца.

Конец.

Листинг программы:

Program lab3; {Программа для определения чисел палиндромов}

uses crt;

function Palindrom(n:longint):boolean; {Находит числа палиндромы}

var m,p:longint;

i,k:integer;

begin

m:=n;

p:=0;

while m>0 do

begin

i:=m mod 10;

p:=p*10+i;

m:=m div 10;

end;

Palindrom:=p=n;

end;

var a,b:longint;

f:boolean;

begin

clrscr; {Очистка экрана}

writeln('Введите 2 натуральных числа');

readln(a,b);

f:=Palindrom(a) or Palindrom(b);

if f then write('Хотя бы 1 число палиндром')

else write('Оба числа не палиндромы');

readln;

end.

Программа №2:

Блок схема:

i:=1 to n

t:=1 to m

i:=1 to t

j:=1 to p

i:=1 to n

j:=1 to m

i:=1 to t

j:=1 to p

r1:=1; e1:=1; r2:=1; e2:=1;

maxelement (a, n, m, r1, e1);

maxelement (b, t, p, r2, e2)

c:= A[r1;e1]

A[r1;e1]:= B[r2;e2]

B[r2;e2]:=c;

i:=1 to n

j:=1 to m

i:=1 to t

j:=1 to p

max:=matr[1;1]

sa:= 1 to x

sc:= 1 to y

да

max:=matr[sa;sc];

imax:=sa;

jmax:=sc;

Словесное описание алгоритма:

Цель: Написать программу, меняющую местами максимальные элементы матриц.

Запускаются циклы в которых выводятся элементы матриц А и В.

Запускается цикл который выводит на экран матрицы до обработки.

Запускается процедура maxelement

Запускается цикл который выводит на экран преобразованные матрицы.

Конец.

Процедура maxelement:

Цель: Преобразовать матрицы по нужному правилу

Запускаются два цикла от 1 до x и от 1 до y.

Запускается проверка условия.

Меняются максимальные элементы по заданному правилу.

Конец.

Листинг программы:

program lab3; {Программа меняющая максимальные элементы матриц местами}

uses crt;

type

matrix = array [1..50,1..50] of integer;

var

n,m,t,p,i,j,r1,r2,e1,e2,c:integer;

a,b:matrix;

procedure maxelement(matr:matrix;x,y:integer; var imax,jmax:integer); {Запускается процедура}

var max,sa,sc:integer;

begin

max:=matr[1,1];

for sa:=1 to x do

for sc:=1 to y do

if max<matr[sa,sc] then

begin

max:=matr[sa,sc];

imax:=sa;

jmax:=sc;

end;{Конец процедуры}

end;

begin

clrscr;

writeln ('razmernost matricy A');

readln (n,m);

writeln ('razmernost matricy B');

readln (t,p);

writeln ('Vvedi elementy matrici A');

for i:=1 to n do

for j:=1 to m do

readln(a[i,j]);

writeln ('Vvedi elementy matrici B');

for i:=1 to t do

for j:=1 to p do

readln(b[i,j]); clrscr;

writeln('Matrici do obrabotki:'); {Вывод матриц до обработки}

writeln('Matrica A: ');

for i:=1 to n do begin

for j:=1 to m do

write (a[i,j]:4,' ');

writeln;

end;

writeln;

writeln('Matrica B: ');

for i:=1 to t do begin

for j:=1 to p do

write (b[i,j]:4,' ');

writeln;

end;

r1:=1;e1:=1;r2:=1;e2:=1;

maxelement(a,n,m,r1,e1);

maxelement(b,t,p,r2,e2);

c:=A[r1,e1]; A[r1,e1]:=B[r2,e2]; B[r2,e2]:=c;

writeln;

writeln('Matrici posle obrabotki:'); {Вывод матриц после обработки}

writeln('Matrica A: ');

for i:=1 to n do begin

for j:=1 to m do

write (A[i,j]:4,' ');

writeln;

end;

writeln;

writeln('Matrica B: ');

for i:=1 to t do begin

for j:=1 to p do

write (B[i,j]:4,' ');

writeln;

end; readln;

end.

Программа №3:

Б лок схема:

Cnm:=cnm(m;n-1)+cnm(m-1;n-1)

Cnm:=1

Словесное описание алгоритма:

Цель: Найти значение .

Пользаватель вводит с клавиатуры n и m.

Выполняется действие высчитывается .

Выводит на экран .

Cnm: Если m=0 или n=m тогда =1

Иначе

Листинг программы:

uses crt;

var m,n:integer;

function cnm(m,n:integer):integer;

begin

if (m=0) or (n=m) then cnm:=1

else

cnm:=cnm(m,n-1)+cnm(m-1,n-1);

end;

begin

clrscr;

write('m=');

readln(m);

write('n='); readln(n);

writeln(cnm(m,n));

readln;

end.