Рефетека.ру / Информатика и програм-ие

Контрольная работа: Программирование на Турбо Паскале

Цель работы:

Изучение правил описания множественных типов данных, приемов использования множеств и операций над множествами в Паскаль-программах. Приобретение навыков решения задач с использованием множеств.

Задание:

Дано предложение, состоящее из латинских букв. Вывести все согласные буквы, которые входят хотя бы в одно слово.

Программирование на Турбо Паскале

Программирование на Турбо ПаскалеПрограммирование на Турбо ПаскалеПрограммирование на Турбо ПаскалеПрограммирование на Турбо Паскале


Программирование на Турбо Паскале


Программирование на Турбо Паскале


Программирование на Турбо ПаскалеПрограммирование на Турбо Паскале

Программирование на Турбо Паскале


Программирование на Турбо ПаскалеПрограммирование на Турбо ПаскалеПрограммирование на Турбо ПаскалеПрограммирование на Турбо ПаскалеПрограммирование на Турбо Паскале


Программирование на Турбо ПаскалеПрограммирование на Турбо ПаскалеПрограммирование на Турбо ПаскалеПрограммирование на Турбо Паскале


Программирование на Турбо Паскале

Программирование на Турбо Паскале

Программирование на Турбо ПаскалеПрограммирование на Турбо ПаскалеПрограммирование на Турбо Паскале


function sum1(n,m,i,j,s,k : integer; a : matrix):integer;

Программирование на Турбо Паскале


Программирование на Турбо ПаскалеПрограммирование на Турбо ПаскалеПрограммирование на Турбо ПаскалеПрограммирование на Турбо ПаскалеПрограммирование на Турбо Паскале

Программирование на Турбо ПаскалеПрограммирование на Турбо ПаскалеПрограммирование на Турбо ПаскалеПрограммирование на Турбо Паскале


Программирование на Турбо Паскале

Программирование на Турбо ПаскалеПрограммирование на Турбо Паскале

Программирование на Турбо Паскале

Программирование на Турбо ПаскалеПрограммирование на Турбо Паскале

Программирование на Турбо ПаскалеПрограммирование на Турбо Паскале


Программирование на Турбо ПаскалеПрограммирование на Турбо ПаскалеПрограммирование на Турбо Паскале


function sum2(n,m,i,j,k : integer; a : matrix):integer;

Программирование на Турбо ПаскалеПрограммирование на Турбо ПаскалеПрограммирование на Турбо ПаскалеПрограммирование на Турбо ПаскалеПрограммирование на Турбо ПаскалеПрограммирование на Турбо ПаскалеПрограммирование на Турбо ПаскалеПрограммирование на Турбо ПаскалеПрограммирование на Турбо ПаскалеПрограммирование на Турбо ПаскалеПрограммирование на Турбо ПаскалеПрограммирование на Турбо ПаскалеПрограммирование на Турбо ПаскалеПрограммирование на Турбо ПаскалеПрограммирование на Турбо ПаскалеПрограммирование на Турбо ПаскалеПрограммирование на Турбо ПаскалеПрограммирование на Турбо ПаскалеПрограммирование на Турбо ПаскалеПрограммирование на Турбо ПаскалеПрограммирование на Турбо Паскале


procedure show_matrix(n,m : integer;a : matrix);

Программирование на Турбо Паскале


Программирование на Турбо ПаскалеПрограммирование на Турбо ПаскалеПрограммирование на Турбо ПаскалеПрограммирование на Турбо ПаскалеПрограммирование на Турбо ПаскалеПрограммирование на Турбо ПаскалеПрограммирование на Турбо Паскале


Программирование на Турбо ПаскалеПрограммирование на Турбо ПаскалеПрограммирование на Турбо ПаскалеПрограммирование на Турбо Паскале


Программирование на Турбо Паскале

Программирование на Турбо ПаскалеПрограммирование на Турбо Паскале

Программирование на Турбо ПаскалеПрограммирование на Турбо Паскале


Программа:

{*****************************************}

{Программа:lab21 }

{Цель:поиск символов в тексте }

{Описание параметров и переменных: }

{ a - матрица }

{ i,j,n,m - вспомагательные переменные }

{ c - ключ выхода }

{ sum - сумма }

{Подпрограммы:есть }

{Программист: Кондрахин А.В.,гр.343 }

{Проверил: Москвитина О.А.,каф. ВПМ }

{Дата написания: 14 марта 2004 г. }

{*****************************************}

program lab21;

uses crt;


Программирование на Турбо Паскале


type

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


var

a :matrix;

i,j,n,m:integer;

c :char;

sum :integer;


procedure show_matrix(n,m : integer;a : matrix);

var

i,j :integer;

begin

Writeln('Матрица:');

for i:=1 to n do

begin

Write('│ ');

for j:=1 to m do

Write(a[i,j]:3);

Writeln(' │');

end;

Writeln;

Writeln('Для продолжения нажмите любую клавишу...');Readkey;

end;


function sum1(n,m,i,j,s,k : integer; a : matrix):integer;{восходящая рекурсия}

var

tsum :integer;

begin

if (i=n) and (j=m)


then begin{терминальная ветвь}

Writeln('│','Терм. ветвь':12,'│',s:26,'│',' a[',i,',',j,']=',a[i,j]:7,'│');

sum1:=s+a[i,j];

end {терминальная ветвь}


else if not(i=n) and (j=m)


then begin{рекурсивная ветвь}

Writeln('│','Вход ',k:7,'│',s:26,'│',' a[',i,',',j,']=',a[i,j]:7,'│');

tsum:=sum1(n,m,i+1,1,s+a[i,j],k+1,a);

