Lecţia 2 Structura liniară, alternativă şi repetitivă Clasa a V-a Structuri de bază(liniară, alternativă şi repetitivă) Programarea structurată este o

Documente similare
Programarea şi utilizarea calculatoarelor

E_d_Informatica_sp_SN_2014_bar_10_LRO

Operatorii in C Expresii Operatori aritmetici Operatori de asignare Operatori de incrementare si decrementare Operatori relationali Operatori logici O

ALGORITMII ŞI REPREZENTAREA LOR Noţiunea de algoritm Noţiunea de algoritm este foarte veche. Ea a fost introdusă în secolele VIII-IX de către Abu Ja f

Microsoft Word - CarteC.doc

1. a. Să se scrie un algoritm care să afişeze toate numerele de patru cifre care au cifra sutelor egală cu o valoare dată k, şi cifra zecilor cu 2 mai

tehnologii web

Laborator 2: Instrucţiuni Java şi lucru cu şiruri de caractere Întocmit de: Adina Neculai Îndrumător: Asist. Drd. Gabriel Danciu 18 octombrie 2011

O NOUA PROBLEMA DE CONCURS OLIMPIADA MUNICIPALA DE INFORMATICA, IASI 2019 V-am promis într-un articol mai vechi ca vom prezenta pe acest blog câteva p

E_d_Informatica_sp_MI_2015_bar_02_LRO

GHERCĂ MAGDA CASA CORPULUI DIDACTIC BRĂILA PORTOFOLIU EVALUARE INFORMATICĂ ȘI TIC PENTRU GIMNAZIU CLASA A V-A Neamț SERIA 1 GRUPA 1 CURSANT: GHERCĂ G

PROIECT DIDACTIC DATE DE IDENTIFICARE Data: Școala : Școala Gimnazială Grigore Moisil Ploiești Clasa: a VI-a Profesor: Ilie Oana Magdalena Disciplina:

SUBPROGRAME

PCLPII-C16(9)

Probleme proiect TP BITPERM Implementați un algoritm care citește de la intrarea standard două numere naturale și scrie la ieșirea standard da

Declararea variabilelor

Subiectul 1

Secţiunea 5-6 avansaţi PROBLEMA 1 Concurs online de informatică Categoria PROGRAMARE 100 puncte NR Un număr natural nenul V care se plictisea singur,

Fâciu N. Maria-Ema CASA CORPULUI DIDACTIC BRĂILA PROGRAM DE FORMARE INFORMATICĂ ȘI TIC PENTRU GIMNAZIU CLASA A V-A SERIA 1 GRUPA 2 CURSANT: Fâciu N. M

Top

Tablouri unidimensionale Problema 1 Să se determine mulţimea cifrelor unui număr natural n > 0, dat. Exemplu: n= Cifre = {1,2,3,7} Se cere să s

Logică și structuri discrete Limbaje regulate și automate Marius Minea marius/curs/lsd/ 24 noiembrie 2014

ALGORITMICĂ. Seminar 3: Analiza eficienţei algoritmilor - estimarea timpului de execuţie şi notaţii asimptotice. Problema 1 (L) Să se determine număru

Programarea şi utilizarea calculatoarelor

1. Operatii cu matrici 1 Cerinte: Sa se realizeze functii pentru operatii cu matrici patratice (de dimensiune maxima 10x10). Operatiile cerute sunt: A

Limbaje de Programare Curs 6 – Functii de intrare-iesire

ALGORITHMICS

Microsoft PowerPoint - ImplementareLimbaj [Read-Only] [Compatibility Mode]

PowerPoint-Präsentation

Slide 1

Propunator: Morar Florin Colegiul National Silvania Zalau Discipina: Informatica Nivel liceal, cls. XII 1.Să se scrie în limbajul C/C++ definiţia comp

Analiză de flux de date 29 octombrie 2012

Microsoft Word - Raspunsul la niste provocari. Partea III..doc

Aggregating Data

CASA CORPULUI DIDACTIC BRĂILA PORTOFOLIU EVALUARE INFORMATICĂ ȘI TIC PENTRU GIMNAZIU CLASA A V-A Neamț SERIA 1 GRUPA 1 CURSANT: ALTERESCU V. IULIA-CRI

Diapositive 1

Analiză statică Analiza fluxului de date 23 octombrie 2014

Metode de programare Proiectarea algoritmilor

CASA CORPULUI DIDACTIC BRAILA PROGRAM DE FORMARE INFORMATICA SI TIC PENTRU GIMNAZIU CLASA A V-A SERIA 1 GRUPA 2 CURSANT: TIMOFTI V. AFRODITA COLEGIUL

Microsoft Word - CarteC.doc

DAN LASCU ADRIANA-LIGIA SPORIŞ ANDA OLTEANU PAUL VASILIU MATEMATICĂ. CULEGERE DE PROBLEME TIP GRILĂ PENTRU ADMITEREA ÎN ACADEMIA NAVALĂ MIRCEA CEL BĂT

Elemente de aritmetica

MergedFile

Microsoft Word - Curs_08.doc

Paradigme de programare

Microsoft Word - cap1p4.doc

Laborator 2 Incompatibilităţi/Diferenţe între C şi C++ Completări C++ Supraîncărcarea (redefinirea) numelui de funcţii În C nu este permisă existenţa

Lecții de pregă,re la informa,că Admitere 2019 Tema: Discutarea problemelor date la ul,mele sesiuni de admitere Bogdan Alexe

1

Microsoft Word - O problema cu bits.doc

Slide 1

Paradigme de Programare

Limbaje de Programare Curs 8 – Fisiere

INSPECTORATUL ŞCOLAR JUDEŢEAN VÂLCEA COLEGIUL NAŢIONAL DE INFORMATICĂ MATEI BASARAB RÂMNICU VÂLCEASTR. HENRI COANDĂ NR.2 TELEFON/FAX:

Microsoft Word - Evaluare_initiala_Matematica_Cls07_Model_Test.doc

Microsoft Word _POO_Lab_1_Modificari_v01.htm

Probleme rezolvate informatica: Probleme rezolvate grafuri si a

Coman Marinela Furnizor program formare acreditat: CCD BRĂILA Denumire program: INFORMATICĂ ŞI TIC PENTRU GIMNAZIU Clasa a V-a Categorie: 1; Tip de co

manual_ARACIS_evaluare_experti_v5

Logică și structuri discrete Logică propozițională Marius Minea marius/curs/lsd/ 3 noiembrie 2014

Metode de sortare - pregătire admitere - Conf.dr. Alexandru Popa Lect. dr. Andrei Pătraşcu Universitatea din Bucureşti 1

Concurs online de informatică Categoria PROGRAMARE Secţiunea 5-6 avansaţi PROBLEMA puncte DANS De 1 Iunie - Ziua Copilului se organizează un spe

Propunator: Morar Florin Colegiul National Silvania Zalau Discipina: Informatica Nivel liceal, cls. XI 1.Fişierul text bac.in conţine cel mult 1000 de

Interfețe și Protocoale de Comunicații Arduino-Port Paralel Arduino. Laborator 1- Portul Paralel 1 Caracteristici generale Arduino UNO este o placă de

MergedFile

Microsoft Word - CarteC.doc

Microsoft Word - Software pentru ordonarea multirang a componentelor unei colectivitati.doc

Programarea calculatoarelor. Note de curs Marius Minea 1 Introducere în programarea în C 1.1 Funcţii în limbajul C Calcule şi funcţii La origine, rolu

Textul si imaginile din acest document sunt licentiate Attribution-NonCommercial-NoDerivs CC BY-NC-ND Codul sursa din acest document este licentiat Pu

Unitatea: Școala Gimnazială Disciplina: Informatică și TIC Programa școlară aprobată cu OMEN nr.3393 din Profesor: prof. Clasa: a V-a A, B

Limbaje de programare Pointeri. Alocare dinamică (continuare) 26 noiembrie 2012

Lucrarea 7 Filtrarea imaginilor BREVIAR TEORETIC Filtrarea imaginilor se înscrie în clasa operaţiilor de îmbunătăţire, principalul scop al acesteia fi

