duminică, 9 august 2009

L2. Pseudocod. Date. Expresii

Cuvantul pseudocod provine din pseudo, care inseamna fals,  si cod care se refera la textul scris intr-un limbaj de programare. Deci pseudocod inseamna un asa-zis limbaj de programare.

Pseudocodul foloseste aceeasi operatori si o exprimare  la relaxata fata de un limbaj consacrat , care cere rigurozitate.

Pseudocodul, ca orice limbaj, foloseste date, variabile, operatii si instructiuni.

Pentru doritori, va prezint o varianta de pseudocod apropiata de cea din manual, limbajul Rodin a domnului profesor Dan Popa de la Univeristatea Bacau. In acest fel puteti pigmenta orele de informatica din clasa a 9-a si cu ore de laborator. :)

Date


Datele cu care lucreaza un algoritm (scris in pseudocod) sunt:

  • valori intregi: 12, -5, 17

  • valori reale: 3.14, -1005.25, ... ; observati ca folosim punct zecimal si nu virgula ca in notatia de la matematica

  • valori logice: adevarat (true) si fals (false)

  • siruri de caractere: "introdu valoarea:", "rezultatul este:"


Variabile


O variabila este un simbol care se caracterizeaza prin:

  • nume; se noteaza cu combinatii de litere sau cifre dar intotdeauna primul caracter este litera: a, Beta, nr1, nr2

  • tip de data: intreg, real, sir de caractere, logic

  • valoare: functie de tipul de data asociat, o variabila poate avea valori din cele de mai sus; valoarea memorata se poate schimba, de unde si numele de variabila;


Practic, o variabila se comporta ca o cutie  ce poate fi folosita doar pentru ceva anume: valorile intregi in cutii pentru valori intregi si valori reale in cutii pentru valori reale; doar nu puneti zahar intr-o cutie de pantofi. :).

Din acest motiv, la inceputul algoritmului nostru in pseudocod trebuie sa specificam cu ce variabile lucram si ce tip au, ca in exemplul de mai jos:

intreg m,n

real x,y.z

logic ok, exista, este

Expresii


Expresiile sunt foormate din operatori si operanzi. Formeaza expresie urmatoarele

  • o variabila

  • variabila operator variabila

  • expresie operator expresie

  • operator expresie (cazul operatorilor unari  de genul  - (5+3) )


Dintre operatorii folositi vom vorbi acum numai de cei intregi (care se folosesc numai pentru operanzi intregi):

  • semnul " - " se foloseste pentru scaderi sau ca operator unar

  • semnul " + " se foloseste pentru adunari

  • semnul  " * " se foloseste pentru inmultiri

  • semnul " / " se foloseste pentru impartiri

  • semnul " % " se foloseste pentru a obtine restul impartirii primului operand la cel de al doilea

    • a % b = restul impartirii lui a la b

    • a % 2 = restul impartirii lui a la 2, care este 1 daca a este impar si 0 daca a este par

    • a % 10 = restul impartirii lui a la 10, care este intotdeauna ultima cifra a lui a, cifra unitatilor



  • prioritatea operatiilor este aceeasi ca in matematica; mai intai inmultirile si impartirile si apoi adunarile si scaderile

  • se pot folosi si paranteze pentru expresiile mai complicate, dar numai perechide paranteze rotunde

  • atentie la ordinea operatiilor si folosirea parantezelor rotunde (ex. ecuatia de gradul 2):

    • x1=-b+ radical(b*b-4*a*c)/2*a

    • x1=(-b+ radical(b*b-4*a*c))/2*a

    • x1=(-b+ radical(b*b-4*a*c))/(2*a)



  • care din variantele de mai sus este corecta?

    • prima imparte numai radicalul la 2, rezultatul este inmultit cu a si apoi se efectueza scaderea

    • al doilea exemplu pune parantezele pentru numarator dar imaprte numai la 2, rezultatul impartirii fiind inmultit cu a

    • abia ultima varianta separa numitorul si numaratorul prin paranteze



3 comentarii:

  1. Am o problema in legatura cu construirea unei expresii care sa fie nenula daca si numai daca variabila c de tip char este o litera mica a alfabetului englez. M-am gandit ca o varianta ar fi sa o compar pe c cu 'a' si 'z', insa nu-mi dau seama cum sa creez expresia, deoarece nu stiu ce operatii sa folosesc. Crezi ca m-ai putea ajuta? Multumesc!

    RăspundețiȘtergere
  2. char c;
    ! (c>='a' && c<='z')... cam asa e in C

    RăspundețiȘtergere
  3. Si pentru instructiunea : " pentru x<-a,b,-1 executa " cum s-ar traduce in limbajul C++ ? Multumesc

    RăspundețiȘtergere