307
GHID METODOLOGIC PENTRU ACTIVITATEA DIDACTICĂ CU ELEVII CARE NU AU AVUT/ NU AU ACCES LA TEHNOLOGIE Disciplina INFORMATICĂ ȘI TIC – pentru gimnaziu Disciplinele TIC și INFORMATICĂ – pentru liceu 1 Vâlcea, Rm. Vâlcea, B-dul Nicolae Bălcescu, nr. 30, 240192 Tel: 0350431571, 0753084270 Fax: 0350431576

isjvl.ro  · Web view- metode de parcurgere a arborelui binar reprezentat prin vectori (cu alocare statică a memoriei): RSD (preordine: se parcurge mai întâi nodul rădăcină,

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

GHID METODOLOGIC

PENTRU ACTIVITATEA DIDACTICĂ CU ELEVII CARE

NU AU AVUT/ NU AU ACCES LA TEHNOLOGIE

· Disciplina INFORMATICĂ ȘI TIC – pentru gimnaziu

· Disciplinele TIC și INFORMATICĂ – pentru liceu

2020

GRUP DE LUCRU:

· Profesor Cataragă Ștefania Issabella, Colegiul Național „Alexandru Lahovari”, Rm. Vâlcea;

· Profesor Ciochină Luisa, Liceul Tehnologic Forestier, Rm. Vâlcea;

· Profesor Cojocaru Nicoleta, Colegiul Național de Informatică „Matei Basarab”, Rm. Vâlcea;

· Profesor Farcaşanu Maria-Antoanela, Colegiul Național „Mircea cel Bătrân”, Rm. Vâlcea;

· Profesor Grecea Violeta, Colegiul Național de Informatică „Matei Basarab”, Rm. Vâlcea;

· Profesor Ianc Simona, Colegiul Național „Alexandru Lahovari”, Rm. Vâlcea;

· Profesor Merlan Doina Narcisa, Colegiul Economic, Rm. Vâlcea;

· Profesor Mlisan Mirela, Colegiul Național „Mircea cel Bătrân”, Rm. Vâlcea;

· Profesor Pătru Laurențiu, Colegiul Național „Gib Mihăescu”, Drăgășani;

· Profesor Tricuță Algina Elena, Liceul de Arte „Victor Giuleanu”, Rm. Vâlcea;

COORDONATOR:

· Profesor Merlan Doina Narcisa - inspector școlar pentru informatică;

COLECTIV DE REDACȚIE:

· Inspector școlar general - profesor Andreianu Mihaela;

· Inspector școlar general adjunct - profesor Toma Mirela;

· Inspector școlar pentru informatică - profesor Merlan Doina Narcisa;

CUPRINS

I. ARGUMENT ..........................................................................................................

6

II. IDENTIFICAREA GRUPULUI ȚINTĂ LA NIVELUL

FIECĂREI UNITĂȚI DE ÎNVĂȚĂMANT ................................................

6

III. ANALIZA DE NEVOI .....................................................................................

6

IV. ELABORAREA ȘI UTILIZAREA RESURSELOR EDUCAȚIONALE ....................................................................................................

7

4.1. Disciplina INFORMATICĂ ȘI TIC – pentru gimnaziu ........................................

8

4.2. Disciplina INFORMATICĂ – pentru liceu ...........................................................

9

4.3. Disciplina TEHNOLOGIA INFORMAȚIILOR ȘI A COMUNICAȚIILOR (TIC) – pentru liceu ......................................................................................................

12

V. MODALITĂȚI DE COMUNICARE ȘI TRANSMITERE A

MATERIALELOR CĂTRE ELEVI ............................................................

14

VI. MODALITĂȚI DE ASIGURARE A FEEDBACK-ULUI

DIN PARTEA ELEVILOR ............................................................................

14

ANEXA 1 - Disciplina Informatică și TIC – gimnaziu

A 1 – 1. Operatori și operanzi - clasa a V-a .......................................................

16

A 1 – 2. Structuri repetitive întâlnite într-un algoritm - clasa a VI-a .................

19

A 1 – 3. Rețele de calculatoare - clasa a VI-a ....................................................

25

A 1 – 4. Test Internet - clasa a VI-a ...................................................................

29

ANEXA 2 - Disciplina Informatică – liceu

A 2 – 1. Test de Evaluare. Algoritmi/ Expresii/ Structuri - clasa a IX-a, matematică-informatică ......................................................................................

33

A 2 – 2. Test de Evaluare. Algoritmi/ Expresii/ Structuri - clasa a IX-a, științele naturii ....................................................................................................

34

A 2 – 3. Vector de frecvență/ vector caracteristic - clasa a IX-a, matematică-informatică intensiv informatică .........................................................................

35

A 2 – 4. Prelucrări ale secvențelor de elemente dintr-un vector - clasa a IX-a, matematică-informatică intensiv informatică; clasa a X-a matematică-informatică ..........................................................................................................

39

A 2 – 5. Sume parțiale în vectori - clasa a IX-a, matematică-informatică/ matematică-informatică intensiv informatică .....................................................

43

A 2 – 6. Vectori caracteristici/de apariții și vectori de frecvență –

clasa a IX-a, matematică-informatică/ matematică-informatică intensiv informatică ..........................................................................................................

46

A 2 – 7. Recursivitatea - clasa a XI-a, matematică-informatică, clasa a X-a matematică-informatică intensiv informatică .....................................................

52

A 2 – 8. Test Recursivitate - clasa a XI-a, matematică-informatică,

clasa a X-a matematică-informatică intensiv informatică ..................................

56

A 2 – 9. Divide et Impera. Aplicații cu vectori - clasa a XI-a, matematică-informatică/ matematică-informatică intensiv informatică .................................

58

A 2 – 10. Metoda Greedy - clasa a XI-a, matematică-informatică,

clasa a X-a matematică-informatică intensiv informatică ..................................

68

A 2 – 11. Metoda Backtracking. Probleme rezolvate - clasa a XI-a, matematică-informatică/ matematică-informatică intensiv informatică .............

82

A 2 – 12. Arborii - clasa a XI-a, matematică-informatică/

matematică-informatică intensiv informatică ....................................................

104

A 2 – 13. Aplicații cu arbori - clasa a XI-a, matematică-informatică/

matematică-informatică intensiv informatică ....................................................

108

A 2 – 14. Arbore parțial de cost minim - clasa a XI-a, matematică-informatică/ matematică-informatică intensiv informatică ................................

112

A 2 – 15. Fișă de lucru Arbori - clasa a XI-a, matematică-informatică/

matematică-informatică intensiv informatică .....................................................

116

A 2 – 16. Temă vectori de tați - clasa a XI-a, matematică-informatică/

matematică-informatică intensiv informatică .....................................................

118

A 2 – 17. Test arbori binari - clasa a XI-a, matematică-informatică/

matematică-informatică intensiv informatică .....................................................

119

A 2 – 18. Variante bacalaureat 2009 informatică intensiv C++. Rezolvări grafuri neorientate - clasa a XII-a, matematică-informatică, clasa a XII-a matematică-informatică intensiv informatică (pregătire bacalaureat) ................

129

A 2 – 19. Model subiect bacalaureat 2019. Rezolvări și explicații -

clasa a XII-a, matematică-informatică, clasa a XII-a matematică-informatică intensiv informatică (pregătire bacalaureat) .......................................................

138

ANEXA 3 - Disciplina Tehnologia informației și a

comunicațiilor (TIC) – liceu

A 3 – 1. Structura rețelei Internet - clasa a IX-a ................................................

161

A 3 – 2. Test de evaluare rețeaua Internet - clasa a IX-a ...................................

169

A 3 – 3. Baze de date. Diagrama „entități-relații“ (ERD) - clasa a X-a ............

173

A 3 – 4. Baze de date Microsoft Access - clasa a X-a .......................................

182

A 3 – 5. Test de evaluare baze de date Microsoft Access - clasa a X-a ............

203

A 3 – 6. Baze de date. Maparea ERD-ului - clasa a XI-a ..................................

206

A 3 – 7. Suport didactic competențe digitale - clasa a XII-a .............................

210

A 3 – 8. Fișă de lucru competențe digitale - clasa a XII-a .................................

217

I. ARGUMENT

Având în vedere faptul că o parte din elevii/cadrele didactice din învățământul preuniversitar nu au avut/nu au acces la tehnologie în perioada 11 martie – 12 iunie 2020, prezentul ghid reprezintă o modalitate de a veni în sprijinul acestora cu instrumente de lucru și resurse educaționale în vederea reducerii decalajului între ei și elevii care au avut acces la învățarea on-line.

Un alt aspect avut în vedere la elaborarea ghidului metodologic îl constituie finalizarea anului școlar 2019-2020 prin încheierea situației școlare pentru toți elevii.

Ghidul conține etapele care trebuie parcurse de către unitățile de învățământ și cadrele didactice în vederea finalizării anului școlar.

II. IDENTIFICAREA GRUPULUI ȚINTĂ

LA NIVELUL FIECĂREI UNITĂȚI DE ÎNVĂȚĂMANT

Grupul țintă îl constituie elevii care nu au avut/nu au acces la tehnologie.

III. ANALIZA DE NEVOI

Identificarea mijloacelor de comunicare cu elevii (telefon, poștă, voluntari din cadrul unităților de învățământ, din cadrul ONG-urilor, al autorităților locale etc.).

Identificarea conținuturilor care nu au fost parcurse de elevii care nu au putut participa la învățământul on-line în perioada 11 martie - 12 iunie 2020, pentru fiecare disciplină/ modul, respectiv pentru fiecare nivel/ clasă.

Identificarea instrumentelor de lucru și a resurselor educaționale de care dispune unitatea de învățământ, pentru fiecare disciplină/ modul, respectiv pentru fiecare nivel/ clasă.

Identificarea elevilor cu CES integrați în învățământul de masă.

IV. ELABORAREA ȘI UTILIZAREA RESURSELOR EDUCAȚIONALE

Resursele educaționale vor fi elaborate din materia parcursă on-line, cu ajutorul instrumentelor și platformelor specifice, în perioada 11 martie - 12 iunie 2020, de către elevii care au avut acces la tehnologie.

Programa pentru disciplina Informatică şi TIC pentru clasele V-VIII identifică un set relevant de competențe generale şi specifice pentru societatea actuală, oferind activităţi de învățare, conținuturi şi sugestii metodologice utile pentru realizarea profilului de formare al absolventului de gimnaziu, conform descriptivului competenței digitale.

Pentru disciplina Informatică, programele școlare în vigoare evidențiază atât aspectul teoretic, de analiză a problemelor și de proiectare a algoritmilor de rezolvare (specific orelor desfășurate în sala de clasă, fără tehnologie/ calculator), cât și aspectul practic, de elaborare efectivă a programelor/ aplicațiilor software folosind un anumit mediu (limbaj) de programare (specific orelor desfășurate în laboratorul de informatică, utilizând tehnologia/ calculatorul).

Din nota de prezentare a programelor școlare în vigoare pentru disciplina Tehnologia informației și a comunicațiilor (TIC) se desprinde necesitatea utilizării tehnologiei/ a calculatorului pe parcursul orelor de instruire, atât individual, cât și în echipe/ grupe de lucru, în scopul realizării de proiecte/ produse software care să răspundă cerințelor specifice domeniului de pregătire/ specializării elevului.

Elevii claselor a XII-a vor susține examenul național de bacalaureat, astfel:

· la disciplina TIC – proba de Evaluare a competențelor digitale (proba D) – toate profilurile și specializările (probă obligatorie);

· la disciplina Informatică – proba la alegere a profilului și specializării (proba E. d - probă scrisă) – pentru elevii de la clasele de științele naturii, matematică-informatică, matematică-informatică intensiv - Informatică (probă la alegere).

Este clar faptul că, la disciplinele Tehnologia informației și a comunicațiilor (TIC), cât și la Informatică (pentru cei de profil), instruirea lor, acasă, on-line, sau la școală, se va axa pe pregătirea acestor probe ale examenului de bacalaureat.

În acest sens, pentru realizarea materialelor necesare, profesorul poate folosi subiectele propuse în anii anteriori la probele mai sus menționate, precum și testele de antrenament pentru Bacalaureat 2020:

https://www.competentedigitale.ro/home/

https://sites.google.com/site/competentetic/subiecte-competente-digitale

https://rocnee.eu/testeantrenament/

https://www.modinfo.ro/bac.php

Ținând cont de aceste aspecte, profesorul va realiza materiale (fișe de documentare, fișe de lucru, fișe/teste de evaluare/autoevaluare etc.) care să ajute elevul pus în situația de a învăța despre tehnologie, fără tehnologie.

Se va pune accentul pe pregătirea teoretică, în scopul asimilării și fixării noilor noțiuni, precum și în scopul pregătirii elevului pentru recuperarea orelor de laborator (pregătirea practică), atunci când va avea acces la tehnologie/ calculator.

O sursă de materiale educaționale pentru profesori și elevi o reprezintă resursele educaționale deschise (RED) postate pe site-urile inspectoratelor școlare. Acestea sunt mijloace de învățare adaptate la nevoile specifice ale procesului instructiv-educativ. Din această categorie fac parte diferite tipuri de materiale de învățare, suporturi de curs, proiecte, experimente și demonstrații, programe școlare, ghiduri pentru profesori sau alte materiale educaționale.

4.1. Disciplina INFORMATICĂ ȘI TIC – pentru gimnaziu

În pregătirea materialelor necesare pentru clasele a V-a, a VI-a și a VII-a, profesorul poate folosi manualele digitale puse la dispoziție de Ministerul Educației și Cercetării pe site-ul cu adresa https://manuale.edu.ro/manuale :

Pentru a veni în sprijinul profesorului, acest ghid îi pune la dispoziție modele de fișe de documentare, fișe de lucru, fișe/teste de evaluare/autoevaluare etc.

Materiale realizate de cadrele didactice din județul Vâlcea, pentru disciplina Informatică și TIC – gimnaziu (ANEXA 1):

· OPERATORI ȘI OPERANZI - clasa a V-a, material realizat de profesor Farcaşanu Maria-Antoanela, de la Colegiul Național „Mircea cel Bătrân”, Rm. Vâlcea;

· STRUCTURI REPETITIVE ÎNTÂLNITE ÎNTR-UN ALGORITM - clasa a VI-a, material realizat de profesor Grecea Violeta, de la Colegiul Național de Informatică „Matei Basarab”, Rm. Vâlcea;

· REȚELE DE CALCULATOARE - clasa a VI-a, material realizat de profesor Tricuță Algina Elena, de la Liceul de Arte „Victor Giuleanu”, Rm. Vâlcea;

· TEST INTERNET - clasa a VI-a, material realizat de profesor Tricuță Algina Elena, de la Liceul de Arte „Victor Giuleanu”, Rm. Vâlcea.

4.2. Disciplina INFORMATICĂ – pentru liceu

Această disciplină este prevăzută în planul cadru pentru clasele de matematică-informatică, atât intensiv cât și neintensiv (diferă numărul de ore pe săptămână și evident că și între conținuturi apar unele diferențe), dar și pentru clasele de științe ale naturii.

· PROGRAME ȘCOLARE – INFORMATICĂ, clasa a IX-a, ciclul inferior al liceului, Filiera teoretică, profil real, specializările: Matematică-informatică, științele naturii, Filiera vocațională, profil militar, specializarea: Matematică-informatică;

· PROGRAME ȘCOLARE – INFORMATICĂ, clasa a IX-a, ciclul inferior al liceului, Filiera teoretică, profil real, specializarea: Matematică-informatică intensiv informatică, Filiera vocațională, profil militar, specializarea: Matematică-informatică intensiv informatică;

· PROGRAME ȘCOLARE – INFORMATICĂ, clasa a X-a, ciclul inferior al liceului, Filiera teoretică, profil real, specializările: Matematică-informatică, științele naturii, Filiera vocațională, profil militar, specializarea: Matematică-informatică;

· PROGRAME ȘCOLARE – INFORMATICĂ, clasa a X-a, ciclul inferior al liceului, Filiera teoretică, profil real, specializarea: Matematică-informatică intensiv informatică, Filiera vocațională, profil militar, specializarea: Matematică-informatică intensiv informatică;

· PROGRAME ȘCOLARE – INFORMATICĂ, clasa a XI-a, ciclul superior al liceului, Filiera teoretică, profil real, specializările: Matematică-informatică, științele naturii, Filiera vocațională, profil militar, specializarea: Matematică-informatică;

· PROGRAME ȘCOLARE – INFORMATICĂ, clasa a XI-a, ciclul superior al liceului, Filiera teoretică, profil real, specializarea: Matematică-informatică intensiv informatică, Filiera vocațională, profil militar, specializarea: Matematică-informatică intensiv informatică;

· PROGRAME ȘCOLARE – INFORMATICĂ, clasa a XII-a, ciclul superior al liceului, Filiera teoretică, profil real, specializările: Matematică-informatică, științele naturii, Filiera vocațională, profil militar, specializarea: Matematică-informatică;

· PROGRAME ȘCOLARE – INFORMATICĂ, clasa a XII-a, ciclul superior al liceului, Filiera teoretică, profil real, specializarea: Matematică-informatică intensiv informatică, Filiera vocațională, profil militar, specializarea: Matematică-informatică intensiv informatică.

Pentru clasele cu specializarea matematică-informatică și cele cu specializarea matematică-informatică intensiv informatică, conținuturile din programele școlare sunt asemănătoare, diferența făcându-se prin parcurgerea materiei, mai „repede” la clasele de matematică-informatică intensiv informatică, datorită numărului de ore mai mare (în general, sunt 3 ore în plus, care se desfășoară în laboratorul de informatică, pe grupe de 10-15 elevi).

Fișele de lucru sau de evaluare/ autoevaluare și testele care sunt folosite la una din specializările precizate mai sus, în anumite situații pot fi folosite și pentru celelalte specializări, profesorul de la clasă fiind cel care poate stabili, în funcție de programă, de materia parcursă, de nivelul și caracteristicile grupului de elevi, care resurse educaționale sunt potrivite pentru elevii săi.

Pentru a veni în sprijinul profesorului, acest ghid îi pune la dispoziție modele de fișe de documentare, fișe de lucru, fișe/teste de evaluare/autoevaluare etc. pentru disciplina Informatică, structurate astfel (ANEXA 2):

· TEST DE EVALUARE. ALGORITMI/ EXPRESII/ STRUCTURI - clasa a IX-a, matematică-informatică, material realizat de profesor Cataragă Ștefania Issabella, de la Colegiul Național „Alexandru Lahovari”, Rm. Vâlcea;

· TEST DE EVALUARE. ALGORITMI/ EXPRESII/ STRUCTURI - clasa a IX-a, științele naturii, material realizat de profesor Cataragă Ștefania Issabella, de la Colegiul Național „Alexandru Lahovari”, Rm. Vâlcea;

· VECTOR DE FRECVENȚĂ/ VECTOR CARACTERISTIC - clasa a IX-a, matematică-informatică intensiv informatică, material realizat de profesor Cojocaru Nicoleta, de la Colegiul Național de Informatică „Matei Basarab”, Rm. Vâlcea;

· PRELUCRĂRI ALE SECVENȚELOR DE ELEMENTE DINTR-UN VECTOR - clasa a IX-a, matematică-informatică intensiv informatică; clasa a X-a, matematică-informatică, material realizat de profesor Ianc Simona, de la Colegiul Național „Alexandru Lahovari”, Rm. Vâlcea;

· SUME PARȚIALE ÎN VECTORI - clasa a IX-a, matematică-informatică/ matematică-informatică intensiv informatică, material realizat de profesor Ianc Simona, de la Colegiul Național „Alexandru Lahovari”, Rm. Vâlcea;

· VECTORI CARACTERISTICI/ DE APARIȚII ȘI VECTORI DE FRECVENȚĂ - clasa a IX-a, matematică-informatică, intensiv informatică, material realizat de profesor Ianc Simona, de la Colegiul Național „Alexandru Lahovari”, Rm. Vâlcea;

· RECURSIVITATEA - clasa a XI-a, matematică - informatică; clasa a X-a, matematică-informatică intensiv informatică, material realizat de profesor Pătru Laurențiu, de la Colegiul Național „Gib Mihăescu”, Drăgășani;

· TEST ERECURSIVITATE - clasa a XI-a, matematică-informatică; clasa a X-a, matematică-informatică intensiv informatică, material realizat de profesor Pătru Laurențiu, de la Colegiul Național „Gib Mihăescu”, Drăgășani;

· DIVIDE ET IMPERA. APLICAȚII CU VECTORI - clasa a XI-a, matematică-informatică; clasa a X-a, matematică-informatică intensiv informatică, material realizat de profesor Merlan Doina Narcisa, de la Colegiul Economic, Rm. Vâlcea;

· METODA GREEDY – clasa a XI-a, matematică-informatică intensiv informatică, material realizat de profesor Cataragă Ștefania Issabella, de la Colegiul Național „Alexandru Lahovari”, Rm. Vâlcea;

· METODA BACKTRACKING. PROBLEME REZOLVATE - clasa a XI-a, matematică-informatică/ matematică-informatică intensiv informatică, material realizat de profesor Merlan Doina Narcisa, de la Colegiul Economic, Rm. Vâlcea;

· CREAREA ȘI PARCURGEREA LISTELOR LINIARE ALOCATE DINAMIC (lecție video .mp4) - clasa a XI-a, matematică-informatică intensiv informatică, material realizat de profesor Mlisan Mirela, de la Colegiul Național „Mircea cel Bătrân”, Rm. Vâlcea;

· ARBORII - clasa a XI-a, matematică-informatică/ matematică-informatică intensiv informatică, material realizat de profesor Farcașanu Maria Antoanela, de la Colegiul Național „Mircea cel Bătrân”, Rm. Vâlcea;

· APLICAȚII CU ARBORI - clasa a XI-a, matematică-informatică/ matematică-informatică intensiv informatică, material realizat de profesor Farcașanu Maria Antoanela, de la Colegiul Național „Mircea cel Bătrân”, Rm. Vâlcea;

· ARBORE PARȚIAL DE COST MINIM - clasa a XI-a, matematică-informatică/ matematică-informatică intensiv informatică, material realizat de profesor Farcașanu Maria Antoanela, de la Colegiul Național „Mircea cel Bătrân”, Rm. Vâlcea;

· FIȘĂ DE LUCRU ARBORI - clasa a XI-a, matematică-informatică/ matematică-informatică intensiv informatică, material realizat de profesor Farcașanu Maria Antoanela, de la Colegiul Național „Mircea cel Bătrân”, Rm. Vâlcea;

· TEMĂ VECTORI DE TAȚI - clasa a XI-a, matematică-informatică/ matematică-informatică intensiv informatică, material realizat de profesor Farcașanu Maria Antoanela, de la Colegiul Național „Mircea cel Bătrân”, Rm. Vâlcea;

· TEST ARBORI BINARI - clasa a XI-a, matematică-informatică/ matematică-informatică intensiv informatică, material realizat de profesor Merlan Doina Narcisa, de la Colegiul Economic, Rm. Vâlcea;

· VARIANTE BACALAUREAT 2009 INFORMATICĂ INTENSIV C++. REZOLVĂRI GRAFURI NEORIENTATE - clasa a XII-a, matematică-informatică intensiv informatică (pregătire pentru bacalaureat), material realizat de profesor Merlan Doina Narcisa, de la Colegiul Economic, Rm. Vâlcea;

· MODEL SUBIECT BACALAUREAT 2019. REZOLVĂRI ȘI EXPLICAȚII - clasa a XII-a, matematică-informatică (pregătire pentru bacalaureat), material realizat de profesor Merlan Doina Narcisa, de la Colegiul Economic, Rm. Vâlcea.

4.3. Disciplina TEHNOLOGIA INFORMAȚIILOR ȘI A

COMUNICAȚIILOR (TIC) – pentru liceu

Această disciplină este prevăzută în planul cadru pentru toate clasele de liceu, indiferent de profil, specializare sau domeniu de pregătire. Conținuturile din programele școlare pentru clasele a IX-a și a X-a sunt comune multor specializări, acestea fiind baza pentru programa probei de evaluare a competențelor digitale din cadrul examenului de bacalaureat.

· PROGRAME ȘCOLARE - TEHNOLOGIA INFORMAȚIEI ȘI A COMUNICAȚIILOR, clasa a IX-a, ciclul inferior al liceului, Filiera tehnologică, toate profilurile și specializările;

· PROGRAME ȘCOLARE - TEHNOLOGIA INFORMAȚIEI ȘI A COMUNICAȚIILOR, clasa a IX-a, ciclul inferior al liceului, Filiera vocațională, profil militar, specializarea: Matematică-informatică;

· PROGRAME ȘCOLARE - TEHNOLOGIA INFORMAȚIEI ȘI A COMUNICAȚIILOR, clasa a IX-a, ciclul inferior al liceului, Filiera teoretică, toate profilurile și specializările; Filiera vocațională, profilurile artistic, sportiv, pedagogic, teologic, ordine și securitate publică;

· PROGRAME ȘCOLARE - TEHNOLOGIA INFORMAȚIEI ȘI A COMUNICAȚIILOR, clasa a X-a, ciclul inferior al liceului, Filiera tehnologică, toate profilurile și specializările; Filiera vocațională, profil militar, specializarea: Matematică-informatică; Filiera teoretică, toate profilurile și specializările; Filiera vocațională, profilurile artistic, sportiv, pedagogic, teologic, ordine și securitate publică;

Pentru a veni în sprijinul profesorului, acest ghid îi pune la dispoziție modele de fișe de documentare, fișe de lucru, fișe/teste de evaluare/autoevaluare etc. pentru disciplina Tehnologia informației și a comunicațiilor (TIC), structurate astfel (ANEXA 3):

· STRUCTURA REȚELEI INTERNET – clasa a IX-a, filiera tehnologică, toate profilurile și specializările, material realizat de Ciochină Luisa, de la Liceul Tehnologic Forestier, Rm. Vâlcea;

· TEST DE EVALUARE REȚEAUA INTERNET - clasa a IX-a, filiera tehnologică, toate profilurile și specializările, material realizat de profesor Ciochină Luisa, de la Liceul Tehnologic Forestier, Rm. Vâlcea;

· BAZE DE DATE. DIAGRAMA ENTITĂȚI-RELAȚII (ERD) - clasa a X-a, filiera tehnologică, toate profilurile și specializările, material realizat de profesor Merlan Doina Narcisa, de la Colegiul Economic, Rm. Vâlcea;

· BAZE DE DATE MICROSOFT ACCESS (arhivă .rar) - clasa a X-a, filiera teoretică, toate profilurile și specializările, material realizat de profesor Cojocaru Nicoleta, de la Colegiul Național de Informatică „Matei Basarab”, Rm. Vâlcea;

· TEST DE EVALUARE BAZE DE DATE MICROSOFT ACCESS - clasa a X-a, filiera teoretică, profil real, filiera vocațională, profil artistic, material realizat de profesor Tricuță Algina Elena, de la Liceul de Arte „Victor Giuleanu”, Rm. Vâlcea;

· BAZE DE DATE. MAPAREA ERD-ULUI - clasa a XI-a, filiera tehnologică, toate profilurile și specializările, material realizat de profesor Merlan Doina Narcisa, de la Colegiul Economic, Rm. Vâlcea;

· SUPORT DIDACTIC COMPETENȚE DIGITALE - clasa a XII-a, filiera tehnologică, toate profilurile și specializările, material realizat de profesor Ciochină Luisa, de la Liceul Tehnologic Forestier, Rm. Vâlcea;

· FIȘĂ DE LUCRU COMPETENȚE DIGITALE – clasa a XII-a, filiera tehnologică, toate profilurile și specializările, material realizat de profesor Ciochină Luisa, de la Liceul Tehnologic Forestier, Rm. Vâlcea.

V. MODALITĂȚI DE COMUNICARE ȘI TRANSMITERE A

MATERIALELOR CĂTRE ELEVI

Cadrele didactice vor contacta telefonic elevii și părinții acestora.

Resursele educaționale pot fi puse la dispoziția elevilor prin poștă sau prin intermediul voluntarilor din cadrul unităților de învățământ, ONG-urilor, autorităților locale, etc.).

