Курсовая

Курсовая на тему Программы в среде Turbo Pascal

Работа добавлена на сайт bukvasha.net: 2014-07-17

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 22.11.2024


МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
СЕВЕРО–КАВКАЗСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

Филиал в г. Кисловодске

Кафедра ________________________________________________________________
УТВЕРЖДАЮ
Зав. кафедрой
_______________________
подпись, инициалы, фамилия
«___» ______________200 __г.
КУРСОВАЯ РАБОТА
По дисциплине______________________________________________________
__________________________________________________________________
На тему:___________________________________________________________
__________________________________________________________________
Автор работы:______________________________________________________
              подпись, дата                                    инициалы, фамилия
_________________________________________________________________
Специальность _____________________________группа__________________
Руководитель работы________________________________________________
ученая степень, звания
__________________________________________________________________
инициалы, фамилия
работа защищена _____________________ оценка _______________________
дата
______________________________
подпись, инициалы, фамилия преподавателя
Кисловодск _______г.

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
СЕВЕРО–КАВКАЗСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
Филиал в г. Кисловодск
Кафедра ____________________________________________________________
УТВЕРЖДАЮ
Зав. кафедрой
_______________________
подпись, инициалы, фамилия
«___» ______________20__г.
ЗАДАНИЕ НА КУРСОВУЮ РАБОТУ
Студенту ______  курса ____________ группы __________________ факультета
Фамилия __________________ Имя _____________ Отчество _____________
1. Тема _____________________________________________________________
__________________________________________________________________
__________________________________________________________________
__________________________________________________________________
2. Задание
__________________________________________________________________
__________________________________________________________________
3. Дата выдачи задания  _______________________________________________
Срок представления работы к защите «____» _____________________ 200___ г.
Руководитель работы_______________________
         подпись, инициалы, фамилия
Задание принял к исполнению _______________
     дата и подпись студента

Содержание
  Введение. 4
1. Основная часть. 5
2. Алгоритм задачи. 10
2.1 Блок-схема алгоритма подпрограммы Forma1. 10
2.2 Блок-схема алгоритма подпрограммы Menu. 14
2.3 Блок-схема алгоритма подпрограммы V_kor 17
2.3 Блок-схема алгоритма подпрограммы Zad_1. 17
2.5 Блок-схема алгоритма подпрограммы Zad_2. 20
2.6 Блок-схема алгоритма программы Prog_1. 22
3. Описание. 23
3.1 Рассчитать длину средней линии трапеции. 24
3.2 Нормальная матрица. 25
4. Результаты.. 27
4.1 Интерфейс подпрограммы Zad_1. 27
4.2 Интерфейс подпрограммы Zad_2. 27
5. Проверка. 29
Заключение. 30
Список использованной литературы.. 31
Приложение. 32

Введение
Процесс подготовки и решения задач на компьютерах состоит из нескольких этапов:
- постановка задачи;
- построение модели;
- разработка алгоритма;
- написание и отладка программы на языке программирования;
- тестирование программы.
Основу всей этой работы составляет построение эффективного алгоритма, главными свойствами которого являются детерминированность, массовость, результативность. При разработке программ применяют метод структурного программирования: разделение задачи на относительно независимые части и выполнение отладки этих частей. При этом достигается качество и быстрота разработки программ.
В основе работы любого компьютера лежит обработка двоичной информации, т.к. именно эта система счисления оказалась наиболее удобной в технической реализации. В то же время более удобной для нас является десятичная система счисления. Переход из одной системы счисления в другую имеет большое значение для обработки информации. Анализ двоичного представления данных необходим во многих случаях: для внутримашинного хранения данных, поиска, сжатия информации, разработки алгоритмов команд процессора и т.д.
С другой стороны подготовка данных для ввода в компьютер выполняется в символьной форме. Преобразование их в машинный код возлагается на специальные программы. В то же время не всегда эти программы способны определить ошибки, допускаемые пользователями при вводе данных с клавиатуры. Подготовка процедур контроля вводимых данных является необходимым условием разработки надежных программных продуктов.

1. Основная часть

