duminică, 9 august 2009

L3. Instructiuni intrare/iesire. Atribuirea

Instructiuni de intrare iesire


Asa cum am vazut in lectiile anterioare schema fluxului de date in rezolvarea unei probleme este urmatoarea:

Date de intrare -> Algoritm -> Date de iesire (Rezultate)


Deducem ca aven nevoie de o metoda de a prelua datele initiale (ale problemei reale) pentru a le putea prelucra in algoritm. De asemenea, avem nevoie de o metoda de a transmite rezultatul calculului nostru.

Pentru preluarea datelor vom folosi instructiunea Citeste.

  • Sintaxa: Citeste variabila;

  • ExempluCiteste a;

  • Efect: Se citeste o valoarea care va fi memorata in variabila a

  • Observatii:

    • pentru " intreg n; citeste n " , nu putem introduce o valoare reala (3.14) deoarece variabila n este declarata ca fiind intreaga




Pentru afisarea rezultatului vom folosi instructiunea Scrie:

  • Sintaxa: Scrie expresie

  • Exemplu:  Scrie a

  • Efect:

    • instructiunea Scrie afiseaza valoarea expresiei

    • presupunand ca ceea ce se scrie este transmis care monitor, atunci prima instructiune scrie afiseaza sirul de caractere Rezultatul problemei iar cea de a doua afiseaza valoarea memorata in variabila a la acel moment



  • Observatii

    • pentruafisarea unor texte folosim  text " acesta este mesajul"

    • instructiunea scrie afiseaza valoarea expresiei; atunci o instructiune de tipul Scrie a+b va afisa valoarea  calculata a expresiei a+b; adica se aduna valoarea lui a cu valoarea lui b si se afiseaza rezultatul expresiei




Pana acum, cel mai complicat algoritm pe care il putem scrie este cel de adunare a doua valori intregi:

Intreg a, b;

Citeste a, b;

Scrie a+b.

Daca ar fi doar atat... :P

Atribuirea


Pentru a schimba valoarea unei variabile pot folosi citirea. Daca totusi doresc ca variabila sa primeasca valoarea unei expresii calculate pe parcursul algoritmului, atunci am nevoie de atribuire:

  • Sintaxa: variabila<- expresie;

  • Efect: In "cutia" variabilei se memoreaza valoarea expresiei;

  • Exemplu:

    • intreg a;  a<- 10;

    • real b; fie b<- 3.14;

    • sir c; fie c<- 'totul e ok';



  • Observatie:

    • noua valoare se memoreaza peste vechea valoare care  se va pierde; adica, se inloceste vechea valoare cu cea noua

    • in fiecare din exemple in variabila se memoreaza o valoare de acelasi tip cu variabila; nu putem memora intr-o variabila o valoare de alt tip:

      • secventa intreg a; a<-3.14; scrie a; nu este corecta; variabila a este de tip intreg si nu poate memora o valoare reala.

      • secventa real a; a<- +10; este corecta deoarece valoarea intreaga 10 este si valoare reala, conform incluziunii matematice.

      • greselile frecvente sunt cele in care valori obtinute in urma unor impartiri sau radicali (valori reale) sunt atribuite unor variabile intregi



    • operatiile cele mai de intalnite la atribuire sunt incrementarea (marirea cu 1 a valorii variabilei) si decrementarea (micsorarea cu 1 a valorii variabilei)

    • incrementarea: a<- a+1;

      • asa cum stim , intai se calculeaza valaorea expresiei (cresterea cu 1 a lui a) si apoi se memoreaza in variabila, peste vechea valoare





    • decrementareaa<- a-1;

      • se calculeaza valoarea expresiei (scadereacu 1 a lui a) si apoi se memoreaza in variabila, peste vechea valoare






Exemplul 1: calculul vitezei, atunci cand stim valoarea distantei parcurse si timpul necesar;

  • real viteza;

  • intreg timp, distanta;

  • citeste timp, distanta;

  • viteza <- distanta/timp;

  • scrie viteza.


Exemplul 2 (interschimbarea a doua variabile folosind auxiliar). Fie doua variabile intregi. Sa se interschimbe valorile variabilelor. Daca variabila a are valoarea 5 si variabila b are valoarea 7, dupa executarea algorimului, variabila a sa aiba valoare 7 si variabila b sa aiba valoare 5.

  • intreg a, b, aux;

  • citesc a, b;

  • aux<-a;

  • a<-b;

  • b<-aux;

  • scrie a, b.

  • observatie: problema este similara cu urmatoarea problema. Aveti un pahar de bere (rolul variabilei a) si o halba de suc (rolul variabilei b). Pentru a schimba bauturile aveti nevoie de o cana goala (rolul variabilei aux);

    • turnam in cana goala continutul paharului

    • turnam in pahar continutul halbei

    • turnam in halba continutul canii

    • acum toate sunt in ordine; berea in halba si sucul in pahar si gana este goala; NU BEM DECAT SUCUL!




Exemplul 2 (interschimbarea valorii a doua variabile fara auxiliar). Avem aceeasi problema dar trebuie rezolvata fara o variabila in plus.

  • intreg a, b;

  • citeste a,b;

  • a <- a+b; b<- a-b; a<- a-b;

  • scrie a,b.

Niciun comentariu:

Trimiteți un comentariu