De la poveste

Post on 11-Jan-2016

161 views 6 download

description

De la poveste. la realitate !. Pinochio. In fiecare zi lucr á toare din sápt á m î n á , Pinochio spune c â te o minciun á datorit á c á reia î i cre ş te nasul cu c a te p cm pe zi. - PowerPoint PPT Presentation

Transcript of De la poveste

De la poveste De la poveste

la realitate !la realitate !

Pinochio Pinochio • In fiecare zi lucrátoare din sáptámîná,

Pinochio spune câte o minciuná datoritá cáreia îi creşte nasul cu cate p cm pe zi.

•Sîmbátá şi duminicá, când vine bunicul Gepeto acasá, pentru a nu-l supára prea tare, Pinochio reuşeşte sá nu spuná nici o minciuná, ba chiar uitându-se în oglindá observá cá în fiecare din aceste zile lungimea nasului sáu scade cu câte 1 cm pe zi.

•Când începe o nouá sáptámaná, rámânând singur acasá, Pinochio continuá şirul minciunilor.

CerinţáCerinţáCare este dimensiunea nasului lui Pinochio

dupá kk zile, stiind ca initial nasul sáu masura nn cm ?•Date de intrareDate de intrareDe la tastatura se citesc n, p si k.•Date de ieşireDate de ieşirePe ecran se va afisa un singur numar natural,

adica numarul de cm cerut de problema. •RestricţiiRestricţii

1≤n≤10001≤k≤2561≤p≤100

ExempleExemplepinochio.in pinochio.out Explicaţii

2 1 8 n p kn - nr cm initialip – cu citi cm

creste k – nr de zile

6 Zilele încep cu luni.Pentru exemplul dat zilele sunt :1.luni, 2.marţi, 3.miercuri,4. joi, 5.vineri, 6.sâmbátá, 7.duminicá, 8.luni.

Pentru n=2 p=1 k=8 se va afisa 6 cm

Observatie

Pentru orice exemplu zilele incep cu luni. Pe exemplul anterior zile sunt: luni, marti, miercuri, joi, vineri, sambata, duminica, luni.

1. Analiza problemei1.1. Datele problemei• a) Date de intrare:

• b) Date de iesire: llungime_nas=lungimea nasului lui Pinochio

dupa k zile

Nr. test Nume Ce reprezinta? Domeniu de valori

Tipul variabilei

1. n lungimea initiala a nasuluilui Pinochio

1000 integer

2. p numarul de cm cu care creste nasul lui Pinochio in zilele lucratoare

100 integer

3. k numarul de zile dupa care se calculeaza lungimea nasului lui Pinochio

256 integer

Gindeste –te! Te sfatuieste Greierele !!! Te sfatuieste Greierele !!!

1.2.Functia programului• Iniţial nasul lui Pinochio are n cm. Calculul lungimii nasului lui Pinochio dupa k zile începe cu ziua de luni din prima sáptámâná.• Pentru a calcula lungimea nasului lui Pinochio dupa k zile va trebui sá rezolvám urmatoarele subprobleme:• Cu câţi centimetri va creşte nasul lui Pinochio într-o sáptámâná completá?• Stiind cá în zilele lucrátoare(luni, marţi, miercuri, joi, vineri), primele 5 zile din sáptámâná, nasul îi creşte cu p cm/zi, iar sâmbátá şi duminicá nasul se scurteazá cu câte 1 cm/zi, nasul lui Pinochio va creşte într-o sáptámâná completá cu (p*5-2) cm.• Câte sáptámâni complete(formate din 7 zile) sunt cuprinse în cele k zile?• Numárul de sáptámâná cuprinse în cele k zile este egal cu partea întreagá a câtului obţinut la împárţirea lui k la 7, respectiv (k div 7).• Din câte zile este formatá sáptámâna incompletá?• Numarul de zile din sáptámânele respective incomplete este egal cu restul obţinut la împárţirea lui k la 7, respective (k mod 7). Acest rest poate fi şi zero, dacá numárul de zile k este multiplu de 7.• Ansamblând subprogramele de mai sus, asemenea unor blocuri dintr-un joc LEGO, obţinem ráspunsul cerut.

2.Descrierea 2.Descrierea algoritmuluialgoritmului: : îînceput Pinochionceput Pinochio

citeste n,p,kciteste n,p,k

lungime_nas = nlungime_nas = n

l_sapt = p * 5 – 2l_sapt = p * 5 – 2

nr_saptamani = k div 7nr_saptamani = k div 7

rest_zile = k mod 7rest_zile = k mod 7

lungime_nas = lungime_nas + numar_saptamani * lungime_nas = lungime_nas + numar_saptamani * L_saptL_sapt

daca rest_zile ≤ 5daca rest_zile ≤ 5

atunciatunci

lungime_nas = lungime_nas + lungime_nas = lungime_nas + rest_zile*prest_zile*p

altfel {rest_zile = 6}altfel {rest_zile = 6}

lungime_nas = lungime_nas + 5 * p – 1lungime_nas = lungime_nas + 5 * p – 1

sf dacasf daca

scrie lungime_nasscrie lungime_nas

sf Pinochiosf Pinochio

Pinochio

LuniLuni

MarţiMarţi

MiercuriMiercuri

JoiJoi

VineriVineri

SâmbátáSâmbátá

DuminicáDuminicá

Program pinochioProgram pinochio;;

Var l, n, p, k: integer;Var l, n, p, k: integer;

Begin Begin

writeln(‘nasul initial al lui Pinochio : n=‘); readln(n);writeln(‘nasul initial al lui Pinochio : n=‘); readln(n);

writeln(‘nasul lui Pinochio creste cu : p=‘); readln(p);writeln(‘nasul lui Pinochio creste cu : p=‘); readln(p);

writeln(‘nasul se transforma in k zile ‘ ); readln(k);writeln(‘nasul se transforma in k zile ‘ ); readln(k);

If k mod 7 <6If k mod 7 <6

then then

L=n + (k div 7)*(5*p - 2) + k mod 7 * p L=n + (k div 7)*(5*p - 2) + k mod 7 * p

elseelse

L=n + (k div 7)*(5*p - 2) + k mod 7*p + 7-kmod 7L=n + (k div 7)*(5*p - 2) + k mod 7*p + 7-kmod 7

Writeln (‘Nasul lui Pinochio ajunge la lungimea’,L);Writeln (‘Nasul lui Pinochio ajunge la lungimea’,L);

End.End.

Incercati sa transcrieti algoritmul de mai sus in limbajul Pascal si verificati corectitudinea programului cu urmatoarele teste:

Nr.test n p k Date de iesire Punctaj

1. 1 1 1 2 5 puncte

2. 1 10 6 50 10 puncte

3. 2 8 7 40 10 puncte

4. 4 6 75 314 10 puncte

5. 9 3 50 103 10 puncte

6. 2 4 146 381 10 puncte

7. 3 3 210 393 10 puncte

8. 7 5 226 753 10 puncte

9. 10 100 255 18238 10 puncte

10. 1000 100 256 19328 15 puncte

Total= 100 puncte

Oare ce sfaturi primeste Pinochio?

Realizati o prezentare PowerPoint Realizati o prezentare PowerPoint

Páțaniile lui Pinochio Páțaniile lui Pinochio

Ajutati-l pe Pinochio Ajutati-l pe Pinochio

cu câteva sfaturi utile cu câteva sfaturi utile