При создании этой курсовой работы использовался язык программирования Turbo Pascal – очень гибкий и развитый в отношении типов данных.
Паска́ль (Pascal) — язык программирования общего назначения. Один из наиболее известных языков программирования, широко применяется в промышленном программировании, обучении программированию в высшей школе, является базой для большого числа других языков. Был создан Николаусом Виртом в 1970, после его участия в работе комитета разработки стандарта языка Алгол-68.
Ниже приведены: блок-схемы алгоритмов программы и отдельных модулей, математические модели поставленных задач, входные и выходные данные (интерфейс заданий), т.е. результаты выполнения подпрограмм, проверка результатов, произведенная средствами Ms Excel.
Паскаль был создан как язык для обучения процедурному программированию (хотя, по словам Вирта, язык нельзя считать только учебным, поскольку язык, непригодный для написания реальных программ, для обучения использоваться не должен). Название языку дано в честь выдающегося французского математика, физика, литератора и философа Блеза Паскаля. Один из первых языков, для которых была создана реализация «на самом себе» — компилятор Паскаля был написан на самом Паскале. В начале 1970-х годов для переноса Паскаль-систем на различные аппаратные платформы была создана система Pascal-P, в которой был единый компилятор Паскаля в промежуточный язык (P-код) и для каждой платформы создавался быстрый интерпретатор P-кода. Заимствование этой системы привело к созданию системы UCSD-Pascal в Университете Сан-Диего (Калифорния, США), намного позже её идеи были заимствованы создателями языка Java (байт-код, компиляция в байт-код, интерпретатор байт-кода).
Особенностями языка являются строгая типизация и наличие средств структурного (процедурного) программирования. Паскаль был одним из первых таких языков. По мнению Н. Вирта, язык должен способствовать дисциплинированию программирования, поэтому, наряду со строгой типизацией, в Паскале сведены к минимуму возможные синтаксические неоднозначности, а сам синтаксис автор постарался сделать интуитивно понятным даже при первом знакомстве с языком.
Тем не менее, первоначально язык имел ряд ограничений: невозможность передачи функциям массивов переменной длины, отсутствие нормальных средств работы с динамической памятью, ограниченная библиотека ввода-вывода, отсутствие средств для подключения функций написанных на других языках, отсутствие средств раздельной компиляции и т. п. Наиболее бросающийся в глаза недостаток синтаксиса — некритически заимствованная из Алгола структура управляющих конструкций (операторов if и циклов), требующая, как правило, постоянного использования составных операторов «begin — end». Полный разбор недостатков языка Паскаль был выполнен Брайаном Керниганом в статье «Почему Паскаль не является моим любимым языком программирования» (интересно, что эта статья вышла в начале 1980-х, когда уже существовал язык Модула-2, потомок Паскаля, избавленный от большинства его пороков). Некоторые недостатки Паскаля были исправлены в ISO-стандарте 1982 года, в частности, в языке появились открытые массивы, давшие возможность использовать одни и те же процедуры для обработки одномерных массивов различных размеров.
Необходимо заметить, что многие недостатки языка не проявляются или даже становятся достоинствами при обучении программированию. Кроме того, по сравнению с основным языком программирования в академической среде 70-х (которым был Фортран, обладавший гораздо более существенными недостатками), Паскаль представлял собой значительный шаг вперёд. В начале 1980-х годов в СССР для обучения школьников основам информатики и вычислительной техники академик А. П. Ершов разработал алголо-паскалеподобный «алгоритмический язык».
Никлаус Вирт понимал недостатки созданного им языка, но, следуя традициям академической среды и собственным принципам, согласно которым «неподходящий инструмент надо не исправлять, а заменять», не стал его развивать дальше, а разработал новые языки семейства: Модула-2 и Оберон. В противоположность этому промышленные традиции и достоинства языка побудили многие коммерческие и некоммерческие организации продолжать разрабатывать и развивать системы программирования именно на основе языка Паскаль, подвергая язык произвольному расширению, добавляя в него, часто совершенно механически, новые средства и синтаксические конструкции.
Наиболее известной реализацией Паскаля является система Turbo Pascal (выросшая затем в Borland Pascal и далее в Delphi) фирмы Borland, в которой язык был значительно расширен, были устранены некоторые недостатки языка, добавлены новые возможности. Язык стал богаче, но в отсутствие отраслевой стандартизации, потерял переносимость и общность (до появления в 1998 году Kylix — Delphi для Linux, продукты Borland работали только на платформе DOS/Windows, в настоящее время Kylix фактически заморожена).
Важным шагом в развитии языка является появление свободного языка Паскаль GNU Pascal, который не только вобрал в себя черты других Паскалей, но и обеспечил чрезвычайно широкую переносимость написанных на нем программ (более 20 различных платформ, под более чем 10 различными операционными системами).
В настоящий момент пользуются популярностью такие версии языка как TMT Pascal, Free Pascal и GNU Pascal. Продолжает использоваться и Borland Pascal.
В 1986 году фирма Apple разработала объектное расширение языка Паскаль, получив в результате Object Pascal. В 1989 году аналогичные объектные средства были добавлены фирмой Borland в систему Turbo Pascal (языковые различия между объектным Turbo Pascal 5.5 и Object Pascal от Apple крайне незначительны). Последующие версии Turbo Pascal, который стал затем называться Borland Pascal, дополняли объектное расширение новыми средствами, этот процесс продолжился и в ходе развития языка системы Delphi. Название языка менялось: от Pascal, через Object Pascal for Delphi, в литературе встречалось название Delphi Pascal, в последних версиях Delphi язык именуется так же, как и сама система (любопытный момент: в Delphi 7 пункт системного меню, запускающий справку по языку, как и в более ранних версиях, называется «Object Pascal Reference», а сам запускаемый им модуль помощи имеет заголовок «Delphi Language Manual», в тексте язык также везде называется «Delphi»). 1 февраля 2008 года Borland/CodeGear анонсировала поставку своей среды разработки приблизительно на миллион компьютеров в российских школах и ВУЗах.
Кроме того, разрабатывается система программирования PascalABC.NET, ориентированная на обучение современному программированию. PascalABC — реализация обычного паскаля, разработан для обучения программированию. PascalABC.net — аналог PascalABC, с возможностью создавать exe файлы.
При разработке программы использовались следующие конструкции языка приведены ниже:
Условие:
if условие then begin