1. Găsiți k numerele cele mai apropiate într-un şir nesortat Dându-se un şir nesortat și două numere x și k, găsiți k cele mai apropiate valori de x.

manual_ARACIS_evaluare_experti_v4

Microsoft Word - V_4_Inmultirea_nr_nat.doc

Curs 3 Permutari cu repetitie. Combinari. Algoritmi de ordonare si generare

Nr. 932 din Avizat ISJ Vâlcea, Inspector școlar informatică, Ciochină Luisa EXAMEN DE ATESTARE A COMPETENȚELOR PROFESIONALE A ABSOLVENȚILOR

Microsoft Word - Matematika_kozep_irasbeli_javitasi_0911_roman.doc

Algoritmi elementari Metode de căutare secvenţială binară Metode de ordonare metoda bulelor metoda inserţiei metoda selecţiei metoda numărării Intercl

Microsoft PowerPoint - Curs_SDA_10_RO_2019_v1.pptx

Clasa IX 1. O lăcustă face salturi, fiecare salt în linie dreaptă şi de două ori mai lung ca precedentul. Poate vreodată lăcusta să revină în punctul

Laborator 9: Fire de execuţie Întocmit de: Adina Neculai Îndrumător: Asist. Drd. Gabriel Danciu 20 noiembrie 2011

Slide 1

Microsoft Word - Algoritmi genetici.docx

Slide 1

Microsoft Word - 4-Interfete paralele.doc

Curs 8: Tehnica divizării (I) Algoritmi si structuri de date - Curs 8 1

MINISTERUL EDUCAŢIEI, CULTURII ŞI CERCETĂRII AL REPUBLICII MOLDOVA UNIVERSITATEA DE STAT ALECU RUSSO DIN BĂLŢI FACULTATEA DE ŞTIINŢE REALE, ECONOMICE

Microsoft Word - Curs_09.doc

Logică și structuri discrete Mulțimi Casandra Holotescu

Microsoft Word - D_ MT1_II_001.doc

Logică și structuri discrete Relații. Funcții parțiale Marius Minea marius/curs/lsd/ 20 octombrie 2014

Matematica - Clasa teste pentru grupele de excelenta

PHP (II)

Microsoft Word - proiect preambul.docx

Performanta in matematica de gimnaziu si liceu-program de pregatire al elevilor olimpici MULTIMI. OPERATII CU MULTIMI Partea I+II Cls. a V-a

Dorel LUCHIAN Gabriel POPA Adrian ZANOSCHI Gheorghe IUREA algebră geometrie clasa a VIII-a ediţia a V-a, revizuită mate 2000 standard EDITURA PARALELA

Lucrarea 10

Microsoft Word - Matematika_kozep_irasbeli_jav_utmut0513V28_roman.doc

Transcriere:

Structuri de bază(liniară, alternativă şi repetitivă) Programarea structurată este o manieră de concepere a programelor, potrivit unor reguli bine definite şi independent de limbajul de programare. Scopul programării structurate este elaborarea unor programe uşor de scris, de înţeles şi de modificat. Programarea structurată are la bază teorema de structură care afirmă că orice algoritm cu o singură intrare şi o singură ieşire poate fi reprezentat ca o combinaţie de trei tipuri de structuri de control secvenţa, decizia şi ciclul cu test iniţial. Se mai admite folosirea a încă trei tipuri de structuri de control selecţia, ciclul cu test final şi ciclul cu contor. Reprezentarea algoritmilor în pseudocod 1. Declararea variabilelor variabilă tip; 2. tribuirea variabilă expresie; 3. Operaţia de citire(intrare) citeşte variablia1, variabila2,..., variabilan; 4. Operaţia de scriere(ieşire) Scrie expresie1, expresie2,..., expresien; 5. Structura liniară(secvenţa) Este o succesiune de operaţii ce realizează o prelucrare(transformare) a datelor. Operaţiile sunt executate una după alta, în ordinea scrierii. 6. Structura alternativă(decizia) Permite alegerea unei operaţii/secvenţe de operaţii din două alternative posibile. a. Cu două ramuri dacă C atunci ; altfel B; m notat cu C condiţia care este o propoziţie logică ce poate avea doar una din valorile 1 sau 0(adevărat sau fals). Dacă rezultatul propoziţiei logice C este 1(adevărat) atunci se execută secvenţa de operaţii, altfel se execută secvenţa de operaţii B. b. Cu o ramură dacă C atunci ; Dacă condiţia C este adevărată, atunci se execută secvenţa. c. Cu mai multe ramuri în cazul că selector cazul valoare1: secvenţa 1; cazul valoare2: secvenţa 2;... cazul valoaren: secvenţa n; altfel secvenţa n+1; Se execută, în funcţie de valoarea selectorului, un singur caz. 1

7. Structura repetitivă(ciclu) Permite execuţia repetată a unei secvenţe de operaţii, în funcţie de o anumită condiţie. Poate fi reprezentată prin: a. Ciclu cu test iniţial Execută una sau mai multe operaţii, cât timp o condiţie este adevărată Cât timp C execută Condiţia C este o expresie logică. Cât timp C este adevărată, secvenţa este executată. Când C devine falsă, bucla se incheie. Condiţia C se reevaluează la fiecare intrare în buclă. Deoarece C poate fi falsă în momentul intrării în bucla, e posibil ca secvenţa să nu se execute niciodată. Înainte de intrarea în buclă, trebuie să se realizeze o operaţie de iniţializare a valorii testate în C. În buclă trebuie să existe o operaţie care să creeze premisele ca C să devină falsă pentru a evita ciclarea infinită. b. Ciclu cu test final Execută repetat una sau mai multe operaţii, până când o condiţie C devine adevărată. repetă până când C ceastă structură poate fi simulată cu ajutorul structurii cu test iniţial: cât timp not C execută c. Ciclu cu test final Execută repetat una sau mai multe operaţii, până când condiţia C devine falsă. execută cât timp C ceastă structură poate fi simulată cu ajutorul structurii cu test iniţial: cât timp C execută d. Ciclu cu contor Execută repetat, de un număr prestabilit de ori, o secvenţă de operaţii. Pentru contor v i, v f [pas v] execută unde v i = valoarea iniţială a contorului v f = valoarea finală a contorului v = pasul cu care creşte contorul 2

Implementarea structurilor de control 1. Implementarea structurii secvenţiale Structura secventiala este o insiruire de secvente de prelucrare (instructiuni), plasate una dupa alta, in ordinea in care se doreste executia acestora. a. Instructiunea vida Sintaxa: ; Instructiunea vida nu are nici un efect. Se utilizeaza in constructii in care se cere prezenta unei instructiuni, dar nu se executa nimic (de obicei, in instructiunile repetitive). Exemple: int a; for (;;) b. Instructiunea expresie Sintaxa: expresie; Exemple: int b, a=9; double c; b=a+9; cout<<a; Instructiunea compusa (instructiunea bloc) Sintaxa: declaratii de variabile; instr1; instr2;.... Intr-un bloc se pot declara si variabile care pot fi accesate doar in corpul blocului. Instructiunea bloc este utilizata in locurile in care este necesara prezenta unei singure instructiuni, insa procesul de calcul este mai complex, deci trebuie descris in mai multe secvente. 2. Implementarea structurii decizionale a. Instructiunea if Sintaxa: if (expresie) instructiune1; [ else instructiune2;] Ramura else este optionala. La intalnirea instructiunii if, se evalueaza expresie (care reprezinta o conditie) din paranteze. Daca valoarea expresiei este 1, sau diferita de 0 (conditia este indeplinita) se executa instructiune1; daca valoarea expresiei este 0 (conditia nu este indeplinita), se executa instructiune2. Deci, la un moment dat, se executa doar una dintre cele doua instructiuni: fie instructiune1, fie instructiune2. Dupa executia instructiunii if se trece la executia instructiunii care urmeaza acesteia. 3

