Proceduri Pascal limbaj Pascali (Pascal)
Proceduri în Pascal
Subprogramul - o bucată de cod care are un nume și este creat în cazul necesității de a efectua codul de un pic (o mulțime de) timp. Subrutină a descris o dată înainte de programul principal (pentru a începe). Compilatorul trece acest fragment de cod, în timp ce în programul principal nu îndeplinește „apel“ subrutina, care arată ca o referire la ea după nume (poate numele argumentelor enumerate în paranteze).
In multe limbaje de programare există subrutine numai sub forma de funcții. Cu toate acestea, Pascal de rutină - și funcțiile și procedurile. Diferența va fi evidentă în această lecție.
Exemplu: Procedura fără parametri care imprimă Stars 60, fiecare pe o linie nouă
Procedura de pr; var i: integer; începe pentru i: = 1-60 nu începe a scrie ( „*“); writeln; se încheie; se încheie; începe pr; end.
În acest exemplu, procedura de operare în Pascal evident că compilatorul va sări peste descrierile bloc și procedura merge la programul principal (cod string 9). Și numai după procedura de apel se întâlnesc (linia 10), compilatorul va proceda la o pună în aplicare, revenind la linia 1.
Proceduri cu parametri. Parametrii reale și formale
Luați în considerare exemplul de necesitatea de a utiliza procedura.
exemplu:
construi o figură
Caracteristică: Trei cifre similare.
- identifică aceeași sau similară acțiune (trei bucăți)
- găsit în totalul lor (dimensiune, formă, unghiul de rotație) și diferențele (coordonate, culoare)
- Diferențele scrise ca variabile necunoscute, ei vor fi parametrii de procedură
Soluție în Pascal:
Procedura:
utilizează GraphABC; Procedura Tr (x, y: integer; culoare: system.Drawing.Color); începe MoveTo (x, y); LineTo (x, y-60); LineTo (x + 100, y); LineTo (x, y); FloodFill (x + 20, y-20, culoare); se încheie; începe SetPenColor (clBlack); Tr (100, 100, clBlue); Tr (200, 100, clGreen); Tr (200, 160, clRed); end.
rutina de scriere care se imprimă de 60 de ori a spus simbolul (introdus de la tastatura), fiecare pe o linie nouă: EXEMPLUL
În acest exemplu, caracterul de intrare va folosi parametrul procedură. Un parametru formal al unei proceduri este indicată între paranteze pentru descrierea acesteia. Neapărat trebuie să specificați tipul parametrului formal cu două puncte.
Parametrul real - aceasta este semnificația pe care este indicată în paranteze la apelarea procedurii. Parametrul real poate fi o valoare specifică (literal: numere, caractere, siruri de caractere ...), sau o variabilă, compilatorul va înlocui parametrul formal. Prin urmare, tipul de date în procedurile formale și reale ale parametrului ar trebui să fie aceeași.
var s: char; Procedura de pr (a: char); var i: integer; începe pentru i: = 1 până la 60 se începe scriere (a); writeln; se încheie; se încheie; începe writeln ( 'Simvol'); readln (s); pr (e); end.
În acest exemplu, procedura este numit un compilator înlocuiește un parametru oficial parametru real s. și anume caracterul care este introdus de la tastatura. Ambii parametri au un tip de date de char.
- numărul de parametrii actuali trebuie să fie egal cu numărul de parametri formali;
- parametrii reale și formale corespunzătoare trebuie să fie aceeași în ordinea care apare și tipul de date
Procedura de provocare 1. Scrie o procedură care pune oricare două numere (două opțiuni)
Proceduri cu parametri. parametru variabil
Exemplu: finder maximum două numere întregi folosind proceduri
var x, y, m, n: integer; Procedura MaxNumber (a, b: integer; var max: integer); începe dacă a> b, apoi max: = un alt max: = b; se încheie; începe scriere ( 'vvedite x, y'); readln (x, y); MaxNumber (x, y, m); writeln ( 'max =', m) capăt.
În exemplul parametrilor unui formal și b sunt utilizate pentru a conține numerele fiind comparate și un parametru variabil max - pentru a salva maximum de două numere. Parametrul variabil sau parametru out transmite valoarea sa la rutina principală (parametrul m real), adică returnează o valoare, atunci ambii parametri valori oficiale (parametrul de intrare), dimpotrivă, să ia valori de la programul principal (parametrii actuali de x și y). Pentru parametrul variabil (max) folosește memoria care sunt rezervate pentru parametrul corespunzător în procedura de apel (Caseta m).
Astfel, putem formula conceptul:
Dacă parametrul oficial conține variabila obișnuită care indică tipul, astfel parametru este o valoare de parametru sau un parametru de intrare (a și b în exemplu). Tipul datelor oficiale parametru-valoare trebuie să se potrivească cu tipul de date al parametrului real (a și b trebuie să se potrivească cu tipul de perechi de date x și y).
Utilizarea parametrilor variabili, permițându-vă să-și petreacă mai puțin de memorie
var x, y: integer; schimb de procedură (a: integer; var b: integer); var c: integer; începe dacă a> b începe apoi c: = a; a: = b; b: = c; se încheie; se încheie; începe writeln ( „Introduceți două numere“); readln (x, y); schimb (x, y); writeln ( 'max =', y) de capăt.
Folosind această metodă de rezolvare a problemei, ne-am dispensat cu al treilea parametru. În acest scop, procedura am folosit o altă variabilă c locală. Procedura pentru modificarea valorilor variabilelor a și b, astfel încât b este întotdeauna maximizată. Prin urmare, în linia de program 15 ca ieșire maxim al doilea parametru (y), corespunzător al formale parametrul b.
<
?php include ($ _SERVER [ "DOCUMENT_ROOT"] "/ vstavki / blokvtext2.html".); ?>
Procedura de sarcină 2. Este necesar să se determine cel mai mare divizor comun a două numere folosind (valori cu doi parametri de un parametru variabil) procedură
Căutare algoritm pentru rezolvarea GCD:
Procedura de provocare 3. Folosind procedura pentru a construi o cifră:
Procedura de sarcină 4. sunt date 3 matrice diferite de întregi (dimensiunea fiecărui element 15). În fiecare matrice pentru a găsi suma elementelor și valoarea mediei aritmetice medie.
Pentru a forma elementele de matrice și calcularea sumei mediei aritmetice și utilizarea unei proceduri unice (aritmetică și cantitatea de parametri variabili-draw like).
În probleme de Pascal nevoie comună de a umple o serie de date și apoi afișa valorile de pe ecran. De ce nu automatizează sarcina de a umple această matrice și de ieșire - de exemplu, emise cu procedurile și să continue să utilizeze aceste proceduri, dacă este necesar.
Exemplu: Faceți o procedură pentru ieșirea celor zece elemente de matrice (doi parametri: numărul de elemente din matrice)
const n = 10; var i: integer; a, b: array [1..n] din întreg; Procedura arr_out (k: integer; arr: array [1..n] din întreg); i var: byte; începe să scrie ( „matrice de ieșire:“); pentru i: = 1 la k do scriere (arr [i]: 4); writeln; se încheie; începe pentru i: = 1 la n face un [i]: = random (10); arr_out (n, a); end.
explicaţie:
corpul principal al programului:
- formând o serie de elemente (o funcție aleatoare).
- un apel de procedură cu doi parametri: numărul de elemente din matrice.
Organismul Procedura:
- elementele de afișare în matrice folosind parametrii
Continuăm cu sarcina noastră:
Exemplu: Crearea unei proceduri pentru a umple o matrice cu funcție aleatoare
const n = 10; var a, b: array [1..n] din întreg; Procedura arr_rand (k: integer; var arr: array [1..n] din întreg); i var: byte; începe să scrie ( „umple matrice cu numere aleatoare“); randomiza; pentru i: = 1 la k do arr [i]: = aleator (100); se încheie; începe arr_rand (n, a); end.
Sarcina Procedura 5. Se combină ambele rezolvat problema (pentru umplerea și matrice de ieșire)
Procedura de sarcină 6. Adăugați procedura de sarcină pentru completarea valorilor matrice de utilizator (valori de intrare de la tastatură). Aranjați ieșire două matrice diferite - una cu valori formate la întâmplare, o alta - cu valorile introduse de utilizator
Procedura de sarcină 7. Crearea unui program cu o procedură pentru calcularea puterii a numărului (parametrii de intrare: numărul și gradul). Pentru ieșire rezultatul de a utiliza un parametru variabil.
Procedura de sarcină 8. Crearea unui program în Pascal cu procedura de calcul factorial. (0! = 1, 1, = 1, 2, = 2, 3! = 6, ...)
muncă independentă
Opțiunea 1: 5 pentru a determina produsul de rețea unidimensională fiecare element de matrice, folosind procedura cu doi parametri - numărul de elemente de matrice și un parametru variabil pentru produsul de ieșire.
Opțiunea 2: 5 pentru a determina matricele minime dimensionale fiecare element de matrice, folosind procedura cu doi parametri - numărul de elemente de matrice și un parametru variabil pentru ieșirea elementului minim.
* Într-un mod dificil de a forma aleatoare matrice unidimensională a 10 elemente (valori de la -20 la +20). Apelarea procedura până când până când vedeți între zero valori.