Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

sabiranje cifara n-cifrenog broja

[es] :: Pascal / Delphi / Kylix :: sabiranje cifara n-cifrenog broja

[ Pregleda: 4182 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

XXXL

Član broj: 23874
Poruke: 44
*.222.36-130.bih.net.ba.



Profil

icon sabiranje cifara n-cifrenog broja20.12.2005. u 15:17 - pre 223 meseci
Problem je sledeci...Mozda je vama svima lagan, ali ja se plaho ne razumijem u pascal...
Sledece je u pitanju.
Ulaz je n-cifreni broj. Kako da saberem sve cifre?
Imam rjesenje za npr. 4-cifren broj ali za n-cifren nemam.
Ne smijem koristiti funkcije sa stringovima...(Jer to jos moj prijatelj nije ucio, pa ne smije ni pokazati)...Usao mi je taj zadatak u glavu i ne mogu ga vec 3 dana uraditi...
Molim za rjesenje..ili neku pomoc...
Primjer.
ULAZ: 6578943056
IZLAZ: 55 */ 6+5+7+8+9+4+3+0+5+6/*
 
Odgovor na temu

Srki_82
Srdjan Tot
Me @ My Home
Ljubljana

Član broj: 28226
Poruke: 1403
82.208.201.*

ICQ: 246436949


+10 Profil

icon Re: sabiranje cifara n-cifrenog broja20.12.2005. u 15:59 - pre 223 meseci
Hint: koristi MOD i DIV funkcije... i broj 10
 
Odgovor na temu

Passwd

Član broj: 54624
Poruke: 640
*.adsl.net.t-com.hr.



Profil

icon Re: sabiranje cifara n-cifrenog broja20.12.2005. u 19:57 - pre 223 meseci
Hm, znam da nisam neki matematicar ali ipak mi se cini da je
*/ 6+5+7+8+9+4+3+0+5+6/* = 53 a ne 55

Citat:
XXXL:Ne smijem koristiti funkcije sa stringovima...(Jer to jos moj prijatelj nije ucio, pa ne smije ni pokazati)...


Lol, neka kaze da je napredan...

Code:

program cifraZAD;
uses crt;
var cifra:string;
    x,suma,br,gr:integer;
begin
clrscr;
writeln('Upisite cifru:');
readln(cifra);
suma:=0;

for x:=1 to length(cifra) do
 begin
 val(cifra[x],br,gr);
 suma:=suma+br;
 end;

writeln('Rezultat:',suma);

readln;
end.


[Ovu poruku je menjao Passwd dana 20.12.2005. u 20:57 GMT+1]
 
Odgovor na temu

XXXL

Član broj: 23874
Poruke: 44
217.71.52.*



Profil

icon Re: sabiranje cifara n-cifrenog broja20.12.2005. u 20:41 - pre 223 meseci
Hehe, nije 55, nego 53, sorry, dobro si reko...ya racuno to u sebi u sekundi...:)
Ovo drugo rijesenje ne kontam nikako...al nema weze...Wazno je da sam ja saam uradio...Ona prva pomoc je bolja nego kada neko uradi zadatak...Ako vec ne ide onda...morao bi traziti rjesenje...Ali za 10 min. mi je dosla ideja...Nisam probo u pascalu jer ne znam kako ide sintaksa...Ali ustvari ovako bi trebalo biti tacno:

suma=0
readln(broj)
l=lenght(broj)
for i=1 to l do begin
suma=suma+(broj mod 10)
broj=broj div 10^i */ kako se u pascalu obiljezava eksponencija? Jel "^" ?
end
writeln(b)


Hvala mnogo!
 
Odgovor na temu

Passwd

Član broj: 54624
Poruke: 640
*.adsl.net.t-com.hr.



Profil

icon Re: sabiranje cifara n-cifrenog broja20.12.2005. u 21:31 - pre 223 meseci
Kako ne kontas kod??

Code:

program cifraZAD;

uses crt;
var cifra:string;
    x,suma,br,gr:integer;


begin
clrscr;
(*brise ekran*)

writeln('Upisite cifru:');
readln(cifra);
(*ucitava cifru kao string znaci neka bude za primjer 12345 *)

suma:=0;
(suma je varijabla integer tipa u koju cemo zbrajat svaki niz cifre )
 
for x:=1 to length(cifra) do
(*od prvog do zadnjeg clana cifre , u ovom slucaju do 5-og*)

 begin
 val(cifra[x],br,gr);

 (*pretvara X-ti clan koji je string u br koji je integer jer ne mozes stringove i integere zbrajat..a ako ne moze pretvorit gr ce biti 1, ako je uspjesno pretvorio gr ce biti 0, gr=greska 
recimo val(1=>to je prvi clan cifre,br=>u njega smjestamo 1, gr ce biti 0 jer nema greske, i onda taj 1 doda cifri, tako i za ostale clanove [2,3,4,5])
*)

 suma:=suma+br;
(*dodaje sumi X-ti clan koji smo smjestili prije toga u br
suma:=suma+1;
suma:=suma+2;
...
*) 

end;

writeln('Rezultat:',suma);
(*ispisuje sumu..odnosno rezultat*)


readln;
end.
 
Odgovor na temu

XXXL

Član broj: 23874
Poruke: 44
217.71.52.*



Profil

icon Re: sabiranje cifara n-cifrenog broja21.12.2005. u 23:27 - pre 223 meseci
Passwd...Ukoliko vidis gore u mom pitanju pishe da se ne smiju koristiti funkcije sa stringovima...
A moje rjesenje koje sam dao, opet nije tachno...heh...Mala ispravka:

suma=0
readln(broj)
l=lenght(broj)
for i=1 to l do begin
suma=suma+(broj mod 10)
broj=broj div 10
end
writeln(b)


i ovo bi trebalo raditi...
Hvala jos jednom...
 
Odgovor na temu

Srki_82
Srdjan Tot
Me @ My Home
Ljubljana

Član broj: 28226
Poruke: 1403
82.208.201.*

ICQ: 246436949


+10 Profil

icon Re: sabiranje cifara n-cifrenog broja22.12.2005. u 07:59 - pre 223 meseci
Ni ovo nije dobro... ne postoji Length funkcija koja ce ti dati duzinu broja.

Hint: Treba ti petlja koja ce se vrteti do nekog uslova (kada broj vise nema cifara za obradu) ili dok je neki uslov ispunjen (dok broj ima jos cifara za obradu)... posto ne mozes da skines sve cifre iz broja (mora da ostane bar jedna cifra) koji bi onda cifra, kada ostane sama u broju, oznacavala da nema vise nista za obradu?
 
Odgovor na temu

Passwd

Član broj: 54624
Poruke: 640
*.adsl.net.t-com.hr.



Profil

icon Re: sabiranje cifara n-cifrenog broja22.12.2005. u 08:17 - pre 223 meseci
Citat:
XXXL: Passwd...Ukoliko vidis gore u mom pitanju pishe da se ne smiju koristiti funkcije sa stringovima...


A ja sam ti ljepo rekao da kaze da je napredan
 
Odgovor na temu

stameni
Ivan Stamenković

Član broj: 6739
Poruke: 538



+9 Profil

icon Re: sabiranje cifara n-cifrenog broja22.12.2005. u 12:02 - pre 223 meseci
Citat:
Ni ovo nije dobro... ne postoji Length funkcija koja ce ti dati duzinu broja.



Već sam pisao na ovom forumu kako se može izračunati dužina prirodnog broja n:


Code:
length(n) = trunc(log10(n)) + 1



log10 je logaritam za osnovu 10, koji takođe nije deo ni standardnog ni Turbo Pascala. Gradivo je drugog razreda srednje škole izračunati baš log10 kada je na raspolaganju logaritam za neku drugu osnovu...


I, da, računanje dužine u ovom zadatku stvarno nije neophodno: vrtiš se u petlji skidajući sa mod cifre jedinica (jednu po jednu), a sa div uzimaš "resto", sve dok resto ne bude jednako nuli.
 
Odgovor na temu

XXXL

Član broj: 23874
Poruke: 44
217.71.52.*



Profil

icon Re: sabiranje cifara n-cifrenog broja22.12.2005. u 15:28 - pre 223 meseci
hmm...zanimlyiwo...u prawu ste...
 
Odgovor na temu

XXXL

Član broj: 23874
Poruke: 44
217.71.52.*



Profil

icon Re: sabiranje cifara n-cifrenog broja25.12.2005. u 01:46 - pre 223 meseci
Skitza yarane...ya ne znam da`l ti chitash, al uprawo takwo ryeshenye ti ye bilo gore...ne znam zashto si samo napisao to ponowo (yosh dodao komentare)..?..al hayd..I yosh rasprawlyash o nechemu :"shta che wam stringowi?"...a gore ima fino...a choyk ye fino rekao da ono ryeshenye ne mozhe sa LEN...tako da sam skonto da mozhe neko drugo...

read(a);

b:=a;
x:=0;
c:=0;

while a<=1 do begin
a:=a/10;
x:=x+1; */ koliko cifara ima broj a, toliko che pokazat broyach x /*
end

for i:=1 to x do begin
c:=c+(b mod 10);
b:=b div 10;
end
write(c);


Walyda owako treba, umyesto onog LENGHT(a)...
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: sabiranje cifara n-cifrenog broja

[ Pregleda: 4182 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.