Observaţii: 1. Instructiune1 si instructiune2 pot fi instructiuni compuse (blocuri), sau chiar alte instructiuni if (if-uri imbricate). 2. Deoarece instructiunea if testeaza valoarea numerica a expresiei (conditiei), este posibila prescurtarea: if (expresie), in loc de if (expresie!= 0). 3. Deoarece ramura else a instructiunii if este optionala, in cazul in care aceasta este omisa din secventele if-else imbricate, se produce o ambiguitate. De obicei, ramura else se asociaza ultimei instructiuni if. b. Instructiunea switch In unele cazuri este necesara o decizie multipla speciala. Instructiunea switch permite acest lucru. Se testeaza daca valoarea pentru expresie este una dintre constantele specificate (expr_const_1, expr_const_2, etc.) si se executa instructiunea de pe ramura corespunzatoare. In schema logica test_expresie este una din conditiile: expresie=expr_const_1, expresie=expr_const_2, etc. Sintaxa: switch (expresie) case expresie_const_1: instructiune_1; [break;] case expresie_const_2: instructiune_2; [break;].................................. case expresie_const_n-1: instructiune_n-1; [break;] [ default: instructiune_n; ] Este evaluata expresie (expresie aritmetica), iar valoarea ei este comparata cu valoarea expresiilor constante 1, 2, etc. (expresii constante=expresii care nu contin variabile). In situatia in care valoarea expresie este egala cu valoarea expr_const_k, se executa instructiunea corespunzatoare acelei ramuri (instructiune_k). Daca se intalneste instructiunea break, parcurgerea este intrerupta, deci se va trece la executia primei instructiuni de dupa switch. Daca nu este intalnita instructiunea break, parcurgerea continua. Break-ul cauzeaza deci, iesirea imediata din switch. In cazul in care valoarea expresiei nu este gasita printre valorile expresiilor constante, se executa cazul marcat cu eticheta default (cand acesta exista). Expresiile expresie, expresie_const_1, expresie_const_2,etc., trebuie sa fie intregi. 4

STRUCTUR LINIR plicatii Rezolvate Exemplu : interschimbarea a doua numere intregi a si b. PSEUDOCOD algortim Interschimbare a, b, c intregi; scrie a, b; c = a; a = b; b = c; scrie a, b; // Interschimbare in C++ int a,b,c; cout << endl<<a<<b; c=a; a=b; b=c; cout << endl<<a<<b; STRUCTUR LTERNTIV plicatii rezolvate Exemplu :maximul dintre doua numere intregi algoritm maxim a, b, maxi intregi; daca (a>b) maxi=a altfel maxi=b; scrie maxi; // Maxim intre 2 numere int a,b,maxi; if (a>b) maxi=a; else maxi=b; cout << endl<<maxi; STRUCTUR REPETITIV Exista trei tipuri de structuri repetitive: 1) Structura cu numar cunoscut de repetitii (FOR) 2) Structura cu numar necunoscut de repetitii si cu test initial (WHILE) 3) Structura cu numar necunoscut de repetitii si cu test final (DO-WHILE) STRUCTUR REPETITIV CU NUMR CUNOSCUT DE PSI - FOR Exemplu :Calculul sumei primelor n numere naturale algoritm suma n,i,s intregi; citeste n; s=0; pentru i=1,n executa s=s+i; scrie s; // suma primelor n numere naturale Int main () int n,i,s=0; cin>>n; // citim n for (i=1; i<=n; i++) s=s+i; cout << endl<<s; 5

