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
Stránky: 1
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
↑ 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
Stránky: 1