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 08. 06. 2009 17:39

Klara
Zelenáč
Příspěvky: 3
Reputace:   
 

dva programy v pascalu

potřebovala bych dat dohromady nějak dva programy v pascalu, vubec si nevim rady
1.
    Sestavte program, který převede celočíselnou hodnotu (do jednotek milionů) na slovní vyjádření podobně jako na složence např. 1245 - jedentisícdvěstěčtyřicetpět.
VSTUP: celé číslo
VÝSTUP: text – slovní vyjádření čísla
2.
    Trojúhelník v rovině je zadán pomocí souřadnic vrcholů. Sestavte program, dle těchto pokynů:

    * program určí souřadnice středů stran výchozího trojúhelníka - tyto body budeme považovat za vrcholy nového výchozího trojúhelníka
    * celý proces (určení středů stran) se bude opakovat tak dlouho, dokud se souřadnice vrcholů trojúhelníka budou lišit o více než předem zadanou hodnotu – vrcholy trojúhelníka se budou k sobě přibližovat, až v rámci zadané přesnosti splynou v jeden bod.

VSTUP: Souřadnice tří bodů (vrcholy),
             Diference – hraniční hodnota pro ukončení výpočtů
VÝSTUP: Souřadnice výsledného bodu
V programu lze použít rekurzi.

Offline

 

#2 08. 06. 2009 20:01

xxsawer
Příspěvky: 196
Reputace:   
 

Re: dva programy v pascalu

↑ Klara:

ok beru si ten druhej, s tim prvnim se mi nechce delat :)

Offline

 

#3 08. 06. 2009 20:24

Klara
Zelenáč
Příspěvky: 3
Reputace:   
 

Re: dva programy v pascalu

budu ti vděčná i za ten jeden program:)

Offline

 

#4 08. 06. 2009 22:41

xxsawer
Příspěvky: 196
Reputace:   
 

Re: dva programy v pascalu

↑ Klara:
Tak tady to je
Jsou tam jeste nejaky nejasnosti...ze zadani neni uplne jasny kdy presne ma ten program koncit. Jestli kdyz ma jedna strana vzdalenost mensi nez je zadana presnost nebo jestli musi mit vsechny strany toho trojuhelnika mensi velikost nez je ta presnost?? Takze sem to udelal tak aby se to zastavilo kdyz je jakakoli strana mensi nez zadana presnost.

Pak taky neni uplne jasny jakou ma mit souradnici ten vyslednej bod...takze sem to udelal tak,ze z toho malyho trojuhelnicku udelam prumer tech vzdalenosti...

program Trojuhelnik;
var a,b,c,Ax,Ay,Bx,By,Cx,Cy,presnost,Vx,Vy : real;

(***********************************************)
(***** Vraci delku strany urcenou 2 bodama *****)
(***********************************************)
function delkaStrany(Ax,Ay,Bx,By:real):real;
begin

delkaStrany := sqrt((Bx-Ax)*(Bx-Ax) + (By-Ay)*(By-Ay))

end;

(****************************************************************)
(***** Testuje jestli zadane body jsou vrcholy trojuhelnika *****)
(****************************************************************)
function testuj:boolean;
begin

if( (a = 0) or (b = 0) or (c = 0) ) then begin
  writeln('Jedna ze stran je nulova');
  testuj := false;
  end
else
  testuj := true;

end;

(****************************************************************)
(* Postupne puli strany. Novy vrchol A je umisten v polovine *)
(* strany a, vrchol B v polovine strany b, vrchol C v polovine *)
(* strany c *)
(* Jakmile je jedna ze stran kratsi nez zadana presnost tak *)
(* cyklus konci a souradnice vysledneho bodu se ulozi do Vx, Vy *)
(****************************************************************)
procedure zmensi;
var pAx,pAy,pBx,pBy,pCx,pCy:real;
begin

while ( (a > presnost) and (b > presnost) and (c > presnost) )do begin
  pAx := (Bx+Cx)/2;
  pAy := (By+Cy)/2;
  pCx := (Ax+Bx)/2;
  pCy := (Ay+By)/2;
  pBx := (Ax+Cx)/2;
  pBy := (Ay+By)/2;

  a := delkaStrany(pBx,pBy,pCx,pCy);
  b := delkaStrany(pAx,pAy,pCy,pCy);
  c := delkaStrany(pAx,pAy,pBx,pBy);

  Ax := pAx;
  Ay := pAy;
  Bx := pBx;
  By := pBy;
  Cx := pCx;
  Cy := pCy;

end;

Vx := (Ax + Bx + Cx)/3;
Vy := (Ay + By + Cy)/3;

end;



begin
writeln('Zadejte presnost');
readln(presnost);

writeln('Zadejte souradnice bodu trojuhelnika');
writeln('Bod A');
readln(Ax);
readln(Ay);
writeln('Bod B');
readln(Bx);
readln(By);
writeln('Bod C');
readln(Cx);
readln(Cy);

c := delkaStrany(Ax,Ay,Bx,By);
a := delkaStrany(Bx,By,Cx,Cy);
b := delkaStrany(Cx,Cy,Ax,Ay);

if testuj then begin
  zmensi;
  writeln('Vx: ', Vx:4:4);
  writeln('Vy: ', Vy:4:4);
end;

readln;

end.

Offline

 

#5 09. 06. 2009 17:24

Klara
Zelenáč
Příspěvky: 3
Reputace:   
 

Re: dva programy v pascalu

↑ xxsawer: Tak děkuju moc, takhle to uplně stačí:)

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson