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

#1 19. 01. 2011 18:49

Tom959
Příspěvky: 25
Reputace:   
 

Dělení pomocí postupného odečítání v cyklu - PASCAL

Zdravím,
mám zase další problém, potřebuju udělat tenhle program. Dostal jsem to jako úkol. Vůbec nevím jak začít mohl by mě někdo popostrčit?

Děkuju

Offline

 

#2 19. 01. 2011 18:54

Dana1
Host
 

Re: Dělení pomocí postupného odečítání v cyklu - PASCAL

↑ Tom959:

13 : 3


13 -3 = 10
10 -3 =7
7 - 3= 4
4 - 3 = 1 ( zvyšok), počet odrátaní je 4, to je podiel

 

#3 19. 01. 2011 19:09 — Editoval janca361 (19. 01. 2011 19:14)

janca361
.
Příspěvky: 3284
 

Re: Dělení pomocí postupného odečítání v cyklu - PASCAL

↑ Tom959:
Princip ti napsala ↑ Dana1 tady:
Potřebuješ 2 proměnná na vstupu dělence a dělitele (načteš je z klávesnice) a jednu proměnnou pro výstup (vypíšeš na obrazovku).
Dělit budeš v cyklu (while nebo repeat, to je jedno) dokud nebude dělenec menší než dělitel.


Zkus to zapsat ;)

Offline

 

#4 19. 01. 2011 19:32

Tom959
Příspěvky: 25
Reputace:   
 

Re: Dělení pomocí postupného odečítání v cyklu - PASCAL

program deleni_pomoci_odecitani;
var a,b,c:integer;
begin
readl(a,b);
c:=0
  while (a<b) do
  a div b;

end.


vůbec netuším jak dál a asik to mám zase všechno blbě.

Offline

 

#5 19. 01. 2011 19:37 — Editoval janca361 (19. 01. 2011 19:47)

janca361
.
Příspěvky: 3284
 

Re: Dělení pomocí postupného odečítání v cyklu - PASCAL

Code:

program deleni_pomoci_odecitani;
var a,b,c:integer; {a-delenec, b-delitel, c-podil}

begin
writeln('Zadej delence a delitele');{Samozdrejme nemusi byt, ale za tyden nebude vedet, co mas zadavat}
readl(a,b);
c:=0
while (a>b) do begin
                       a:=a-b;{jedna se o deleni odesitanim!, a kam to zapisuješ?}
                       c:=c+1;{nezapomen zapisovat podil}
               end;
writeln('Podil zadanych cisel je ',c);
end.

Vidíš, že to nebylo až tak špatné. Rozumíš mým opravám?

Offline

 

#6 19. 01. 2011 19:40 — Editoval janca361 (19. 01. 2011 19:47)

janca361
.
Příspěvky: 3284
 

Re: Dělení pomocí postupného odečítání v cyklu - PASCAL

Trošku vyšší level...s výpisem zbytku...

Code:

program deleni_pomoci_odecitani;
var a,b,c:integer; {a-delenec, b-delitel, c-podil}

begin
writeln('Zadej delence a delitele');{Samozdrejme nemusi byt, ale za tyden nebude vedet, co mas zadavat}
readl(a,b);
c:=0
while (a>b) do begin
                       a:=a-b;{jedna se o deleni odesitanim!, a kam to zapisuješ?}
                       c:=c+1;{nezapomen zapisovat podil}
               end;
writeln('Podil zadanych cisel je ',c, ' zb. ',a);
end.

Program se od původnímu programu se akorát liší v předposledním řádku... writeln('Podil zadanych cisel je ',c, ' zb. ',a);

Offline

 

#7 19. 01. 2011 19:47

Tom959
Příspěvky: 25
Reputace:   
 

Re: Dělení pomocí postupného odečítání v cyklu - PASCAL

↑ janca361:Ano úpravy chápu. Pro to aby to fungovalo v turbo pascalu jsem přidal ke konci

Code:

end;
writeln ('Podil je'  ,c);
writeln('Zbytek je' ,a);
readln,
end.

A píše to dobře, až na případ kdy je 10:2 napíše to 4 a zbytek 2. Jak tohle můžu ošetřit?

Offline

 

#8 19. 01. 2011 19:48

janca361
.
Příspěvky: 3284
 

Re: Dělení pomocí postupného odečítání v cyklu - PASCAL

↑ Tom959:
Upravíš podmínku pro while cyklus nebude a>b, ale bude a>=b
Musím se přiznat, že tato možnost mě nenapadla :)

Offline

 

#9 19. 01. 2011 19:49

janca361
.
Příspěvky: 3284
 

Re: Dělení pomocí postupného odečítání v cyklu - PASCAL

↑ janca361:
A ještě dotaz: Proč zadáváš na konci to readln? Aby to to zobrazilo výsledek?

Offline

 

#10 19. 01. 2011 19:51 — Editoval Tom959 (19. 01. 2011 20:22)

Tom959
Příspěvky: 25
Reputace:   
 

Re: Dělení pomocí postupného odečítání v cyklu - PASCAL

↑ janca361:Ano přesně tak, jinak mě to hned vyhodí a já nevidím výsledek.

Ano máš pravdu. Je to tak mnohem lepší. Učitel nás to učil dělat takhle, ale je to hrozně náchylné. Někdy se to nemusí vůbec vypnout.

Offline

 

#11 19. 01. 2011 19:53

janca361
.
Příspěvky: 3284
 

Re: Dělení pomocí postupného odečítání v cyklu - PASCAL

↑ Tom959:
Správně by to tam nemělo být. K výsledku se přepneš pomocí klávesové zkratky Alt+F5

Offline

 

#12 19. 01. 2011 20:20

Tom959
Příspěvky: 25
Reputace:   
 

Re: Dělení pomocí postupného odečítání v cyklu - PASCAL

↑ janca361:Tak opět moc děkuju laskavý človíčku. :-))

Offline

 

#13 19. 01. 2011 20:29

janca361
.
Příspěvky: 3284
 

Re: Dělení pomocí postupného odečítání v cyklu - PASCAL

↑ Tom959:
Není zač.

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson