Crearea dvs. de proceduri proprii, de lucru cu, articole de programare PASCAL - programare C, Delfi, C #

Ați fost mult timp familiarizați cu conceptul de proceduri și funcții ale limbajului Pascal, precum și diferența dintre cele două. Cu toate acestea, până în prezent, nu am vorbi despre modul în care puteți crea propriile funcții și proceduri. De ce au nevoie? Să ne întrebăm și pe Centauri







Pentru a începe, încercați să ne seta sarcina. Să presupunem că vrem să scrie un program care va fi determinat, de multe ori se repetă secvența de acțiuni. De exemplu, adăugarea a două numere.

Să ne formulăm acum problema după cum urmează: a scrie un program care se va adăuga două numere. solicită în continuare dacă sunt sau nu să se repete. În cazul în care răspunsul este afirmativ, atunci se repetă din nou. Vă rugăm să rețineți, pentru a adăuga numere, nu vom o dată, poate de două ori sau de trei ori sau mai mult. Aici ar fi foarte ușor să atragă bucata de cod care este responsabil pentru adăugarea și de apel ori de câte ori aveți nevoie să - adică, să nu-l scrie tot timpul din nou. Aici am ajuns la procedura de determinare (subrutină) Pascal.

Ce este o subrutină? Subrutină (procedura, funcția) - este o parte în afară modernă a programului, la care apoi poate fi accesat de oriunde în programul principal (numesc). Scrierea și utilizarea de rutină este foarte simplu. În acest caz, va avea următoarele proprietăți:

  • Subrutină - aceasta este de fapt un program separat. Aceasta poate avea variabile proprii, etichete, constante, precum și sub-rutine.
  • Ea poate folosi variabilele care sunt comune tuturor programelor (variabile globale), ținând cont de faptul că acestea au fost descrise în programul principal până la subprogram.
  • În cazul în care rutina - o funcție, aceasta poate fi utilizată în modele standard, ca parametru pentru procedura, atribuite variabilelor, etc. că este, are toate caracteristicile de funcții.
  • Acesta este principalul lucru care se referă la utilizarea datelor în subrutine. Acum, să vedem modul în care acestea sunt descrise în program. Să începem cu procedurile.

    Crearea procedurilor dvs.

    A fost creată o procedură în Pascal are următoarele elemente:

    • Procedura oficială cuvânt;

  • Denumirea corectă sub care va fi utilizat în program. Acesta vine după procedura de cuvânt oficial
  • Parametrii trecut la programul (opțional).
  • Secțiuni personalizate var, const, etichete (opțional).
  • secțiunea proprie începe - end. iar la sfârșitul anului - Finalul de rutină. După ce a pus întotdeauna punct și virgulă „;“

  • In cadrul acestei structuri - toate elementele limbajului: bucle, comparații, blocuri suplimentare începe - end.

    De exemplu, să ne scrie programul de mai sus (adăugarea a două numere). Va acționa în felul următor:

    1. Înainte de programul principal va fi o procedură în care parametrii de calitate va fi dat două numere. În această procedură, veți:
    1. Numerele transmise ca parametri sunt adăugați unul cu altul;
  • Valoarea rezultată este afișată pe ecran;






  • Va face bucla repeta - pana. În interiorul traseu. acţiuni:
    1. Solicitarea prima zi;
  • Solicitarea numărul 2-lea;
  • Noi numim procedura noastră, care trece în parametrii ca cele două numere;
  • Ciclul se repetă până când răspunsul este „DA“.
  • Iata un program simplu. Cod sursă:

    Acum, să ne uităm la modul de a crea o procedură.

    În primul rând, pe oficial procedura cuvânt posmorite. Aceasta este rutina, care, în cazul nostru procedura (amintiți-vă, există și alte funcții). Urmează numele procedurii - Add. prin acest nume ne referim la ea în program.

    Următorul pas - definirea parametrilor transmiși procedurii. Acestea sunt indicate în paranteze lângă numele și în următorul format:

    În această versiune, există câteva caracteristici pe care le va lista:

    1. Lista de variabile, parametrii pot fi omise - în cazul în care acestea nu au nevoie de rutina:
  • Opțiunile pot fi orice număr, precum și orice tip. Apoi ei sunt împărțiți în grupuri pentru tipuri individuale și sunt separate prin punct și virgulă:

    Procedură Adăugați (A, B: Integer; C: Word; B: Boolean; S: String);

    După ce descrie numele procedurii și o listă a parametrilor săi, puteți începe crearea procedurii. Nu uita - procedura este un program mic, care nu diferă de bază în proprietățile sale. În acest exemplu, veți vedea că are propria secțiune var, începe construcția sa - end. Pentru a rezuma, să elaboreze proceduri de înregistrare a unui șablon pe care îl puteți utiliza până când vă amintiți sintaxa.

    procedure_name (-list: Type);

    După cum puteți vedea, totul este foarte simplu. Acum, să vedem cum poți scrie o funcție. Pentru a face acest lucru, vom modifica programul nostru și a pus problema după cum urmează:

    Scrieți o funcție care returnează de la munca sa suma a două elemente. Toate celelalte condiții sunt identice. Să începem?

    Când scrieți o funcție în primul rând, trebuie reamintit scopul său - să se întoarcă de la lucrarea sa orice valori. În cazul nostru - aceasta este suma celor două numere au trecut ca parametri. În ceea ce privește parametrii - sunt toate aceleași proprietăți ca și cea a procedurilor. Diferența principală dintre funcțiile procedurilor - aceasta este o funcție funcție de cuvânt. adică, procedura de cuvânt și a reveni funcția valori.

    Acesta din urmă se realizează printr-o simpla atribuire a unei valori la numele funcției. Noi modifica programul scris de mai sus:

    Să acorde o atenție la trei puncte principale pentru a utiliza caracteristici.

    1. Funcția în descriere ar trebui să primească tipul lor, adică, specificați tipul de valoare returnată. Acest lucru înseamnă că, dacă ni se oferă o funcție de tip Integer. atunci acesta poate fi atribuit numai adăugarea întreg - atunci când se utilizează programul, putem folosi numai în situații vă permit să manipuleze tipul Integer.

    2. Valoarea returnată este dată o simplă atribuire a numelui funcției în interiorul acestuia.

    3. Pascal funcții ca standard propriu pot fi folosite în experimente:

    Write (Adăugați (N1, N2)); - imprima valoarea returnată a funcției Add;

    Și în modele standard:

    Dacă Adăugați (N1, N2)> 100 apoi scrie ( 'sumă este mai mare de 100!');

    Să presupunem că șirul variabilei StrNumber atribuie o anumită valoare ca un număr de secvență, adică, StrNumber: = '231456'; Dupa cum am scris în variabila Contele de tip întreg însumării de date rezultat al numerelor?

    În această formulare a problemei cuvântului „numărul“ ar trebui să fie înlocuit cu „numere“, în caz contrar problema nu are nici un sens, deoarece linia conține un singur număr, în formularea revizuită a problemei are o soluție:

    writeln ( 'valoare egală', suma);

    Verificați on-line aici nu se face corect.

    Întrebarea 2. proceduri, cum ar fi FindFirst și FindNext. Am nevoie pentru a organiza o căutare, de exemplu, toate fișierele arhivate (lăsați-l să fie ARJ, RAR și ZIP), nu numai în directorul curent, listate ca fiind unul dintre operanzi, dar, de asemenea, în toate subdirectoarele directorului specificat. Ceva ce nu înțeleg cum să o facă. Judecând după NC, VC și FAR - au decis mult timp pe provocarea. Spune-mi unde să găsească o soluție standard sau una dintre posibilele?

    Lucrurile nu sunt atât de simplu, aici este necesar să se aplice traversal copac rekkursivny. Efectuați modificările dorite și se uită la sănătate.

    Procedura FileFind (Dir, FindName PathStr.);