рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Параметри

Параметри - раздел Философия, Алгоритмічна мова TURBO PASCAL Параметри Процедур Та Функцій Можуть Мати Довільний Тип, Включаючи Структуров...

Параметри процедур та функцій можуть мати довільний тип, включаючи структурований. Pascal використовує два різних види параметрів в процедурах і функціях: параметри-значення та параметри-змінні.

Коли параметри передаються як значення, він використовується в виді змінної, локальної в блоці, яким є процедура або функція. Для локальної змінної виділяється спеціальний фрагмент пам'яті, який має стекову організацію. При передачі в процедуру або функцію фактичні параметри копіюються в відповідні їм локальні змінні. Основною перевагою передачі параметрів-значень є те, що зміна значень формальних параметрів в процедурах та функціях не призводить до зміри відповідніх їм фактічних змінних в основній програмі.

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

Тип в секції формальних параметрів повинен бути або стандартним, або попередньо означеним.

Приклад:

Запис Procedure Ost(i: Array[1..12] of Real); – помилковий.

Правильний запис: Type MAS = Array[1..12] of Real;

Procedure Ost(i: MAS);

Ознакою того, що параметр передається як змінна, є наявність службового слова VAR перед ідентифікатором.

Приклад:

Type MAS = array[1..12] of real;

Procedure Ost(Var i: MAS);

 

9.1.4. Рекурсивні підпрограми

В тілі підпрограми допустимі всі об'єкти які описані в глобальному описовому блоці, зокрема і ім’я самої підпрограми. Таким чином, всередині тіла підпрограми можливий виклик самої підпрограми. Процедури і функції, що використовують виклик "самих себе", називаються рекурсивними. Допустима також непряма рекурсія, при яких, наприклад, процедура A викликає процедуру B, а та, в свою чергу викликає С, яка викликає A.

Рекурсія досить широко використовується в програмуванні, що обумовлено рекурсивною природою багатьох математичних алгоритмів.

Як приклад, розглянемо програма обчислення факторіала N!. Очевидно: 0!=1; 1!=1; N!=1*2*...(N-1)*N; N!=(N-1)!*N. Ці відношення реалізуємо такою функцією:

Function Fact(N: Іnteger): Real;

Begin

If N=0 then Fact:=1.0

else Fact:=N*Fact(N-1)

End;

В мові Pascal немає ніяких обмежень на рекурсивні виклики підпрограм; необхідно лише мати на увазі, що кожний новий рекурсивний призводить до утворення копії локальних об'єктів підпрограми і всі ці копії не закінчених рекурсивних викликів існують незалежно один від другого. При написанні рекурсивних підпрограм необхідно звертати особливу увагу на вихід з підпрограми в потрібний момент, так як можливий вихід значень з допустимого діапазона або втрата порядку (результат обертається в нуль). Наприклад, в Turbo Pascal 3.0 для рекурсивна процедура може викликати сама себе не більше ніж 430 разів.

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

Приклад:

Procedure Korrect; Forward;

Function Nalog (Z : real) : Real; Forward;

Далі процедура описується без повторення списку формальних параметрів.

Приклад:

Var A: Integer;

Procedure P1 (t: Real;);

Begin

P2; {Виклик не визначеної процедури}

End;

Procedure P2(V: Real);

Begin

P1;

End.

В даному прикладі виклик процедури P2 здійснюється до того, як вона описана, що є помилкою.

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

Var a : Integer;

Procedure P2 (v : Real;); Forward;

Procedure P1 (t : Real);

Begin

P1;

End;

Procedure P2; {список формальних параметрів не повторюється}

Begin

P1;

End.

9.1.5. Область дії ідентифікаторів

Pascal - програма має модульну структуру і може складатися з ряду вкладених блоків. Основна програма – самий великий блок, що не входить в інші. Об'єкти описані в цьому блоці є глобальними і можуть використовуватися в усіх локальних блоках. Локальні блоки – це процедури і функції користувача. Описані в них об'єкти є локальними і недоступні в зовнішніх блоках.

Правила користування ідентифікаторами Pascal-програми:

Кожний ідентифікатор повинен описуватися перед використанням.

1. Областю дії ідентифікатора є блок, в якому він описаний.

2. Всі ідентифікатори в блоці повинні бути унікальними, тобто не повторюватися.

3. Один і той же ідентифікатор може по різному бути визначеним в кожному окремому блоку.

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

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

Приклад:

Дано дійсні p, q.

Обчислити

де

Текст програми 1

program fun;

var z,p,q:real;

function k(x,y:real):real;

begin

k:=x/(1+sqr(sin(y)))+y/(1+sqr(x));

end;

begin

readln(p);

readln(q);

z:=(k(1+p*q,sqr(q))+sqr(k(p,sqr(p))))/(1+k(p*q+sqr(q),p));

writeln('z=',z);

readln;

end.

Результат виконання програми

z=1.5259865321E+00

Текст програми 2

program pros;

var y,y1,z1,y2,z,p,q:real;

procedure k(x,y:real;var z1:real);

begin

z1:=x/(1+sqr(sin(y)))+y/(1+sqr(x));

end;

begin

readln(p);

readln(q);

k(1+(p*q),sqr(q),y);

k(p,sqr(p),y1);

k(p*q+sqr(q),p,y2);

z:=(y+sqr(y1))/(1+y2);

writeln('z=',z);

readln;

end.

Результат виконання програми

z=1.5259865321E+00

 

– Конец работы –

Эта тема принадлежит разделу:

Алгоритмічна мова TURBO PASCAL

Дрогобицький державний педагогічний університет... імені Івана Франка... Методичний посібник...

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Параметри

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Система вiкон середовища
Практично всi основнi операцiї в середовищi TURBO PASCAL здiйснюються з допомогою вiкон – видiлених дiлянок поля екрану, в яких розмiщується певна iнформацiя. Користувач може вiдкрити або закрити в

Replace
FILE1.PAS FILE7.PAS FILE2.PAS FILE8.PAS FILE3.PAS FILE9.PAS Cancel FILE4.PAS FILE10.PAS FILE5.PAS FILE11.PAS Help FILE

OK Cancel Help
  ¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾ Для того, щоб встановити в тригерному списк

Меню роботи з файлами (File)
Дане меню призначено для виконання операцій з файлами. Воно містить такі команди: New (створити новий файл). Відчиняє нове пусте вікно редагування та присвоює нов

Меню редагування (Edit)
Меню редагування дозволяє виконувати ряд операцій з фрагментами тексту. Виділити такий фрагмент легше всього з допомогою клавіші Shift та клавіші переміщення курсора малої клавіатури. Це меню місти

Меню виконання програми (Run)
Меню дозволяє запускати програму, а також виконувати окремі частини програми під час її відлагодження. Run (запустити програму). Запускає програму, якщо текст її

Меню вiкон (Window).
Меню дозволяє вiдкривати, закривати, активiзувати вiкна, розмiщувати їх в полi екрану. Tile (розмiщення вiкон встик). Вiкна розмiщуються в полi екрану встик один

Збереження файлу
Для збереження файлу, розміщеного у біжучому вікні редактора, необхідно натиснути клавішу F2, або перейти в основне меню (за допомогою клавіші F10) і вибрати команду File/Save. В цьому випадку файл

