RSS

L2. Pseudocod. Date. Expresii

09 Aug

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 formate 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
 
14 Comments

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

 

14 responses to “L2. Pseudocod. Date. Expresii

  1. Republica

    08/01/2011 at 17:41

    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!

     
  2. Mihai Chelariu

    09/01/2011 at 16:17

    char c;
    ! (c>=’a’ && c<='z')… cam asa e in C

     
  3. Ada

    02/08/2012 at 17:41

    Si pentru instructiunea : ” pentru x<-a,b,-1 executa " cum s-ar traduce in limbajul C++ ? Multumesc

     
  4. Neagu

    03/03/2014 at 17:30

    Domnu profesor am si eu un exercitiu la INFO si imi cere enutul asa: Se citeste un numar natural n de la tastatura ,sa se afiseze cate cifre pare are acest numar. daca ma puteti ajuta??? Imi dati si mie raspunsul pe email. Va multumesc frumos!

     
  5. mchelariu71

    04/03/2014 at 08:15

    Este evident ca trebuie sa verifici toate cifrele, ceea ce inseamna ca va trebui sa “feliezi” numarul n cifra cu cifra.

    citeste n; pare=0;
    cat timp (n>0) //mai sunt cifre?
    {uc=n%10; //fixez ultima cifra
    //o prelucrez
    daca(uc%2==0) atunci pare=pare+1; //crestem contotul de cifre pare daca am mai gasit inca una
    //o elimin din N
    n=n/10;
    }
    scrie pare;

    ca observatii:
    1. algoritmul merge pentru mai multe probleme de gen (prelucrarea cifrelor unui numar natural); trebuie sa schimbi doar partea de prelucrare
    2. verifica daca si cazul n=0. poate iti trebuie. din acest pct de vedere, mai corect ar fi
    citeste n; pare=0;
    executa
    {uc=n%10; //fixez ultima cifra
    //o prelucrez
    daca(uc%2==0) atunci pare=pare+1; //crestem contotul de cifre pare daca am mai gasit inca una
    //o elimin din N
    n=n/10;
    }
    cat timp (n>0) //mai sunt cifre?
    scrie pare;
    A doua varianta ia in considerare si cazul n=0; la urma urmei orice numar are cel putin o cifra; pot sa muncesc intai si apoi sa intreb (executa – cat timp).

     
  6. Andreea Tirziu

    17/12/2014 at 00:27

    Se poate sa ma ajutati si pe mine? Am o problema in care se cere sa se afiseze pe o singura linie primele n numere prime (n se citeste de la tastatura). Multumesc frumos!

     
  7. mchelariu71

    17/12/2014 at 07:36

    Ideea este sa tot parcurgi numerele pana ai afisat deja N numere prime. Practic N ne arata cate numere mai ai de afisat.

    O varianta ar fi:

    cout<<2<0; x=x-2) //pornesc incepand cu 3, din 2 in 2, cat timp mai am de cautat numere prime
    { //testez daca x este prim
    …..
    if( “este prim”) {cout<<x<<" "; n–;}
    }

    Te las sa completezi cu algoritmul prin care determini daca X este prim si cu conditia care iti stabileste daca ai gasit un divizor sau nu.

     
  8. mihai

    07/05/2015 at 15:32

    cel mai prost capitol

     
  9. mchelariu71

    08/05/2015 at 09:28

    🙂 arata-mi ce ai lucrat tu.

     
  10. Timeea

    15/06/2015 at 14:46

    Cum pot invata INFO intr-un timp relativ scurt si intr-o maniera individuala?

     
  11. Daniela

    09/07/2015 at 18:55

    Am o dilema cu expresiile logice.Imi puteti explica intr-un mod detaliat tot ce trebuie sa stiu despre ele?

     
  12. Paul

    18/11/2015 at 17:36

    formate* –> Sub subcapitolul “Expresii” ^_^

     
  13. mchelariu71

    20/11/2015 at 15:53

    da. multumesc.

     
  14. ADRI

    04/12/2015 at 19:09

    ma ajutati va ROG CU ACEASTA PROBLEMA
    Se citește de la tastatură o valoare x naturală, x>10. Dacă valoarea citită
    are cifra unităților egală cu cifra zecilor, se vor afișa primele două numere naturale
    mai mari decât valoarea x. În caz contrar, se va afișa cifra maximă dintre cifra zecilor
    și cea a unităților.
    Exemple:
    Pentru x=3455 se va afișa 3456 3457
    Pentru x=3485 se va afișa 8 puteti sa.mi raspundeti pe mail va rog

     

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: