Informatica clasa a X-a

liceu

(Marina Georgiana Grădinaru) #21

Da . Ok …Voi încerca eu cumva ! mulțumesc pentru timpul acordat ! …


(István F.) #22

Fa rost de un profesor care sa stea langa tine si sa explice lucrurile, nu vei invata altfel daca n-ai tangente cu informatica si nu esti pasionat.

Orice student de info te poate ajuta, cu 20 de lei/ora si cam 10-15 ore poti ajunge sa intelegi si sa recuperezi informatiile de care ai nevoie.

Informatica de liceu e mai mult matematica, trebuie sa ti se explice si sa memorezi modul de abordare (schema) a fiecarei probleme. Sunt probleme tip si toate se rezolva in acelasi mod doar ca difera informatiile. Normal ca sunt si algoritmi care trebuie invatati, ce este div/mod, respectiv trebuie sa ai grija la lucruri precum ce fel de structura repetitiva sa folosesti. Singurul mod in care vei ajunge sa stii si sa fii bun e sa rezolvi exercitii, cat mai multe. (same shit as math)

Nu trebuie sa fii geniu ca sa intelegi informatica, e probabil cea mai usoara materie, sunt foarte putine exercitii de liceu care te pun in dificultate daca inveti de la o ora la alta. Probleme reale incep de la recursie, backtracking si grafuri in sus. (dar iarasi vor fi probleme de tipar care se rezolva la fel, rezolvi 4-5 si dupa le stii pe toate)


(Serghei Amelian) #23

Uite aici, metoda mea prosteasca chiar functioneaza :slight_smile:

http://cpp.sh/4vid

Mai jos am “îmbunătăţit” programul, poti sa-mi explici de ce am facut asa?

#include <iostream>
using namespace std;

int main()
{
    int x = 0;
    
    cout << x << endl;
    x++;
    
    cout << x << endl;
    x++;
    
    cout << x << endl;
    x++;
    
    cout << x << endl;
    x++;
    
    cout << x << endl;
    x++;
    
    cout << x << endl;
    x++;
    
    cout << x << endl;
    x++;
    
    cout << x << endl;
    x++;
    
    cout << x << endl;
    x++;
    
    cout << x << endl;
    x++;
}

(Marina Georgiana Grădinaru) #24

Ai crescut valoarea lui xcu 1 ?


(Adrian Tiberius) #25

Nu stiu daca te ajuta, dar cam asta ar fi procesul:

Problema 1 de la WHILE:

Se citesc de la tastatura numere pana se intalneste 0. Sa se afiseze cate numere divizibile cu 5 au fost gasite.

cu ce variabile trebuie sa lucreze programul(ce date trebuie sa tina minte sau sa modifice programul) ?

  • o variabila pentru numarul citit, o numim “numar”
  • o variabila pentru cate numere sunt divizibile cu 5, o numim “divizibile_cu_5”
  1. declar variabilele “numar” si “divizibile_cu_5”
  2. initializez “divizibile_cu_5” cu 0 (n-avem nici un numar divizibil inca)
  3. citesc un numar
  4. daca este 0, afisez “divizibile_cu_5” si ma opresc
  5. e numarul divizibil cu 5 ?
  6. daca da, adaug 1 la “divizibile_cu_5”
  7. citesc un numar
  8. daca este 0, afisez “divizibile_cu_5” si ma opresc
  9. e numarul divizibil cu 5 ?
  10. daca da, adaug 1 la “divizibile_cu_5”
  11. citesc un numar
  12. daca este 0, afisez “divizibile_cu_5” si ma opresc
  13. e numarul divizibil cu 5 ?
  14. daca da, adaug 1 la “divizibile_cu_5”
  15. citesc un numar
  16. etc.

