Sunteți pe pagina 1din 4

Lucrarea de Laborator Nr.

Programarea Interactiv

Tema: Instruciunile logice i decizionale.


Obiective:

Familiarizare cu limbajul python


Execuie instruciuni simple n interpretor
Implementare/executare programe simple folosind Python IDLE

Cerine:

Rezolvai n timpul laboratorului problemele de la punctul I.


Elaborarea jocului Bila Misterioasa

I Probleme
1. Scriei o funcie numar_par care are ca intrare un numr ntreg i returneaz True dac
numrul este par i False dac numrul este impar.
2. Scriei o funcie gaseste_nume care are ca input un nume i returneaz True dac numele
este fie "Ion", "Elena" sau "Maria" i se ntoarce False n celelalte cazuri.
3. Scriei o funcie ora_prinz care are ca intrare parametrul ora (un numr ntreg din intervalul
[1,12]) i este_amiaza (o valoare boolean, care reprezint, dac ora este nainte de prnz).
Funcia trebuie s returneze True atunci cnd la intrare corespunde 11 sau 12 i False n caz
contrar. (ncearc rezolvarea problemei fr a utiliza declaraii condiionale).
4. Scriei o funcie an_bisect care ia ca date de intrare anul i returneaz True dac anul (un
numr ntreg) este un an bisect, conform calendarului gregorian i False n caz contrar. (Sfat
Intr pe Wikipedia: este un algoritm simplu pentru a stabili dac un an este un an bisect.)
5. Scriei o funcie intersectare_interval care ia parametrii a, b, c i d, i returneaz True dac
intervalele [a, b] i [c, d] se intersecteaz i False n caz contrar. n timp ce acest test poate
prea complicat, soluia este de fapt foarte simpl.
6. Scriei o funcie numele_si_virsta care ia ca date de intrare numele (un ir de caractere) i
vrsta (un numr) i returneaz un ir de forma " % este % de ani." unde procentele sunt
numele i vrsta sub forma de ir de caractere. Funcia trebuie s includ o verificare de eroare
pentru cazul n care vrsta este mai mic dect zero. n acest caz, funcia ar trebui s returneze
irul "Eroare: vrst invalid".
7. Scriei o funcie afiseaza_numerele care ia un numr ntreg din intervalul [0,100) i afieaz
mesajul "Numarul consta din % zeci si % unitati." unde procentele ar trebui s fie nlocuite cu
valorile corespunztoare. Funcia trebuie s includ o verificare de eroare pentru cazul n care
numrul este negativ sau mai mare sau egal cu 100. n aceste cazuri, funcia ar trebui s
afieze un mesaj de erare "Eroare: Numarul introdus nu este un numr de dou cifre.".

Lucrarea de Laborator Nr. 2

Programarea Interactiv

8. Scriei o funcie cauta_nume care are ca parametru prenume, care corespunde unuia dintre
("Vasile", "Mihail", "Ion" sau "Stefan") i apoi returneaz numele lor corespunztoare
("Moraru", "Perebinos", "Sirghi" sau "Buzurniuc"). Dac prenume nu se potrivete cu niciuna
dintre aceste iruri de caractere, returneaz eroare "Eroare: Nu este profesor".
9. Pig Latin este un joc de limbaj care implic modificarea cuvintelor printr-un simplu set de
reguli. Scriei o funcie pig_latin care are ca parametru un cuvnt i aplic urmtoarele reguli
pentru a genera un nou cuvnt n limbajul pig latin.
- Dac prima liter din cuvnt este o consoan, adugai consoana la sfrit i adugai
"ay" la restul cuvntului. De exemplu, pig_latin ("pig") va rezulta "igpay".
- Dac prima liter din cuvnt este o vocal, adugai "way" la sfritul cuvntului. De
exemplu, pig_latin ("awl") returneaz "owlway".

II Jocul Bila Misterioas


