Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Власні функції користувача






ЛАБОРАТОРНА робота № 13

Тема: Створення і використання підпрограм користувача та вбудованих процедур і функцій

Мета: Вивчити особливості використання процедур та функцій на мові Паскаль

Обладнання та програмне забезпечення: комп’ютер IBM РС, ТурбоПаскаль.

Теоретичні відомості

Власні функції користувача

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

function < ім’я функції > (список формальних параметрів): < тип результату >;

У тілі функції обов’язково повинен бути оператор присвоєння, в лівій частині якого стоїть ім’я функції, а в правій – вираз для значення функції, яке повертається в головну програму.

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

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

Звернення до функції обов’язково повинно бути включене у вираз як операнд і має такий вигляд:

< ім’я функції> (список фактичних параметрів)

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

Обчислення виразів, які містять звернення до функції, відбувається так:

1.обчислюються вирази для аргументів функції; 2) Значення аргументів (фактичних параметрів) присвоюються параметрам з заголовку функції (формальним параметрам); 3) Виконується тіло функції і обчислюється її значення; 4.. Значення функції ставиться в початковий вираз головної програми на місце звернення до функції

5..Обчислення початкового виразу продовжується.

 

Задача 1. визначити найбільше з 4 чисел а) використавши процедур max, яка визначає більше з 2 чисел б) використавши функцію max, яка визначає більше з 2 чисел
program max4-1; var a, b, c, d, m: integer;   procedure max (a, b: integer; var x: integer); var x: integer; begin if a> b then x: =a else x: =b; end;   begin {головна програма} writeln('введи a b c d '); readln(a, b, c, d); max(a, b, m); max(m, c, m); max(m, d, m) writeln(' бiльше число ', m) end.   program max4-2; var a, b, c, d, m: integer;   function max (a, b: integer): integer; var x: integer; begin if a> b then x: =a else x: =b; max: =x end;   begin {головна програма} writeln('введи a b c d '); readln(a, b, c, d); m: =max(a, b); m: =max(m, c); m: =max(m, d); {вар1} {m: =max(max(a, b), max(c, d)); {вар2} writeln(' бiльше число ', m) end.  
Задача 2: Ввести числа а і b. Обчислити ab та y=ab-ba a) використавши процедуру step, яка обчислює аb б) використавши функцію step, яка обчислює аb (увага! тут використано тип LONGINT значення якого – це цілі числа від –2147483648 до +2147483648 - поясніть-чому?)
Program stepen; var a, b, y, y1, y2: integer; procedure step(a, x: integer; var r: longint); var i: integer;; begin r: =1; for i: =1 to x do r: =r*a; end; begin { головна програма } writeln('введи число a i показник степеня b '); readln (a, b); step(a, b, y1) step(b, a, y2) y: = y1+y2; writeln (' a в степені b = ', y1); writeln(‘y = ‘; y); readln end. program stepen; var a, b, y: integer; function step(a, x: integer): longint; var i: integer; r: longint; begin r: =1; for i: =1 to x do r: = r*a; step: = r end;   begin { головна програма } writeln ('введи число a i показник степеня b '); readln (a, b); writeln (' a в степені b = ', step(a, b)); y: =step (a, b) - step(b, a); writeln(‘ y = ‘; y) readln end.
     

Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.006 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал