русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Інтегроване середовище програмування.


Дата додавання: 2014-02-04; переглядів: 1645.


Begin

Begin

Рекурсія

Передача параметрів в Turbo Pascal

В Turbo Pascal реалізовано способи передачі параметрів:

1. Параметри - значення. При описі заголовків процедур/функцій перед ідентифікаторами параметрів-значень додаткові ключові слова не ставляться.

2. Параметри-змінні. При описі заголовків процедур/функцій перед ідентифікаторами параметр-змінних ставиться ключове слово var.

3. Параметри-константи. При описі заголовків процедур/функцій перед ідентифікаторами параметрів-констант ставиться ключове слово const.

Перших два різновиди параметрів (параметри-значення й параметри-змінні)є стандартними для всіх реалізацій і версій мови Pascal. Третій різновид (параметри-константи)є нововведенням мови Turbo Pascal версії 7.0.

Існують програми, в яких може бути процедура, що містить звернення до інших процедур. Звернення до інших функцій і процедур (як стандартним, так і створеним програмістом) можуть містити і функції. При цьому можливий і такий варіант, коли яка-небудь функція або процедура містить звернення до самої себе. Така функція або процедура називається рекурентною (від англійського слова «recurrence», що в перекладі означає повернення або повторення), а процес виклику функції або процедури з неї самої – рекурсією.

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

Як нескладний приклад, що наочно ілюструє процес рекурсії, розглянемо завдання обчислення цілого додатного степеня дійсного числа ().

program stepint;

usescrt;

var x, st:real; y:integer;

function rek (a:real; k:integer):real;

if k=1 then rek:=a

else rek:=rek(a, k-1)*a;

end;

 

clrscr;

writeln ('Vvedite chislo'); readln(x);

writeln ('Vvedite pokazatel stepeni'); readln(y);

st:=rek(x,y);

writeln ('Stepen chisla ravna ', st:1:3);

readln;

end.


У даній програмі в основній її частині проводиться тільки введення початкових даних (самого числа х і показника степеня у), виклик рекурсивної функції rek і виведення отриманого результату, а саме обчислення степеня проводиться у функції rek. Розберемо детальніше механізм дії даної функції.

Для цього потрібно відповісти на питання: чому дорівнює будь-яке число в першому степені. Відповідь очевидна – самому цьому числу. Це ми і запишемо на початку умовного оператора: для k=1 результат rek рівний початковому числу а. Для знаходження ж квадрата числа потрібне це число помножити саме на себе, для знаходження куба – квадрат числа помножити на це число і так далі. Таким чином, існує наступна закономірність: k степінь числа рівний цьому числу в степені k–1, помноженому на саме число:

Цю формулу запишемо в тій гілці умовного оператора, яка знаходиться після службового слова else.

Тепер розглянемо безпосередньо роботу функції. Дана функція має два формальні параметри а і k, яким відповідають в основній частині програми фактичні параметри х і у. Значенням функції є . Для обчислення значення функції rek з параметрами k і а викликається інший екземпляр тієї ж функції з параметрами k-1 і а (а залишається незмінним для всіх екземплярів функції), потім цей екземпляр викликає наступний з параметром k–2 і так далі, поки процес не доходить до звернення до екземпляра для k=1.

Значення функції для k=1 вже відоме, оскільки в цьому випадку воно рівне а. Це значення передається в екземпляр для k=2 і так далі, поки не визначається значення для k. Це останнє значення передається в основну частину програми для виведення на екран комп’ютера.

6. Алфавіт мови програмування.

  1. Лексеми: класифікація.
  2. Характеристика лексем.

 

Програми і мови програмування.

Що таке програма і коли з’явилося це поняття? Історія програм починається з далеких 20-х років XIX століття, коли англійський дослідник Ч. Беббідж висунув ідею про попередній запис дій обчислювальної машини.

Перші програми призначалися для керування ткацькими станками. Вони записувалися на перфокарти, які були придумані Ч. Беббіджем і французьким винахідником Ж. Жаккаром. З цих перших програм почалася історія програмування. Приблизно в цей же час закладалися теоретичні основи програмування. Разом з Ч. Беббіджем працювала його сучасниця Ада Лавлейс (дочка великого англійського поета Джорджа Байрона), яку називають першим у світі програмістом. Вона ввела в науку про програмування терміни і поняття, що застосовуються і донині. До таких понять відноситься, наприклад, цикл – найважливіша базова структура будь-якої сучасної мови програмування. На честь першої програмістки була названа мова програмування Ада, розроблена вже в наш час.

У ХХ столітті з’явилися цифрові комп’ютери. Перші програми, що складалися для них, записувалися в машинних кодах. Програміст, щоб написати правильну програму, повинен був у деталях уявляти собі роботу обчислювальної машини. Програма писалась у машинних кодах.

Означення Машинні коди – набір двійкових кодів для роботи центрального процесора конкретного типу.

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

Означення Мова програмування – це штучна мова для написання команд, виконуваних комп’ютером.

Мова програмування складається з:

ü фіксованого словника

ü сукупності правил (синтаксису) написання команд.

Оскільки мова програмування обчислювальній машині не зрозуміла, то повинна існувати спеціальна програма, яка б переводила символи цієї мови в двійкові символи машинних команд. Така програма для перекладу символів, або, простіше говорячи, транслятор (від англійського слова translation переклад), була створена на початку 50-х років 20 століття американською програмісткою і одночасно контр-адміралом морських сил США Грейс Хопер.

Означення Транслятор – це програма, що переводить команди мови програмування в машинні коди.

З винаходом трансляторів роль машинних команд у програмуванні стала різко зменшуватися. Перші транслятори призначалися для мов Асемблера (мов низького рівня).

У 50 - 60-і роки почали створюватися мови програмування високого рівня.

Відзначимо, що мови, близькі до числового коду процесора, називають мовами низького рівня, а мови, зручні для людини, – мовами високого рівня. Мова найнижчого рівня – мова машинного кодування. Трохи вище лежить мова Асемблера, у якій машинні команди заміняються мнемонічними скороченнями, це дозволяло за текстом програми швидше зрозуміти на змісто­вному рівні, яку саме послідовність дій описує складена програма. Мови Асемблерів, як і машинні коди, є машинно-залежними мовами. Всі інші мови програмування є мовами більш високого рівня, ніж мова Асемблера, так як вони близькі до розмовних мов, оскільки дають змогу записувати команди у вигляді речень. Приклади таких мов: Фортран, Бейсик, Паскаль, Сі (мови процедурного типу); Пролог (мова логічного програмування); Visual Basic, Delphi (середовища візуального програмування).

Програма мовою програмування записується в текстовому редакторі і називається вихідним кодом (текстом). Цей код складається зі спеціальних команд – операторів мови програмування. За допомогою перекладача-транслятора вихідний код програми перетворюється в машинний код. Тепер уточнимо поняття програми.

Означення Програма – це упорядкований список команд, написаних на мові програмування за її правилами і призначених для виконання на комп’ютері.

Сам процес складання програм називається програмуванням. Програмування в даний час виросло в самостійну наукову дисципліну, його в тій або іншій мірі вивчають у школах, коледжах, вузах.

Процес програмування не вичерпується лише самим написанням програми. Кожну програму потрібно:

ü відлагодити (виявити та виправити в ній синтаксичні та логічні помилки),

ü перевести в машинні коди (відтранслювати),

ü протестувати (виконати програму декілька разів, вводячи при цьому такі набори вхідних да­них, які дозволяють отримати різні варіанти відповідей),

ü зберегти програму у ви­гляді файлу для її подальшого використання.

Для автоматизації усіх цих етапів розробки програми використовують системи програмування.

У склад системи програмування входить:

ü ек­ранний (текстовий) редактор,

ü засоби налагодження та трансляції програми в машинні коди,

ü засоби запуску програм на виконання,

ü засоби запису програм на диски

ü ряд інших засобів для реалі­зації різних сервісних функцій.

Історія створення мови програмування PASCAL

Мова програмування PASCAL з’явилася, як «спадкоємець» найбільш популярної мови програмування АЛГОЛ. Дивний успіх АЛГОЛа в 1950-х - 1960-х роках породив великі надії на успішне рішення проблеми автоматизації програмування. Заслуга в розробці мови Pascal належить відомому Швейцарському математикові Ніклаусу Вірту, – професорові, директорові Інституту інформатики Швейцарської вищої політехнічної школи, Цюрих. Створена на початку 70-х років і названа на честь видатного французького математика і філософа Блеза Паскаля (1623–1662) – винахідника першої у світі механічної обчислювальної машини, спочатку призначалася винятково для навчання студентів методам програмування (розробки компіляторів). Незабаром мова Pascal завоювала небувалу популярність. Цьому сприяли її простота й зрозумілість, а також ефективність одержуваних з її допомогою кодів програм. У цей час Паскаль це мова для навчання програмуванню як систематичній дисципліні. А головне – ця мова дозволила реалізувати методи структурного й системного програмування (так зване, спадне програмування на основі методу покрокової деталізації й так далі). Поступово Pascal стали використовувати не тільки для навчання, але й для розробки програмних засобів у професійному програмуванні. У цей час Pascal давно вийшов з рангу кабінетної, навчальної мови. І знайшов своє гідне продовження, прекрасне розширення, як мова Object Pascal, як складова частина, ядро, реальна основа мови візуального програмування на DELPHI.


<== попередня лекція | наступна лекція ==>
Класифікація способів передачі параметрів | Переваги Pascal.


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн