Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#26 16. 01. 2011 19:26

janca361
.
Příspěvky: 3284
 

Re: Pascal - nevím si rady

↑↑ Tom959:
Máš docela guláš v tom, co chceš dělat...
V tebou zadané úloze nic nenačítáš (nebude tam writeln+readln), ale bude tam tvůj FOR cyklus. V něm bude "rozložení" čísla na cifry a u každé cifry uděláš třetí mocninu.
Nevěš hlavu, jsi na dobré cestě!

Offline

 

#27 16. 01. 2011 19:30 — Editoval janca361 (16. 01. 2011 19:30)

janca361
.
Příspěvky: 3284
 

Re: Pascal - nevím si rady

↑↑ Tom959:
Zapomeň na chvíli na hlavní úkol a zkus udělat po jednom příklady, které jsou  ↑↑ tady: (jedná se o dílčí úkoly, které budou v tvém FOR cyklu.) Zatím je nemotej dohromady, udělej každou zvlášť...

Offline

 

#28 16. 01. 2011 19:36 — Editoval TomDlask (16. 01. 2011 19:37)

Dioxid
Příspěvky: 416
Reputace:   13 
 

Re: Pascal - nevím si rady

↑↑ Tom959:

Na konkrétním případu n=159 to vypadá takto:

n=159;
součet=0;

n není nula - budeme procházet cyklus
a=159 mod 10 = 9
součet=součet+a=0+9
n=n div 10=159 div 10 = 15

n není nula - znova jdeme do cyklu
a=15 mod 10 = 5
součet=součet+a=9+5
n=n div 10=15 div 10 = 1

n není nula - znova jdeme do cyklu
a=1 mod 10 = 1
součet=součet+a=14+1
n=n div 10=1 div 10 = 0

n je nula, cyklus skončil, součet=15
=> ciferný součet čísla 159 je 15


Jsem omylný, proto ne vše, co jsem napsal, je zaručeně správně.
468

Offline

 

#29 16. 01. 2011 19:51

Tom959
Příspěvky: 25
Reputace:   
 

Re: Pascal - nevím si rady

↑ janca361:Můžeš poslat ten hypertextový odkaz znovu nefunguje.

Offline

 

#30 16. 01. 2011 19:53 — Editoval janca361 (16. 01. 2011 19:54)

janca361
.
Příspěvky: 3284
 

Re: Pascal - nevím si rady

↑ Tom959:Funguje, jedná se o příspěvek v tomto vláknu.

TomDlask napsal(a):

↑↑ Tom959: Dokážeš tudíž napsat program, co ti bude po jedné cifře vypisovat číslo... Teď následuje souhrn otázek:
Dokážeš napsat program, který vypočítá ciferný součet?
Dokážeš napsat program, který vypočítá součet třetích mocnin cifer?

Offline

 

#31 16. 01. 2011 19:59

Tom959
Příspěvky: 25
Reputace:   
 

Re: Pascal - nevím si rady

↑ janca361:řekl bych to takhle. Nedokážu nic z toho, aji když tu mám vzorový příklad.

Offline

 

#32 16. 01. 2011 20:03

Dioxid
Příspěvky: 416
Reputace:   13 
 

Re: Pascal - nevím si rady

↑ Tom959:
Napsal jsem pseudokód

TomDlask napsal(a):

1) Máme číslo v proměnné n a v proměnné součet je 0
2) Dokud bude n rozdílné od nuly, tak budeme dělat:
      2a) a=n mod 10;
      2b) součet=součet+a;
      2b) n=n div 10;
3) Po ukončení cyklu máme v proměnné součet ciferný součet čísla n.

Čemu (kterému kroku) v tomto algoritmu nerozumíš?


Jsem omylný, proto ne vše, co jsem napsal, je zaručeně správně.
468

Offline

 

#33 16. 01. 2011 20:09

Tom959
Příspěvky: 25
Reputace:   
 

Re: Pascal - nevím si rady

↑ TomDlask:Už se přestávám soustředit a momentálně nerozumím vůbec ničemu. Takže vám děkuju moc za rady. A jen jsem se utvrdil, že jsem naprosté pako. Pokud seberu sílu odpoledne mě tu bude zase mít.

Tak přeju dobrou noc.

Offline

 

#34 16. 01. 2011 20:24

janca361
.
Příspěvky: 3284
 

Re: Pascal - nevím si rady

↑ Tom959:
Není to tak strašné! Začátky bývají těžké. To co napsal↑ TomDlask zde: bych udělala trochu jinak (nic proti). Dopíšu jeden program a vrhnu se na to...

Offline

 

#35 16. 01. 2011 21:04 — Editoval janca361 (16. 01. 2011 21:05)

janca361
.
Příspěvky: 3284
 

Re: Pascal - nevím si rady

Na konkrétním případu n=159 to vypadá takto:

n:=159;
součet:=0;
a-proměnná do niž se uloží cifra
Teď se v cyklu bude "rozebírat" číslo na cifry dokud nebude n=0

První průchod cyklem
a:=n mod 10 (a=159 mod 10, a=9)
součet:=součet+a (součet=0+9, součet=9)
n:=n div 10 (n:=159 div 10, n=15)

Druhý průchod cyklem
a:=n mod 10 (a=15 mod 10, a=5)
součet:=součet+a (součet=9+5, součet=14)
n:=n div 10 (n=15 div 10, n=1)

Třetí průchod cyklem
a:=n mod 10 (a=1 mod 10, a=1)
součet:=součet+a (součet=14+1, součet=15)
n:=n div 10 (n=1 div 10, n=0)

n=0 => cyklus se ukončí

součet:=15 => ciferný součet čísla 159 je 15

A teď v Pascalu

Code:

program ciferny_soucet;
var a,n, soucet:integer;

begin
writeln('Zadej n');
readln(n);
soucet:=0;
repeat
a:=n mod 10;
soucet:=soucet+a;
n:=n div 10;
until n=0;
writeln('Ciferny soucet cisla ',n,' je ',soucet);
end.

Offline

 

#36 16. 01. 2011 21:19

Tom959
Příspěvky: 25
Reputace:   
 

Re: Pascal - nevím si rady

↑ janca361: Dovolím si tě poopravit. Na konci mezi writeln a end. musí být readln;  :)

Offline

 

#37 16. 01. 2011 21:24 — Editoval gladiator01 (16. 01. 2011 21:26)

gladiator01
Místo: Jindřichův Hradec
Příspěvky: 1587
Škola: ZČU FAV - SWI
Pozice: absolvent
Reputace:   53 
Web
 

Re: Pascal - nevím si rady

↑ Tom959:
Teoreticky nemusí, jenom si to nestihneš přečíst, když se program nepozastaví. :)


Naděje jako svíce jas, potěší srdce štvané, čím temnější je noční čas, tím zářivěji plane.
VIVERE - MILITARE EST (Seneca)
Vím, že nic nevím. - Sokrates

Offline

 

#38 17. 01. 2011 06:49

janca361
.
Příspěvky: 3284
 

Re: Pascal - nevím si rady

↑ Tom959:
Nemusí. Potřebuju načítat nějakou hodnotu? Nepotřebuju. Takže nepotřebuju ani readln.
Dvojce writeln-readln se používá v případě, že máš něco zadat z klávesnice (např. číslo), kde za writeln napíšeš, co se má zadat (nemusí se to psát, ale pak nebudeš vědět co máš zadat) a pak to pomocí readln přečteš a zapíšeš do proměnné.

Offline

 

#39 17. 01. 2011 07:49

Honzc
Příspěvky: 4616
Reputace:   245 
 

Re: Pascal - nevím si rady

↑↑ Tom959:
Jenom tak mezi námi, to co se po tobě požaduje je speciální případ tzv. Armstrongových čísel.
Zkus se podívat na tohle

Offline

 

#40 17. 01. 2011 16:53

Tom959
Příspěvky: 25
Reputace:   
 

Re: Pascal - nevím si rady

Tak jsem něco zkoušel mám to tu dát? Nějak mi to nefunguje potřebuju opravit chybky.

Offline

 

#41 17. 01. 2011 17:11

Tom959
Příspěvky: 25
Reputace:   
 

Re: Pascal - nevím si rady

program armstrong;
var a,b,c,x:integer;
begin
writeln('Zadej cislo');
for x := 1 to N;
    a := x;
    b := 0;
    while (a > 0)
        c := a mod 10;
        b := b + (c * c * c);
        a := a \ 10;                                 
    end while

    If (x = b) then
     writeln('')
    end if
readln;
end.


Prosím o opravení, zítra to musím odevzdat.

Offline

 

#42 17. 01. 2011 18:17 — Editoval TomDlask (17. 01. 2011 18:19)

