Программирование на языке Паскаль в среде Турбо Паскаль
Отчет по практике - Компьютеры, программирование
Другие отчеты по практике по предмету Компьютеры, программирование
Частное учреждение образования
Колледж бизнеса и права
ОТЧЕТ
по учебной практике по программированию
ОП Т.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