Завдання
1. Запустити в каталозі користувача інтегральне середовище Turbo Pascal (<Каталог Pascal>BinTurbo.exe). 2. Створити нову Pascal-програму (File|New). Текст програми: Begin Write(‘Hell

Загальна структура Pascal-програми
Синтаксично Pascal-програма складається з заголовку i блоку. Блок включає двi частини: описову (роздiл описiв) - опис даних, якими оперує програма, i виконавчу (роздiл операторiв) - послiдовность д

Таблиця 1
Функція Матем. вигляд Аргумент Тип аргументу Тип результ. Приклад Abs(x) S

Таблиця 2
Операція Дія Типи операндів Тип результата Бінарні:     &nb

Введення та виведення в Pascal
В мові Pascal відсутні оператори введення-виведення. Їх функцію виконують процедури READ, READLN, WRITE, WRITELN, робота яких базується на пристроях MS DOS або CP-M. Ввід даних, це передач

Завдання
1. 2.

Таблиця 4
Операцiя Назва операції Вираз Результат = <> > < >= <= рiвно нерi

Таблиця 5
Операція Дія Вираз A B Результат not   Логічне заперечення

Таблиця 6
Операція Прiоритет Вид операцiї @, not, +, - *, /, div, mod, and, shl, shr +, -, or, xor =, < >, <, >,

Завдання
Скласти програми розв’язку вказаних нижче завдань використовуючи умовні оператори IF та CASE. 1.

Масив (регулярний тип)
Масив утворюється із фіксованого числа компонентів одного типу. Число компонентів масиву є константою, яка задається при його описі. При визначенні масиву задається як тип компонентів, так і

Завдання
Варіант 1 1.   2.

Таблиця 7
Операція Функції Pascal Довжина рядка Копія фрагмента Пошук фрагмента Заміщення фрагмента Вставлення фрагмента Вилучення фра

Завдання
Варінт 1 1. Дано лiтерну змiнну довжини N, яка складається з символiв S1, S2, ...,Sn. Cкласти алгоритм та програму на PASCAL, якi дають можливiсть: 2. Вияснити чи

Завдання
1. Дано Type State = (Britain, Usa, France, Sweden, Ukrainia, Belorussia, Russia, Iraq); Senior=(Queen, King, President, Premier); За назвою країни вказати титул голови д

Множини
Множина – це структурований тип даних, що являє собою набip взаємо - пов'язаних за якоюсь ознакою або групою ознак об'ектiв, якi можна розглядати як єдине цiле. Кожний член множини називаєть

Завдання
- виконати операції над заданими множинами a i b: 1.   2.

Записи з варiантами
Записи, описанi вище, мають строго визначену структуру. В деяких випадках це обмежує їх використання. В Паскалі є можливість задати тип запису, що містить довільне число варіантів структури. Такі з

Завдання
Варіант 1 1. Скласти такі програми на алгоритмичній мові TURBO PASCAL: 2. Обчислення добутку двох комплексних чисел. 3. Обчислення різниці двох комплексн

Таблиця 8
Назва Режим Розмір екрану (в піксилях) Кількість Кольорів Кількість відеосторінок CGA

Системи координат
Верхній лівий кут графічного екрану має координати (0, 0). Значення Х (номера стовпця) збільшується зліва направо. Значення Y (номер рядка) збільшується зверху вниз. Для графічного адаптер

Завдання
1. Написати фрагмент програми, яка будує на екрані керований рухомий об’єкт – такий, що натискання клавіші приводить до відповідного переміщення; якщо ніяка клавіша не натиснута, то об’єкт не рухає

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

Функцii користувача
Pascal надає користувачу можливiсть самому реалiзувати потрiбнi йому алгоритми в видi функцiй i звертатися до них з програми. Опис функції складається з заголовку та тіла функції. Формат з

Завдання
Скласти програми обчислення заданих виразів з використанням функцій користувача та процедур: Варіант 1 1. Дано дійсні p, q. Обчислити де

Завдання
1. Дано текстовий файл F.txt. Виключити пробіли, що стоять у кінці його рядків. Результат помістити в файл F1.txt. 2. Дано текстовий файл F.txt. Переписати компоненти файлу F.txt в файл G.

Завдання
1 - 6. Організувати файл прямого доступу "Відомість успішності студентів", компонентами якого є: прізвище, номер групи, екзаменаційні оцінки (аналіз, алгебра, програмування):

Помилки, що виявляються DOS
1. Invalid function number(Неправильний номер функції). Ви намагаєтеся викликати неіснуючу функцію DOS. 2. File not found(Не знайдений файл). Пом

Помилки введення - виведення
Якщо один з операторів компілювався з директивою {$I+}, то помилка введення-виведення приводить до припинення виконання програми. У стані {$I-} програма продовжує виконуватися, а помилка повертаєть

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги