Ahoj.Prosím Vás můžete mi někdo pomoct se seminární prací do školy z programování Pascal.Já prostě vůbec nevím jak na to.Moc děkuju tomu kdo mi pomůže.Tady je zadání mé práce:
Sestavte program, který si vyžádá zadání tří číselných hodnot - velikostí stran trojúhelníka.
Poté program vyhodnotí, zda je možné ze stran zadaných velikostí sestrojit trojúhelník, y výsledek oznámí.
V případě, že trojúhelník sestrojit lze, program ověří, zda je pravoúhlý a výsledek rovněž oznámí.
Fórum › Pascal
Seminární práce do školy
Ono to opravdu je jednoduchy
staci umet zakladni stavebni konstrukce
If
If neco_splneneho then Ukon
For
for i:=1 to 3 do begin end;
pole:array[1..3]of integer;
3*read(pole[i]); {cyklem s promenou}
C jako nejvetsi strana:
If (pole[1]>pole[2])and(pole[1]>pole[3]) then
begin c:=pole[1]; b:=pole[2]; a:=pole[3]; end else
If (pole[2]>pole[3])and(pole[2]>pole[1]) then
begin c:=pole[2]; a:=pole[1]; b:=pole[3]; end else
begin c:=pole[3]; a:=pole[1]; b:=pole[2]; end;
podminka sestrojitelnosti: c<a+b
Zaroven kdyz C na druhou = A na druhou + B na druhou je pravouhly
A,B jsou 2 zjistena nejmensi cisla
To ze z neceho mate seminaku znamena, ze jste to nejakym zpusobem probirali. A to ze jste to probirali znamena
1) Nedavals pozor
2) Vubecs tam nechodil
3) Jses tak blbej ze nechapes pascal i kdyz se snazis (coz povazuju za velmi nepravdepodobne)
Ani jedno z toho neni omluva.
namiesto toho, ze tu cakas, kym ti to niekto naprogramuje, uz si sa ho mohol zacat ucit a vypracovavat tvoje zadanie
ak sa ti nechce, zaplat niekomu a urcite ti to nakodi za par minut ;)
EDIT: juchuuu, uz som tu naspamoval 400 prispevkov :D
EDIT2: ak mas zaujem sa to ucit, postupne zacni a v pripade, ze nebudes nieco chapat/vediet a nenajdes odpoved na googli, napis sem
Petře, nejsi sám :-). Tohle mi přišlo na mail, prý proč to nefunguje:
>
>Uses crt;
>var a, b, c, i: real;
>begin
>for i:=1 to 3 do begin end;
>pole:array[1..3]of integer;
>
>3*read(pole[i]);
>If (pole[1]>pole[2])and(pole[1]>pole[3]) then
>begin
>c:=pole[1]; b:=pole[2]; a:=pole[3];
>end
>else
>If (pole[2]>pole[3])and(pole[2]>pole[1]) then
>begin c:=pole[2]; a:=pole[1]; b:=pole[3];
>end
>else
>begin c:=pole[3]; a:=pole[1]; b:=pole[2];
>end;
>end.
>
Vypadá to, že drobné náznaky stačit nebudou...
A když už jsem se rozepsal v mailu, tak hodím kopii i sem, snad se nikdo nebude zlobit.
Teorie, aneb co vlastně počítáme:
1) Ze tří stran jde sestrojit trojúhelník, pokud je součet délek libovolných dvou vždy větší než délka té třetí (nebo jinak: pokud je součet dvou kratších stran větší než ta nejdelší - to se líp programuje).
2) Trojúhelník je pravoúhlý, pokud platí a*a+b*b=c*c, kde c je nejdelší strana.
Jak na to:
1) Nechat si zadat tři čísla a zapamatovat si je.
2) Najít mezi nimi to největší.
3) Porovnat součet dvou menších s tím největším. Pokud je větší, trojúhelník jde sestrojit.
4) Sdělit výsledek uživateli.
5) Sečíst druhé mocniny dvou menších a výsledek porovnat s tou největší. Pokud se to rovná, trojúhelník je pravoúhlý.
6) Sdělit výsledek uživateli.
K tvému programu:
>Uses crt;
- Zbytečné, žádné funkce z této jednotky nebudeme potřebovat.
>var a, b, c, i: real;
>begin
- OK
>for i:=1 to 3 do begin end;
- Tohle je příkaz, který třikrát za sebou neudělá nic. Čili k ničemu. A navíc i je reálné číslo, které jako řídicí proměnná for-cyklu použít nejde.
>pole:array[1..3]of integer;
- No fuj, deklarace proměnné musí být před výkonnou částí programu (tj. před prvním begin)!!!
>3*read(pole[i]);
- Autor tímhle řádkem chtěl říct, že máš načíst tři čísla. V Pascalu to takhle nejde - * je na násobení, ne na opakování (na to je for).
>If (pole[1]>pole[2])and(pole[1]>pole[3]) then
>begin
>c:=pole[1]; b:=pole[2]; a:=pole[3];
>end
>else
>If (pole[2]>pole[3])and(pole[2]>pole[1]) then
>begin c:=pole[2]; a:=pole[1]; b:=pole[3];
>end
>else
>begin c:=pole[3]; a:=pole[1]; b:=pole[2];
>end;
- Řazení podle velikosti? Uděláme to jednodušeji.
>end.
- OK.
Takže jinak:
Proměnné a,b,c,i necháme.
Načítání:
readln(a); readln(b); atd.
Samozřejmě je dobré před každým readln ještě pomocí write nebo writeln uživateli říct, co má zadat.
Přeházíme čísla tak, aby největší z nich bylo v proměnné c:
if a>c then {prohoď c s a};
if b>c then {prohoď b s c};
To prohození uděláš pomocí pomocné proměnné (i) ve třech krocích: první číslo ulož do pomocné proměnné, druhé číslo ulož do prvního čísla a nakonec pomocnou proměnnou do druhého čísla. Implementaci nechám na tobě, jsou to tři jednoduché přiřazovací příkazy (:=). Nezapomeň je uzavřít mezi begin a end.
Teď tedy máme v c největší ze zadaných čísel, na pořadí dvou menších nám nezáleží.
Kontrola sestrojitelnosti trojúhelníka:
if a+b>c then {je sestrojitelný} else {není sestrojitelný};
Místo těch komentářů si doplň nějakou vhodnou hlášku pro uživatele (writeln('Ano') apod.).
Kontrola pravoúhlosti:
Tahle kontrola má smysl jenom pokud je trojúhelník sestrojitelný, takže ji umísti před else v minulém příkazu (opět budeš muset použít begin a end, aby mezi then a else šlo dát víc příkazů než jeden).
if a*a+b*b=c*c then {je pravoúhlý} else {není pravoúhlý};
Opět vypiš nějakou vhodnou hlášku.
A na závěr počkání na stisk Enteru, aby si uživatel stihl přečíst výsledky:
readln;
Taky je dobré předtím napsat "stiskni enter" nebo tak něco, aby bylo jasné, jak z toho ven.
Moje stránka.
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Seminární práce — založil marwe.k
Seminární práce Assembler — založil Martin
Seminární práce - prosím pomožte: — založil bunjee
Práce do školy — založil Malirka
Práce do školy — založil Black
Moderátoři diskuze