Faptul ca trebuie sa repeti o anumita portiune din program (3-6 = 7-10 = 11-14 = etc) iti semnaleaza ca trebuie sa folosesti o instructiune repetitiva. Deci putem scrie:

  1. declar variabilele “numar” si “divizibile_cu_5”
  2. initializez “divizibile_cu_5” cu 0 (n-avem nici un numar divizibil inca)
  3. citesc un numar
  4. daca este 0, afisez “divizibile_cu_5” si ma opresc
  5. e numarul divizibil cu 5 ?
  6. daca da, adaug 1 la “divizibile_cu_5”
  7. reiau programul de la pasul 3

Acum incerc sa traduc in cod secventa de mai sus. Suntem in varianta in care ultima valoare (0) nu intra in prelucrare (nu ne intereseaza daca e sau nu divizibila cu 5), asa ca folosim while(){}:

1. int numar, divizibile_cu_5;
2. divizibile_cu_5 = 0;
3. cin>>numar;
4. while (numar != 0) {
5.   if (numar % 5 == 0) { 
6.     divizibile_cu_5 += 1; 
     }
3.   cin>>numar;
7. }
4. cout<<divizibile_cu_5;

(Serghei Amelian) #26

Da. In prima fază am declarat o variabila de tip integer (numar intreg) pe care am denumit-o x si i-am dat valoarea “0”. Dupa asta am afisat x-ul pe ecran.

Mai departe am incrementat x-ul (cu x++), astfel ca x a ajuns sa aiba valoarea 1. L-am inca o data pe x. Dupa care l-am incrementat din nou, l-am afisat iar. Şi tot aşa, am făcut-o de 10 ori.


(Marina Georgiana Grădinaru) #27

Si practic pentru ca ai repetat procedeul de 10 ori trebuie folosita o strucura repetitva nu ?


(Serghei Amelian) #28

Exact. Poti sa-mi dai un exemplu cum ai face chestia asta? In pseudocod.


(Adavidoaiei Dumitru-Cornel) #29

@Marina_Georgiana_Gra nu te speria cum a zis si @isti37 e o treaba de practica pana mintea se obisnuieste sa gandeasca in felul asta.


(Marina Georgiana Grădinaru) #30

cat timp (x>=o executa)
n=x++ ?


(Serghei Amelian) #31

Hmm. “x” mai mare sau egal decat ce? Si pentru ce îţi trebuie “n”? Atenţie, nu încerca sa-ţi aminteşti la întâmplare chestii pe care probabil le-ai vazut la ore.


(Marina Georgiana Grădinaru) #32

Dar nu stiu cum sa redau …cat timp (nu am idee cum sa pun conditia )
x=x+1


(Serghei Amelian) #33

Pai definiţia ar fi aşa: “cât timp X este mai mic sau egal decat 9, executa”. Corect? Gândeşte-te că trebuie să pornim de la zero şi să ne oprim la numarul imediat urmator lui 9.

x++ este fix acelasi lucru cu x=x+1, ambele variante sunt corecte.


(Marina Georgiana Grădinaru) #34

adica el repeta pana la 9 inclusiv,crescand valoarea cu 1…DECI nu stiu…trebuie sa incerc sa le gandesc


(cosmos) #35

Problema 7 de la capitolul Structura for a mai fost postata pe forum


Vezi solutia lui Ionut Milica. De asemenea sa sugerez sa vezi si raspunsul lui Horia(mai mult legat de coding style)


Am gasist si blogul acesta cu articole legate de informatica nivel liceu
:slight_smile:

offtopic: S-a schimbat fereastra de editare si creare a post-urilor :smiley:


#36

asta cred ca este una dintre cele mai elegante, usor de inteles si bune explicatii intalnite. felicitari


(Marina Georgiana Grădinaru) #37

Multumesc !!Am sa incerc sa lucrez și sa îmi dau seama ce face algoritmul


(cosmos) #38

Felicitari !
Succes la teza !
:slight_smile:


(Marina Georgiana Grădinaru) #39

Aoleu … Va mulțumesc tuturor pentru sfaturi !


(Eduard-Dan Stanescu) #40

Iti recomand wellcode.ro pentru inceput.