Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ministerstvo_osviti_i_nauki_Ukrayini222.doc
Скачиваний:
6
Добавлен:
14.11.2019
Размер:
289.79 Кб
Скачать

Міністерство освіти і науки України

Національний технічний інститут України

«Київський політехнічний інститут»

Кафедра прикладної математики

Лабораторна робота №2

з дисципліни «Мови програмування»

Виконав:

Студент групи КМ-21 Бовтрюк Сергій Андрійович ___________

(підпис)

Перевірив:

Викладач Громова В.В Бали _________ ___________

(підпис)

Київ-2012

ЗМІСТ

1. ТЕОРИТИЧНІ ВІДОМОСТІ 6

1.1 Тема роботи: Розробка програми з диференційованою структурою. 6

1.2 Мета роботи: Набуття навичок по роботі з інтегрованим середовищем розробки Turbo Pascal. Вивчення принципів розроблення програм диференційованої структури з використанням оператора IF. Отримання навичок користування внутрішнім відладчиком. 6

1.3 Обладнання: ПК (операційна система Windows 7), Turbo Pascal v.7.1. 6

1.4 Завдання на лабораторну роботу: 6

Варіант № 1 6

1.5 Вимоги до програми: 6

1.6 Опис програми: 6

1.7 Склад і структура даних: 6

3. ВИСНОВКИ 9

4. ДОДАТКИ 10

a) Схема алгоритму програми: 10

b) Текст (код) програми: 11

program CountQube; 11

uses crt; 11

{-------------------------------------------------} 11

function menu(var code:real):byte;{Value function} 11

begin 11

if code=1 then menu:=1 11

else 11

if code=2 then menu:=2 11

else 11

menu:=3 11

end; 11

{-------------------------------------------------} 11

function ZeroTruble(side:real):real; {Debuger function} 11

var sideReal:real; 11

codeNum:integer; 11

sideString:string[20]; 11

begin 11

if side<=0 then 11

begin 11

str(side,sideString); 11

clrscr; 11

textcolor(4); 11

writeln('PROHIBITED!'); 11

textcolor(0); 11

writeln('+--------------------------------------------------+'); 11

writeln('| |'); 11

writeln('| Print new value of the side or print 0 to exit |'); 11

writeln('| |'); 11

writeln('+--------------------------------------------------+'); 11

textcolor(4); 11

writeln('ATTENTION: if you will print something <=0 program will stop'); 11

textcolor(0); 11

writeln('----------------------------------------------------'); 11

repeat 11

readln(sideString); 11

val(sideString,sideReal,codeNum); 11

textcolor(4); 11

if codeNum<>0 then writeln('Print NUMBER!'); 11

textcolor(0); 11

if sideReal<=0 then 11

begin 11

halt(0); 11

end 11

until codeNum=0; 11

end 11

else 11

begin 11

ZeroTruble:=side; 11

end; 11

end; 11

{--------------------------------------------------------------------} 11

var codeReal,res,sideOneNum,sideTwoNum,sideThreeNum,printNowReal:real; 11

codeNum:integer; 11

sideOne,sideTwo,sideThree,code,printNow:string[20]; 11

BEGIN 11

while TRUE do {place it into WHILE to prohibit SHUTTING DOWN when finished} 11

begin 11

{Starting user menu} 11

TextBackGround(15); 11

textcolor(0); 11

clrscr; 11

{Navigation menu} 11

writeln(' __________________________________________________________________'); 11

writeln(' | Lab. Work 1 |'); 11

writeln(' | |'); 11

writeln(' | THEME: developing programm wuth linear alhoritm. |'); 11

writeln(' | |'); 11

writeln(' | VARIANT: 1 |'); 11

writeln(' | |'); 11

writeln(' | GROUP: KM-21 |'); 11

writeln(' | |'); 11

writeln(' | AUTHOR: Serghij Bovtriuk |'); 11

writeln(' |------------------------------------------------------------------|'); 11

textcolor(1); 11

writeln(' | |'); 11

writeln(' | Press 1 and click ENTER to exit |'); 11

writeln(' | Press 2 and click ENTER to watch the text of the sum |'); 11

writeln(' | Press any other number and click ENTER to run program |'); 12

writeln(' | |'); 12

textcolor(4); 12

writeln(' | ATTENTION: if you will press any other key it will close program |'); 12

textcolor(0); 12

writeln(' +------------------------------------------------------------------+'); 12

{Enter the menu code} 12

repeat 12

readln(code); 12

val(code,codeReal,codeNum); 12

textcolor(4); 12

if codeNum<>0 then writeln('Print NUMBER!'); 12

textcolor(0); 12

until codeNum=0; 12

codeReal:=menu(codeReal); 12

{Call the function} 12

if codeReal=1 then halt(0); {close} 12

if codeReal=2 then {programm text} 12

begin 12

writeln('+-------------------------------------------------------------+'); 12

writeln('|The text of programm |'); 12

writeln('+-------------------------------------------------------------+'); 12

writeln('Print any key and press ENTER to go to menu, print 1 to exit'); 12

repeat 12

readln(printNow); 12

val(printNow,printNowReal,CodeNum); 12

textcolor(4); 12

if codeNum<>0 then writeln('Print NUMBER!'); 12

textcolor(0); 12

if printNowReal=1 then 12

begin 12

halt(0); 12

end; 12

until codeNum=0; 12

end; 12

if codeReal=3 then {call programm} 12

begin 12

writeln('+--------------------------------------------+'); 12

textcolor(4); 12

writeln('|ATTENTION: you are able to insert numbers>0 |'); 12

textcolor(0); 12

writeln('+--------------------------------------------+'); 12

writeln('Enter first side of the paralelogram:');{first side} 12

repeat 12

readln(sideOne); 12

val(sideOne,sideOneNum,codeNum); 12

textcolor(4); 12

if codeNum<>0 then writeln('Print NUMBER!'); 12

textcolor(0); 12

sideOneNum:=ZeroTruble(sideOneNum); 12

until codeNum=0; 12

writeln('Enter second side of the paralelogram:');{second side} 12

repeat 12

readln(sideTwo); 12

val(sideTwo,sideTwoNum,codeNum); 12

textcolor(4); 12

if codeNum<>0 then writeln('Print NUMBER!'); 12

textcolor(0); 12

sideTwoNum:=ZeroTruble(sideTwoNum); 12

until codeNum=0; 12

writeln('Enter third side of the paralelogram:');{third side} 12

repeat 12

readln(sideThree); 12

val(sideThree,sideThreeNum,codeNum); 12

textcolor(4); 12

if codeNum<>0 then writeln('Print NUMBER!'); 12

textcolor(0); 12

sideThreeNum:=ZeroTruble(sideThreeNum); 12

until codeNum=0; 12

{start count} 12

res:=sideOneNum*sideTwoNum*sideThreeNum; 12

textcolor(5); 12

writeln('The square of the paralelogram = ',res:4:2); 12

textcolor(0); 12

if sideOneNum=sideTwoNum then 12

begin 12

if sideThreeNum=sideOneNum then 12

begin 12

writeln('its a cube'); 12

end 13

else 13

begin 13

writeln('ITS NOT A CUBE'); 13

end; 13

end 13

else 13

begin 13

writeln('ITS NOT A CUBE'); 13

end; 13

writeln('Print any key and press ENTER to go to menu, print 1 to exit'); 13

repeat 13

readln(printNow); 13

val(printNow,printNowReal,CodeNum); 13

textcolor(4); 13

if codeNum<>0 then writeln('Print NUMBER!'); 13

textcolor(0); 13

until codeNum=0; 13

if printNowReal=1 then break 13

else continue; 13

end; 13

end; {end of WHILE} 13

END. 13

c) Вхідні дані та результати роботи програми: 14

Лабораторна робота №2

1. ТЕОРИТИЧНІ ВІДОМОСТІ

1.1 Тема роботи: Розробка програми з диференційованою структурою.

1.2 Мета роботи: Набуття навичок по роботі з інтегрованим середовищем розробки Turbo Pascal. Вивчення принципів розроблення програм диференційованої структури з використанням оператора IF. Отримання навичок користування внутрішнім відладчиком.

