De la poveste

21
De la poveste De la poveste la realitate ! la realitate !

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

Page 1: De la   poveste

De la poveste De la poveste

la realitate !la realitate !

Page 2: De la   poveste

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.

Page 3: De la   poveste

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

Page 4: De la   poveste
Page 5: De la   poveste

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.

Page 6: De la   poveste

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

Page 7: De la   poveste

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

Page 8: De la   poveste

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.

Page 9: De la   poveste

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

Page 10: De la   poveste

Pinochio

Page 11: De la   poveste

LuniLuni

Page 12: De la   poveste

MarţiMarţi

Page 13: De la   poveste

MiercuriMiercuri

Page 14: De la   poveste

JoiJoi

Page 15: De la   poveste

VineriVineri

Page 16: De la   poveste

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

Page 17: De la   poveste

DuminicáDuminicá

Page 18: De la   poveste

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.

Page 19: De la   poveste

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

Page 20: De la   poveste

Oare ce sfaturi primeste Pinochio?

Page 21: De la   poveste

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