69750

Параметри-змінні

Домашняя работа

Информатика, кибернетика и программирование

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

Украинкский

2014-10-09

25 KB

0 чел.

Самостійне вивчення

Тема 8: Параметри-змінні

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

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

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

На відміну від формального параметра-значення, для якого фактичним параметром може бути будь-який вираз відповідного типу, для формального параметра-змінної фактичним параметром може бути тільки змінна відповідного типу.

Тепер програму можна записати так:

program maxe(input, output);

var

x, у, u, v: real;

procedure max2d(r1, r2: real; var res: real);

begin

if r1>r2 then res:=r1

else s:=r2

end;

begin

read(x, y);

max2d(x+y, x*y, u);

max2d(0.5, u, v);

writeln('u=', u,' v=', v)

end.

У цьому випадку виконання оператора-процедури max2d(x+y, x*y,u) рівносильне виконанню еквівалентного блоку:

var

r1, r2: real;

begin

r1:=x+y; r2:=x*y; if r1>r2 then u:=r1 else u:=r2

end

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


 

А также другие работы, которые могут Вас заинтересовать

22938. Синтаксичний аналіз виразів 31 KB
  Мова в певному алфавіті основному символів це слова записані за певними синтаксичними правилами. Синтаксичні правила подаються формулами БекусаНаура БНФ вигляду : ::= де позначає синтаксичне поняття а послідовність символів розширеного алфавіту. Вираз [] означає що послідовність символів входить або не входить в конструкцію. Синтаксичний аналізатор це програма що для заданої послідовності символів основного алфавіту розпізнає чи побудована вона у відповідності з синтаксичними правилами для даного поняття.
22939. ВВЕДЕННЯ / ВИВЕДЕННЯ 48 KB
  Перед тим як розпочати роботу з потоком його необхідно відкрити за допомогою функції FILE fopenchar filename char mode. Функція формує потік з даним файлом і повертає результат у вигляді покажчика на обєкт типу FILE який містить всю інформацію необхідну для роботи з потоком адресу та розмір буфера індексзсув поточної позиції в буфері режим оборобки інформації і т. FILE fp; fp=fopenfile1.txt a; відкриття файлу file1.
22940. Адресация в IP-сетях 120 KB
  В терминологии TCP/IP под локальным адресом понимается такой тип адреса, который используется средствами базовой технологии для доставки данных в пределах подсети, являющейся элементом составной интерсети. В разных подсетях допустимы разные сетевые технологии, разные стеки протоколов
22941. Конструктивні обєкти. Індуктивні визначення. Рекурсивні функціїї 854 KB
  Рекурсивні функціїї. При такому підході конструктивність того чи іншого обєкту у тому числі і функції вже не є абсолютною субстанцією а тільки відносною і залежить від вибору системи подання. Загальне індуктивне визначення унарної функції ІВФ спирається на ІВ множини і має вигляд: БФ База індукції. Для кожного конструктора елементів з існує конструктор значень функції такий що для будьяких .
22942. ПРЕПРОЦЕСОРНІ ЗАСОБИ 34.5 KB
  імя_директиви лексемиоперанди { лексемиоперанди } Макропідстановки: define ідентифікатор послідовність_символів Сем. define begin { define end } main begin if begin end else return 0; end На виході препроцесора цей фрагмент матиме вигляд: main { if { }else return 0; } Допускаються ланцюжки макропідстановок. ...
22943. ФУНКЦІЇ ЯК ТИП ДАНИХ 49 KB
  Кожен з таких покажчиків має тип який відповідає типам параметрів та типу значення функції. З ними можна працювати як зі звичайними даними: присвоювати організовувати у вигляді масивів передавати у якості параметрів повертати як значення функції і т. ПОКАЖЧИКИ ФУНКЦІЙ ПОВИННІ БУТИ ЯВНО ОПИСАНІ В ПРОГРАМІ Імя та тип покажчика функції задаються її прототипом або описом.
22944. Загальна структура Сі-програми 217.5 KB
  oператор ::= безлейбовий_ оператор лейба : безлейбовий_ оператор безлейбовий_ оператор ::= базовий оператор структурований опeрaтор лейба ::= ідентифікатор базовий_оператор ::= порожній_oператор oперато_переходу присвоєння виклик_функції oператор_вираз порожній_oператор ::= ; Сем. вихід_ з_функції ::= return[ значення_функції ] ; значення_функції ::= вираз Сем. присвоєння ::= Lvalue_вираз [ операція ]= вираз ; вираз ::= терм Lvalue_вираз ::= ідентифікатор індексація_покажчика розіменування_покажчика ...
22945. СТАНДАРТНІ ТИПИ ДАНИХ 194.5 KB
  До них відносяться числа символи булеів значення та адреси. Вираз може не мати значення на певних даних наприклад зациклюватись. Вважається що в цьому разі він приймає значення =невизначено. 2 Яке значення набудуть змінні АВС після виконаня оператора { int A=0B=2C=1; A=2 A B C; } З точки зору семантики булевий тип є моделлю двозначної булевої алгебри.
22946. Інформатика як наукова дисципліна 347 KB
  Створення такого підгрунтя є актуальною задачею сучасної інформатики та програмології =теорії програмування Редько В. Тоді очевидно булевий тип Bool мов програмування з відповідними логічними операціями і відношенням є її точною ізоморфною моделлю I відносно функцій кодування 0=false 1=true та декодування = обернена функція до . Модель I використовується в компіляторах для реалізації множинних типів мов програмування високого рівня. Програми та програмування.