Documente Academic
Documente Profesional
Documente Cultură
Programarea Interactiv
Cerine:
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.".
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".
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.
def numar_prezice(numar):
# Scrie aici codul.
# Utilizeaza if...elif...else
# pentru a verifica numarul
# si a returna sirul prezis.
def mystical_ball(intrebarea):
Programarea Interactiv