Transmiterea resurselor educaționale se face periodic(cel puțin o dată pe săptămână).

VI. MODALITĂȚI DE ASIGURARE A FEEDBACK-ULUI

DIN PARTEA ELEVILOR

Colectarea fișelor de lucru, fișelor/testelor de evaluare/autoevaluare se face la nivelul unității de învățământ de către persoanele implicate în transmiterea acestora, iar școala asigură transmiterea acestora către cadrele didactice spre evaluare și oferirea feedback-ului către elevi.

ANEXA 1

Disciplina INFORMATICĂ ȘI TIC – pentru gimnaziu

ANEXA 1 – 1

OPERATORI ŞI OPERANZI

· Clasa a V-a

Profesor Farcaşanu Maria-Antoanela

Colegiul Național „Mircea cel Bătrân”, Rm. Vâlcea

FORMULA este expresia formată din OPERATORI şi OPERANZI.

OPERANZII exprimă valorile sau variabilele care vor participa la calculul formulei.

OPERATORII sunt simboluri care redau „acțiunile” ce vor avea loc între operanzi.

Operatorii se împart în mai multe grupe:

· Operatori aritmetici:

OPERATOR

ACŢIUNEA

SCRIEREA RELAŢIEI

EXEMPLU

+

Adunarea a doi operanzi

a + b

3 + 5 = 8

-

Scăderea a doi operanzi

a - b

10 – 2 =8

*

Înmulțirea a doi operanzi

a * b

5 * 2 = 10

/

Câtul împărțirii a doi operanzi

a / b

5 / 2 = 2

%

Restul împărțirii a doi operanzi

a % b

5 % 2 = 1

· Operatorul de atribuire:

OPERATOR

ACŢIUNEA

SCRIEREA RELAŢIEI

EXEMPLU

=

Variabilei din stânga îi este atribuită valoarea variabilei din dreapta

a = b

a = 2 şi b = 3

a = b

a = 3 şi b = 3

· Operatorii de relație:

OPERATOR

ACŢIUNEA

SCRIEREA RELAŢIEI

EXEMPLU

<

Mai mic decât

a < b

a < 5

< =

Mai mic sau egal decât

a < = b

a < =9

= =

Egal cu

a = = b

7 = = 7 sau y = = 21

> =

Mai mare sau egal decât

a > = b

x > = 10

>

Mai mare decât

a > b

x > = 10

! =

Diferit de

a ! = b

5 ! = 3 sau b ! = 1

· Operatorii logici:

OPERATOR

ACŢIUNEA

SCRIEREA RELAŢIEI

AND ( && )

ŞI logic

a && b

OR ( | | )

SAU logic

a || b

NOT ( ! )

negare

!a

a

b

a && b

0

0

0

0

1

0

1

0

0

1

1

1

a

b

a | | b

0

0

0

0

1

1

1

0

1

1

1

1

a

! a

0

1

1

0

APLICAȚII REZOLVATE:

1) 10 – 7 % 3 * 2 = 10 – 1 * 2 = 10 – 2 = 8

2) 15 / 7 – 8 % ( 3 – 1 ) + 10 = 2 – 8 % 2 + 10 = 2 – 0 + 10 = 12

3) ( 24 % 3 / 5 + 1) * 7 / 3 = ( 8 / 5 + 1 ) * 7 / 3 = ( 1 + 1 ) * 7 / 3 = 2 * 7 / 3 = 14 / 3 = 4

4) 100 – ( 25 / 5 + 7 ) % 10 * 2 = 100 – ( 5 + 7 ) % 10 * 2 = 100 – 12 % 10 * 2 =

= 100 – 2 * 2 = 100 – 4 = 96

5) 14 * ( 5 % 3 – 1 ) + 27 / 9 = 14 * (2 – 1 ) + 3 = 14 + 3 = 17

REVENIRE

ANEXA 1 - 2

STRUCTURILE REPETITIVE ÎNTÂLNITE ÎNTR-UN ALGORITM

· Clasa a VI-a

Profesor Grecea Violeta

Colegiul Național de Informatică „Matei Basarab”, Rm. Vâlcea

Într-un algoritm, întâlnim următoarele tipuri de structuri:

Structurile repetitive ne permit să repetăm un grup de instrucțiuni!

STRUCTURA REPETITIVĂ CU NUMĂR CUNOSCUT DE PAȘI

Determină executarea unui grup de instrucțiuni de un număr precizat de ori.

Exemplu:

Un personaj dintr-un joc va sări de 10 ori în sus. Al doilea personaj va bate de 3 ori din palme. Repetarea acțiunii (sărit în sus, bătut din palme) se realizează cu ajutorul unor instrucțiuni repetitive cu număr cunoscut de pași.

· Sintaxa în pseudocod a unei structuri repetitive cu număr cunoscut de pași

În limbajul pseudocod (limbaj natural de descriere a algoritmilor), structura repetitivă cu număr cunoscut de pași are următoarea sintaxă:

┌ PENTRU contor <- valoare inițială, valoare finală, pas EXECUTĂ

│ Instrucțiuni

└■

Instrucțiunile se execută pentru fiecare valoare a contorului care îndeplinește condiția de a se situa între valoarea inițială și valoarea finală, inclusiv aceasta. După fiecare execuție, contorul își modifică valoarea cu cea anterioară + pas.

· Exemple din viața de zi cu zi - structuri repetitive cu număr cunoscut de pași

1. Modul în care rezolvăm cele 7 exerciții din tema de la matematică: identificăm primul exercițiu, îl rezolvăm, identificăm cel de-al doilea exercițiu, în rezolvăm, identificăm cel de-al treilea exercițiu, îl rezolvăm etc.

2. Scriem o propoziție, pe caiet, de 100 de ori.

3. Scriem numerele de la 1 la 100, pe caiet.