Dioxid
Příspěvky: 416
Reputace:   13 
 

Re: Pascal - nevím si rady

↑ Tom959:

1) Vypíše to sice Zadej cislo, ale nic se nezadává.
2) Chce to tam ještě dopsat (asi jako konstantu) hodnotu N.
3) writeln('') nic nevypíše - pravděpodobně tam mělo být writeln(x)

Zkus si ten program spustit a určitě to dokážeš upravit :)


Jsem omylný, proto ne vše, co jsem napsal, je zaručeně správně.
468

Offline

 

#43 17. 01. 2011 18:23 — Editoval janca361 (17. 01. 2011 18:33)

janca361
.
Příspěvky: 3284
 

Re: Pascal - nevím si rady

↑ Tom959:
Pokud se jedná o tvůj zadaný příklad v prvním postu...
writeln('Zadej cislo'); - zbytečné, vynechej

Máš vyhledat všechny čísla do 410 => N bude 410


a := a \ 10;  - nelze, protože dělení není u typu integer definováno (definováno je použe div a mod), "\" nahraď div

If (x = b) then writeln('') - co chceš vypsat? "b" - writeln(b)


Texty v {} nejsou součástí programu, ale jsou to komentáře pro tebe. U cyklů je nutno dát příkazy, které se budou provádět mezi begin-end.
Doufám, že to funguje, nezkoušela jsem to.

Rozumíš programu?

Offline

 

#44 17. 01. 2011 18:24

janca361
.
Příspěvky: 3284
 

Re: Pascal - nevím si rady

↑ TomDlask:
Dala jsem tam zadání (v hide) mám ho prozatím smazat? Nebo se dá nějak "zamčít", aby bylo nepřístupné?

Offline

 

#45 17. 01. 2011 18:32 — Editoval TomDlask (17. 01. 2011 18:32)

Dioxid
Příspěvky: 416
Reputace:   13 
 

Re: Pascal - nevím si rady

↑ janca361: Proč? Já bych to tam nechal, ale je to tvoje (vaše)...
Ten kód, co jsi (jste) sem dala jsem vyzkoušel a je tam třeba malá úprava - na 5. řádku napsat do begin, resp. takto mi to vnutil můj Turbo Pascal.


Jsem omylný, proto ne vše, co jsem napsal, je zaručeně správně.
468

Offline

 

#46 17. 01. 2011 18:34

janca361
.
Příspěvky: 3284
 

Re: Pascal - nevím si rady

↑ TomDlask:
Všichni se tu snažili o to, aby program dokázal napsat sám, tak bych nechtěla tuhle snahu zkazit.
A máš pravdu - do tam chybí. Opraveno :)

PS: Doufám, že nevadí, že ti tykám ;)

Offline

 

#47 17. 01. 2011 18:45

Dioxid
Příspěvky: 416
Reputace:   13 
 

Re: Pascal - nevím si rady

↑ janca361: Spíš je hlavní, aby tazatel porozuměl řešení, kdyby se nad tím nemusel zamyslet a dostal by kód v prvním příspěvku, tak to moc nesplní účel... Tady se o řešení pokusil, načež tu bylo uděleno několik rad, jak jeho program upravit tak, aby fungoval.

(Též ti tedy budu tykat)


Jsem omylný, proto ne vše, co jsem napsal, je zaručeně správně.
468

Offline

 

#48 17. 01. 2011 20:06

Tom959
Příspěvky: 25
Reputace:   
 

Re: Pascal - nevím si rady

Snažím se o úpravy, ale mám blbý pascal. Nepíše mi to kde mám chyby.

Offline

 

#49 17. 01. 2011 20:09

Dioxid
Příspěvky: 416
Reputace:   13 
 

Re: Pascal - nevím si rady

↑ Tom959: Blbý pascal? Co to znamená? Free Pascal, Turbo Pascal, ...? Funguje ti kód z tohoto příspěvku?


Jsem omylný, proto ne vše, co jsem napsal, je zaručeně správně.
468

Offline

 

#50 17. 01. 2011 20:20

Tom959
Příspěvky: 25
Reputace:   
 

Re: Pascal - nevím si rady

↑ Tom959:Aha, nějaké čísla to píše při zapnutí. To bude ono.  Nevím co na to říct, nevypadá to složitě, no ale začátky jsou těžké. Určitě jsem si z tohodle něco odnesl.

Děkuju všem za čas a námahu.

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson