Контрольная работа: Программирование на Турбо Паскале
Название: Программирование на Турбо Паскале Раздел: Рефераты по информатике, программированию Тип: контрольная работа | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Цель работы: Изучение правил описания множественных типов данных, приемов использования множеств и операций над множествами в Паскаль-программах. Приобретение навыков решения задач с использованием множеств. Задание: Дано предложение, состоящее из латинских букв. Вывести все согласные буквы, которые входят хотя бы в одно слово.
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 г. } {*****************************************} programlab21; usescrt; 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 │ Для продолжения нажмите любую клавишу...
СУММА 45 Для продолжения нажмите любую клавишу.
СУММА 45 Ввести еще одну матрицу? (Y/N):n |