Subprograme (proceduri și funcții)

Când rezolvați noi probleme, puteți încerca să utilizați programe scrise anterior. Algoritmul, dezvoltat anterior și utilizat în totalitate ca parte a altor algoritmi, se numește algoritm auxiliar. Utilizarea algoritmilor auxiliari ne permite să împărțim problema în părți și să o structurăm.







Întregul program poate fi împărțit condiționat în două părți: partea principală și cea auxiliară. În partea principală, se efectuează cea mai simplă prelucrare a informațiilor și este organizat accesul la diferite module auxiliare (subrutine).

Algoritmul auxiliar poate apela și alte cele auxiliare, lungimea unui astfel de lanț de apeluri este teoretic nelimitată. Aici și mai jos, următoarele perechi de cuvinte sunt folosite ca sinonime: algoritm și subprogram algoritm și de rutină, echipa și operatorul, programul și modulul. Algoritmii auxiliari și de bază nu sunt în sine, ci în relație unul cu celălalt.

Atunci când se utilizează algoritmi auxiliari, este necesar să se ia în considerare metoda de transfer a valorilor datelor originale pentru acestea și obținerea unui rezultat din acestea. Argumentele algoritmului auxiliar # 151 sunt variabile în care datele inițiale trebuie să fie plasate pentru a rezolva subtask-ul corespunzător. Rezultatele algoritmului auxiliar # 151 sunt, de asemenea, variabile care conțin rezultatele rezolvării acestor subtascuri, iar rezultatul poate fi o acțiune specifică pe care computerul o face în cadrul acțiunii subrutinei.

Subrutinele pot fi de două tipuri: un subprogram fără parametri și un subprogram cu parametri. Accesul la subrutină poate fi organizat de oriunde din programul principal sau dintr-o altă subrutină de câte ori doriți.

Când lucrăm cu subrutine, conceptele de parametri formali și actuali sunt importanți. Parametrii oficiali # 151; acestea sunt identificatorii de date de intrare pentru subrutina. Dacă parametrii formali primesc valori specifice, se numesc valori reale. Parametrii formali pot obține numai valori specifice în programul care accesează acest modul-subrutină. Tipul și ordinea înregistrării parametrilor actuali trebuie să fie aceiași ca și pentru parametrii formali. În caz contrar, rezultatul programului va fi imprevizibil. Rezultă că parametrii actuali sunt utilizați atunci când accesați subrutina din principală și parametrii formali # 151; numai în modulul propriu-zis.







O subrutină cu parametri este utilizată pentru a înregistra acțiuni repetitive cu diferite date inițiale. Subrutinele cu parametri pot fi împărțite în două tipuri: subrutine-funcții și pur și simplu subprograme cu parametri (se numesc proceduri).

La compilarea subrutinelor cu parametri, trebuie respectate următoarele reguli:

1) fiecare subrutină are propriul nume și o listă de parametri formali;

2) procedura din programul principal se numește printr-o comandă de apel, care în formă nu diferă de apelul echipei de executare. Rezultatul este atribuit uneia sau mai multor variabile care se află în lista de parametri formali. Dar rezultatul poate fi, desigur, nu numai valorile variabilelor, ci și unele acțiuni efectuate de calculator.

Exemplul 1. Folosim algoritmul pentru a găsi cel mai mare divizor comun al a două numere naturale ca auxiliar pentru rezolvarea problemei: pentru a realiza un program de scădere a fracțiunilor (a.b.c.d # 151; numere naturale). Rezultatul este prezentat sub forma unei fracții obișnuite ireductibile.

Procedura se numește după cum urmează:

Prin intermediul transferului valorilor reale la o subrutină, variabilele variabile sunt selectate în Turbo Pascal 7.0. Parametrii valori. parametrii-constante și rețele de tip deschis. linii de tip deschis. parametrii de procedură. parametri-funcții (detalii # 151; în literatură).

Funcția (spre deosebire de procedură) întoarce întotdeauna o singură valoare.

Afirmăm cum se schimbă subrutina din exemplu dacă este scrisă ca o funcție.

Astfel, după lista parametrilor, se specifică tipul valorii funcției și în corpul funcției cel puțin o dată există o alocare a unei variabile a cărei denumire coincide cu numele funcției care corespunde valorii.

Apelul pentru funcții va fi după cum urmează:

În general, un apel funcțional poate fi prezent într-o expresie care este: în partea dreaptă a instrucțiunii de atribuire, în procedura de ieșire, ca parametru real în apelul unei alte subrutine și așa mai departe.

La rezolvarea problemelor se recomandă analiza stării, scrierea soluției în blocuri mari (care nu sunt operatori Pascal), detalierea fiecărui bloc (scris ca blocuri, eventual, nu operatori Pascal), etc. Continuați până când fiecare bloc este implementat utilizând operatori de limbă.

Exemplul 2. Având în vedere un număr natural n. Rearanjați prima și ultima cifră a acestui număr.

Se poate observa că este necesar să se detalieze funcția logică imposibilă, care stabilește dacă este posibilă o permutare și procedura de modificare, pe care această permutare (în cazul în care este posibilă) o realizează.

Aici este necesar să detaliați funcția Number, care returnează numărul de cifre din intrarea numerică naturală (deoarece funcția Impossible conține apelul său, funcția Număr trebuie să o preceadă în secțiunea descriere).

În cele din urmă, ultima procedură.

Subprogramele care se numesc ele sunt, de asemenea, posibile. Ele sunt numite recursive. Crearea unor astfel de subrutine este o tehnică de programare frumoasă, dar nu întotdeauna folositoare din cauza consumului excesiv de memorie al computerului.

Exemplul 3. Găsiți numărul maxim din înregistrarea unui număr natural dat.

Acest site a fost creat cu uCoz







Articole similare

Trimiteți-le prietenilor: