Программирование на Турбо Паскале
Правила описания множественных типов данных, приемов использования множеств и операций над множествами в Паскаль-программах. Разработка в Турбо Паскале программы вывода всех согласных букв, которые входят хотя бы в одно слово заданного предложения.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 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