русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

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

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Функції


Дата добавления: 2015-07-23; просмотров: 842; Нарушение авторских прав


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

Формат опису функції:

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

результату>;

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

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

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

Формальні і фактичні параметри повинні співпадати за типом.

Процедура може мати багато результатів, функція—один.

Задача.

Знайти значення числа комбінацій N!

Знаходження значення факторіалу числа оформимо у вигляді функції. Тоді програма розв'язання даної задачі матиме вигляд:

Program KOMBINACIJ; var N,M,C:integer;

function FACT(K:integer):integer;

var i,F: integer;

begin

F:=1;

For i:=l to K do F:=F*i;

FACT:=F;

end;

begin

write('n='); readln(N);

write('m='); readln(M);

C:=FACT(N)Div(FACT(M)*FACT(N-M));

writeln('Кількість комбінацій з ‘ ,n, ’ пo ‘,m,’ = ‘,C); end.

Примітка.

Зверніть увагу на те, що в самому тілі функції FACT необхідно змінній, ім'я якої співпадає з ім'ям самої функції, присвоїти значення результату виконання функції: FACT:=F.

Завдання з розв'язками до тематичного оцінювання з теми " Процедури і функції."

1. Як описується функція мовою Паскаль?

Відповідь: FUNCTION назва(список формальних параметрів): тип;

2. Як називаються змінні в процедурі?

Відповідь: формальні параметри.

3. Скільки результатів має функція?

Відповідь: один.

4. Виправити помилки в опису процедури.

Procedure energia;

Var e:real;

E:=m*g*h;

Відповідь:

Procedure energia(m,g,h:real;var e:real);

Begin

E:=m*g*h;

End;

5. Написати функцію знаходження більшого з двох чисел.



Відповідь:

Function max(a,b:real):real;

Var m1:real;

Begin

If a>= b then m1:=a else m1:=b;

Max:=m1;

End;

6. Як викликається функція?

Відповідь: a:=назва(список фактичних параметрів);

7. Що може бути формальним параметром?

Відповідь: змінна.

8. В яке місце програми відбувається повернення з процедури?

Відповідь: оператор після виклику процедури;

9. Виправити помилки в описі функції.

Function SUM(integer):integer;

Var s:integer;

Begin

S:=0;

For i:= 1 to n do s:=s+n;

End;

Відповідь:

Function SUM(n:integer):integer;

Var s:integer;

Begin

S:=0;

For i:= 1 to n do s:=s+n;

SUM:=s;

End;

10. Записати процедуру знаходження периметра та площі прямокутника за заданими довжинами сторін.

Відповідь:

Procedure PS(a,b:real; var p,s:real);

Begin

P:=(a+b)*2;

S:=a*b;

End;

11. Скласти програму обчислення виразу, використовуючи процедуру або функцію: , де a,c,x [1..7].

Відповідь:

Program Minimin;

Var m1,m2,m3, y:real;

Procedure MIN(var m: real);

Var b:array[1..7] of real;

I:integer;

Begin

Writeln(‘введіть 7 елементів’);

For I:=1 to 7 do readln(b[i]);

m:=b[1];

For I :=1 to 7 do if b[i]<m then m:=b[i];

End;

Begin

min(m1) ; min(m2) ; min(m3) ;

Y:= (m1+m2)/(1+m3);

Writeln(‘y=’,y:6:2);

End.

12. Куплено 10 мішків капусти. В одному М1 кг, у другому М2 кг М3 г, а у всіх інших М4 кг М5 г. Визначити скільки куплено тонн капусти. В програмі використати підпрограму, що переводить кілограми і грами в кілограми.

Відповідь:

Program kapusta;

Var m1,m2,m3,m4,m5, Vsego,KG:real;

Procedure Perevod(Kg,G:real; Var Rez:real); {процедура переведення кг і г в begin кг, вхідні параметри вага в кг і

Rez:=kg+g/1000; г, вихідний Rez — вага в кг}

End;

Begin

Writeln(‘Введіть вагу першого мішка’);

Readln(M1);

Vsego=:=m1; { Vsego—змінна для накопичення загальної ваги}

Writeln(‘Введіть вагу другого мішка (кг, г)’);

Readln(M2,M3);

Perevod(m2,m3,KG);

Vsego:=Vsego+KG;

Writeln(‘Введіть вагу інших мішків (кг, г)’);

Readln(M4,M5);

Perevod(m4,m5,KG);

Vsego:=Vsego+KG*8; {Загальна вага в кг}

Vsego:=Vsego/1000; {Загальна вага в тоннах}

Writeln(‘Вага всієї капусти ’, Vsego, ‘тонн’);

End.

 

13. У продавця N ящиків, у кожному з яких по В кг бананів. Визначити, який штраф він сплатить комітету із захисту прав споживачів, якщо він продає банани по С гривень за кілограм і при цьому обважує покупців на G грам при зважуванні кожного кілограма, а сума штрафу дорівнює п’ятикратному розміру прибутку , отриманого за рахунок обважування покупців. Скласти функцію для визначення результату задачі.

Відповідь:

Program Banan;

Var c,n,b,g,prib,st;real;

Function Shtraf(a:real):real;

Var ss:real;

Begin

Ss:=a*5;

Shtraf:=ss;

End;

Begin

Writeln(‘введіть n, b, c і g’);

Readln(n,b,c,g);

Prib:=n*b*g/1000*c; {прибуток за рахунок обважування}

St:=Straf(prib); {функція обчислює суму штрафу}

Writeln(‘Сума штрафу становить ’, St:6:2, ‘ грн.’);

End.

Завдання для самостійної роботи з теми "Процедури і функції"

1. Знайти довжину сторін трикутника ABC, якщо відомі координати його вершин A(xl, yl, zl), B(x2, y2, z2), С(хЗ, уЗ, сЗ). Необхідно скористатись формулою:

d =

2. У масиві al, а2, аЗ, ..., an є додатні і від'ємні числа.

Знайти окремо суму додатних і від'ємних чисел.

3. Скласти програму знаходження більшого з трьох чисел.

4. Скласти програму знаходження площі чотирикутника ABCD,якщо відомо довжини сторін AD, AB, AC, BC, CD. При розв'язуванні задачі використати формулу Герона.

P = (a + b + c)/2; S =

5. Обчислити значення виразу

де Sa,Sb—сума елементів головної діагоналі матриці A і B

Ra, Rb— сума елементів побічної діагоналі матриці A і B.

6. Підрахувати кількість від’ємних елементів кожного рядка матриць А, В і С, розмірністю 4*4.

7. Трикутник заданий координатами своїх вершин x1,y1,x2,y2,x3,y3. Знайти периметр і площу трикутника.(Довжина сторони визначається по формулі )/

8. Написати процедури, які дозволять розпізнати повні квадрати, степені п’ятірки , прості числа в послідовності із N чисел.

9. Обчислити площу опуклого п’ятикутника ABCDE, якщо відомі довжини всіх його сторін і довжини двох діагоналей, що виходять із вершини А.

10.Дано натуральне число N. Цілі числа a1,a2,…an. Визначити, чи є серед цих чисел числа—близнюки, прості числа різниця між якими дорівнює 2.

11.*Скласти процедуру перетворення десяткового числа в двійкове.

12.*Скласти процедуру перетворення двійкового числа в десяткове.

13.*Скласти процедуру перетворення десяткового числа в вісімкове.

14.*Скласти процедуру перетворення вісімкового числа в десяткове.

15.* Скласти процедуру перетворення десяткового числа в шістнадцяткове.

16.*Скласти процедуру перетворення шістнадцяткового числа в десяткове.

Примітка:

Для побудови двійкового числа використовується тільки 0 і 1

Для побудови вісімкового числа використовується тільки 0,1,2,3,4,5,6,7

Для побудови шістнадцяткового числа використовується тільки 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F.

9. Робота з рядками

Рядок являє собою особливу форму одномірного масиву символів. Для збереження й обробки рядків використовується тип данихSTRING (рядок).

Змінна типуSTRING складається з ланцюжка символів, тобто елементів типу CHAR. Рядки можуть виводитися на екран монітора за допомогою стандартних процедур WRITE і WRITELN і вводитися за допомогою процедур READ і READLN.

Змінна типуSTRING з'являється, як правило, шляхом вказівки імені змінної, зарезервованого словаSTRING і вказівки (у квадратних дужках) максимального розміру (довжини) рядка, що може зберігатися в цієї змінній,

ІМ'Я: STRING [ число]число може приймати натуральне значення до 255.

Якщо максимальний розмір рядка не зазначений, то він автоматично приймається рівним 255 - максимально можлива довжина рядка.

У Турбо Паскалі існує два шляхи обробки змінних типуSTRING.Перший шлях припускає обробку всього рядка як єдиного цілого. Другий шлях розглядає рядок як складений об'єкт, що складається з окремих символів ( типуCHAR), що при обробці доступні кожний окремо.

Значення рядка, що привласнюється, так само як і окремий символтипуCHAR заключається в апострофи. Якщо апострофи опущені, то компілятор розглядає приведений фрагмент тексту як числову величину чи як ідентифікатор.

Для доступу до окремого символу рядка необхідно вказати ім'я рядка й уквадратних дужках номер позиції елемента ( символу) у рядку.



<== предыдущая лекция | следующая лекция ==>
 | Варіант 1


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 3.331 сек.