8. ročník Programovanie môjho ABC Pascal

Lektor informatiky, NIS, Uralsk, FMN Zelenov Boris Oleksandrovich


  • Naučte sa postupy a funkcie na dokončenie úlohy
  • Študenti sa učia revidovať ob'єmnі zavdannya, položiť ich vo vánku

  • Formovať porozumenie o postupoch a funkciách programovacieho jazyka.

  • Naučte sa porozumieť konceptu „postupov“ a „funkcií“, ktoré definujú formálne a skutočné parametre

Skórované výsledky - Deskriptory:

1. Poznať účel „postupu“

2. Poznať účel „funkcie“

3.Určite skutočné a formálne parametre

4. Rozpoznanie parametrov a hodnôt zmeny

5. Poznajte kroky k postupu alebo funkcii programového kódu



Štandardný plán Elvira

1. Vyčistite papiere

2. Zdvorilý kviti

3. Spomeňte si na párty

4. Chyby Viterti

Ukončite algoritmus

Ako zlepšiť organizáciu toho ktorého procesu?




Téma lekcie

Podprogramy:


Ishki bagdarlam

Podprogram

Postup

Postup

Parametrler

Krátke frázy:

Na prenos hodnoty procedúry zmeny (funkcie) sa vyberú aktuálne parametre ...

Ak chcete opísať postup, vráťte sa späť…., potom…


Pochopenie podprogramov

Vymenovanie

Podprogram- Tse okrema je funkčne nezávislá časť programu.

Podprogramy

Postupy


  • počítať s potrebou opakovať analogické fragmenty v texte programu;
  • zlepšiť štruktúru programu a uľahčiť mu pochopenie;
  • zvýšiť stabilitu voči omilosteniu programovania a neprenášaniu dedičstva pri úpravách programov.

  • Namalyuvati parkan, vikoristovuyuchi mov programovanie

Pomocou tejto úlohy môžete vytvoriť postup, ako je algoritmus vikonuvatime na maľovanie jedného fragmentu (plot), a potom postupne prejsť na celý postup a meniť polohu pera na klase.


  • Opíšte, ako racionálne vikonati malých yalinka uprostred programovania

  • Є nezávislé fragmenty programov, zdobené špeciálnou hodnosťou a môžu byť vo svetle môjho mena.

Interakcia medzi hlavným programom a podprogramami



Bloková schéma

  • Blokovať podprogramy wiki (postupy alebo funkcie)

Im'ya podprogramy (postupy a funkcie)


Bloková schéma


Popis postupu môže vyzerať takto:

postup im'ya (zoznam formálnych parametrov); rozdelil popis začať operátorov koniec ;


Popis funkcie je možné vidieť:

funkciu meno (zoznam formálnych parametrov): typ hodnoty, ktorá sa má otáčať;

rozdelil popis začať operátorov koniec ;


Umiestnenie programu

program ...;

//Rozšírené popisy použití, Const, Var, …

postup A ;

začať ....... koniec ;

postup B ;

začať ........ koniec ;

Funkcia C ;

začať ........ koniec ;

//Hlavný program

začať ........ koniec .


  • Funkcia funkcie Polega človeka v tom istom, výsledok Vikonnnya Operátor, tlačený do funkcií, hlava ostrice єdin, na zvery vicoristovati v viids virazhas poriadku hadími konštantami.

Postupy

Funkcie

Nech má matka posypanie výsledkov, alebo vyhrá pieseň dňa

Môže existovať len jeden výsledok, ktorého typ je označený pre väčšinu hlasovej funkcie.

Výsledky môžu byť zmysluplné, či už ide o nejaký typ poľa, riadkov alebo čísel.

Výsledok môže byť viac ako skutočný, celé číslo alebo znak.

Týždenný postupový tím je len tím, ktorý vyhráva samostatne

Návrat k funkcii je možné dosiahnuť len ako komponent typu virazu.

Posledná funkcia môže mať jeden operátor priradenia, ktorého ľavá časť má názov funkcie.


b potom max:=a else max:=b; MaxNumber:=max; end;" width="640"

Postup alebo funkcia?

MaxNumber(a,b: integer): integer;

var max: celé číslo;

MaxNumber:=max;


b potom max:=a else max:=b; end;" width="640"

Postup alebo funkcia?

MaxNumber(a,b: integer; var max: integer);

if ab then max:=a else max:=b;


Postup alebo funkcia?

ChangeColor(C1, C2: Word);

TextBackGround(C2)


Postup alebo funkcia?

Add(X, Y: Integer): Integer;


Skutočné

  • Kontaktujte distribúciu hlavného programu

Formálne

  • Kontaktujte podprogram
  • Kontaktujte podprogram

Volanie procedúry nastavuje operátor, ktorý môže mať nasledujúci formát:

