Хелпикс

Главная

Контакты

Случайная статья





Практическая часть



2. Практическая часть

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

Блок схема:

f  
Начало
a, b
f:= palindrom(a) or palindrom(b)  
Хотя бы одно число палиндром
Оба не палиндромы
Конец
нет
да
f
m:= n; p:= 0;  
m>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:

Начало


Блок схема:

Размерность А
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

 

 

Список используемой литературы:

Фараонов В.В. Турбо Паскаль Начальный курс: Учебное пособие. -Издание 7-е, переработанное – М.: Нолидж, 2002- 575с.



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.