ShadowDaniel Postat Octombrie 9, 2009 Partajează Postat Octombrie 9, 2009 Salut, am dinou probleme la informativa si de ceea postez dinou aici cu speranta ca cineva ma va ajuta.Noua Profesoara n-ea aratat structura unui program in limbaj pascal, dar nu prea am inteleso si schema logica pe care am inteleso deoarece este.. logica.a Dupa ce ne-a predat astea , ne-a facut o problema: schema logica, pseudocodul si in limbaj pascal pentu ax+b=0.Doamna a facut si a scris repede (e stilul ei de a preda, a innebuni copii la tabla pana invata) si la schema logica eu unul am inteles cate ceva si la pseudocod la fel, dar nu am inteles aproape nimic la cum sa fac programul in limbaj pascal. Oricum.. dupa asta nea dat o tema cu 10 ex. si la fiecare trebuia schema logica, pseudocodul si programul in limbaj pascal. Problema suna cam asa: n = abc...z (cu bara deasubra la "abc...z") n apartine N stelat (ceea ce rezulta n diferit de 0 )Primul punct era: Sa se faca suma cifrelor numarului.Eu din modelul doamnei am obs ca la schema logica trebuie : start --> citeste (ceea ce se cunoaste) ---> apoi blocul de decizie cu o conditie in el si apoi de la el Da si NU.. la NU vine imposibil in general si la DA vine formula de calcul--> apoi daca e da, vine scrie .Deci.. eu am facut asa: START --> Citeste a,b,c...z--> bloc de decizie (scris in el: n diferit de 0) ---> Daca DA --> s (suma) := a+b+c+...+z --> Scrie "s=" (Daca nu vine--> scrie "imposibil") si apoi STOP..Nu stiu daca am explicat bine sau daca am inteles bine... Eu doresc sa aflu daca am inteles bine schema logica si cum fac programul in limbaj pascal la primul punct al problemei, apoi poate ma prind :DMultumesc Anticipat Link spre comentariu
Mikrosha Postat Octombrie 9, 2009 Partajează Postat Octombrie 9, 2009 Nu. Daca ti se da numarul de tip 12345 inseamna ca citesti un SINGUR numar 12345, nu citesti cifrele individual. Caz imposibil nu cred ca este aici. Ca sa-i faci la asta suma cifrelor se face in felul urmator: - Ai o suma care o initializezi cu zero. - iei 12345 si il imparti la 10. Restul impartirii il adaugi la s. Catul impartirii devine noul numar. Adica ii "tai" din dreapta cifra pe care tocmai ai adaugat-o la s. Deci n=1234, s=5. - Acum ai 1234. Repeti chestia. s=s+4=9, n=123 - Repeti chestia. Acum s=s+3=12, n=12. - Repeti chestia. Acum s=s+2=14, n=1. - Repeti chestia. Acum s=s+1=15, n=0. - S-a ajuns la 0. Sfarsit. Acum afiseaza s. Ti-am atasat tema. Sa-mi zica cineva daca mi-a scapat vreo greseala... LE: Logic, mi-a scapat o greseala. Inlocuieste n:=n mod 10 cu n:=n div 10. Link spre comentariu
ShadowDaniel Postat Octombrie 10, 2009 Autor Partajează Postat Octombrie 10, 2009 Ce ai scris acolo este cam diferit ce am facut noi. Noua doamna nea zis ca nu conteaza cat e abc...z, ci doar sa facem punctele . Pentru inceput uite modelul dat de profesoara: http://i33.tinypic.com/9gekci.jpg . Deci acesta stiu ca este corect, fiind dat de doamna, de aceea am facut dupa acest model. Deci acum la problema noastra.. Era n=abc...z ("abc...z" cu bara deasupra), n apartine N stelat rezulta n diferit de 0. Sa se faca suma cifrelor numarului. Deci la mine cifrele sunt: abc...z deci trebuie sa fac suma lor. Tu mi-ai dat 12345 ceea ce ma incurca , deoarece la noi doamna a zis ca nu conteaza cat e "a" sau "b" sau "c" sau orice alta cifra. Si eu m-am gandit ca s (suma) = a+b+c+...+z Si dupa modelul dat de doamna eu am facut asa: http://i35.tinypic.com/esohee.jpg Diferentele sunt urmatoarele: Tu ai luat un exemplu 12345, la mine nu conteaza cat e "a" sau "b" .. io trebuie sa fac ca si cum le-as sti din ce am observat dupa modelul doamnei. Link spre comentariu
Mikrosha Postat Octombrie 10, 2009 Partajează Postat Octombrie 10, 2009 Daca nu-ti place 12345 rectific:- Ai o suma care o initializezi cu zero.- iei abcde si il imparti la 10. Restul impartirii il adaugi la s. Catul impartirii devine noul numar. Adica ii "tai" din dreapta cifra pe care tocmai ai adaugat-o la s. Deci n=abcd, s=e.- Acum ai 1234. Repeti chestia. s=s+d=d+e, n=abc- Repeti chestia. Acum s=s+c=c+d+e, n=ab- Repeti chestia. Acum s=s+b=b+c+d+e, n=a.- Repeti chestia. Acum s=s+a=a+b+c+d+e, n=0.- S-a ajuns la n=0. Sfarsit.Am inteles exemplul profei. Tema pe care ai scris-o acum mi se pare gresita din mai multe motive:1. Tu faci suma mai multor numere separate, nu faci suma cifrelor unui singur numar.2. Comanda s:=a+b+...+z NU poate sa existe in Pascal si nici intr-un alt limbaj pe care-l stiu. O asemenea suma s-ar eventual cu vectori, dar banuiesc ca n-ati invatat: {Numerele se afla in vectorul n[50]. Presupunem ca stim ca sunt k numere}s:=0;for i:=1 to k do s:=s+k;3. Cazul n=0 nu se justifica sa-l faci caz particular. trebuie sa fac ca si cum le-as sti din ce am observat dupa modelul doamnei.Nu mi se pare. Dimpotriva, rezolvarea ecuatiei de gradul 1 data ca exemplu are sens si sigur functioneaza dac-o scrii pe calculator. Ceea ce ai scris tu nu are logica si nu are cum sa functioneze. Fara suparare!Am luat de pe net Turbo Pascal 5.5 si am incercat programul pe care ti l-am propus si merge:var n,s:integer;beginwrite ('n=');read (n);s:=0;while n>0 dobegins:=s+n mod 10;n:=n div 10;end;write ('s=',s);readln;end. Link spre comentariu
ShadowDaniel Postat Octombrie 18, 2009 Autor Partajează Postat Octombrie 18, 2009 Am reusit sa inteleg, mersi Mikrosha Link spre comentariu
Postări Recomandate
Creează un cont sau autentifică-te pentru a adăuga comentariu
Trebuie să fi un membru pentru a putea lăsa un comentariu.
Creează un cont
Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!
Înregistrează un nou contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum