Цель: Выяснить, является ли хоть одно из них палиндромом.
Запускается функция 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:
Начало
Блок схема:
Размерность А
n,m
Элементы А
Размерность B
t,p
i:=1 to n
a[i;j]
t:=1 to m
Элементы B
i:=1 to t
b[i;j]
j:=1 to p
i:=1 to n
Матрица А
Матрицы до обработки
j:=1 to m
a[i;j]
c:= A[r1;e1]
A[r1;e1]:= B[r2;e2]
B[r2;e2]:=c;
Матрицы после обработки
r1:=1; e1:=1; r2:=1; e2:=1;
maxelement (a, n, m, r1, e1);
maxelement (b, t, p, r2, e2)
Матрица B
j:=1 to p
b[i;j]
i:=1 to t
Матрица А
j:=1 to m
a[i;j]
i:=1 to n
Конец
maxelement
max:=matr[1;1]
sa:= 1 to x
sc:= 1 to y
Матрица B
j:=1 to p
b[i;j]
i:=1 to t
да
max:=matr[sa;sc];
imax:=sa;
jmax:=sc;
max<matr[sa;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:
Начало
Блок схема:
n,m
Cnm(n,m)0)
Конец
Cnm
(m=0) or (n=m)
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.
Выводы по работе:
1. Изучен синтаксис использование подпрограмм в TurboPascal 7.0..
2. Освоены навыки написания программы с использованием подпрограмм в TurboPascal 7.0