názov procedúry (zoznam skutočných parametrov);

  • Zoznam skutočných parametrov- Tse їх pererahuvannya cez kómu.

  • V štandardnom filme Pascal je prenos parametrov možné vykonať dvoma spôsobmi - podľa významov a právomocí. Parametre, ktoré sa odovzdávajú pre hodnoty, sa nazývajú hodnotové parametre, ktoré sa prenášajú pre possilannyam - zmeniť-parametre. Zostávajúca poznámka je, že servisné slovo var je umiestnené na začiatku procedúry (funkcie) їх.

Odovzdávanie parametrov. Formálne parametre

Zmeny

Hodnota

Parametre podľa hodnoty

Formálne parametre

Zmeny


Formálne parametre

Parametre podľa hodnoty

  • Pri prvej metóde (odovzdanie hodnoty) sa hodnoty skutočných parametrov skopírujú z daných formálnych parametrov.

Postup

Názov Postup (a, b: celé číslo);

Hlavný program

Pri zmene hodnoty hodiny procedúry (funkcie) nie je možné meniť výstupné údaje (aktuálne parametre).


Var c, d: celé číslo;

  • V čase prenosu všetky zmeny, ktoré sú zadané v type postupu (funkcie) s formálnymi parametrami, vedú k podobným zmenám skutočných parametrov.

Postup

Názov Postup (a, b: celé číslo, Var c: skutočné);

Hlavný program

Zmeny sa odosielajú do bloku zmien, ktorý volá, vonkajšie parametre sa prenášajú do tohto bloku. V prípade zmeny je možné zmeniť iba skutočné parametre.


Píšete:

1. Skutočné parametre ___________

Postup Kvad(R: real; var S: real);

2. Formálne parametre ___________

3. Formálne hodnoty parametrov __________

5. Im'ya postup ___________

6. Vráťte sa k postupu z programu ______________________


Interaktívne úlohy

http://www.bzfar.net/load/podprogrammy_procedury_i_funkcii_parametry/23-1-0-498


Elvir vedúci triedy. Je potrebné zostaviť plán na generálne upratovanie triedy: upratať papiere, poliať lístky, zapamätať si párty, utrieť chyby. Ako si lepšie zorganizovať prácu? Pomôžte Elvíre.


Elvirin sklzový plán

Podprogramy:

Arsen - zober papiere

Mila - polievanie kvetov

Vitaliy - moja partia

Indira - chyby pri stieraní

1. Viconati Arsen

2. Vikonati Mila

3. Vikonati Vitaliy

4. Vikonati Indira

Ukončite algoritmus


  • Aké nové štruktúry ste sa dnes naučili o programovaní?
  • Pomenujte parametre
  • Ako sa odovzdávajú parametre procedúry?

  • Zhrnutie lekcie
  • Poznať význam: „Miestne zmeny“ a „Globálne zmeny“
  • Pridajte dve úlohy, v ktorých môžete vyhrať postupy a funkcie.

  • Ako by ste si vybrali tému hodiny? (Vymyslite si svoje meno)
  • Čo sa podľa vás môžete dozvedieť na nasledujúcej lekcii?

Zusstrinemos

na ďalšej lekcii!

meta lekcia

osvetlenie

  • formulovať v učebniciach jednotný systém porozumieť, súvisiacim s pojmami procedúr a funkcií;
  • naučiť sa zastosovuvaty podprogramy na ceremónii v Pascale a tiež sa naučiť pochopiť, aké podprogramy sú potrebné pri vykonávaní úlohy piesne;
  • ukázať hlavné metódy a výbery podprogramu;

vikhovna

  • krútiť úhľadnosťou, rešpektom, organizáciou;
  • kultúra počítania nováčikov;

rozvíjanie

  • rozvíjať logické myšlienky, algoritmickú kultúru študentov;
  • rozšíriť znalosti, ktoré vmіnnya zložiť a upraviť program môjho Pascal.

Naučené povinnosti:

  • poznať pravidlá písania procedúr bez parametrov a s parametrami;
  • poznať pravidlá pre funkcie nahrávania;
  • vmiti zastosovuvati postupy a funkcie pіd hodinu vyrіshennya jednoduché úlohy.

Skrytá lekcia

I. Org. moment

II. Úvod. Relevantnosť

Úlohu môžete vidieť na listoch ( Dodatok 1 ). Vedieť opakovať.

Niekedy v rôznych obdobiach programu je potrebné prakticky vyhrať nad rovnakými sledmi udalostí s rôznymi sviatkami. Takéto sekvencie môžu byť vydané ako také tituly podprogram (Vid anglicky, podprogram) - zoskupiť operátorov do bloku, do ktorého ich môžete zapnúť, navyše viackrát.

Podprogramy zrýchľujú text programu, jednoducho menia nočnú hodinu, uľahčujú život programátorom, pretože môžu vytvárať programy modulárne, t.j. vybrať si program z kompletizácie jednoduchých skladov. To umožňuje skupine programátorov vytvárať skvelé programy a skupine vedcov rozširovať a implementovať niektoré globálne projekty.

Podprogramy sú rozdelené na procedúry a funkcie.

Vbudovanie (štandardných) postupov a funkcií čiastočne film a môže tweetovať na im'ya bez dopredného popisu. Napríklad , abs, sqrt, ln, sin… sú funkcie (otočiť výsledok), readln, write… sú procedúry (neotočiť výsledok). Dostupnosť Їх výrazne uľahčuje vývoj aplikačných programov. Najviac však skutky konkrétne pre tieto programy neexistujú žiadne priame analógy v knižniciach Turbo Pascal a dokonca aj programátor musí rozšíriť svoje vlastné neštandardné postupy a funkcie.

III. Vysvetlenie nového materiálu

Koristuvach postupy su napisane sami sebou programátor rozumie syntaxi filmu v distribuoval popis podprogramu.

Štruktúra procedúry opakuje štruktúru programu, ale "program v miniatúre" - je reprezentovaný aj nadpisom a telom.

Názov sa skladá z vyhradeného slova postup, identifikátor (názov) postupy.

VAR … // zdieľal popis zmenených hlavných programov

postup Im'yaProcedure;

//Názov hlavného programu

Postupy Viklik pre odpornú viconnanny sú zaznamenané v hlavnom programe.

príklad 1. Program na výpočet plochy obvodu.

Výhody podprogramu:

  • programy napísané na účasť podprogramov, je jednoduchšie testuvati a nalagojuvati, majú šikanovanie logická štruktúra
  • Samonosnosť podprogramu umožňuje odovzdať jeho štruktúru rôznym programátorom. Takže to funguje sami sebou, ponáhľaj sa її dokončený;
  • Podprogram Vikoristannya vám umožňuje šetriť pamäť. Pamäť kvôli uloženiu víťazných, ktorí sú víťazní v podprograme, vidíte menej ako hodinu a práca vibruje, akoby skončili iba víťazi.

zadok 2. Koristuvach zaviesť dve strany troch obdĺžnikov. Chcem ich vidieť.

Úlohu môžete zmeniť takto:

pre i:=1 až 3 do

writeln('Zadajte a a b:');

writeln('area=', a * b);

Dobrým štýlom programovania je výber postupov. Na výpočet plochy obdĺžnika je potrebný postup. Os ako schematický pohľad na hlavný program:

účtovanie

účtovanie

účtovanie

Postup pre text je už є (div. butt1). Vytvorme kamarátovi postup, ako vypočítať plochu. Ale, na výpočet S potrebujete poznať 2 strany, takže postup musí ukázať, že strany sa majú násobiť.

postup pl(c, d: celé číslo);

writeln( 'oblasť obdĺžnika s tromi stranami ',c, ' ',d, '=',S);

Parameter - tsminna, kakіy nádeje deyake hodnotu. Іsnuyut formálne parametre , priradený k názvu podprogramu, že skutočné parametre - Virazi, na čo nastaviť konkrétne hodnoty pri vstupe do podprogramu.

Postup je skontrolovaný, takže môžete kliknúť na názov a uviesť skutočné parametre , vіdokremlіnі one vіd one komami i z'yaznennyh і okrúhle puto:

Skutočné parametre sú dané typom a počtom formálnych.

Opäť hlavný program:

pre i:=1 až 3 do

Rešpekt. V prípade porušenia tejto úlohy je potrebné prekontrolovať zadané čísla (smrad nie je kvôli záporu, inak robot poruší program).

Urobme postup opätovného overenia:

chyba procedúry (f, g: celé číslo);

ak (f<0) or (g<0) then begin

writeln('strany obdĺžnika nemôžu byť záporné');

zastaviť; // reštartovanie programov

Program Podsumkova - Dodatok 4

Tu je formát postupu:

postup<имя>(Formálne parametre);

<операторы>;

príklad 3. Zostavte program na výmenu medzier dvoch čísel z=5 a d=7.

výmena programuDan;

var c,d:integer;

procedúra obmen (a, b: celé číslo);

m:=a; a:=b; b:=m;

writeln("Zadaj 2 cisla:");

writeln(c," ",d);

Po spustení programu je zrejmé, že formálne parametre (postupu) sa zmenili, ale skutočné (tak ako sú zvolené pre hlavný program) sa nezmenili. Poďme sa pozrieť na tých najmenších, na ktorých bola nasmerovaná časť operačnej pamäte:

1) pri volaní postupu obmen s dvoma parametrami 5 a 7, zmenou a a b, sú čísla 5 a 7 tiež umiestnené rovnakým spôsobom:

3) ale údaje pre zmenené c a d sa zmenili, pretože smrad je na iných miestach pamäti.

Na zmenu c a d, a a b požiadal o jednu a tú istú strednú pamäť (ak sa zmenia hodnoty a a b, potom sa zmenia hodnoty c, d) je potrebné pri popise formálnych parametrov pred potrebnými zmenami doplniť slovo VAR:

procedura obmen (var a, b: integer);

Zmeniť program obmenDan:

Pardon cez var. Čísla sú konštanty, ktoré sa v procedúrach nedajú meniť.

zadok 4. Poznajte oblasť stávky s rôznymi postupmi, ako keby to bolo viac ako výpočet, ale bez zobrazenia výsledku na obrazovke.