1.3 Обладнання: ПК (операційна система Windows 7), Turbo Pascal v.7.1.

1.4 Завдання на лабораторну роботу:

  1. Вивчити основні можливості інтегрованого середовища розробки (ІСР) Turbo Pascal для підготовки тексту програми і запуску її на виконання;

  2. Вивчитити та навчитися практично використовувати оператори IF, GOTO;

  3. Розробити диференційовану програму відповідно до завдання варіанту.

Варіант № 1

Обчислити обєм паралелепіпеда за 3 сторонами, ви значити чи є він кубом та вивести а екран інформацію з цього приводу.

1.5 Вимоги до програми:

Програма повинна:

  • виводити на екран інформацію про роботу

  • надавати користувачу право вибору

  • виконувати задану програму

  • виводити результат на екран монітору

  • пропонувати користувачу або продовжити дії, або вийти з програми

1.6 Опис програми:

Після запуску програма виводить на екран меню, з інформацією про програму, програміста та вказівками, що робити далі. При виборі 1 пункту меню програма завершить виконання. При виборі 2 пункту можна буде продивитися текст завдання. При виборі 3 пункту меню програма почне виконання. Треба буде ввести 3 сторони паралелограма. Всі вхідні данні контролюються. Після введення, програма виведе об’єм паралелепіпеда й покаже, чи є задане тіло кубом. Після виконання, вас повертає до головного меню.

1.7 Склад і структура даних:

  • codeReal – тип Real; код номеру вибору меню після трансформації

  • res – тип Real; змінна й результату

  • sideOneNum, sideTwoNum, sideThreeNum – тип Real; результати сторін паралелепіпеда після трансформації

  • printNowReal – тип Real; визначення коду помилок після трансформації

  • codeNum – тип Integer; Внутрішній аналізатор коду помилки

  • sideOne, sideTwo, sideThree – тип String; початкові значення сторін паралелепіпеда до трансформації

  • code – тип String; код номеру вибору меню до трансформації

  • printNow – тип String; визначення коду помилок до трансформації

2. Контрольні питання

  1. Призначення, форма запису та порядок виконання оператору IF?

  • Розгалуження програми

  • If (условие) then

Begin

(тело);

End;

2. Особливості використання вкладених уловних змінних?

  • Їх не потрібно задавати в var;

  • Вони працюють лише у своїй функції/операторі;

  1. Які відмінності оператора вибору CASE від IF?

    • Оператор CASE використовується якщо задана змінна певного порядкового типу і на кожне її значення програма повинна відреагувати індивідуально;

  2. Які правила повинні використовуватися при використанні оператора CASE?

  • Логіка виконання CASE така: - Спочатку програма визначає змінну чи вираз порядкового типу

  • Далі шукаємо константу, яка співпадає з вказаним значенням, після чого виконується програма, розташована після знаку ‘:’

  • Якщо програма не може знайти константу, вона виконує оператор із альтернативної вітві, розташованої після оператору ELSE(він не є обов’язковим і використовується за бажанням і необхідністю)

  1. Для чого потрібна відладка програми?

  • Для пошуку і виправлення помилок, щоб програма працювала коректно

  1. Як виконувати пошаговий запуск програми?

  • Меню Паскаля RUN Step over ...

  • Меню Паскаля RUN Trace into ...

  • Гаряча клавіша F8

  • Гаряча клавіша F7

  1. Як встановити і як видалити точки зупину?

  • Меню паскаля DEBUG  Breakpoints…

  • Користуючись меню Breakpoints встановлювати й видаляти точки зупину

  1. Як виконати програму до курсору?

  • Меню паскаля RUN  Go to cursor…

  • Гаряча клавіша F4

  1. Як відкрити вікно WATCH?

  • Меню паскаля Debug  Watch

  1. Як внести змінну в WATCH?

  • Встановити курсор на змінну, нажати Debug  Add watch…Вона буде додана до екрану watch.

  • нажати Debug  Add watch, внести свою змінну. Вона з’явиться додана до екрану watch.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]