STRUCTUR REPETITIV CU TEST INITIL WHILE plicatii rezolvate Exemplu : Calculul celui mai mare divizor comun a doua numere naturale date Cmmdc(a,b) a, b, rest intregi; rest=a %b cat timp rest!=0 executa a=b b=rest rest=a % b; scrie b; // cmmdc(a,b) int a,b,rest; rest=a%b; while (rest!=0) a=b; b=rest; rest=a%b; cout << endl<<b; STRUCTUR REPETITIV CU TEST FINL DO - WHILE Exemplu : Determinarea cmmdc(a,b) Cmmdc(a,b) a, b, rest intregi; repeta rest=a %b a=b b=rest cat timp rest!=0 scrie a; // cmmdc(a,b) int a,b,rest; do rest=a%b; a=b; b=rest; while (rest!=0) cout << endl<<a; Structura liniara si alternativa-probleme propuse 1) Dandu-se doua numere naturale cu maxim patru cifre in variabilele a si b, se cere sa se afiseze cate numere impare sunt mai mici sau egale decat b si mai mari sau egale decat a. 2) Sa se determine cate numere din intervalul [a,b] sunt divizibile cu un numar dat k ( a,b,k se vor citi din fisierul de intrare divizibile.in, iar rezultatul se va afisa in divizibile.out). 3) Determinati numarul numerelor naturale mai mici sau egale decat n care sunt divizibile cu 2 sau 3. 4) Sa se determine ultima cifra a lui 2 n. 5) O broscuta face in fiecare minut cate un salt.lungimea primului salt este p (valoare citita din fisierul de intrare broscuta.in) dupa care, fiecare salt are lungimea dubla fata de lungimea saltului anterior facut.realizati un program care afiseaza in fisierul de iesire broscuta.out, distanta totala parcursa de broscuta in m salturi ( m citit din fisierul broscuta.in) 6

Ex: p=2,m=5, se va afisa 62(2+4+8+16+32) 6) Ordonati crescator trei numere naturale date. 7) Se citeste o valoare x, numar natural.sa se realizeze un program care va afisa cele mai apropiate doua numere naturale pare de numarul x. Ex: x=14, se va afisa 12 si 16 x=15, se va afisa 14 si 16 8) Realizati un program care citeste din fisierul de intrare o valoare x( x<365).fisati pe ecran in ce luna a anului se afla ziua cu numarul x. Ex: x=33, se va afisa februarie 9) Problema Cadoul Irina vrea sa cumpere doua carti pentru ziua de nastere a prietenei, na.dar Irina trebuie sa aleaga doua carti dintre cele trei carti pe care si le doreste na. Stiind ca Irina dipune de s lei si ca doreste sa-i ramana cat mai multi lei dupa cumpararea celor doua carti, astfel incat sa poata cumpara si niste flori frumoase, scrieti un program prin care sa o ajutati sa aleaga cele doua carti. Suma de care dispune ea, precum si preturile celor trei carti se vor introduce de la tastatura.programul va afisa numerele de ordine ale cartilor din care se compune cadoul.restrictii : toate valorile sunt numere naturale mai mici sau egale cu 1000000. 10) Se introduc de la tastatura trei numere naturale mai mici decat 10000.Sa se rearanjeze cele trei numere pe ecran astfel incat sa se formeze urmatoarele forme de relief PODIS MUNTE 11) In fiecare zi lucratoare din saptamana, Pinochio spune cate o minciuna datorita careia ii creste nasul cu cate p cm pe zi.sambata si duminica, cand vine bunicul Gepeto acasa, pentru a nu-l supara prea tare, Pinochio reuseste sa nu spuna nici o minciuna, ba chiar uitandu-se in oglina observa ca in fiecare din aceste zile lungimea nasului sau scade cu cate 1 centimetru pe zi.cand incepe o noua saptamana, ramanand singur acasa, Pinochio continua sirul minciunilor. Care este dimensiunea nasului lui Pinochio dupa k zile, stiind ca initial nasul sau masura n centimetri? (n,p,k se citesc de la tastatura) 12) Sa se determine cele mai mari doua numere dintre trei numere naturale introduse de la tastatura. 13)http://liis.ro/~infosuport -fisa structura liniara si fisa structura alternativa Tema http://varena.ro problemele: cifra, balaur, parola http://campion.edu.ro problemele: xyz,bancomat,psp Trimiteţi soluţiile pe adresa maftei03@gmail.com sub forma unei arhive denumită cu numele vostru. Creaţi arhiva urmând paşii: 1. Creaţi un folder cu numelevostru_tema2 2. Copiati una câte una sursele main.cpp în acest folder şi redenumiţi-le cu numele problemei 3. rhivaţi acest folder pastrand numele arhivei identic cu al folderului 4. taşaţi arhiva la email-ul pe care îl trimiteţi la adresa maftei03@gmail.com Termen: 22 nov 2015, ora 21 SUCCES! 7