Паскал процедури паскал език (Pascal)
Процедури в Паскал
Под-програма - част от код, който има име и се създава в случай на необходимост да извършват кода малко (много) време. Подпрограма описан веднъж преди основната програма (да започне). Компилаторът преминава тази програмка, а в основната програма не отговаря на "повикване" подпрограма, който изглежда като препратка към него по име (може би името на аргументите, посочени в скоби).
В много езици за програмиране съществуват само подпрограми под формата на функции. Въпреки това, Pascal рутинна - и функциите и процедурите. Разликата ще бъде ясно в този урок.
Пример: процедура без параметри, които отпечатва звезди 60, всеки на нов ред
процедура PR; Var I: цяло число; започнем защото: = 1 до 60 се започне запис ( "*"); writeln; приключи; приключи; започнем PR; край.
В този пример, процедурата за работа в Паскал очевидно, че компилаторът ще пропусне блок описания и процедурата отива в основната програма (код низ 9). И само след процедура се срещат повикване (линия 10), компилаторът ще продължи да го приложат, връщайки се към линия 1.
Процедури с параметри. Действителни и формални параметри
Вземем примера на необходимостта от използване на процедурата.
например:
изграждане на фигура
Feature: Три подобни фигури.
- идентифициране на същия или подобен действие (три броя)
- намерено в общата им (размер, форма, ъгъл на завъртане) и разлики (координати, цвят)
- различия, написани като неизвестни променливи, те ще бъдат параметрите на процедура
Решение на Паскал:
процедура:
използва GraphABC; процедура Tr (х, у: число; цвят: system.Drawing.Color); започне MoveTo (х, у); LineTo (х, у-60); LineTo (х + 100, у); LineTo (х, у); FloodFill (х + 20, Y-20, цвят); приключи; започне SetPenColor (clBlack); Tr (100, 100, clBlue); Tr (200, 100, clGreen); Tr (200, 160, clRed); край.
ПРИМЕР: Напиши рутина, който се печата 60 пъти каза символ (вписан от клавиатурата), всеки на нов ред
В този пример, за въвеждане на героя ще използвате параметъра процедура. Формално параметър на процедура е показан в скоби за неговото описание. Задължително трябва да се уточни вида на формалния параметър с двоеточие.
Действителната параметър - това е смисъла, който е посочен в скоби, когато се обаждате на процедурата. Действителната параметър може да бъде определена стойност (буквални: цифри, знаци струни ...), или променлива, компилаторът ще бъде заменен с формалния параметър. Ето защо, от типа на данните в официалните и реалните процедури параметри трябва да бъде един и същ.
Var S: знак; процедура PR (А: овъгляване); Var I: цяло число; започнем защото: = 1 до 60 се започне запис (а); writeln; приключи; приключи; започне writeln ( "Символ"); readln (и); PR (и); край.
В този пример, процедурата се нарича компилатор замества официално параметър действителния параметър с. т.е. характера, който е въведен от клавиатурата. И двата параметъра са с тип данни на Чар.
- броят на действителните параметри трябва да е равна на броя на формални параметри;
- съответните реални и формални параметри трябва да бъдат еднакви по реда на явяване и типа на данните
Процедурата за предизвикателство 1. Напишете процедура, която поставя всеки две числа (две опции)
Процедури с параметри. променлива параметър
Пример: максимална търсач на две числа, използвайки процедури
Var X, Y, m, п: цяло число; процедура MAXNUMBER (а, б: число; Var макс: число); започне ако> б тогава макс: = един друг макс: = б; приключи; започнете запис ( "vvedite X, Y '); readln (х, у); MAXNUMBER (х, у, т); writeln ( "макс = ', т) край.
В примера на формални параметри а и б са свикнали да съдържа цифрите, които се сравняват и променлива параметър макс - да го запазите максимално на две числа. Променлива параметър или от параметър предава стойността му към основната програма (m действителната параметър), т.е. връща стойност, а след това и двата формални параметри стойности (входен параметър), а напротив, да вземе стойности от основната програма (реални параметри на х и у). За променлив параметър (макс) използва паметта, които са запазени за съответния параметър в процедурата за повикване (Box т).
По този начин, ние можем да формулираме понятието:
Ако официалната параметър съдържа обичайните променлива посочва своя тип, като параметър е стойност параметър или параметър вход (а и Ь в примера). Тип на данните за официално параметър стойност трябва да съответства на типа данни на реалното му параметър (а и б трябва да съответства на вида на двойки данни х и у най-).
Използването на променливи параметри, което ви позволява да прекарват по-малко памет
Var х, у: цяло число; обмен процедура (А: число; Var б: число); Var в: цяло число; започне ако> б след това започва в: = а; а: б =; б: = С; приключи; приключи; започнем writeln ( 'Въведете две числа "); readln (х, у); обмен (х, у); writeln ( "макс = ', у) край.
Използването на този метод за решаване на проблема, ние сме те бяха освободени от третия параметър. За тази цел на процедурата ние използвахме друга локална променлива в. Процедурата за промяна на стойностите на променливите а и б, така че б е винаги максимално. Поради това, в програма линия 15 като максималната мощност на втория параметър (у), съответното официално параметър б.
<
?PHP включва ($ _SERVER [ "DOCUMENT_ROOT"] "/ vstavki / blokvtext2.html".); ?>
процедура Задача 2. Необходимо е да се определи най-голям общ делител на две числа, чрез използването процедура (две стойности на параметрите на една променлива параметър)
Търсене алгоритъм за решаване на НОД:
Процедурата за предизвикателство 3. С помощта на процедурата за изграждане на фигура:
Задача процедура 4. са дадени три различен набор от числа (размерът на всеки елемент 15). Във всеки масив да се намери сумата на елементите и средната аритметична стойност.
За да се образуват елементи масив и изчисляване на сумата на средната аритметична стойност и използва един процедура (средно аритметично и количеството на равен подобни променливи параметри).
В проблеми Паскал обща необходимост да се запълни масив от данни и след това показва стойностите на екрана. Защо не се автоматизира задачата да попълните този масив и изход - т.е. издадена с процедурите, както и да продължат да използват тези процедури, ако е необходимо.
Пример: Направете процедура за генериране на масив елементи десет (два параметъра: броят на елементите в масива)
конст п = 10; Var I: цяло число; А, В: масив [1..N] на цяло число; процедура arr_out (к: число; ARR: масив [1..N] на число); Var I: байт; започнете запис ( "изход масив: '); защото: = 1 до к направи записване (ARR [Ь]: 4); writeln; приключи; започне за I: = 1 до п направи [Ь]: = случаен (10); arr_out (п, а); край.
Обяснение:
основната част на програмата:
- формиране на множество елементи (случайна функция).
- процедура разговор с два параметъра: броя на елементите в масива.
Тялото на процедурата:
- индикаторните елементи в масива, използвайки параметрите
Ние продължаваме с нашата задача:
Пример: Създаване на процедура за запълване на масив с произволна функция
конст п = 10; Var а, Ь: масив [1..N] на цяло число; процедура arr_rand (к: число; Var ARR: масив [1..N] на число); Var I: байт; започнете запис ( "запълване на масива с случайни числа"); случаен характер; защото: = 1 до к се ARR [Ь]: = случаен (100); приключи; започне arr_rand (п, а); край.
Задача процедура 5. Смесват както решен проблемът (за пълнене и изход масив)
Задача процедура 6. Добавете процедурата за задача за пълнене на стойностите на потребителски масив (входни стойности от клавиатурата). Подредете изход две различни масиви - един със стойности, формирани на случаен принцип, друга - със стойностите, въведени от потребителя
процедура Задача 7. Създаване на програма с процедура за изчисляване на силата на номер (входни параметри: брой и степен). За извеждане на резултата, за да използвате променлива параметър.
процедура Задача 8. Създаване на програма в Pascal с процедурата за изчисляване на факториел. (0! = 1, 1, = 1, 2, = 2, 3! = 6, ...)
самостоятелна работа
Вариант 1: 5 за определяне на продукта от едномерни всеки масив елемент, като се използва процедурата с два параметъра - броя на елементите масив и променлив параметър за изходния продукт.
Вариант 2: 5 за определяне на минимални размерите масиви всеки елемент масив, като се използва процедурата с два параметъра - броя на елементите масив и променлив параметър за извеждане на минималната елемент.
* По начин, е трудно да се образуват произволно едномерен масив от 10 елемента (стойности от -20 до 20). Обаждане на процедурата, докато, докато не видите сред нулеви стойности.