4. Un copil are la dispoziție 3 jucării. Pentru fiecare dintre cele 3 jucării, trebuie să noteze greutatea jucăriei.

· APLICAȚII

1. Pentru fiecare dintre exemplele de mai sus, identificați operația care se repetă și numărul de repetiții.

Rezolvare exemplul 1.

┌ PENTRU numarexercitiu<- 1,7 EXECUTĂ

│ Identifică exercițiul cu numarul numarexercitiu

│ Rezolvă exercițiu cu numarul numarexercitiu

└■

Numărul de repetiții este egal cu 7.

2. Identificați alte 3 situații din viața de zi cu zi în care apare o structură repetitivă cu număr cunoscut de pași.

· Jocuri care să conțin structuri repetitive cu număr cunoscut de pași, fără utilizarea tehnologiei

1. Cel mai norocos- câștigă!

Trei copii joacă un joc cu zaruri. Fiecare aruncă, pe rând, de câte 5 ori, cele 2 zaruri pe care le au. Punctele de pe zaruri se adună și oferă un punctaj final pentru fiecare copil. Câștigă cel cu punctajul mai mare.

2. Pătratul

Doi copii au la dispoziție un pătrat împărțit în 6 linii și 6 coloane jos și două zaruri. Începând cu căsuța stânga sus, vor scrie în căsuțele obținute, numere naturale și mesajul X (cu semnificația că se anulează tot punctajul).

Iată un exemplu de pătrat, mai jos.

Copiii aruncă pe rând, de câte 5 ori fiecare, cu zarurile. Numerele de pe cele două zaruri reprezintă linia și coloana căsuței de unde se ia punctajul. Dacă nimerește căsuța cu X, se anulează tot punctajul de până acum, al jucătorului. Câștigă cel cu punctajul mai mare.

3. Fotbal

Cinci copii aruncă la poartă cu mingea, pe rând. Câștigă cel care a înscris cele mai multe goluri.

4. Arcul

Doi copii au la dispoziție un arc, trei săgeți și o țintă. Fiecare aruncă la țintă cu arcul de 3 ori, însumând punctajul obținut. Câștigă cel cu punctajul mai mare.

5. Distracție

Șase prieteni îşi scriu prenumele pe câte o foaie de hârtie. Hârtiile sunt amestecate și întoarse cu fața în jos. Fiecare alege una dintre hârtiile cu prenumele și rostește prenumele ales, citind de la dreapta spre stânga literele. Pentru fiecare prenume rostit corect, câștigă 1 punct. Fiecare are la dispoziție 3 încercări.

6. Joc în SCRATCH, fără SCRATCH

Decupați blocurile de mai jos și încercați să așezați atâtea câte aveți nevoie și în ce ordine doriți, astfel încât personajul din imagine să îşi schimbe aspectul (costumul) de 3 ori, la apăsarea stegulețului verde. Scrieți valorile corespunzătoare unde acestea lipsesc.

Acesta este personajul și costumele pe care le are la dispoziție. Trebuie să le așezați în ordinea în care doriți să își schimbe aspectul. Creați, pe foaia de hârtie, o poveste plecând de la acest personaj și schimbarea aspectului său.

SARCINĂ DE LUCRU:

Creați și voi alte 3 jocuri distractive în care să apară cel puțin o structură repetitivă cu număr cunoscut de pași.

APLICAȚII DE 5 stele:

1. Se consideră următoarea secvență de instrucțiuni, reprezentată în pseudocod:

x1

┌ PENTRU i ←4 , 7 EXECUTĂ

│┌dacă (i mod 3 != 0) atunci xx-1

│└■

└■

a) Ce valoare va avea variabila x în urma execuției acestei secvențe?

b) Rescrieți secvența de mai sus, folosind alte două structuri repetitive cunoscute.

c) Scrieți un enunț al problemei rezolvate de algoritmul de mai sus.

2. Se consideră următoarea secvență de instrucțiuni, reprezentată în pseudocod :

s0; p1;

pentru i= 1,3 execută

ss+i*i

pp*i

sfârşit pentru;

afişează s,p

a) Ce se afişează în urma execuției secvenței de mai sus?

b) Rescrieți secvența de mai sus, folosind alte două structuri repetitive cunoscute.

c) Scrieți un enunț al problemei rezolvate de algoritmul de mai sus.

3. Scrieți un algoritm pseudocod care rezolvă următoarele probleme, pentru a calcula sumele:

REVENIRE

ANEXA 1 - 3

REȚELE DE CALCULATOARE

· Clasa a VI-a

Profesor Tricuță Algina Elena

Liceul de Arte „Victor Giuleanu”, Rm. Vâlcea

DESPRE INTERNET

· ISTORIC

În 1969 s-a finalizat în SUA, proiectul ARPANET, considerat precursor al Internetului. Rețeaua conecta calculatoarele din patru universități americane: Institutul de Cercetări Stanford, Universitatea Utah, Universitatea California din Los Angeles și Universitatea California din Santa Barbara.

În România, începând cu 1970, demarează proiectul RENAC (Rețeaua Națională de Calculatoare) / RENOD (Rețeaua Nodală de Comunicații) pentru constituirea unei rețele la nivel național. Proiectul a fost finalizat la sfârșitul anului 1983.

În anul 1989, cercetătorul britanic Tim Berners-Lee, în timp ce lucra ca inginer de software la CERN (Organizația Europeană pentru Cercetări Nucleare) din Geneva, a creat World Wide Web prin unirea hipertextului cu Internetul. Din anul 1994, Tim Berners-Lee este directorul World Wide Web Consortium (W3C), care creează tehnologii pentru a dezvolta Web-ul.

· REȚELE DE CALCULATOARE

O rețea de calculatoare este formată dintr-un grup de două sau mai multe calculatoare, interconectate, care comunică între ele în scopul partajării informației.

Calculatoarele și dispozitivele din rețea comunică între ele pe baza unui set de reguli, numit protocol. Toate sistemele de operare utilizează un Protocol de Control al Transmisiei/Protocol Internet (TCP/IP).

Protocolul de Transfer al Fișierelor – File Transport Protocol (FTP) este cea mai folosită metodă de transfer a fișierelor, indiferent de tipul și dimensiunea acestora, de la un calculator la altul, prin intermediul Internetului.

Avantajele lucrului într-o rețea de calculatoare sunt:

· Partajarea fișierelor;

· Folosirea în comun a resurselor rețelei (ex. imprimantă);

· Accesul la Internet.

Pentru a se conecta în rețea, fiecare calculator trebuie să dispună de o placă de rețea, care să asigure, prin cablu sau prin unde radio (wireless), legătura cu celelalte calculatoare sau dispozitive ale rețelei.

În funcție de aria de răspândire, se definesc următoarele rețele:

· Personal Area Network (PAN) – rețea de foarte mică întindere de cel mult câțiva metri, constând din aparatele interconectabile din apropierea unei persoane ( PC, imprimantă, scanner, telefon mobil, etc.);

· Local Area Network (LAN) – rețea realizată la nivelul unei clădiri sau a unui grup de clădiri;

· Metropolitan Area Network (MAN) – rețea realizată la nivelul unui întreg oraș sau a unei zone urbane. Aceste rețele folosesc de obicei tehnologia fără fir (wireless) sau fibră optică pentru a crea conexiuni.

· Wide Area Network (WAN) – rețeaua conectează orașe, regiuni sau țări. Pentru conexiuni se folosesc linii telefonice închiriate, fibră optică, transmisiuni prin satelit.

· REȚEAUA INTERNET

Este o rețea globală compusă din alte rețele de calculatoare interconectate printr-un standard de comunicare numit TCP/IP (Transmission Control Protocol și Internet Protocol) destinată să faciliteze schimbul de date și informații.

Cele mai importante servicii oferite de Internet sunt:

· E-mail (poșta electronică) – permite schimbul de mesaje electronice între persoane care pot accesa acest serviciu, indiferent unde se află acesta.

· WWW (Word Wide Web) – pune la dispoziție un sistem în care documentele și informațiile sunt legate între ele și pot fi ușor accesate prin rețeaua Internet.

· FTP-ul (File Transfer Protocol) – permite transferul fișierelor între calculatoare conectate la INTERNET.

· Telnet – permite conectarea prin Internet de la distanță, de pe un calculator local pe un alt calculator aflat în altă locație.

· IRC (Internet Relay Chat) – permite comunicarea (transmiterea mesajelor) în timp real între persoane.

· CĂUTAREA INFORMAȚIILOR ÎN INTERNET

Pentru a găsi informațiile pe care le dorim în rețeaua Internet, avem nevoie de un browser și de un motor de căutare.

Un browser sau navigator este un program ( o aplicație software) care permite utilizatorilor să afișeze text, grafică, video, muzică și alte informații situate pe o pagină din WWW, dar și să comunice cu furnizorul de informații și chiar să comunice între ei.

Exemplu:

Microsoft Internet Explorer, Google Chrome, Mozila Firefox, Opera, Apple Safari.

Un motor de căutare este un program care accesează Internetul și care reține titlul, cuvintele cheie și parțial, conținutul paginilor web, într-o colecție de date. În momentul în care căutăm prin intermediul unui motor de căutare o anumită informație, motorul va afișa o listă cu adresele site-urilor care conțin date despre informația solicitată, listă extrasă din colecția de date.

Ex: Google, Yahoo, Bing, Baidu.

Avantaje ale Internetului:

· Reprezintă o vastă sursă de informare și documentare;

· Reprezintă o sursă de divertisment;

· Oferă posibilitatea comunicării în timp real a oamenilor din întreaga lume.

· Libertatea de exprimare.

Dezavantaje ale Internetului:

· Lipsa protecției datelor personale și posibilitatea furtului de identitate;

· Imposibilitatea de a verifica dacă o informație este adevărată sau falsă;

· Posibilitate de virusare a calculatorului;

· Existența de site-uri periculoase pentru copii.

· Răspândirea ideilor periculoase.

Internetul și majoritatea rețelelor folosesc principiul client/server. Servere de pe tot globul oferă anumite servicii, iar clienții (PC-uri, calculatoare portabile sau telefoane) se conectează la acestea pentru a accesa informații.

Procesul de transfer a fișierelor de pe calculatorul server pe calculatorul client poartă numele de download, iar procesul de transfer a fișierelor de pe calculatorul client pe calculatorul server poartă numele de upload.

· POȘTA ELECTRONICĂ

Este o variantă de a trimite o scrisoare unui destinatar, nu în formă fizică (scrisă pe hârtie, pusă în plic cu timbru și dusă la poștă), ci în formă electronică, cu ajutorul unui dispozitiv electronic, respectiv calculator (laptop sau desktop), tabletă sau telefon inteligent.

Scopul poștei electronice este de a trimite mesaje text (de tipul scrisorilor), dar în format electronic, unui destinatar, într-o căsuță poștală virtuală, de unde destinatarul le ia și le citește dacă și când dorește, exact cum ar proceda cu scrisorile tradiționale, primite prin poștă.

Avantajele poștei electronice:

· Prețul mult mai mic;

· Viteza mult mai mare;

· Comoditate.

Pentru a putea trimite și primi e-mailuri trebuie să avem un cont de e-mail. La creare cantului ne sunt solicitate serie de informații personale.

O adresă de e-mail este formată din:

· Numele contului de poștă electronică (poate fi numele tău sau alt nume sugestiv);

· Caracterul special: @;

· Adresa calculatorului gazdă, a serverului pe care este creată căsuța de e-mail.

Exemplu: [email protected], [email protected], [email protected]

REVENIRE

ANEXA 1 – 4

TEST INTERNET

· Clasa a VI-a

Profesor Tricuță Algina Elena

Liceul de Arte „Victor Giuleanu”, Rm. Vâlcea

Data: ___________

Nume și prenume elev:Clasa:

____________________________

TEST – Internet

OBSERVAȚIE: Se acordă un punct din oficiu!

1. Ce este Internetul? (1p)

a) O sursă de informații

b) O rețea de calculatoare

c) O rețea mondială de calculatoare interconectate

d) O sursă de comunicare

2. Care este cel mai folosit protocol? (1p)

a) E –mail

b) Chat

c) FTP

d) Facebook

3. Cum se numește prima rețea de calculatoare creată în anul 1969?(1p)

a) CYBERNET

b) INTRANET

c) INTERNET

d) ARPANET

4. Rețelele de calculatoare pot fi: (1p)

a) LAN și MAN

b) PAN, WAN și GAN

c) GAN, LAN și MAN

d) PAN, LAN, MAN și WAN

5. Într-o rețea de calculatoare de tip client/server, calculatoarele pot avea statut de: (1p)

a) Client și server

b) Server

c) Client sau server

d) Client

6. Modemul este un dispozitiv periferic: (1p)

a) Intrare

b) Ieșire

c) Intrare –Ieșire

d) Face parte din consolă

7. Identifică adresa de e-mail (1p)

a) www.abc.ro

b) [email protected]

c) [email protected]

d) www.edu@

8. Alege varianta care nu este un browser (1p)

a) Chrome

b) Opera

c) Google

d) Internet Explorer

9. Enumeră și descrie 3 avantaje și 3 dezavantaje întâlnite de tine în folosirea Internetului: ____________________________________________________

_______________________________________________________________

_______________________________________________________________

____________________________________________________________(1p)

Răspunsuri așteptate:

1 - c) O rețea mondială de calculatoare interconectate

2 - c) FTP

3 - d) ARPANET

4 - d) PAN, LAN, MAN și WAN

5 - c) Client sau Server

6 - a) Intrare – Ieșire

7 - c) [email protected]

8 - b) Google

9 - Avantaje:

· Reprezintă o vastă sursă de informare și documentare;

· Reprezintă o sursă de divertisment;

· Oferă posibilitatea comunicării în timp real a oamenilor din întreaga lume.

- Dezavantaje:

· Lipsa protecției datelor personale și posibilitatea furtului de identitate;

· Imposibilitatea de a verifica dacă o informație este adevărată sau falsă;

· Posibilitate de virusare a calculatorului.

REVENIRE

ANEXA 2

Disciplina INFORMATICĂ – pentru liceu

ANEXA 2 - 1

TEST DE EVALUARE – Algoritmi. Expresii. Structuri.

· Clasa a IX-a, matematică-informatică

Profesor Cataragă Ștefania Issabella

Colegiul Național „Alexandru Lahovari”, Rm. Vâlcea

1. Scrieți secvența de program care afișează numerele naturale nenule, mai mici decât un număr dat n, care au ultima cifră 2. Exemplu: dacă n=26, se vor afișa: 2, 12, 22

2. Scrieți secvența de program care determină media aritmetică a numerelor care se divid la 3 din n numere citite de la tastatură. Exemplu: dacă se citesc numerele 5, 6, 11,3, 9, 20 se va afișa (6+3+9)/3= 6

3. Scrieți secvența de program care determină suma cifrelor impare dintr-un număr natural n citit de la tastatură. Exemplu: pentru n= 21746 se va afișa 8.

4. Fie secvența:

citeşte x,y;

z←1;

t←0;

cât timp x> = z execută

dacă x mod z = y

atunci

t←z;

sfarsit_daca;

z←z + 1;

sfarsit_cat_timp;

scrie t;

a) Scrieţi valoarea pe care o va afișa algoritmul dacă se citesc valorile 12 și 3

b) Scrieţi în pseudocod un algoritm echivalent cu cel dat, în care să se înlocuiască structura cât timp...execută cu o structură repetitivă de alt tip.

REVENIRE

ANEXA 2 - 2

TEST DE EVALUARE – Algoritmi. Expresii. Structuri.

· Clasa a IX-a, științele naturii

Profesor Cataragă Ștefania Issabella

Colegiul Naţional „Alexandru Lahovari”, Rm. Vâlcea

1. Declarați și citiți de la tastatură 2 variabile de tip întreg.

1. Enumerați tipurile de date folosite în pseudocod.

1. Alegeți cuvintele cheie care fac parte din structurile de control: întreg, dacă, repetă, real, atunci, început, pentru.

1. Enumerați operatorii logici. Dați un exemplu de utilizare a unui operator.

1. Evaluați următoarea expresie: 3^2 <7 or 10 mod 3 = 1

1. Scrieți în forma acceptată de calculator expresia: 2x2 -4x +1

1. Scrieți condiția pentru ca un număr natural a să fie număr pozitiv și să aibă 2 cifre.

1. Ce se va afișa în urma executării următoarei secvențe de atribuiri?

a← 5 b← 20 c← 30 a← b div 2 b← a+c div 5 c← b ^2

1. Fie secvența:

X ←0;

Pentru i ← 1, 10 executa

Daca i mod 3 <> 0

Atunci x ← x +1;

Sfarsit_daca;

Sfarsit_pentru;

Scrie x;

Ce se afișează în urma executării secvenței?

REVENIRE

ANEXA 2 - 3

VECTOR DE FRECVENŢĂ/ VECTOR CARACTERISTIC

· Clasa a IX-a, matematică-informatică intensiv informatică

Profesor Cojocaru Nicoleta

Colegiul Naţional de Informatică „Matei Basarab”, Rm. Vâlcea

Știm că vectorii sunt o colecție de valori de același tip (întreg, caracter, sau alte tipuri), valori ce pot fi accesate după un indice, sau poziție, care se mai cheamă și indicele în vector al acelei valori.

EXEMPLU:

V

Acest vector are numele v și are n elemente, numere întregi. Indicii elementelor sunt 0, 1, 2, ... , n-1.

DEFINIȚIE:

Vectorul de frecvență reține numărul de apariţii al fiecărei valori citite într-un vector. Folosirea vectorului de frecvențe permite scrierea unor algoritmi eficienți în cazul în care datele de intrare au valori dintr-un domeniu cunoscut care poate fi prelucrat rapid. Folosirea unui vector de frecvență sau marcare este eficientă numai în cazul în care valorile care interesează sunt întregi și numărul valorilor distincte posibile este cel mult 1.000.000.

În orice mulţime elementele sunt unice, iar vectorul frecvențelor are doar valori 0 sau 1. Acest vector este numit vectorul caracteristic al unei mulțimi.

Vectorul de frecvențe poate fi folosit pentru a obține rapid mulţimea asociată ca un vector caracteristic astfel:

- 0 înseamnă că elementul nu aparține mulţimii;

- o valoare diferită de 0 înseamnă că elementul aparține mulţimii.

Exemple de probleme:

1. Fiind dat un număr natural n între 1 şi două miliarde să se afişeze cifrele numărului şi numărul de apariții ale fiecărei cifre în număr.

Date de intrare: Fișierul de intrare cifdist.in conține numărul n.

Date de ieșire: Fișierul de ieșire cifdist.out va conţine pe fiecare linie cifra si numărul de apariții a acesteia în număr, separate printr-un spațiu.

Exemplu:

cifdist.in

cfidist.out

Explicații

2342342444

2 3

3 2

4 5

Numărul 2342342444 conține 3 cifre distincte, 2, 3 și 4. Cifra 2 apare în număr de 3 ori, cifra 3 de 2 ori și cifra 4 de 5 ori.

Vectorul de frecvență pentru cifrele unui număr se declară sub forma unui vector cu 10 componente, de la v[0], … , v[9]. Acestea vor fi inițializate cu 0, iar după citirea numărului n se va incrementa cu 1 numărul aparițiilor pentru fiecare cifră a lui n.

Atenție! Vectorul de frecvențe nu permite refacerea numărului citit inițial, dacă este necesară valoarea acestuia trebuie memorată separat.

#include using namespace std;

ifstream f("cifdist.in");

ofstream g("cifdist.out");

int v[10],n,c;

int main()

{ f>>n;

while(n>0) //construim vectorul frecvențelor

{ c=n%10;

v[c]++;

n=n/10;

}

//afișăm cifrele distincte și numărul de apariții

for(c=0;c<10;c++)

if (v[c]>0) g<

return 0;

}

2. Se dau n numere naturale cu cel mult două cifre fiecare. Să se afișeze acele numere care apar o singură dată.

#include

using namespace std;

int n,x,v[100],i;

int main()

{ cin>>n;

for( i=0;i

{ cin>>x;

v[x]++;

}

for( i=0;i<100;i++)

if ( v[i]==1) cout<

}

ÎNCERCAȚI SINGURI:

Pentru problema rezolvată anterior, să se afișeze acele numere care apar o singură dată, precum și frecvența lor.

3. Să se scrie un program care citeşte cel mult 1000000 de numere naturale din intervalul închis [0,9] şi determină cel mai mare număr prim citit şi numărul său de apariţii.

#include

using namespace std;

int v[10];

int main()

{ int n;

while( cin>>n)

v[n]++;

if (v[7]!=0)

{ cout<<7<<" "<

else if (v[5] != 0) { cout<<5<<" "<

else if (v[3] != 0 ) { cout<<3<<" "<

else if (v[2] != 0 ) { cout<<2<<" "<

}

TEMĂ:

a. Să se scrie un program care citeşte din fișierul „date.in” cel mult 1000000 de numere naturale din intervalul închis [0,1000] şi determină cel mai mare număr par de trei cifre citit şi numărul său de apariţii.

b. Să se scrie un program care citeşte din fișierul „date.in” cel mult 1000000 de numere naturale din intervalul închis [0,100] şi determină cel mai mic număr impar de două cifre citit şi numărul său de apariţii.

c. Se dă un șir cu cel puțin 3 și cel mult 1.000.000 de numere naturale din intervalul (0, 1.000.000.000). Se cere să se afișeze pe ecran, separate printr-un spațiu, două numere distincte, anume cel mai mare număr impar cu două cifre și cel mai mic număr par cu două cifre care NU fac parte din șir. Dacă nu există două astfel de valori se va afișa pe ecran mesajul nu există.

http://www.pbinfo.ro/ problemele:mincifre,numere8,numere1

REVENIRE

ANEXA 2 - 4

PRELUCRĂRI ALE SECVENȚELOR DE ELEMENTE DINTR-UN VECTOR

· Clasa a IX-a, matematică-informatică intensiv informatică

· Clasa a X-a, matematică-informatică

Profesor Ianc Simona

Colegiul Național „Alexandru Lahovari”, Rm. Vâlcea

Definiție: Fie a un vector cu n elemente. Se numește secvență a vectorului a o succesiune de elemente consecutive din a, în ordinea din a.

Orice secvență a unui vector este unic determinată de doi indici li ≤ lf, ai primului, respectiv ultimului element din secvență (li=limita inițială, lf=limita finală).

Exemplu: Fiind dat vectorul a=(1, 3, 4, 7, 8, 10, 13). Atunci:

· (1, 3, 4, 7), (3, 4, 7, 8, 10), (7, 8, 10, 13), (1), (13) reprezintă secvențe ale vectorului a

· (1, 4, 3, 10) nu reprezintă secvență în vectorul a – ordinea valorilor nu este cea din vectorul a

· (1, 3, 4, 8) nu reprezintă secvență în vectorul a – valorile nu sunt consecutive în vector

· (1, 3, 4, 5, 7) nu reprezintă secvență în vectorul a – avem o valoare care nu apare în vectorul a

Definiție: Prin lungimea unei secvențe se înțelege numărul de elemente care formează secvența. Lungimea secvenței delimitate de indicii li și lf este lf - li + 1 (li=limita inițială, lf=limita finală).

Numărul secvențelor unui vector

Numărul secvențelor unui vector poate fi determinat numărând secvențele de lungime 1, 2, …, n.

· sunt n secvențe de lungime 1 – fiecare element în parte.

· sunt n-1 secvențe de lungime 2 – cele determinate de indicii 1-2, 2-3, …, (n-1)- n sunt n-2 secvențe de lungime 3 – secvențele 1-3, 2-4, …, (n-2) n

· sunt două secvențe de lungime n-1 – secvențele 1-(n-1) și 2-n este o secvența de lungime n – întreg vectorul.

În total vor fi n+(n−1)+…+2+1= n*(n+1)/2 secvențe!

Secvență de lungime maximă

Fie a un vector cu elemente de un anumit tip. Să se determine cea mai lungă secvență din vector în care toate elementele au o anumită proprietate P.

I. Prima soluție la care ne gândim este să luăm în considerare toate secvențele posibile (cele n*(n+1)/2 secvențe), să verificăm dacă toate elementele din secvență verifică proprietatea P şi apoi să comparăm lungimea secvenței cu un maxim şi să modificăm dacă este nevoie acel maxim (reținem şi poziția de început/sfârşit a secvenței de lungime maximă).

CITESTE n

PENTRU i=1, n EXECUTA

CITESTE a[i]

SFARSIT PENTRU

Maxim ←0 //daca elementele sunt numere naturale

//valoarea minimă posibila pentru elementele din vector

PENTRU i=1, n EXECUTA

PENTRU j=i, n EXECUTA

//tratez secvența cuprinsa intre indicii i si j

Cod←1

//verific daca toate elementele din secvența respecta proprietatea P

PENTRU k=i, j EXECUTA

DACA a[k] nu respecta proprietatea P ATUNCI

Cod←0

SFARSIT DACA

SFARSIT PENTRU

DACA cod=1 ATUNCI

DACA j-i+1>Maxim ATUNCI

//verific daca lungimea secvenței>Maxim

Maxim=j-i+1

imax←i //rețin pozitia de început a secvenței de

//

lungime maxima

jmax←j //rețin pozitia de sfârşit a secvenței de

// lungime maxima

SFARSIT DACA

SFARSIT DACA

SFARSIT PENTRU

SFARSIT PENTRU

SCRIE Maxim //lungimea maxima a secvenței

PENTRU i=imax, jmax EXECUTA //scrie elementele din secventa de lungime maximă

SCRIE a[i]

SFARSIT PENTRU

II. A doua soluție este cea eficientă. Parcurgem liniar vectorul element cu element şi reținem la fiecare pas lungimea secvenței curente, pozitia de început/pozitia de sfârşit a secvenței curente precum şi lungimea secvenței de lungime maximă, pozitia de început/pozitia de sfârşit a acestei secvențe.

Inițial: maxim←0; lc←0; lic←0; lfc←0; //lungimea secvenței curente, limita inițială

//şi limita finală a secvenței curente

CITESTE n

PENTRU i=1, n EXECUTA

CITESTE a[i] SFARSIT PENTRU maxim←0; lic←0; lfc←0; lc←0

PENTRU i=1, n EXECUTA //parcurg pe rând elementele din vector

DACA a[i] are proprietatea P ATUNCI

lc←lc+1 //creste lungimea secvenței curente

DACA lic=0 ATUNCI //a[i] este primul din secventa curenta

lic←i

lfc←i //rețin limita inițială si cea finala a secvenței curente

ALTFEL

lfc=i; //rețin limita finala a secvenței curente

SFARSIT DACA

ALTFEL //s-a terminat secventa curenta si compar lungimea ei cu maxim

DACA lc>maxim ATUNCI

maxim=lc limax=lic lfmax=lfc

//rețin limita inițială si cea finala pentru secventa de lungime maxima

SFARSIT DACA

lc=0 //începe o noua secventa a cărei lungime este 0

lic←0

lfc←0 //limita inițială si limita finala a secvenței curente

SFARSIT DACA

SFARSIT PENTRU

//daca ultima secventa este cea mai lunga

DACA lc>maxim ATUNCI

maxim=lc limax=lic

lfmax=lfc

//rețin limita inițială si cea finala pentru secventa de lungime maxima

SFARSIT DACA

SCRIE maxim

PENTRU i=limax, lfmax EXECUTA

SCRIE a[i]

SFARSIT PENTRU

Exemplu numeric:

2, 4, 3, 5, 6, 8, 10, 1, 3, 2, 4, 6, 8 (vector cu 13 elemente numere naturale). Determin cea mai lungă secvență de elemente pare din vector.

Lc=0 lic=lfc=0 i=1 Lc=1 lic=lfc=1 //2 este par şi crește lc iar lic şi lfc iau valoarea lui i i=2 lc=2 lfc=2 //4 este par şi crește lc iar lfc=2

i=3 maxim=2, limax=1, lfmax=2 //3 nu este par ceea ce înseamnă că s-a terminat secvența curentă, se modifică maxim precum şi limitele limax şi lfmax

Lc=lic=lfc=0 //lc, lic si lfc devin 0 pentru că începe o nouă secvență i=4 //5 nu este par i=5 lc=1 lic=lfc=5 //6 este par şi crește lc iar lic şi lfc iau valoarea lui i adică 5 i=6 lc=2 lif=6 //8 este par şi crește lc iar lfc devine 6

i=7 lc=3 lif=7 //10 este par şi crește lc iar lfc devine 7

i=8 maxim=3, limax=5, lfmax=7 // 1 nu este par ceea ce înseamnă că s-a terminat secvența curentă, se modifică maxim precum şi limitele limax şi lfmax

Lc=lic=lfc=0 //lc, lic si lfc devin 0 pentru ca începe o nouă secvență i=9 // 3 nu este par i=10 lc=1 lic=lfc=10 //2 este par şi crește lc iar lic şi lfc iau valoarea lui i adică 10 i=11 lc=2 lfc=11 //4 este par şi crește lc iar lfc devine 11 i=12 lc=3 lfc=12 //6 este par şi crește lc iar lfc devine 12 i=13 lc=4 lfc=13 //8 este par şi crește lc iar lfc devine 13

S-a terminat secvența curentă. Comparăm lc cu maxim şi se modifică maxim şi limitele limax şi lfmax.

Maxim=4 limax=10 lfmax=13

Lungimea maximă este 4 iar secvența începe la poziția 4 şi se termină la poziția 10.

REVENIRE

ANEXA 2 - 5

SUME PARȚIALE ÎN VECTORI

· Clasa a IX-a, matematică-informatică/

matematică-informatică intensiv informatică

Profesor Ianc Simona

Colegiul Național „Alexandru Lahovari”, Rm. Vâlcea

Se consideră un vector cu elemente numerice. Se cere să se determine suma elementelor dintr-o anumită secvență dată sau din mai multe secvențe date.

I. Soluția banală este aceea în care sunt parcurse toate elementele din secvență şi sunt adăugate la sumă.

CITESTE n

PENTRU i=1, n EXECUTA

CITESTE a[i]

SFARSIT PENTRU

CITESTE li, lf //indicii de început şi sfârşit pentru secvență a cărei sumă se //calculează

S←0

PENTRU i=li, lf EXECUTA

S←S+a[i]

SFARSIT PENTRU

SCRIE S

Pentru o singură secvență timpul de execuție este acceptabil dar dacă se doreşte calcularea sumelor pentru un număr mare de secvențe timpul de execuție poate deveni inacceptabil de mare.

În astfel de situații putem folosi o a doua soluție care utilizează sumele parțiale.

II.

Fie un vector a cu n elemente. Pozițiile elementelor sunt numerotate de la 1 la n.

Determinăm suma elementelor din secvența determinată de indicii 5 şi 9:

Valoarea sumei este a[5] + a[6] + a[7] + a[8] + a[9] = 5 + 1 + 8 + 0 + 9 = 23.

Pentru a determina rapid această sumă, vom construi un alt vector S pe care îl vom numi vectorul sumelor parțiale. Fiecare element S[i] din acest vector va fi egal cu suma elementelor vectorului cuprinse între pozițiile 1 şi i (inclusiv aceste poziții).

S[i]=a[1]+a[2]+...+a[i].

Acest vector se poate construi la citirea vectorul a folosind următoarea relație:

S[1]=a[1]

S[2]=a[1]+a[2]=S[1]+a[2]

S[3]=a[1]+a[2]+a[3]=(a[1]+a[2])+a[3]=S[2]+a[3]

………………………………………………………….

Practic, fiecare element S[i] (suma elementelor cuprinse între pozițiile 1 şi i) din vectorul sumelor parțiale se obține adunând la anteriorul element din acest vector (S[i-1]=suma elementelor cuprinse între pozițiile 1 şi i-1) elementul a[i].

Pentru a determina suma elementelor din secvența determinată de indicii li şi lf folosim următoarea formulă, în timp constant: a[li]+a[li + 1]+...+a[lf]=S[lf]−S[li − 1]

=a[1]+a[2]+…+a[lf] – (a[1]+a[2]+…+a[li-1])=a[li]+…+a[lf]

Astfel, pentru li=5 și lf=9:

a[5]+a[6]+a[7]+a[8]+a[9]=S[9]−S[4]=39-16=23

CITESTE n

S[0]←0

PENTRU i=1, n EXECUTA

CITESTE a[i]

S[i]←S[i-1]+a[i]

SFARSIT PENTRU

CITESTE li, lf

Suma←S[lf]-S[li-1]

SCRIE Suma

Observație:

Este posibil ca sumele parțiale ale elementelor din vectorul a să depășească limita maximă a tipului de date folosit pentru elementele din vector (de exemplu int). În acest caz, vectorul sumelor parțiale S trebuie declarat cu elemente de un tip care permite valori mai mari (de exemplu long long int).

REVENIRE

ANEXA 2 - 6

VECTORI CARACTERISTICI/ DE APARIŢII ŞI VECTORI DE FRECVENŢĂ

· Clasa a IX-a, matematică-informatică/

matematică-informatică intensiv informatică

Profesor Ianc Simona

Colegiul Național „Alexandru Lahovari”, Rm. Vâlcea

Problema 1: Se dau două numere naturale cu cel mult 9 cifre fiecare. Se cere să se afişeze cifrele comune celor două numere, ordonate crescător.

Exemplu: x=12432576

y=876523096

Cifrele comune sunt: 2 3 5 6 7

Există mai multe variante de rezolvare a problemei la care ne putem gândi.

Vom păstra cifrele celor două numere în doi vectori (notăm vectorii a şi b).

I. Căutăm elementele vectorului b printre elementele vectorului a şi păstrăm în vectorul c doar acele elemente din b care se gasesc în a dar nu au fost puse încă în vectorul c. În acest fel obţinem în vectorul c cifrele comune. În final trebuie să ordonăm vectorul c folosind una dintre metodele de sortare. Putem ordona iniţţial vectorii a şi b şi apoi să folosim căutarea binară şi obţinem vectorul c deja ordonat.

II. Ordonăm crescător elementele din cei doi vectori a şi b. Putem folosi apoi interclasarea pentru a obţine elementele comune (luate o singură dată) care, evident, vor fi în ordine crescătoare.

III. Parcurgem cifrele de la 0 la 9 (crescător) şi căutăm fiecare cifră în vectorii a şi b. Dacă cifra apare atât în vectorul a cât şi în vectorul b atunci o afişăm. Aceasă variantă de rezolvare o putem gândi şi fără păstrarea cifrelor numerelor în vectorii a şi b. În acest caz, pentru fiecare cifră determinăm cifrele din x şi y pentru a vedea dacă cifra apare şi în x şi în y.

Soluţia eficientă presupune definirea a doi vectori cu cate 10 elemente fiecare, pentru fiecare dintre cele două numere x şi y. Vectorii vor fi indexaţi începând de la 0.

Indicii elementelor din vector reprezintă cifrele de la 0 la 9.

Vectorii sunt definiţi în felul următor:

Vectorii vor fi construiţi după citirea celor două numere. În final, parcurgem cifrele de la 0 la 9 şi dacă pe poziţia corespunzătoare cifrei respective şi în vectorul a şi în vectorul b se află valoarea 1 atunci afişăm cifra.

Cifrele comune sunt: 2, 3, 5, 6, 7

Vectorii astfel definiţi se numesc vectori caracteristici (sau vectori de apariţii). Elementele lor caracterizează cifrele de la 0 la 9, stabilind pentru fiecare cifră dacă face sau nu parte din numărul respectiv.

Observații:

· vectorul caracteristic (de apariţii) are dimensiune constantă – egală cu numărul de valori pe care le caracterizează

· elementele vectorului caracteristic sunt 0 sau 1 (echivalent cu Adevărat și Fals) Pentru a putea folosi un vector caracteristic (de apariţii) în rezolvarea unei probleme trebuie îndeplinite câteva condiţii condiții:

· datele caracterizate (pentru care verificăm apariţia) au valori mici, sunt numere naturale dintr-un interval de forma [0,ValMax] sau pot fi echivalente cu astfel de numere

· practic, putem folosi un vector caracteristic dacă memoria disponibilă permite declararea unui vector cu un număr de elemente corespunzător. De exemplu, dacă datele de intrare sunt din intervalul [0, 1000] sau [0,10000] putem folosi un vector caracteristic dar dacă datele de intrare sunt din intervalul [0, 1000000000] nu putem folosi un vector caracteristic

//vectorii a şi b trebuie să aibă iniţial toate elementele egale cu 0

CITESTE x, y

REPETA

crest[x/10]

a[c]1 //în vectorul a pe poziţia c pun valoarea 1 (cifra c se găseşte în x)

x[x/10]

PANA CAND x=0 REPETA crest[y/10]

b[c]1 //în vectorul b pe poziţia c pun valoarea 1 (cifra c se găseşte în y)

y[y/10]

PANA CAND y=0

PENTRU c=0, 9 EXECUTA

DACA (a[c]=1) and (b[c]=1) ATUNCI // dacă cifra c apare în ambele numere

SCRIE c

SFARSIT DACA

SFARSIT PENTRU

Problema 2: Se dă un număr natural cu cel mult 9 cifre. Se cere să se afişeze cifra cu cel mai mare număr de apariţii. Dacă sunt mai multe cifre cu număr maxim de apariţii se va afişa cea mai mare.

Exemplu: x=15232525

Cifra cerută este 5.

O primă idee de rezolvare ar fi aceea în care calculăm pentru fiecare cifră de la 0 la 9 de cate ori apare în numărul dat. Calculăm apoi maximul de apariţii şi selectăm cifra cerută.

Soluţia eficientă presupune definirea unui vector a cu 10 elemente, vector ai cărui indici sunt de la 0 la 9.

Elementele vectorului vor fi definite în felul următor:

a[i] = numărul apariţiilor cifrei i în numărul x

Vectorul va fi construit imediat după citirea numărului x. După construirea vectorului a se va determina maximul de apariţii şi cifra cea mai mare care are număr maxim de apariţii.

Un vector de genul acesta se numeşte vector de frecvenţă.

PENTRU i=0, 9 EXECUTA

a[i]0 //iniţial numărul apariţiilor este 0 pentru fiecare cifră

SFARSIT PENTRU

CITEŞTE x maxap-1

REPETA

crest[x/10]

a[c]a[c]+1 //creşte numărul apariţiilor pentru cifra c

x[x/10]

PANA CAND x=0

PENTRU c=0, 9 EXECUTA

DACA a[c]>=maxap ATUNCI //mai mare sau egal pentru a reţine cifra cea

//mai mare cu număr maxim de apariţii

maxapa[c] cmaxc

SFARSIT DACA

SFARSIT PENTRU

SCRIE cmax

Problema 3 (Ciurul lui Eratostene): Se dă n număr natural. Să se afișeze numerele naturale prime mai mici sau egale cu n.

Ciurul lui Eratostene este un algoritm vechi şi simplu de determinare a tuturor numerelor naturale prime până la un număr precizat. A fost creat de Eratostene – matematician din Grecia antică.

1. Se scrie o listă a numerelor de la 0 la numărul precizat (n în cazul nostru)

2. Se taie 0 și 1 despre care se știe că nu sunt numere prime

3. Se caută primul număr netăiat. Primul număr netăiat este număr prim.

4. Se taie toți multiplii acelui număr (cei care nu au fost încă tăiați) din listă

5. Se repetă pașii 3 și 4 până când sunt epuizate toate numerele din listă

Exemplific în continuare algoritmul pentru n=100.

Pentru fiecare număr x netăiat voi tăia multiplii mai mari decât el (2*x, 3*x, 4*x, …) şi mai mici sau egali cu n.

Am tăiat 0 și 1 despre care știm că nu sunt numere prime.

Primul număr netăiat este 2. Am marcat cu portocaliu valoarea 2 care este număr prim și am tăiat cu linii portocalii multiplii lui 2.

Primul număr netăiat este 3. Am marcat cu galben valoarea 3 care este număr prim și am tăiat cu linii galbene multiplii lui 3 netăiați încă.

Primul număr netăiat este 5. Am marcat cu albastru valoarea 5 care este număr prim și am tăiat cu linii albastre multiplii lui 5 netăiați încă.

Primul număr netăiat este 7. Am marcat cu mov valoarea 7 care este număr prim și am tăiat cu linii mov multiplii lui 7 netăiați încă.

Primul număr netăiat este 11. Multimplii lui 11 sunt deja tăiați.

Toate numerele rămase netăiate sunt numere prime: 2, 3, 5, 7, 11, 13, 17, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97.

CITESTE n

PENTRU i=1, n EXECUTA

ciur[i] 0 //0 înseamnă element netăiat

SFARSIT PENTRU

ciur[0]1

ciur[1]1 //tai 0 si 1

PENTRU i=2, n EXECUTA

DACA ciur[i]=0 ATUNCI //dacă i este netăiat

//tai multiplii lui i (multiplii au forma i*j)

j2 //multiplii lui i pleaca de la 2*i (j pleaca de la 2)

CAT TIMP i*j<=n EXECUTA

ciur[i*j]1 //tai multiplul i*j

jj+1

SFARSIT CAT TIMP

SFARSIT DACA

SFARSIT PENTRU

PENTRU i=1, n EXECUTA

DACA a[i]=0 ATUNCI //a[i]=0 inseamnă că i este prim

SCRIE i

SFARSIT DACA

SFRASIT PENTRU

Algoritmul poate fi eficientizat.

REVENIRE

ANEXA 2 - 7

RECURSIVITATEA

· Clasa a X-a, matematică-informatică intensiv informatică

· Clasa a XI-a, matematică-informatică

Profesor Pătru Laurențiu

Colegiul Național „Gib Mihăescu”, Drăgășani

Spunem că o noțiune este recursivă, dacă în definirea ei apare însăși noțiunea care se definește.

În informatică, un subprogram se numește recursiv dacă se autoapelează, fie direct (în definiția lui, se face apel la el însuși), fie indirect (subprogramul X apelează subprogramul Y, care apelează subprogramul X). Din afara subprogramului se face un prim apel al acestuia, după care acesta se autoapelează de un anumit număr de ori, creându-se un lanț de autoapeluri recursive.

Deoarece un subprogram recursiv se autoapelează, în interiorul acestuia trebuie să existe o condiție de oprire a lanțului de autoapeluri, fără această condiție, subprogramul s-ar autoapela la infinit.

Pentru a implementa un subprogram recursiv, trebuie să:

· Identificăm relația de recurență

· Identificăm condițiile de oprire ale autoapelului

Unul dintre cele mai simple exemple de subprograme recursive este factorialul.

n!=n*(n-1)*(n-2)*...*3*2*1=n*(n-1)!

Definiția recursivă a lui n! este: 𝑛! =

Funcția recursivă se va scrie astfel:

long fact(int n)

{ if(n==0) return 1;

return n*fact(n-1);

}

Primul apel al unui subprogram recursiv se realizează din afara acestuia, apoi subprogramul se autoapelează, executându-se corpul acesteia, eventual cu alte date de intrare (parametrii) până la întâlnirea condiției de oprire.

Pentru exemplul de mai sus, primul apel poate fi realizat în programul principal:

int main()

{

cout<

}

Un subprogram recursiv trebuie să asigure condiția de consistență, modificare a parametrilor sau variabilelor locale, astfel încât lanțul de autoapeluri să tindă spre îndeplinirea condiției de oprire.

MECANISMUL DE AUTOAPELARE A SUBPROGRAMELOR

Se știe că la apelul unui subprogram, se păstrează în stivă contextual modulului apelant (valorile parametrilor formali, variabilelor locale și adresa de revenire). În cazul subprogramelor recursive, de fiecare dată când subprogramul se autoapelează, se creează un nou nivel în stivă și se memorează parametrii formali, variabilele locale și adresa de revenire. Instrucțiunile aflate după apelul recursiv, vor fi executate pentru fiecare nivel al stivei pentru parametrii și variabilele din stivă. Acest lucru se întâmplă, deoarece la fiecare autoapel s-a salvat adresa de revenire din subprogramul apelant. După ce se termină execuția subprogramului, se eliberează segmentul de stivă alocat.

OBSERVAȚII:

1. Pentru orice algoritm recursiv există un algoritm iterativ care rezolvă aceeași problemă.

2. Recursivitatea oferă avantajul unor soluții mai clare pentru probleme și o lungime mai mică a programului. Ea prezintă însă dezavantajul unui timp mai mare de execuție și a unui spațiu de memorie mai mare.

Exemplu 1. Scrieți o funcție recursivă care calculează suma cifrelor unui număr natural, transmis ca parametru.

Identificarea relației de recurență. Notăm cu s(n) – suma cifrelor numărului natural n.

𝑠(𝑛) =

Funcția recursivă se va scrie astfel:

int suma(int n)

{

if(n<10)return n;

return n%10+suma(n/10);

}

Exemplu 2. Scrieți o funcție recursivă care primește ca parametru un număr natural și returnează numărul obținut prin eliminarea cifrelor pare.

De fapt, va trebui sa reconstruim numărul inițial, prin adăugarea doar a cifrelor impare.

Funcția recursivă se va scrie astfel:

int sterg(int n){

if(n==0) return 0;

if(n%2) return sterg(n/10)*10+n%10; //dacă cifra este impară o adăugăm în număr

else

return sterg(n/10); // dacă cifra este pară, o eliminăm

}

Exemplu 3. Să se calculeze CMMDC al doua numele naturale folosind o funcție recursivă.

Poate fi folosit algoritmul lui Euclid, în oricare dintre cele două forme.

int cmmdc(int a, int b){ //varianta prin restul împărțirii

if(!b) return a; // dacă b este 0, se returnează cel mai mare divizor comun

return cmmdc(b,a%b); //în caz contrar a devine b, iar b devine a%b

}

int cmmdc2(int a, int b) { //varianta prin scăderi repetate

if(a==b) return a; // dacă numerele sunt egale, returnăm cel mai mare divizor comun

if(a>b) return cmmdc(a-b,b); // dacă a este mai mare, atunci scădem din a pe b

else

return cmmdc(a,b-a); // dacă b este mai mare, atunci scădem din b pe a

}

TEMĂ

1. Scrieți o funcție recursivă care verifică dacă un număr natural este prim sau nu.

2. Se citește un vector a cu n elemente numere naturale. Să se calculeze elementul maxim din vector. Se va folosi o funcție recursivă pentru citire și una recursivă pentru determinarea elementului maxim.

3. Să se determine cifra maximă a unui număr natural folosind o funcție recursivă.

4. Descompuneți un număr natural n ca sumă de termeni din șirul lui Fibonacci. Scrieți funcții recursive pentru toate prelucrările necesare.

5. Se citește un număr natural n. Să se descompună numărul n in toate modurile ca sumă de două numere a și b care au proprietatea că b este răsturnatul lui a. Se vor scrie și folosi două funcții recursive pentru:

- Calculul răsturnatului

- Descompunerea cerută

6. Se citește un număr natural n. Să se descompună ca sumă de puteri crescătoare ale lui 2. Se vor folosi doar prelucrări / calcule realizate cu ajutorul funcțiilor implementate recursiv.

7. Scrieți un subprogram recursiv care descompune un număr în factori primi.

8. Se dă un număr natural n. Să se determine dacă n este palindrom (egal cu răsturnatul său), utilizând recursivitatea.

9. Scrieți un program care transformă un număr natural n din baza 10 în baza b (1

10. Se citește de la tastatură, caracter cu caracter, un șir de caractere. Citirea se încheie la întâlnirea caracterului $. Folosind un algoritm recursiv, să se afișeze în ordine inversă citirii, cifrele care apar în șir.

REVENIRE

ANEXA 2 - 8

TEST RECURSIVITATE

· Clasa a X-a, matematică-informatică intensiv informatică

· Clasa a XI-a, matematică-informatică

Profesor Pătru Laurențiu

Colegiul Național „Gib Mihăescu”, Drăgășani

1. Ce afișează subprogramul F, descris mai jos, la apelul F(5)?

void F(int x){

cout<

if(x>=3)F(x-2);

cout<

}

2. Se consideră subprogramul recursiv descris mai jos incomplet. Cu ce valoare trebuie înlocuite punctele de suspensie pentru ca funcția să returneze cifra minimă a numărului natural nenul transmis prin parametrul x?

int Min(int x){

int c;

if(x==0)return ......; else{

c=Min(x/10); if(c

}}

3. Ce se va afișa în urma apelului F(14)?

void F(int x){

if(x<=10)

cout<<0<<" ";

else

{

F(x-2);

cout<

}}

4. Se consideră subprogramul F definit mai jos. Ce se va afișa în urma apelului F(’a ’)?

void F(char c)

{

if(c!='e')

{

F(c+1);

cout<

}}

5. Pentru definiția de mai jos a subprogramului f, ce valoare are f(132764)?

int f(long n)

{

if(n!=0)

if(n%2!=0)

return n%10+f(n/10);

else

return f(n/10);

else return 0;

}

6. Pentru definiția de mai jos a subprogramului f, ce valoare are f(100)?

int f(int x)

{

if(x==50)return 0;

else return x+f(x-1);

}

7. Scrieți o funcție recursivă care calculează și afișează suma primelor n numere prime.

Exemplu:

n=4

S=2+3+5+7=17

OBSERVAȚIE:

Toate subiectele sunt obligatorii. Primele 6 subiecte au câte un punct fiecare, iar problema 7 are 3 puncte. Se acordă un punct din oficiu. Timp de rezolvare: 50 de minute.

REVENIRE

ANEXA 2 - 9

DIVIDE ET IMPERA – APLICAȚII CU VECTORI

· Clasa a X-a, matematică-informatică intensiv informatică

· Clasa a XI-a, matematică-informatică

Profesor Merlan Doina Narcisa

Colegiul Economic, Rm. Vâlcea

Metoda DIVIDE ET IMPERA aplicată pentru probleme care prelucrează vectori (cu n elemente), presupune împărțirea succesivă a vectorului în 2 subvectori de lungime egală (inițial se obțin subvectori de lungime n/2), până se obține un vector cu un singur element.

Vectorul inițial: x=(x1, x2, ..., xk, xk+1, ..., xn), unde k=(n+1)/2

La prima împărțire a vectorului se obțin subvectorii: (x1, x2, ..., xk) și (xk+1, ..., xn)

Rezolvarea unei probleme cu metoda DIVIDE ET IMPERA presupune:

· rezolvarea celor 2 subprobleme (în cazul nostru: prelucrarea celor 2 subvectori)

· combinarea celor 2 soluții pentru a obține soluția problemei inițiale (soluția finală a problemei).

Putem considera că, la un moment dat (un anumit pas), se lucrează cu vectorul:

(xli, xli+1, ..., xls), unde:

· li= limita inferioară a indicilor subvectorului curent;

· ls= limita superioară a indicilor subvectorului curent;

· k=(li+ls)/2.

Se continuă împărțirea în subprobleme (subvectori) până când se ajunge la cea mai simplă problemă (vector cu un singur element, adică li=ls).

Pentru rezolvarea celor 2 subprobleme (în cazul nostru, prelucrarea celor 2 subvectori) și combinarea celor 2 soluții, se folosește RECURSIVITATEA.

Cazul particular care se rezolvă în mod direct (fără autoapel) este: li=ls (s-a ajuns la un subvector cu un singur element).

Cazul general, adică în cazul în care li!=ls, se parcurg pașii:

· se rezolvă subproblema S1 - pentru prima jumătate a vectorului (autoapel cu parametrii li și k);

· se rezolvă subproblema S2 - pentru a doua jumătate a vectorului (autoapel cu parametrii k+1 și ls);

· se combină cele două soluții obținute pentru S1, respectiv pentru S2 și se obține soluția problemei

PROBLEME REZOLVATE

Considerăm că datele de intrare sunt vectorul x și n (numărul de elemente), declarate ca variabile globale (la începutul programului), la care se adaugă datele specifice problemei.

Pentru citirea datelor de intrare se folosește funcția citire de tip void, fără parametri:

void citire()

{

int i;

cout<<”n=”; cin>>n;

cout<<”elemente vector:”;

for(i=1;i<=n;i++)

cin>>x[i];

... //citire alte variabile necesare;

}

· PROBLEMA 1

Se consideră un vector cu n (n ≤ 25) elemente numere reale citite de la tastatură. Să se verifice dacă toate elementele vectorului sunt în ordine strict descrescătoare.

Rezolvare:

Se consideră vectorul x cu n (n ≤ 25) elemente numere reale citit de la tastatură.

Spunem că elementele vectorului x sunt în ordine strict descrescătoare dacă toți subvectorii au elementele în ordine strict descrescătoare, adică: x1>x2>x3> ... >xn

Conform Divide et Impera: spunem că elementele vectorului sunt în ordine strict descrescătoare dacă cei 2 subvectori au elementele în ordine strict descrescătoare, adică: xli>xli+1>xli+2>...>xk și xk+1>xk+2>...>xls. Vom folosi funcția descresc cu 2 parametri: li (limita inferioară a indicilor) și ls (limita superioară a indicilor).

Cazul particular care se rezolvă în mod direct: pentru li=ls spunem că elementele vectorului sunt în ordine strict descrescătoare (un singur element este ordonat cum vrem noi).

În funcția Main se face apelul funcției astfel: descresc(1,n)

Programul C++ corespunzător:

int ok, n; float x[25];

void citire()

{

int i; cout<<”n=”; cin>>n;

cout<<”elemente vector:”;

for(i=1;i<=n;i++) cin>>x[i];

}

int descresc(int li, int ls)

{

int k=(li+ls)/2;

if(li==ls)

return 1;

else

{if(x[li]

else

return descresc(li,k)*descresc(k+1,ls);} }

int main()

{

citire();

ok=descresc(1,n);

if(ok==1)

cout<<”vectorul este ordonat strict descrescator”;

else

cout<<”vectorul nu este ordonat strict descrescator”;

return 0;

}

· PROBLEMA 2

Se consideră un vector n (n ≤ 20) elemente numere reale și o valoare y (număr real) citite de la tastatură. Să se verifice dacă y aparține vectorului.

Rezolvare:

Se consideră vectorul x cu n (n ≤ 20) elemente numere reale și o valoare y (număr real) citite de la tastatură.

Spunem că valoarea y aparține vectorului dacă se regăsește printre elementele vectorului, adică: xli=y sau xli+1=y sau xli+2=y ... sau xk=y sau xk+1=y ... sau xls=y .

Conform Divide et Impera: spunem că valoarea y aparține vectorului x dacă valoarea y aparține unuia din cei 2 subvectori, adică:

xli=y sau xli+1=y sau xli+2=y... sau xk=y, respectiv xk+1=y sau xk+2=y ... sau xls=y

Pentru rezolvarea cerinței se folosește funcția apartine cu 2 parametri: li (limita inferioară a indicilor) și ls (limita superioară a indicilor).

Cazul particular care se rezolvă în mod direct: pentru li=ls spunem că valoarea y aparține vectorului dacă x[li]==y.

În funcția Main se face apelul funcției astfel: apartine(1,n)

Programul C++ corespunzător:

int ok, n; float y, x[20];

void citire()

{

int i;

cout<<”n=”; cin>>n;

cout<<”elemente vector:”;

for(i=1;i<=n;i++)

cin>>x[i];

cout<<”y=”; cin>>y;

}

int apartine(int li, int ls)

{

int k=(li+ls)/2;

if(li==ls)

{if(x[li]==y) return 1;

else return 0;}

else return apartine(li,k)*apartine(k+1,ls);

}

}

int main()

{

citire();

ok=apartine(1,n);

if(ok==1)

cout<

else

cout<

return 0;

}

· PROBLEMA 3

Se consideră un vector cu n (n ≤ 25) elemente numere naturale citit de la tastatură. Să se calculeze suma elementelor impare de 3 cifre.

Rezolvare:

Se consideră vectorul x cu n (n ≤ 25) elemente numere naturale citite de la tastatură.

Suma elementelor impare de 3 cifre din vector se referă la acele elemente care îndeplinesc condițiile: au 3 cifre (între 100 și 999) și sunt impare (restul împărțirii la 2 este 1).

Conform Divide et Impera: suma elementelor impare de 3 cifre din vectorul curent este S1+S2, unde: