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

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

Рубрика Программирование, компьютеры и кибернетика
Вид контрольная работа
Язык русский
Дата добавления 25.12.2010
Размер файла 30,8 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Цель работы:

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

Задание:

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

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


Подобные документы

  • Основные сведения о системе программирования Турбо Паскаль. Структура программы на Паскале и ее компоненты. Особенности и элементы языка Турбо Паскаль. Порядок выполнения операций в арифметическом выражении, стандартные функции и оператор присваивания.

    лекция [55,7 K], добавлен 21.05.2009

  • Структура программы в Турбо Паскале и определение переменной в ней. Понятие идентификатора и его основные ограничения. Операторы присваивания в языке программирования. Процедура ввода-вывода информации. Способы описания массива, обработка его элементов.

    контрольная работа [134,5 K], добавлен 28.09.2012

  • Международный стандарт на язык программирования Паскаль. Приемы объектно-ориентированного программирования в Турбо Паскале. Символы языка, его алфавит. Этапы разработки программы. Понятие алгоритмов и алгоритмизации. Структура программ на Паскале.

    курсовая работа [29,8 K], добавлен 28.02.2010

  • Система программирования Турбо Паскаль. Главные особенности языка С++. Составной и условный оператор в Паскале, алгоритм работы. Метка в Турбо Паскале. Счетный оператор цикла FOR. Описание логической структуры. Свойства функции PieSlice и initgraph.

    курсовая работа [20,8 K], добавлен 23.12.2010

  • Особенности программирования на языке Паскаль в среде Турбо Паскаль. Линейные алгоритмы, процедуры и функции. Структура данных: массивы, строки, записи. Модульное программирование, прямая и косвенная рекурсия. Бинарный поиск, организация списков.

    отчет по практике [913,8 K], добавлен 21.07.2012

  • Особенности использования графического режима в среде Турбо Паскаль. Типы драйверов. Инициализация графики. Построение изображения на экране. Графические примитивы и работа с текстом. Разработка и реализация программ в среде Турбо Паскаль "Графика".

    курсовая работа [1,2 M], добавлен 26.09.2014

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

    реферат [18,6 K], добавлен 01.04.2010

  • Алгоритмы, алфавит языка, структура программы, написанной на Турбо Паскале. Целые, вещественные, логические, символьные типы данных, их совместимость. Линейные алгоритмы, пустой и составной операторы, простейший ввод и вывод, разветвляющиеся алгоритмы.

    курсовая работа [49,8 K], добавлен 03.11.2009

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

    отчет по практике [99,8 K], добавлен 20.07.2010

  • Основные сведения о языке программирования Pascal. Листинг программы с комментариями. Диагональ элементов вектора и матрицы. Использование команд ввода-вывода информации. Быстродействие выполнения программы при компиляции. Отражение процессов вычисления.

    курсовая работа [1,9 M], добавлен 05.05.2009

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.