140 likes | 331 Views
Limbajul p seudocod. Structuri. Structura liniara. Structura liniara cuprinde numai instructiuni de citire, scriere , calcul si atribuire. M a rimile cu care se lucreaz a
E N D
Limbajulpseudocod Structuri
Structuraliniara Structura liniara cuprinde numai instructiuni de citire, scriere, calcul si atribuire. Marimile cu care se lucreaza in solutionarea problemelor sunt variabilele si constantele. Variabilelesunt marimi care in timpul executiei unui program se modificaiar constantele raman neschimbate.
Exemplu Se citescdouavariabilereale a si b. Sa se interschimbecontinutullorsisase tipareasca. real a real b citeste a citeste b aux = c a ←c b←a c←b scrie a scrie b
Structuraalternativa Structura alternative se defineseastfel: Daca S1 si S2 suntstructurisi E este o conditieatunci : DacaE atunci S1 altfel S2 Mecanismulde functionare (executare ) este : Pasul 1: Se evalueazaconditia Pasul 2: dacaaceastaesteindeplinita se executa prima structura (S1) Daca E atunci S1 Pasul 3: daca la evaluare E-ul nu indeplinesteconditia se trece la a douastructura (S2)
Exemplu Sa se scrie un algoritm care citestenumarul natural (nr). Dacaacestaeste 0 atunci se vorcitidouanumereintregi a si b si se vatiparisumalor. Contrar se citescdouanumerereale x si y si se vatiparisumalor. intreg a, b, S1, nr; real x, y, S2; citeste nr; Dacanr=0 atunci citeste a, b; S1←a+b; scrie S1; altfel citeste x, y S2←x+y scrie S2
Sa se determine greutateaideala a unei personae dupa formula: G= 50+0,75 (I-150) + (V-20)/4 - pentrubarbati G= (50 + 0,75* (I-150) + (V – 20/4)* 0,9 - pentrufemei I – inaltimea V- varsta Analizaproblemei: -date de intrare : nr natural : I , V → tip intreg sex→ s -date iesire : greutatea→g → tip real (kg) Functiaprogramuluinostrueste de a preluade la tastaturavalorileinaltimiisivarstei, a caracterului care precizeazasexulsi de a calculasi a afisavaloareagreutatiiideale a persoanei.
Structurarepetitivaconditionata anterior Aceastaestecat_timpexpresieexecuta Instructiune; Modul de executie: Pasul 1: se evalueazaexpresia Pasul 2: dacavaloareaexpresieieste “false” se iese din instructiune. Cat_timp; Dacavaloareaexpresieieste “true” se executainstructiuneaapoi se revine la pasul 1. • Observatii: • Instructiunea se executarepetat, cat timpcaloareaexpresisieste “adevarat”. Pentrucaciclulsa nu fie infinitesteobligatoriucainstructiunea care se executasamodificecelputinuna din variabilele care intervin in expresieastfelincataceastasapoataluavaloarea “false”. • Dacaexpresia are de la inceputvaloarea “false” intructiunea nu se repeat nicimacarodata.
Sa consideramurmatoareaproblema: • Se ceresa se cantareasca un sac cu grau (avemsuficientegreutati de 1 Kg). • Rezolvarea se reduce la a cantarisacul. Solutia se poateexprimaastfel: • Solutia are 2 componente: • o conditie, trascrisaprin “balantaeste in dezechilibru”, conditiepe care o notam cu c; • o actiunetranscrisaprin “adaugareauneinoigreutati de 1 Kg in talerul cu greutati.”, notata cu a, actiuneasociata cu EXECUTA; • Folosindnotatiilefacute, solutia se poatescrieastfel: • CAT TIMP c, • EXECUTA a • Notandgreutateasacului cu g si cu i numarul de greutatipuse in balanta, algoritmulcompletva fi: • 1) initializarealui i • 2) cat timp i != g • 3) efectueaza i=i+1 • 4) afiseazavaloarealui i
Instructiunearepetitiva cu numarcunoscut de pasi Sintaxastructuriiinstructiunii Pentrucontor ← expresia 1 ← expresie 2 Executa Instructiune Modul de executie Pasul 1: se evalueazaexpresia 1. Pasul 2: se atribuievariabileicontorvaloareaexpresiei 1 Pasul 3: se evalueazaexpresia 2 Pasul 4: dacavaloareaexpresieicontorestemai mare decatvaloareaexpresiei 2 atunci se iese din instructiune. Iardacavaloareavariabileicontorestemai mica sauegala cu valoareaexpresisi 2 atunci se executainstructiuneasiapoi se incrementeazavaloareavariabileicontordupa care se revine la pasul 3. Incrementareinseamnamarireacontorului cu 1. Observatii : Dacaintitialvaloareaexpresiei 1 estemai mare decatvaloareaexpresiei 2 instructiunea NU se executaniciodata. In cazcontrar , dacainstructiunea nu modificavalorilevariabilelor care intervin in expresie 2 instructiunea se executa de (expresie 2 expresie 1 +1 ) ori.
Exemplu Dacavremsacalculamsumaprimelor n numerenaturale: S=1 + 2 + 3 + … + n vomrepetainstructiunea S=S+i, pentrufiecare i, intre 1 si n. FOR i = 1, n, 1 S = S + i Practic, scriereainstructiunii FOR inlocuieste 3 instructiuni (1, 2 si 4): 1) initializarealui i cu 1 2) cat timp i <= n 3) efectueaza S=S+i 4) efectueaza i=i+1 5) afiseazavaloarealui i Candscriemstructura cat timp i=1, n, 1 inseamnaca i iavaloarea de la 1 la n, din 1 in 1. Am puteaalcatui o structurarepetitiva cat timp cu alt pas decat 1 (de exemplu 2, 3, etc.) Dacapasulesteun numarnegativ, inseamnacavaloarealui i vascadea de la valoareainitiala la valoareafinala.
Structurarepetitiva “repetapanacand” Este o structuraconditionata posterior. Are urmatoareasintaxa: Fie S o structurasi E o conditieatunci repeta S panacandE Principiul de executieesteurmatorul: Pasul 1: se executa S. Pasul 2: daca E esteindeplinita se trece la pasul1, altfelexecutareaesteincheiata. Observatie: S se executaintotdeauna o data, apoise testeazadacase maiexecutasau nu. Aceastastructurapoate fi simulatasi cu ajutorulstructuriicat timp…. Executaastfel: S Cat timp not E executa S
Exemplu • Sa se calculezesumaprimelor n numere natural unde n≥1 folosindstructurarepetapanacand. • Algoritmulproblemei: • Pasul 1: i←1 ; s←0 • Pasul 2: s←0+1=1 • i←i+1=2 • pasul 3: i nu estemai mare decat 3, deci S iavaloarea 1+2=3 , iar i←3 • pasul 4: i nu estemai mare decat 3, deci S valuavaloarea 3+3=6, iar i←4 • i>n deci se trece la instructiuneaurmatoareunde se tipareste 6. • intregn, i, s ; • citesten • i←1 • s←0 • repeta • s←s+i • i←i+1 • panacand i>n • scries
Bibliografie http://193.226.6.120/Miclea/Prg/curs/PDF/A03_Algoritmi.pdf-data:28.03.2011 ora:19.55 http://airinei.omad.ro/catinfo/4matoffline/fisa%201%20algo%20gio.pdf-data:30.03.2011 ora:18.35 http://ro.wikipedia.org/wiki/Limbaj_pseudocod-data:30.03.2011 ora:20.40
Realizat de: IorgoniCosmina AslauLavinia NyergesStefania SondaAndreea Colegiul National “Iulia Hasdeu”, Lugoj Profesorcoordonator: Ciociu Elena