postup kruh(r:real);

Postup môže otáčať výsledok:

postup kruh (r:real; var S:real);

readln(a, e);

Poznámka: Postup S sa zmení, aby sa výsledky robotického postupu vrátili do hlavného programu. Pri zmene sa mení aj samotný parameter programu, ktorý sa volá. zmeniť e.

Najbežnejšou úlohou Pascalu je nahradiť procedúry funkciami (podprogramy ako sústruženie).

Funkcia je podobná ako pri postupe, ale dvere sú dvoje.

  • Funkcia prenáša výsledok svojej práce do programu - jedinú hodnotu, ktorá nesie nejakú vlastnú funkciu.
  • Tieto funkcie môžu byť zahrnuté vo víruse ako operand. Funkcia otáča výsledok v bode svojho týždňa.

Napríklad sqr(x) – hviezda na druhú mocninu hodnoty x i otočte do bodu výpočtu hodnoty druhej mocniny čísla x: y:=sqr(x);

Funkcia, označovaná ako skratka, sa skladá z nadpisu a tela funkcie. Telo funkcie za štruktúrou je podobné programu. Popis iba návestí, konštánt, typov. dіysnі menej medzi tsієї postupy.

funkciu<имя>(formálne parametre):<тип результата>;

<операторы>;

Samostatné operátory sú zodpovedné za jeden alebo viac operátorov, z ktorých jeden určuje hodnotu funkcie. Výsledok zostávajúcej úlohy sa otočí na bod wiki.

Príklad 5. Zamyslime sa nad druhou mocninou stávky.

function circle(r:real): real;

a:=kruh(5); (OBOV'YAZKOVO je atraktívne)

Príklad 6. Vedieť 1! +2! + ... + N!

Vykoristovuєmo funkcia znakhodzhennya faktoriál, k tomu scho podєmo na vhіd i otrimuєmo výsledok.

function fact(a:integer): integer;

pre i:=1 urobiť

V poradí fakt: = fakt * ja;

Kompilátor vie, že za volanie parametrov je zodpovedný fakt. Je obov'yazkovo zaviesť dodatočnú zmenu, aby bol výsledok zverejnený. A potom zmeňme skutočnosť, aby sme dali výsledok:

programový faktoriál;

var sum, n, j: celé číslo;

function fact(a:integer): integer;

var i,d: celé číslo;

pre i:=1 urobiť

pre j:=1 až n do

sum:=sucet+skutocnost(j);

IV. Vrecúško na lekciu

V súčasnosti sa proces programovania mení na príprava programu založené na programovacie technológie. Viac fakhivtsiv dorimuyutsya bodov úsvitu, scho nízka metóda návrhu softvéru najvhodnejšie na riešenie zložitých problémov. Na zadnej strane hlavy je označený ako slogan, potom krok za krokom dolaďujeme štruktúru. Na čiernej koži kože je pidzavdannya vo svojej čiernej farbe rozdelená na nízke. Riešenie zarámovaného fragmentu úlohy skladania ako samostatného programového bloku - podprogramu.

V. Domáca úloha

Rozvyazati zavdannya (písomne):

  1. Postup zložte tak, aby zadaný riadok nahradil písmená a *.
  2. Uvádzajú sa dva návrhy. Vedieť, koľko písmen "n" majú. (Určite funkciu rozrahunka počtu písmen „n“ v reči.)

Rekurzia v PascaleČitateľ: Tlekhurai Yu.V. MOU "Lýceum č. 8" Čo vidíte na obrázkoch? Tento jav vo vesmíre sa nazýva rekurzia Aby ste pochopili rekurziu, musíte jej trochu porozumieť. rekurzia - čiastočné označenie predmetu cez seba, označenie predmetu z rôznych skorších označení. Vedecky zavesené: rekurzia - metóda priraďovania triedy k objektom a metódam k predchádzajúcim úlohám jednej alebo viacerých (znie jednoducho) zo základných typov metód a potom k úlohám na základe pravidla navodiť triedu, ktorá sa rozlišuje. Peter Deutsch Peter Deutsch

Iterácia ľudí.

Rekurzia je pohľad na Boha.

Rekurzia vo fyzike Rekurzia v mov a literatúre dva umiestnené jeden oproti jednému zrkadlu: majú dve chodby slabnúcich zrkadiel. Posledným terčom nevyčerpateľnej rekurzie je efekt samobudenia (kladná reverzná väzba) v elektronických zosilňovacích obvodoch ak je signál z výstupu poslaný na vstup, je zosilnený, opäť je odoslaný na vstup obvodu a opäť je zosilnený. Pіdsilyuvachi, kotrim taký spôsob práce є personál, sa nazývajú auto-oscilátory. Príklad štatútu rekurzívnej slovnej zásoby: „Kňaz má psa ...“ - typická rekurzia Dekіlka opisu udalostí Stanislava Lema v prípade nevyčerpateľnej rekurzie: Rozpovid o sepulkách („Zoryanі schudenniki John the Quiet“), v ktorom hrdina postupne prechádza do stati o sepulki k článku o sepuletoch, pozrite sa na článok o sepulkárii, novým spôsobom, ako sa postaviť štatútu "sepulku" Povedz mi o inteligentnom aute, aká malá je dostatočná myseľ a v noci, aby pre splnenie stanovenej úlohy, povzbudiť seba, aby boli podobné, a zveriť riešenie (p rekurzia sa stala nepostrádateľným vrece, ak je koža nové auto bolo podobné sebe a odovzdal na objednávku). Rekurzia v programovaní je spôsob organizácie procesu enumerácie, v ktorom má procedúra funkciu spúšťania operátorov skladu pre seba. Aby takéto zverstvo nebolo neospravedlniteľné, text podprogramu môže mať rozum, na také vzdialené zverstvo to nie je potrebné. v takomto rangu možno rekurzívne zviera zaradiť len do jedného z podprogramov. zadok. Výpočet faktoriálu prirodzeného čísla Pridajte rekurzívnu funkciu, ako keby ste vypočítali faktoriál čísla n pomocou pokročilej hodnosti: funkcia f (n: celé číslo): longint; začať, ak n = 1, potom f:= 1 inak f:= n * f(n -1); (Funkcia volá samu seba) koniec programu Pascal s rekurziou: Var n: integer; a:longint; faktorial(n: integer): longint; begin if n = 1 then faktoriál:= 1 else faktoriál:= n * faktoriál (n -1); koniec; Begin Write('n='); readln(n); A:=faktoriálne(n); Napíšte('n!=',a); readln; koniec. Leonardo Pisansky Fibonacci

Fibonacciho čísla - prvky číselnej postupnosti

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ...

Úloha: Zadajte na obrazovku sériu Fibonacciho čísel, ktoré sa skladajú z n prvkov. Popis zmien: n - počet prvkov je nízky; a, b - hodnoty dvoch zostávajúcich prvkov sú nízke; c - výmena vyrovnávacej pamäte („náhradná“); i - lichilník. Algoritmus riešenia problému: 1. Vezmite hodnotu n. 2. Priraď a a b vhodne hodnoty 0 a 1 (posledné čísla vo Fibonacciho rade). Ukážte ich na obrazovke. 3. Začnite od 3. prvku podľa n: a) zobrazte súčet a a b na obrazovke; b) uložiť hodnotu zmeny b na c; c) napíšte súčet a a b pre b; d) priraďte a až c. Program mojej víťaznej iterácie Pascal: program Fibonacci; var a, b, c, i, n: celé číslo; začať napíš("n = "); readln(n); a:=0; napísať," "); b:=1; napíš(b," "); pre i:=3 až n sa začína napíš(a+b," "); c:=b; b:=a+b; a:=c; koniec; readln; koniec. Program mojej víťaznej rekurzie Pascala: Rekurzívne priradenie na výpočet Fibonacciho čísel môže vyzerať takto: Priradenie Fibonacciho čísel je jednoduché previesť na rekurzívnu funkciu: function f(n: Integer) : longint; začať ak n<= 1 Then f:= n else f:= f(n– 1) + f(n - 2); end; Program chislaFibonacci; var n,i: integer; a: longint; function fib (n: integer): longint; begin If n <= 1 Then fib:= n else fib:= fib(n– 1) + fib(n - 2); End; begin write(‘n=’); readln(n); for i:=0 to n do begin A:= fib (n); write (‘ ’,a); end; readln; end. Домашнее задание Написать программу нахождения НОД двух натуральных чисел, используя алгоритм Евклида и рекурсию Даны два натуральных числа Aі b. Yakscho A= b, potom nid ( A,b) = a. Yakscho A>b, potom nid ( A,b)= nid ( a -b,b). Yakscho A< b, potom nid ( A,b)= nid ( A,b-a). Program noddxxіsel; var a, b: longint; funkcia nod(a,b:longint): longint; begin If a = b Then nod : = a else if a > b then nod : = nod (a-b, b) else nod : = nod (a, b-a) End; begin write('a='); readln(a); napis('b='); readln(b); A:=nod(a,b); napis('prikyv=',a); readln; koniec. Zavdannya o Hanoi Vezhi. V prípade obov'yazkovo dlhujete tieto pravidlá:

  • naraz môžete presúvať iba jeden disk;
  • väčší disk nemožno umiestniť na menší disk;
  • odstránenie disku musí byť umiestnené na nejaký druh veže pred ním, ako keby tam bol ďalší disk.
  • Pratsioviti buddіyski chentsi vo dne iv noci na prenos diskov z veže na vežu. Legenda je silná, ak chceš dokončiť svoje dielo, príď skoncovať so svetom. Dalo by sa vylepšiť, že na dokončenie úlohy so 64 diskami je potrebné premiestnenie 264-1. Pre toho, kto stojí za koniec sveta, sa vína za päť rokov stanú stovkami miliónov, ako viete, že jeden disk sa pohne za sekundu. V roku 1883 pre ňu matematik Eduard Luca zo Saint-Louis College vymyslel legendu.