end
else
begin
-  цикл, с постоянным вхождением в цикл:
for переменная := 1 to n do оператор;

end;
А так же конструкции вывода и чтения данных:
-                          writeln(‘информация’); // вывод данных
-                          readln(переменная); // чтение данных
-                          цикл с предусловием:
while (условие) do
  begin
    . . .
    оператор;
    . . .
  end;
-                          оператор выбора условию равенств значения переменной:
case переменная of
  значение 1: оператор;
  значение 2: оператор;
  . . .
  значение n: оператор;
При создание курсовой работы так же пользовалась функциями библиотеки crt:
-                          перемещение курсора в точку (x,y) - gotoxy(координата x, координата y);
-                          очистка экрана - clrscr;
А так же стандартными функциями:
-                          закрытие файла – close(«имя_файла»);
-                          расчет по модулю - abs (‘выражение’);
-                          подключение файла - assign(файловая переменная, ‘путь_к_файлу’);
-                          открытие файла для перезаписи - rewrite(файловая переменная).

2. Алгоритм задачи

2.1 Блок-схема алгоритма подпрограммы Forma1

Данная подпрограмма включает в себя подпрограмму Frame.
нет
X: =X1+1
Вывод c2
X > X2-1
Начало
C1=chr(218)
C4=chr(179)
C3=chr(191)
1
C5=chr(192)
C6=chr(217)
Переход на (x1, y1)
Вывод
с1
C2=chr(196)
X: =X1+1
 

нет
нет
Вывод c3
1
Y: =Y1+1
Переход на (X1,Y)
Вывод

 c4

Y > Y2 - 1
Переход на (X2,Y)
X= x1+1
Вывод
 с5
Переход на (x1, y2)
Вывод
 c4