sum1:=tsum;

Writeln('│','Выход ',k:6,'│',tsum:26,'│',' a[',i,',',j,']=',a[i,j]:7,'│')

end {рекурсивная ветвь}


else begin{рекурсивная ветвь}

Writeln('│','Вход ',k:7,'│',s:26,'│',' a[',i,',',j,']=',a[i,j]:7,'│');

tsum:=sum1(n,m,i,j+1,s+a[i,j],k+1,a);

sum1:=tsum;

Writeln('│','Выход ',k:6,'│',tsum:26,'│',' a[',i,',',j,']=',a[i,j]:7,'│')

end; {рекурсивная ветвь}

end;{восходящая рекурсия}


function sum2(n,m,i,j,k : integer; a : matrix):integer;{нисходящая рекурсия}

var

tsum :integer;

begin

if (i=n) and (j=m)


then begin {терминальная ветвь}

Writeln('│','Терм. ветвь':12,'│',a[i,j]:26,'│',' a[',i,',',j,']=',a[i,j]:7,'│');

sum2:=a[i,j];

end {терминальная ветвь}

else if not(i=n) and (j=m)


then begin{рекурсивная ветвь}

Writeln('│','Вход ',k:7,'│',0:26,'│',' a[',i,',',j,']=',a[i,j]:7,'│');

tsum:=sum2(n,m,i+1,1,k+1,a)+a[i,j];

sum2:=tsum;

Writeln('│','Выход ',k:6,'│',tsum:26,'│',' a[',i,',',j,']=',a[i,j]:7,'│')

end {рекурсивная ветвь}


else begin{рекурсивная ветвь}

Writeln('│','Вход ',k:7,'│',0:26,'│',' a[',i,',',j,']=',a[i,j]:7,'│');

tsum:=sum2(n,m,i,j+1,k+1,a)+a[i,j];

sum2:=tsum;

Writeln('│','Выход ',k:6,'│',tsum:26,'│',' a[',i,',',j,']=',a[i,j]:7,'│')

end; {рекурсивная ветвь}

end;{нисходящая рекурсия}


begin

ClrScr;

c:='Y';

while (UpCase(c)='Y') do

begin

Write('Введите число строк:');Readln(n); {Ввод данных}

Write('Введите число столбцов:');Readln(m);


Writeln('Введите матрицу:'); {Ввод матрицы}

for i:=1 to n do

begin

for j:=1 to m do

begin

Write('a[',i,',',j,']=');Read(a[i,j]);

end;

Writeln;

end;


show_matrix(n,m,a); {Эхо-вывод матрицы}

Writeln(verh);Writeln(inc1);Writeln(cent1);

Writeln('│','Восходящая':12,'│ │ │');

sum:=sum1(n,m,1,1,0,1,a); {Вызов рекурсии}

Writeln(niz);

Writeln('СУММА:',sum:51);Writeln;

Writeln('Для продолжения нажмите любую клавишу...');Readkey;


Writeln(verh);Writeln(inc1);Writeln(cent1);

Writeln('│','Нисходящая':12,'│ │ │');

sum:=sum2(n,m,1,1,1,a); {Вызов рекурсии}

Writeln(niz);

Writeln('СУММА:',sum:51);Writeln;

Write('Ввести еще одну матрицу? (Y/N):');

c:=Readkey;Writeln(c);

Writeln;

end;

end.


Просчет контрольного варианта на ЭВМ:


Введите число строк:3

Введите число столбцов:3


Введите матрицу:

a[1,1]=1

а[1,2]=2

а[1,3]=Ч


a[2,1]=6

а[2,2]=3

а[2,3]=7


a[3,1]=8

а[3,2]=5

а[3,3]=9


Матрица:


│ 1 2 Ч │

│ 6 3 7 │

│ 8 5 9 │

Для продолжения нажмите любую клавишу...

Рекурсия Значение суммы значения i , j

Восходящая

Вход 1

Вход 2

Вход 3

Вход 4

Вход 5

Вход 6

Вход 7

Вход 8

Терм, ветвь

Выход 8

Выход 7

Выход 6

Выход 5

Выход 4

Выход 3

Выход 2

Выход 1


0

1

3

7

13

16

23

31

36

45

45

45

45

45

45

45

45


а[1,1]= 1

а[1,2]= 2

a[1,3]= 4

а[2,1]= 6

а[2,2]= 3

а[2,3]= 7

а[3,1]= 8

а[3,2]= 5

а[3,3]= 9

а[3,2]= 5

а[3,1]= 8

а[2,3]= 7

а[2,2]= 3

а[2,1]= 6

а[1,3]= 4

а[1,2]= 2

а[1,1]= 1


СУММА 45


Для продолжения нажмите любую клавишу.


Рекурсия Значение суммы значения i , j

Нисходящая

Вход 1

Вход 2

Вход 3

Вход 4

Вход 5

Вход 6

Вход 7

Вход 8

Терм, ветвь

Выход 8

Выход 7

Выход 6

Выход 5

Выход 4

Выход 3

Выход 2

Выход 1


0

0

0

0

0

0

0

0

9

14

22

29

32

38

42

43

45


а[1,1]= 1

а[1,2]= 2

a[1,3]= 4

а[2,1]= 6

а[2,2]= 3

а[2,3]= 7

а[3,1]= 8

а[3,2]= 5

а[3,3]= 9

а[3,2]= 5

а[3,1]= 8

а[2,3]= 7

а[2,2]= 3

а[2,1]= 6

а[1,3]= 4

а[1,2]= 2

а[1,1]= 1


СУММА 45


Ввести еще одну матрицу? (Y/N):n

Рефетека ру refoteka@gmail.com