Програми в середовищі Turbo Pascal

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
Північно-Кавказький державний технічний університет

Філія в м. Кисловодську

Кафедра ________________________________________________________________
ЗАТВЕРДЖУЮ
Зав. кафедрою
_______________________
підпис, ініціали, прізвище
«___» ______________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 = (b ik), де b ik = a ii / ½ ½ 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.
Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Курсова
82кб. | скачати


Схожі роботи:
Розробка в середовищі Turbo Pascal програми сортування елементів рядків матриці
Розробка програм у середовищі програмування Turbo Pascal 7 0
Обробка масивів даних у середовищі Turbo Pascal
Розробка програм у середовищі програмування Turbo Pascal 70
Написання програми телеграф на Turbo Pascal
Створення довідника Парфумерний магазин за допомогою програми Turbo Pascal
Основні відомості про алгоритмічну мову Turbo Pascal Графіка Pascal
Turbo Pascal
Оператори Turbo Pascal 7
© Усі права захищені
написати до нас