Помощь в написании студенческих работ
Антистрессовый сервис

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

КонтрольнаяПомощь в написанииУзнать стоимостьмоей работы

Writeln ('Для продолжения нажмите любую клавишу…');Readkey; Writeln ('Для продолжения нажмите любую клавишу…');Readkey; Write ('Введите число строк:');Readln (n); {Ввод данных}. Writeln ('¦','Терм. ветвь':12,'¦', a: 26,'¦',' a=', a: 7,'¦'); Для продолжения нажмите любую клавишу… Writeln ('¦','Терм. ветвь':12,'¦', s:26,'¦',' a=', a: 7,'¦'); Для продолжения нажмите любую клавишу. Просчет… Читать ещё >

Программирование на Турбо Паскале (реферат, курсовая, диплом, контрольная)

Цель работы:

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

Задание:

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

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

а[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

а[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

Показать весь текст
Заполнить форму текущей работой