1) Elaborai un program Python ce ar simula jocul Mystic 8 Ball.
Magic 8 Ball sau mistic 8 Ball, minge ce prezice soarta, este o minge de ntrebri i
rspunsuri, ne spune previziunile cu bila - o jucrie, un mod de comic de a prezice viitorul.
Descriere
Magic 8 Ball - o minge care arata ca o minge de biliard, dar mai mare - de obicei 10-11 cm n
diametru, n care este un recipient cu un lichid de culoare nchis, cum ar fi de cerneal. Se
pune ntrebarea, se agit bila i citete rspunsul aprut.
Rspunsuri posibile
n mod tradiional bila are 20 de rspunsuri care pot fi mprite n patru grupe.
Pozitiv:
Este sigur (fr ndoial)
Este incontestabil (o concluzie dinainte)
Fr ndoial (fr ndoial)
Da - cu siguran (cu siguranta da)
Putei s v bazai pe ea (Putei fi sigur de asta)
Ezitant pozitiv
Dup cum vd eu lucrurile, da (cred - "da")
Cel mai probabil (cel mai probabil)
Outlook bun (perspective bune)
Punct de semne pentru a da (semnul spune - "da")
Da (Yes)

Lucrarea de Laborator Nr. 2

Programarea Interactiv

Neutru
Rspuns neclar, ncercai din nou (nu este clar, ncercai din nou)
Adresai-v din nou mai trziu (ntrebai mai trziu)
Mai bine nu-i spun acum (Mai bine nu spun)
Nu se poate prezice acum (Cine nu poate prezice)
Se concentreaz i ntreab din nou (concentrat i de a pune din nou)
Negativ
Nu conta pe el (nu cred)
Rspunsul meu este nu (Rspunsul meu - "nu")
Sursele mele spun c nu (Potrivit informaiilor mele - "nu")
Perspectivele nu sunt att de bune (Perspectivele nu sunt foarte bune)
Foarte dubios (ndoielnic)
#
#
#
#
#
#
#
#
#
#
#
#

Iata un exemplu de
rezultat a acestui program:
Intrebarea a fost... Voi deveni eu bogat?
Se scutura bila.
Apare raspunsul...
Bila misterioasa ne spune... Probabil da.
Intrebarea a fost... Va cistiga Zimbru campionatul europei?
Se scutura bila.
Apare raspunsul...
Bila misterioasa ne spune... Probabil nu.

# Importa modulul random


#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#

Scrieti o functie numar_prezice


Aceasta va fi o funcie ajutatoare.
E ava primi parametru numar si va returna un sir
Numerele posibile pot fi de la 1 pina la 10 inclusiv.
fiecare numar ar trebui sa faca previziuni
care va fi raspunsul da sau nu.
Sugestii de raspuns luati de mai sus.
0 Da, probabil!
1 Definitiv nu.
...
Daca se tasteaza alta cifra decit cele pina la 10
trebuie sa afiseze ca ceva nu este corect
mesaj de atentionare si reintroduce numarul.

def numar_prezice(numar):
# Scrie aici codul.
# Utilizeaza if...elif...else
# pentru a verifica numarul
# si a returna sirul prezis.
def mystical_ball(intrebarea):

Lucrarea de Laborator Nr. 2

Programarea Interactiv

# afiseaza intrebarea initiala in consola


# Afiseaza "Ai agitat bila misterioasa."
# Utilizeaza randrange pentru a afla numarul aleator
# Use functia ce transleaza
# numarul selectat aleator
# in prezicere
# Construieste suspens prin adaugind un rind nou
# Apare raspunsul
# Afiseaza un rind
# Bila ne spune...
# si introdu prezicerea
# afiseaza un rind nou
#Testeaza programul cu intrebarile
mystical_ball("Voi fi eu bogat?")
mystical_ball("Va cstiga Zimbru campionatul europei?")

S-ar putea să vă placă și