Программирование на языке Паскаль в среде Турбо Паскаль

Отчет по практике - Компьютеры, программирование

Другие отчеты по практике по предмету Компьютеры, программирование

Частное учреждение образования

Колледж бизнеса и права

 

 

 

 

 

 

 

 

 

 

 

ОТЧЕТ

по учебной практике по программированию

ОП Т.117013

 

 

 

Проверил (Н.И. Савченкова)

Выполнил (В.А. Макрак)

 

 

 

 

 

 

 

 

Содержание

 

1. Программирование на языке Паскаль в среде Турбо Паскаль

1.1 Линейные алгоритмы

1.2 Процедуры и функции

1.3 Структура данных: массивы

1.4 Структура данных: строки.

1.4 Структура данных: записи

1.5 Модульное программирование

1.6 Прямая и косвенная рекурсия

1.7 Рекурсивные алгоритмы

1.8 Бинарный поиск

1.9 Сортировка влючением

1.10 Обменная сортировка

1.11 Сортировка разделением

1.12 Статическое и динамическая распределение памяти

1.13 Организация списков

1.14 Модуль Graph

 

1. Программирование на языке Паскаль в среде Турбо Паскаль

 

1.1 Линейные алгоритмы

 

Условие задачи

Составить словесное (математическое) описание и блок-схему следующей задаче: найти периметр треугольника АВС, если его координаты A (x1,y1), B (x2,y2), C (x3,y3,) вводятся с клавиатуры. При неправильном вводе значений, вывести на экран сообщение об ошибке и предложением повторно ввести правильные данные. Результат отобразить на экране.

=AB+BC+AC

 

Для тестирования программы использовались данные, приведённые в таблице 1. Полученные результаты приведены там же.

 

Таблица 1 - Результаты выполнения линейного алгоритма

Входные данныеВыходные данныеABCS3,5-4,7-5,-125.34

Листинг программы - Линейный алгоритм

program perimetr;crt;

var ab,bc,ac,x1,x2,x3,y1,y2,y3: real;

p: real;;(vvesti koordinati verhin A);(x1,y1);(vvedite koordinati verhin B);(x2,y2);

writeln (vvedite koordinati verhin C);

readln (x3,y3);: =sqrt ( (sqr (x1-x2)) + (sqr (y1-y2)));: =sqrt ( (sqr (x2-x3)) + (sqr (y2-y3)));: =sqrt ( (sqr (x1-x3)) + (sqr (y1-y3)));

if (AB>=BC+AC) or (AC>=AB+BC) or (BC>=AB+AC) then writeln (eto ne treygolnik, povtorite vvod);(AB<BC+AC) and (AC<AB+BC) and (BC<AB+AC);: =AB+BC+AC;(perimetr treygolnika raven=,p: 0: 2);

readln;.

 

программирование алгоритм турбо паскаль

Рисунок 1 - Блок-схема линейного алгоритма

 

Результат решения задачи представлен на рисунке 1.

 

Рисунок 1 - Результат работы программы в TurboPascal

1.2 Процедуры и функции

 

Составить словесное (математическое) описание и блок-схему следующей задаче: найти периметр треугольника АВС, если его координаты A (x1,y1), B (x2,y2), C (x3,y3,) вводятся с клавиатуры. При неправильном вводе значений, вывести на экран сообщение об ошибке и предложением повторно ввести правильные данные. Результат отобразить на экране.

=AB+BC+AC

 

Для тестирования программы использовались данные, приведённые в таблице 2. Полученные результаты приведены там же.

 

Таблица 2 - Результаты выполнения процедуры и функции

Входные данныеВыходные данныеABCP3,5-4,7-5,-125.34

Результат решения задачи представлен на рисунке 2.

 

Рисунок 2 - Результат работы программы в TurboPascal

 

Листинг - Процедурыperimet_procedure;crt;

var ab,bc,ac,x1,x2,x3,y1,y2,y3: real;

p: real;perimetr (x1,y1,x2,y2: real);;(vvesti koordinati verhin A);(x1,y1);(vvedite koordinati verhin B);(x2,y2);

writeln (vvedite koordinati verhin C);

readln (x3,y3);: =sqrt ( (sqr (x1-x2)) + (sqr (y1-y2)));: =sqrt ( (sqr (x2-x3)) + (sqr (y2-y3)));: =sqrt ( (sqr (x1-x3)) + (sqr (y1-y3)));

if (AB>=BC+AC) or (AC>=AB+BC) or (BC>=AB+AC) then writeln (eto ne treygolnik, povtorite vvod);(AB<BC+AC) and (AC<AB+BC) and (BC<AB+AC);: =AB+BC+AC;;;(x1,y1,x2,y2);(perimetr treygolnika raven=,p: 0: 2);;

end.

 

Рисунок 2 - Блок-схема процедуры

 

Листинг - функцииperimetr_function; crt;

Var x1,x2,x3,y1,y2,y3: real; {объявление переменных }

p: real;stor (ab,bc,ac: real): real; {функция }(Vvesti Koordinati Verhin |A|); {ввод координат точки А}(x1,y1);(Vvedite Koordinati Verhin |B|); {ввод координат точки B}(x2,y2);(Vvedite Koordinati Verhin |C|); {ввод координат точки C}

readln (x3,y3);: =sqrt ( (sqr (x1-x2)) + (sqr (y1-y2)));: =sqrt ( (sqr (x2-x3)) + (sqr (y2-y3)));: =sqrt ( (sqr (x1-x3)) + (sqr (y1-y3)));

if (AB>=BC+AC) or (AC>=AB+BC) or (BC>=AB+AC) then writeln (Eto ne treygolnik, Povtorite Vvod);(AB<BC+AC) and (AC<AB+BC) and (BC<AB+AC);: =AB+BC+AC; {вычисление периметра }

End;

{ }

Var ab,bc,ac: real; { }

Begin; stor (ab,bc,ac

);(|Perimetr Treygolnika Raven|=,p: 0: 0, (cm) ); {вывод результата};

End. {конец }

 

Результат решения задачи представлен на рисунке 3.

 

\

Рисунок 3 - Результат работы программы в TurboPascal

Рисунок 3 - Блок-схема функции

 

1.3 Структура данных: массивы

 

Дан двумерный массив 5х5. Заменить нулем элементы, расположенные над побочной диагональю.

 

Листинг - Структуры данных: массивы

program massiv;

Uses CRT;n=5;a: array [1. n,1. n] of integer;,j: integer;;i: = 1 to n DOj: = 1 to n DO[i,j]: =random (10) - 3;(a [i,j]: 3);;;;;i: = 1 to n DOj: = 1 to n DOj<=n-i+1 then[i,j]: =0;(a [i,j]: 3);;;

end;

Readln

End.

 

Результат решения задачи представлен на рисунке 3.

 

Рисунок 4 - Результат работы программы в TurboPascal

 

1.4 Структура данных: строки.

 

Даны строки S1, S2 и символ C. Перед (после) каждого вхождения символа C в строку S1 вставить строку S2.

 

Листинг - Структуры данных: строки

uses crt;

var s1,s2,s: string;,w: char;: byte;

clrscr;

writeln (Ввести строку в которую будем вставлять: );

readln (s1);

writeln (Ввести строку которую будем вставлять: );

readln (s2);();(c);pos (c,s1) =0 then writeln ();pos (c,s1) >0;;(? );();();();(w);w of

1: begin: =s1;i: =length (s) downto 1 dos1 [i] =c then insert (s2,s, i);(s);;;

2: begin: =s1;i: =length (s) downto 1 dos1 [i] =c then insert (s2,s, i+1);(s);;;exit;;n