Na jednej z troch diamantových veží je oblečených 64 okrúhlych zlatých kotúčov. Disky sú vyrobené z rôznych polomerov a nariasené na vežiach v poradí meniacich sa polomerov od základne po vrch. Z prvej veže je potrebné preniesť disky na druhú a z tretej na spotrebu.

manažér. Zostavte rekurzívny program, ako keby bolo lepšie dať vyššie poradie o Hanoji s počtom diskov, ktorý je drahší n (n = 1, 2, ...). Riešenie. Zadáme mená pre veže: a, b, c. Poď Hanoj ​​(n,a,b,c)- vyžaduje sa funkcia, ktorá otáča sekvenciu pohybujúcich sa diskov z a na b z víťazstiev c podľa vyššie opísaných pravidiel. Keď n=1, vyriešte problém pomocou mi vmієmo. Stačí vykonať príkaz „Presunúť a na b". Povedzme, ale prerušíme úlohu pre n - 1 disk. Presuňte n-1 diskov a na h. Presuňme jeden disk, ktorý je mimo a na bі, narashti, presunúť n-1 disk z c na b. Vstupné Data: počet diskov, ktoré sa nachádzajú na štvorci a; Týždenné údaje: sekvencia dіy; Krok0: (v závislosti od typu zmeny); Krok1: (popis postupu v Hanoji, ako zobraziť postupnosť akcií); Krok 1.1: (presun (n-1) diskov zo začiarkavacieho políčka a do začiarkavacieho políčka b); Krok 1.2: (presunúť n-tý disk z a do c); Croc1.3: (presun (n-1) disku z b do c); (Kroki 1,2-1,3 sa počítajú rekurzívne); Krok2: (hlavný program); Krok2.1: (zavedenie počtu diskov); Krok2.2: (hanojský postup wiki). Riešenie problémov v Pascal Program bahnya; varn: celé číslo; a, b, c: char; procedure hanoi(n: integer; a, b, c: char); begin if n>0 then begin hanoi(n-1,a,c,b); writeln ("Peremestit disk so sterzhnya ",a,"na sterzhen" ",b); hanoi(n-1,c,b,a); koniec; koniec; n);a:="a";b:= "b";c:="c";hanoi(n,a,c,b);readln;koniec. X krok indikátora predtým Buď k = 0, buď krok(k, x) = 1, inak krok(k, x) = x krok(k-1, x) Krok programu; meniť: skutočný; n: celé číslo funkcia step(k:integer, x:real): real; begin Ak k = 0 Potom krok:= 1 else krok:= x * krok(k-1, x) Koniec; begin write('vvedite zaklad stepeni x='); readln(y); write('vvedite pokazatel stepeni k='); readln(n); write('x v stepeni k=', step(n, y)); readln; koniec. Samostatná práca

  • Nájdite súčet číslic čísla
  • Je príznačné, že chi є dané prirodzené číslo, odpusťme
  • Nájdite prvú číslicu čísla
  • Preložte prirodzené číslo v desatinách. pri Dviykove
  • Poznať súčet prvkov celého poľa, ktoré sa skladá z 20 prvkov
  • Pamätajte na význam dvoch celých čísel
  • Usporiadajte významy troch a, c, h v poriadku
  • Nájdite počet číslic prirodzeného čísla n
  • Nájdite najväčšie z troch daných čísel
  • Nájdite počet kladných čísel v strednom chotiroxe A, B, C, D
Vіdpovіdі nezávislá práca №2 Program jednoduchý; var n, m, s: celé číslo; funkcia prost(m, n:integer): boolean; begin Ak n = m Potom prost:= true else prost:= (n mod m<>0) a jednoduché (m+1, n); koniec; begin write('n='); readln(n); M:=2; Ak prost(m,n) napíšte (n,'prostoechislo') Inak napíšte (n,'kompozícia'); readln; koniec.

preklad programov;

postup dvd(n:longint);

Ak n >1 Potom dvd(n div 2);

write(n mod 2);

snímka 1

snímka 3

Podprogramy: globálne a lokálne zmeny Použitie podprogramov je možné popísať v časti popis. Kožný podprogram môže matka im'ya. Informácie medzi hlavným programom a podprogramami sú prenášané globálnymi parametrami (zmenami), ktoré sú popísané v hlavnom programe. Stredné podprogramy môžu ale meniť lokálne parametre (zmeny), ich názvy a hodnoty môžu byť citlivé len v hraniciach medzi volanými podprogramami a nedostupnými programami.

snímka 4

Formálne a skutočné parametre V popise podprogramu sú parametre dané len názvami, preto sa nazývajú formálne. Pred týždennými podprogramami môže byť smrad výrazný. Nevyhradzujú viac miesta pre aktuálne parametre, fixujú ich počet a typ údajov. Typy skutočných parametrov: Hodnotové parametre ukazujú, ako má byť hodnota priradená hlavnému parametru podprogramu. Po dokončení podprogramu smrad zvýši predchádzajúce hodnoty, takže boli v podprograme zmenené. Zmeny parametrov v podprogramoch zostávajú vo formálnom priestore, môžu meniť svoje hodnoty v priebehu podprogramu a ukladať zmeny pri ukončení podprogramov (pred zmenami parametrov vložte kľúčové slovo Var).

snímka 5

snímka 6

Popis procedúry Program Pr1; Const...Type...Var...Procedure(); Časť popisu Začiatok Telo postupu Koniec; Začať ... (); …koniec. Pri opakovaní postupu sa formálne parametre nahradia skutočnými.

Snímka 7

Postup výpočtu súčtu dvoch čísel program pr1; Použite crt; Var a, b, s: skutočné; procedure summa(x,y:real;var z:real); beginz:=x+y; koniec; začať clrscr; writeln("zadaj a,b"); readln(a,b); summa(a, b, s); writeln(" súčet čísel ",a:3:1," i ",b:3:1," = ",s:3:1); readln; koniec. x,y,z – formálne parametre, lokálne zmeny a,b,s – globálne zmeny a,b,s – aktuálne parametre x y z a b s Hodnota-parameter Zmena-parameter

Snímka 8

Snímka 9

snímka 10

Vypočítajte hodnoty virázy a:=(3n!+2m!)/(m+n)! Pre význam faktoriálu, aký typ zmeny dotally vikoristati? programpr2; Použite crt; Varm,n,x,y,z:integer; a:skutočný; procedura fakt(d:integer;var q:integer); var i:integer; beginq:=1; pre i:=1 až d q:=q*i; koniec; začať clrscr; writeln("zadajte hodnoty n, m"); readln(n,m); fakt(n, x); fakt(m,y); fakt(m+n,z); a:=(3*x+2*y)/z; writeln("wirl value for m=",m:4," and n=",n:4,"even",a:8:3); readln; koniec. N! = 1 2 3 ... N

snímka 11

Vkladanie prvkov do jednorozmerného poľa Funkcia Random(X) tvorí náhodné číslo od 0 do X typu celé číslo alebo reč (pred vstupom do funkcie je potrebné inicializovať procedúru Randomize). Ak parameter X nie je zadaný, výsledok bude typu Real v rozsahu 0,0 až 1,0. Vytvorenie poľa viacerých náhodných čísel z rozsahu náhodný (B-A+1)+A Úloha: Usporiadajte vstup prvku do jednorozmerného poľa pre dodatočný generátor náhodných čísel (rozsah hodnôt -10 až 20) a zadávanie prvkov ako postup. Pre A=-10 B=20 náhodné (20-(-10)+1)+(-10)

snímka 12

snímka 13

snímka 14

Popis funkcie Funkcie sa rozpoznávajú, aby bolo možné spočítať viac ako jednu hodnotu, 1. V prvom rade to znamená, že procedúra môže mať nové hodnoty pre mnoho parametrov a funkcia je iba jedna (bude výsledkom ). 2. Ďalšia definícia názvu funkcie. Okrem toho sú pridané slová FUNKCIA, za ktorými je názov funkcie, potom v okrúhlych ramenách je zoznam formálnych parametrov, za ktorými sa cez dvojku zapisuje typ výsledku funkcie. 3. Pri rovnakej funkcii je možné mať jeden operátor priradenia jazyka, ale v ľavej časti by mala byť ich funkcia av pravej časti - hodnota її. Funkcia (): Časť popisu Začiatok Telo funkcie:=; koniec;

snímka 15

Vypočítajte hodnoty virázy a:=(3n!+2m!)/(m+n)! program fn2; Použite crt; Varm,n:integer; a:skutočný; function fact(d:integer) :longint; var i:integer; q:longint; beginq:=1; pre i:=1 až d q:=q*i; fakt:=q; koniec; začať clrscr; writeln("zadajte hodnoty n, m"); readln(n,m); a:=(3*fakt(n)+2*fakt(m))/fakt(m+n); writeln("wirl value for m=",m:4," and n=",n:4,"even",a:8:3); readln; koniec.

snímka 16

Zostavte program, ako viete ab, teda b-tý krok čísla A, de A і B - celé číslo i> 0, ktoré sa zadáva z klávesnice. Uložte program nahradením postupu funkciou pr2; Použite crt; Var a, b: celé číslo; c:longint; Kroky funkcie(x,y:celé číslo):longint; var i:integer; s:longint; begin s:=1; pre i:=1 až y do s:=s*x; Štefan:=s; koniec; začať clrscr; writeln("zadajte hodnoty a, b"); readln(a,b); C:=krok(a,b); writeln("s=",s); readln; koniec.

snímka 17

snímka 18

Mechanizmus na prenos parametrov do funkcií a procedúr Globálne zmeny Miestne zmeny a b 3 3 -3 Adresy s a b c 48 Adresy s A:=b+3 B:=3*a C:=a+b Stan s 24 5 8

snímka 19

