RSS

L3. Instructiuni intrare/iesire. Atribuirea

09 Aug

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…😛

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.
 
3 Comments

Posted by on 09/08/2009 in C2_1. Algoritmica

 

3 responses to “L3. Instructiuni intrare/iesire. Atribuirea

  1. Andrei

    22/09/2014 at 09:48

    Poti lasa un link de download pentru programul pseudocode te rog ?
    Multumesc !

     
  2. mchelariu71

    22/09/2014 at 14:20

     
  3. Bebe

    04/07/2015 at 10:36

    Schimbare fara auxiliar: a=-a+b; b=-a+b; a=a+b;

     

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
%d bloggers like this: