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

Описание:
Тип работы: контрольная работа
Правила описания множественных типов данных, приемов использования множеств и операций над множествами в Паскаль-программах. Разработка в Турбо Паскале программы вывода всех согласных букв, которые входят хотя бы в одно слово заданного предложения.
Доступные действия
Введите защитный код для скачивания файла и нажмите "Скачать файл"
Защитный код
Введите защитный код

Нажмите на изображение для генерации защитного кода

Текст:

Цель работы:

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

Задание:

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

Блок-схема: знак завершения: начало


Блок-схема: данные: n  ,m  ,Ai,j

                                                              

Блок-схема: типовой процесс: show_matrix
Блок-схема: данные: sum


Блок-схема: данные: шапка таблицыБлок-схема: типовой процесс: show_matrix

sum:= sum2(n,m,11,1,a)

 
Блок-схема: данные: sum                                                               


Блок-схема: данные: c


Блок-схема: знак завершения: конец


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

Информация о файле
Название файла Программирование на Турбо Паскале от пользователя z3rg
Дата добавления 11.1.2012, 17:58
Дата обновления 11.1.2012, 17:58
Тип файла Тип файла (zip - application/zip)
Скриншот Не доступно
Статистика
Размер файла 18.04 килобайт (Примерное время скачивания)
Просмотров 516
Скачиваний 57
Оценить файл