Ak chcete prezentáciu urýchliť vopred, vytvorte si vlastný príspevok Google a pozrite si predtým: https://accounts.google.com


Titulky pred snímkami:

Procedúry a funkcie v Pascale. Rekurzia Vikonav učiteľ informatiky DBOU škola 1362 Sanina Marina Sergiivna

Podprogram je autonómna časť programu, ktorá implementuje algoritmus skladby a umožňuje k nemu prístup z iných častí hlavného programu. Podprogram umožňuje implementovať jednu z najmodernejších metód programovania – štrukturálne programovanie.

Funkcia procedúry podprogramu FUNKCIA PROCEDURE

Procedúry a funkcie v Pascale sú dešifrované v popise podrozdelenia pododdielov.

Funkcie a procedúry majú parametre (zmena, spôsob odovzdávania hodnôt). Existujú dva druhy smradov: 1) Formálne - tі, ktoré sú v popise podprogramov 2) Faktické - tі, ktoré sa prenášajú z hlavného programu do funkcie a procedúry. Skutočné parametre sú spôsobené formálnosťou množstva, poradím typu.

Zmeny majú aj podprogramy. s yakim vyhral nadali pracyuє. Ten smrad sa opäť delí na dva typy: 1) Globálne zmeny, takže sú nekompatibilné so všetkými programami 2) Lokálne - tie, ktoré sú menej na postupy a funkcie

Postupy Vikoristovuyutsya na jeseň, ak je v programe potrebné vziať trochu výsledkov. Existujú dva typy procedúr: s parametrom; žiadny parameter.

Štruktúra procedúry je podobná štruktúre programu a tvorí ju hlavička a blok (telo procedúry). postup Im'yaProcedure; var … begin … // Koniec tela procedúry; begin // koniec tela hlavného programu.

Postupy bez parametrov postup pr; var i: celé číslo; Program je určený na zobrazenie radu 60 hviezdičiek.

Postup parametra. Zložte program na výmenu dvoch čísel s z=5 a d=7 program obmenDan; var c,d:integer; procedúra obmen (a, b: celé číslo); var m:integer; začiatok:=a; a:=b; b:=m; writeln(a,b); koniec; begin writeln("Zadaj 2 cisla:"); readln(c, d); obmen(c, d); writeln(c," ",d); koniec.

Analýza problému 1) pri volaní procedúry obmen s dvoma parametrami 5 a 7, zmenou a a b, sú čísla 5 a 7 tiež umiestnené rovnakým spôsobom: s 5 d 7 a 5 b 7

Aby bolo možné zmeniť c і d , a і b boli odoslané do týchto pamäťových buniek samotných (ak sa zmenia hodnoty a і b, potom sa zmenia hodnoty і c, d), je potrebné pri popise formálne parametre, pred potrebnými zmenami doplňte slovo VAR: procedure exchange (var a, b: integer); h 5 d 7 a b

Funkcie Súbor funkcií používaných filmom Pascal je široký (ABS, SQR, TRUNC tenký). Ak je program zapnutý s novou, neštandardnou funkciou, je potrebné program popísať v texte, po čom je možné k nemu pristupovať z programu. Návrat k funkcii je priradený pravej strane operátora od priradeného názvu funkcie a skutočných parametrov. Funkcie môžu byť matkami lokálnych konštánt, typov, zmien, procedúr a funkcií. Popis funkcií Pascalu je podobný popisu procedúr.

Vіdminnі risi funktsіy: - výsledok vikonannya - jedna hodnota, ako je priradená k názvu funkcie a prenesená do hlavného programu; - Tieto funkcie môžu byť zahrnuté vo víruse ako operand.

Popis funkcie: function (): type; (delený popis miestnych názvov) Begin (delené operátory na zhodu) :=; (parameter obv'language) End;

Funkcie Wiklik: = (); 1. Priradená je pravá strana operátora. 2. Na virazi, scho, aby stál za myseľ operátora dekontaminácie. 3. Pri postupe vizualizácie, ako výsledok práce funkcie.

Procedúry a funkcie Recursion Pascal sa tak môžu nazývať. matka moci rekurzívnosť. Rekurzívna funkcia je obov'yazkovo dlhuje pomstiť mysli koniec rekurzívnosti, znížiť zacyklenie programu. S rekurzívnym nasávaním kože sa vytvárajú neosobné lokálne zmeny. Ak chcete zmeniť, zmeňte polohu funkcie, ktorá sa volá, nemeňte.

Pridajte rekurzívnu funkciu, ktorá vypočíta faktoriál čísla n s pokročilou hodnosťou: n! = 1, takže n = 1 n! = (n-1)! n, teda n > 1

funkcia f(n: integer): integer; začať, ak n = 1, potom f:= 1 inak f:= n * f (n -1); (funkcia f volá na seba) end;

Majte na pamäti hodnoty zmeny a, b, c, aby bol zápach zoradený v rovnakom poradí (a ≤ b ≤ c). Daných n celých čísel. Poznajte stredné číslo, aby súčet číslic predstavoval maximálnu hodnotu.