Вывод
 C6
X= x1+1
x > x2 - 1
2

Х1= 4
Х2= 77
Y1= 4
Y2= 47
Frame
Переход на (12, 7)
Вывод сообщения
Переход на (45, 37)
Переход на (17, 23)
Вывод сообщения
Переход на (19, 22)
Вывод сообщения
Переход на (33, 21)
Вывод сообщения
Переход на (27, 8)
Вывод сообщения
32
Вывод сообщения
Очистка экрана
232

 

32
Конец
Переход на (45, 41)
Вывод сообщения
Переход на (45, 42)
Вывод сообщения
Переход на (45, 40)
Вывод сообщения
Переход на (45, 39)
Вывод сообщения
Переход на (45, 38)
Вывод сообщения
 



2.2 Блок-схема алгоритма подпрограммы Menu

Начало
X1:=4
Установка цвета фона
Установка цвета текста
Очистка экрана
X2:=76
C1=chr(205)
Y2=21
Y1=4
C4=chr(186)
C3=chr(187)
C2=chr(201)
1
 

yf:=yf+1
C5=chr(200)
   1
C6=chr(188)
yf:=10
yf:=yf+1
Вывод сообщения на экран
Переход на (23,yf)
yf:=Yf+1
Вывод сообщения на экран
Переход на (23,yf)
Переход на (23,yf)
Вывод сообщения на экран
2

 

yf:=yf+1
Переход на (23,yf)
yf:=yf+1
Вывод сообщения на экран
Переход на (23,yf)
yf:=yf+1
Вывод сообщения на экран
Переход на (23,yf)
Вывод сообщения на экран
2
Переход на (23,yf)
Вывод сообщения на экран
Конец
yf:=yf+19
Переход на (23,yf)
 



2.3 Блок-схема алгоритма подпрограммы V_kor

Вывод сообщения
Начало
Очистка
Экрана
Конец
Ввод координат
Вывод сообщения
Ввод координат
Вывод сообщения
Ввод координат
 

2.3 Блок-схема алгоритма подпрограммы Zad_1

Данная подпрограмма включает в себя следующие подпрограммы: V_kor, Print, Screen, Menus описание которых приведено выше

Закрытие файла
Конец
Начало
Очистка
Экрана
Объявление файла
Открытие файла на перезапись
Ввод S
Вывод на печать
 


Рисунок 1  - Блок-схема алгоритма подпрограммы Print
В подпрограмме выполняется сначала открытие файла для перезаписи, потом запись в нее результата и закрытие файла.
Вывод
S
Начало
Очистка
Экрана
Конец
 

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

В  подпрограмме выполняется сначала очистка экрана, а затем результат.
Начало
Очистка
Экрана
Вывод
Сообщения
Конец
 

Рисунок 3 - Блок-схема алгоритма подпрограммы menus
В подпрограмме выводится меню для выбора куда отправлять результаты – на экран или на принтер. Что бы сделать выбор необходимо ввести соответствующее значение.

2.5 Блок-схема алгоритма подпрограммы Zad_2
max[i]:=0
1
i:= 1 to n
x1:=4
y1 :=  y1+1
gotoxy(x,y)
a[i,k]
x1:=x1+8
k:= 1 to n
i:= 1 to n
Ввод данных
Начало
Очистка экрана
y1:=4
x1:=4
  gotoxy(x1,y1)
Вывод данных
x1:=4
y1 :=  y1+1
 


 

b[i,j]:=a[i,k]/max[k]
Вывод элементов матрицы B[I,k]
Конец

j:= 1 to n
i:= 1 to n
gotoxy(x1,y1)
x:=4
y1:=y1+1
abs(A[i,k] )>max[k]
max[k]:=abs(A[i,k])
k:= 1 to n
1
k:= 1 to n
Вывод элементов матрицы B[i,k]
 
В этой подпрограмме выполняется сначала ввод элементов матрицы, затем расчет первой нормы и уже потом вывод новой матрицы на экран.

2.6 Блок-схема алгоритма программы Prog_1
начало
Forma1
Очистка экрана
Second:=0
menu
Ввод Secondd
Sec=1
Zad_1
Sec=2
Zad_2
exit
Sec<>3
конец
нет
нет
Данная программа включает в себя следующие подпрограммы: Forma1, Menu, Zad_1, Zad_2 приведённые ниже.

3. Описание
Созданная программа – Prog_1 состоит из двух основных подпрограмм, входящих в тело программы: Forma1, Menu.
Подпрограмма Formal выводит на экран монитора данные о курсовой работе:
СЕВЕРОКАВКАЗСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
ФИЛИАЛ В ГОРОДЕ КИСЛОВОДСКЕ
КУРСОВАЯ РАБОТА
по дисциплине  информатика и программирование на тему создание прикладного программного обеспечения в среде программирования
Turbo Pascal
Работу выполнил:  студент
_____курса группы _______
                                                                                              ФИО____________________
Работу проверил:
__________________________
При нажатии Enter управление передается подпрограмме Menu, которая выводит на экран монитора меню заданий, с предложением ввода номера одного из подпунктов для выполнения соответствующего задания. Интерфейс данной подпрограммы следующий:
1.     “ Рассчитать длину средней линии трапеции ”.
2.     “Пронумеровать матрицу по ее второй норме”.
3.     “Выход”.
Введите номер задания для выполнения  (1- 3).
Далее в соответствии с выбранным номером пункта управление передается Программе Prog_1, на вход которой поступает номер пункта меню. Происходит анализ соответствия номера пункта меню в списке предлагаемых (1, 2, 3), в случае несоответствия выводится надпись, управление передается подпрограмме Menu, в цикле будут повторяться данные действия до правильного ввода цифры пункта меню. В случае правильного набора номера пункта программа Prog_1 передаст управление соответственно одной из подпрограмм: Zad_1, Zad_2, или будет произведен выход из программного продукта в случае выбора номера варианта 3. После выполнения выбранной подпрограммы управление вновь передается подпрограмме Menu, для возможности выполнения любого из пунктов меню.

3.1 Рассчитать длину средней линии трапеции.

Фо́рмула Геро́на позволяет вычислить площадь треугольника (S) по его сторонам a, b, c:

аналогично вычисляются и остальные стороны.
S=\sqrt{p(p-a)(p-b)(p-c)},
где р — полупериметр треугольника: p = \frac{a + b + c}2.
Треугольник однозначно можно определить по следующим тройкам основных элементов:
-                      a, b, c (равенство по трём сторонам);
-                      a, b, γ (равенство по двум сторонам и углу между ними);
-                      a, β, γ (равенство по стороне и двум прилежащим углам).
В данном примере доказательство основывается на соотношении сторон, если выполняются все следующие условия:
-                      a < b + c;
-                      b < c + a;
-                      c < a + b.

3.2 Нормальная матрица

 Матрица — математический объект, записываемый в виде прямоугольной таблицы чисел (или элементов кольца) и допускающий алгебраические операции (сложение, вычитание, умножение и др.) между ним и другими подобными объектами. Правила выполнения операций над матрицами сделаны такими, чтобы было удобно записывать системы линейных уравнений. Обычно матрицу обозначают Заглавной буквой латинского алфавита и выделяют круглыми скобками «(…)» (встречается также выделение квадратными скобками «[…]», двойными прямыми линиями «||…||») А числа, составляющие матрицу (элементы матрицы), обозначают той же буквой, что и саму матрицу, но маленькой. у каждого элемента матрицы есть 2 нижних индекса (aij) — первый «i» обозначает номер строки, в которой находится элемент, а второй «j» — номер столбца.


Вектор — упорядоченное множество (последовательность, одномерный массив, кортеж, перечень, список) однородных элементов. Это наиболее общее определение в том смысле, что может быть не задано обычных векторных операций вообще, их может быть меньше, или они могут не удовлетворять обычным аксиомам линейного пространства. Нормой квадратной матрицы A называется функционал, обозначаемый $\Vert A\Vert$, удовлетворяющий условиям:
-                          $\Vert A\Vert = 0\Leftrightarrow A=0,\Vert A\Vert\geq 0;$
-                          $\Vert aA\Vert = \vert a\vert\Vert A\Vert, a$-- произвольное число;
-                          $\Vert A+B\Vert\leq \Vert A\Vert+\Vert B\Vert$;
-                          $\Vert AB\Vert\leq\Vert A\Vert\Vert B\Vert.$
Норма матрицы $\Vert A\Vert _M$согласована с нормой вектора $\Vert x\Vert _B$,если для любых x и A

Функционал $\sup_{x\neq 0}\Vert Ax\Vert _B/\Vert x\Vert _B$является нормой матрицы A и называется нормой матрицы А, подчиненной норме вектора $\Vert x\Vert _B$.

4. Результаты

4.1 Интерфейс подпрограммы Zad_1

На рисунке 1 изображено окно ввода координат точек А, В, С ,D трапеции. Для каждой точки нужно ввести координаты х, у.
На рисунке 2 изображен диалог выбора: выводить результат – на принтер или на экран. Чтобы вывести на принтер нажмите 1, а для того чтобы на экран 2.

Рисунок 2 – Диалог печати
На рисунке 3 изображен вывод результата на экран. Мы видим в диалоговом окне чему равна площадь треугольника.

Рисунок 3 – Вывод результата

4.2 Интерфейс подпрограммы Zad_2

На рисунке  4 отображено главное окно задания 2, в котором сначала производился ввод элементов массива, а затем уже вывод нового массива.

Рисунок 4 – Вывод результатов

5. Проверка

Проверим ход решения в электронных таблицах Ms Excel.

Когда мы производим нормирование матрицы мы находим абсолютное значение от каждого элемента матрицы. Далее мы находим максимальное значение каждого столбца матрицы. А затем уже выводим результирующую матрицу B = (bik), где bik = aii /  ½½A½½1.

Заключение
Работа выполнена на языке Turbo Pascal фирмы Borland, прочно вошедшем в мир программирования в 1983 году и до сих пор являющимся удобным языком программирования для начинающих программистов, а также просто хорошим языком программирования, к которому обращаются как прикладные программисты, так и системные.
При разработке программного обеспечения производил вычисления и обработку данных, была разработана подпрограмма с использование графического режима экрана, использовались звуковые сигналы при ошибочном вводе данных, программный продукт написан в стиле структурного программирования. Все это характеризует то, что использовались возможности языка программирования Turbo Pascal для написания этого программного продукта.
При разработке курсовой работы был приобретен опыт работы с языком программирования, изучен синтаксис данного языка, основные конструкции, его семантика.
Работа с данным языком помогла приобрести навыки программирования.

Список использованной литературы
1.                Вирт Никлаус Алгоритмы+структуры данных= программы. — М.: «Мир», 1985.
2.                Грогоно Питер Программирование на языке Паскаль. — М.: «Мир», 1982.
3.                Йенсен К., Вирт Н. Паскаль. Руководство для пользователя и описание языка. — М.: «Финансы и статистика», 1982.
4.                Культин Н.Б. Delphi 6. Программирование на Object Pascal. — СПб.: «БХВ-Петербург», 2001. — С. 528. — ISBN 5-94157-112-7.
5.                Моргун Александр Николаевич Программирование на языке Паскаль (Pascal). Основы обработки структур данных. — М.: «Диалектика», 2005. — С. 576. — ISBN 5-8459-0935-X.
6.                Перминов Олег Николаевич Язык программирования Паскаль : Справочник. — М.: «Радио и связь», 1989. — С. 128. — ISBN 5-256-00311-9.

Приложение

Program kursovay;
uses crt;                     {Подключение библиотеки}
var                                {Блок объявления переменных}
   second:integer;            {Переменная для вывода меню}
   c1,c2,c3,c4,c5,c6:char;        {Переменные для вывода рамки}
   x1,x2,y1,y2,yf:integer;        {Координаты для вывода сообщений}
   Xa,Ya,Xb,Yb,Xc,Yc:integer;     {Координаты для вывода сообщений}
  ax,ay,az,bx,by,bz,cx,cy,cz:real; {Переменные для расчета сторон треугольн.}
Procedure Forma1;                          {Процедура Forma1}
var x1,x2,y1,y2:integer;
procedure Frame (x1,x2,y1,y2:integer); {Процедура Frame}
var
    x,y:integer;
    c1,c2,c3,c4,c5,c6:char;
begin                             {Операторы присвоения}
    c1:=chr(218);
    c2:=chr(196);
    c3:=chr(191);
    c4:=chr(179);
    c5:=chr(192);
    c6:=chr(217);
    gotoxy(x1,y1);                     {Установка экрана на позицию x1,y1}               
    write(c1);
    for x:=x1+1 to x2-1 do write (c2);  {Оператор цикла}
    write (c3);                         {Оператор вывода переменной с3}
    for y:=y1+1 to y2-1 do
        begin
            gotoxy (x1,y);              {Прочерчивание горизонтальной линии}
            write (c4);                 {Оператор вывода переменной с4}                
            gotoxy (x2,y);
            write (c4);
        end;
            gotoxy (x1,y2);
            write (c5);
        for x:=x1+1 to x2-1 do write (c2);
            write(c6);
end;
         begin
              clrscr;                  {Очистка экрана}
              x1:=4; x2:=76;
              y1:=4; y2:=23;
              frame (x1,x2,y1,y2);
               gotoxy (12,7);
              write (‘Название своего универа ');
               gotoxy (27,8);
              write ('ФИЛИАЛ ______________);
               gotoxy (33,10);
              write ('КУРСОВАЯ РАБОТА');
               gotoxy (19,11);
              write ('по дисциплине информатика и программирование');
               gotoxy (17,12);
              write ('на тему создание прикладного программного обеспечения');
               gotoxy (22,13);
              write ('в среде программирования Turbo Pascal');
               gotoxy (45,15);
          write ('Работу выполнила: студентка');
           gotoxy (45,16);
              write (‘_____ курса группы ______');
               gotoxy (45,17);
              write (‘ФИО);
               gotoxy (45,18);
              write ('Работу проверил: ');
               gotoxy (45,19);
              write ('преподаватель кафедры ПИ');
               gotoxy (45,20);
              write (ФИО препода.');
              readkey;
end;
{Процедура экранная форма меню}
procedure Menu;
begin
     TextBackGround(white); {тут можешь менять цвета}
     TextColor(black);
     Clrscr;
     x1:=4;
     x2:=76;
     y1:=4;
     y2:=21;
     c1:=chr(205);
     c2:=chr(201);
     c3:=chr(187);
     c4:=chr(186);
     c5:=chr(200);
     c6:=chr(188);
     yf:=10;
     gotoxy(23,yf);
     writeln('1. " Рассчитать длину средней линии трапеции "');
     yf:=yf+1;
     gotoxy(23,yf);
     writeln('2. "Пронумеровать матрицу по её второй норме"');
     yf:=yf+1;
     gotoxy(23,yf);
     writeln('3. "Выход"');
     yf:=yf+1;
     gotoxy(23,yf);
     gotoxy(23,yf);
     writeln;
     yf:=yf+1;
     gotoxy(23,yf);
     writeln('Введите номер задания для выполнения (1-3)');
     yf:=yf+19;
     gotoxy(23,yf);
     writeln;
end;
{*************1 zadanie********************}
procedure zadanie1;
label1;
var
   x1,x2,x3,x4:integer;
   y1,y2,y3,y4:integer;
   q:array[1..4] of integer;
   k:array[1..4] of integer;
   l:array[1..4] of integer;
   z,a,i:integer;
   Dlin1,Dlin2,Dlin3:real;
Begin
     1:;
     ClrScr;
Writeln(‘Введите координаты точки A(x,y)’);
Readln(x1,y1);
Writeln(‘Введите координаты точки b(x,y’);
Readln)x2,y2);
Writeln(‘Введите координаты точки C(x,y)’);
Readln(x3,y3);
Writeln(‘Введите координаты точки D(x,y)’);
Readln(x4,y4);
K[1]:=x2-x1;
K[2]:=x3-x2;
K[3]:=x4-x3;
K[4]:=x1-x4;
L[1]:=y2-y1;
L[2]:=y3-y2;
L[3]:=y4-y3;
L[4]:=y1-y4;
Z:=0;
A:=0;
For i:=1 to 4 do
Begin
     If k[i]=0 then
     Z:=z+1;
End;
If z>2 then
Begin
     Writeln(‘неправильно заданы координаты’);
     Goto 1;
End;
For i:=1 to 4 do
Begin
     If l[i]=0 then
     a:=a+1;
end;
if a>2 then
begin
     writeln(‘неправильно заданы координаты’);
     Goto 1;
End;
q[1]:=k[1]*l[3];
q[2]:=k3*l[1];
q[3]:=k[2]*l[4];
q[4]:=k[4]*l[2];
if q[1]=q[2] then
begin
     if q[3]=q[4] then
     begin
     writeln(‘неправильно введены координаты!’);
     readln;
     Goto 1;
     End
     Else
     Writeln(‘координаты введены правильно!’);
End
Else
Begin
     If q[3]=q[4] then
     Writeln(‘неправильно введены координаты!’);
     Readln;
     Goto 1;
   End;
End;
    Dlin1:=abs(sqrt(sqr(x2-x1)+sqr(y2-y1)));
    Dlin2:=abs)sqrt(sqr(x3-x4)+sqr(y3-y4)));
    Dlin3:=(dlin1+dlin2)/2;
    Writeln(‘Длинна средней линии трапеции ABCD=’,dlin3:10:2);
end;
 
  
{END OF ZADANIE1*******************************************}
{2 zadanie***********************************************}
{Процедура задания №2}
procedure Zadanie2;
const
      n=5;
var
   i,k,x1,y1:integer;
   Max:array [1..n] of real;
   A:array [1..n,1..n] of real;
   B:array [1..n,1..n] of real;
begin
clrscr;
       x1:=4;
       y1:=4;
       writeln ('Vvod dannix' );
       for i:=1 to n do
       begin
            for k:=1 to n do
            begin
                 Gotoxy(x1,y1);
                 readln(a[i,k]);
                 x1:=x1+8;
            end;
            x1:=4;
            y1:=y1+1;
       end;
       Gotoxy(x1,y1);
       writeln ('Vivod dannix');
       x1:=4;
       y1:=y1+2;
   for i:=1 to n do max[i]:=0;
        for k:=1 to n do
        for i:=1 to n do
        if abs(a[i,k])>max[k] then
             max[j]:=abs(a[i,k]);
        Gotoxy(x1,y1);
        writeln('Vvivod matrichi B[i,k]');
        x1:=4;
        y1:=y1+1;
   for i:=1 to n do
   begin
   writeln;
        for k:=1 to n do
        begin
         b[i,k]:=a[i,k]/max[k];
             write (B[i,k]:5:2);
        end;
   end;
readkey;
end;
{END OF ZADAN2*******************************************}
begin
     Forma1;
     clrscr;
     second:=0;
     while second <> 3 do
     begin
          Menu;
          readln(second);
          case second of
               1: zadanie1;
               2: zadanie2;
               3: exit;
          end;
     end;
end.

1. Реферат Сочетание и пути совершенствования организации собственного капитала в ОАО УСМАНЬ-ТАБАК Усманс
2. Реферат Токсичные газы
3. Сочинение на тему Чехов а. п. - Символ вишневого сада в пьесе чехова
4. Сочинение на тему Философский роман М Ю Лермонтова Герой нашего времени
5. Реферат Світовий ринок металу стан та перспективи для України
6. Реферат на тему Reverend Dimmesdale Essay Research Paper
7. Реферат на тему Pop Essay Research Paper justify their beliefsthrough
8. Реферат на тему Внутреннее устройство вестготского королевства в 418 - 507 гг
9. Реферат на тему Sociopolitical Philosophy In The Works Of Stoker
10. Кодекс и Законы Бандитизм 3