Výpočet kvadr. rovnice se zápisem výsledku do souboru – Pascal – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Výpočet kvadr. rovnice se zápisem výsledku do souboru – Pascal – Fórum – Programujte.comVýpočet kvadr. rovnice se zápisem výsledku do souboru – Pascal – Fórum – Programujte.com

 

Kranich
~ Anonymní uživatel
3 příspěvky
7. 5. 2008   #1
-
0
-

Dobrý den, ve škole jsem dostal zadanou seminární práci a již delší dobu si s ní lámu hlavu, mohl by mi někdo z vás poradit jak s tím (Pascal moc neobládám). Za každou pomoc dekuji.

Zadání:
Výpočet kořenů kvadratické rovnice II. V hlavním programu bude vstup dat z klávesnice, kontrola vstupních dat a výpis řešení. Výpočet řešení (dva reálné, jeden dvojnásobný a dva komplexně sdružené) bude realizován formou samostatné funkce umístěné v jednom samostatně překládaném modulu (unitě). Pro předávání výsledků navrhněte vlastní datovou strukturu. Program bude umožňovat opakované zadávání parametrů kvadratické rovnice. Zadané hodnoty a řešení budou přidávány do textového souboru s názvem "kvadrov.log".

Nahlásit jako SPAM
IP: 85.207.114.–
Kranich
~ Anonymní uživatel
3 příspěvky
7. 5. 2008   #2
-
0
-

Zatím mam vypracovaný todle tak jestli by jste se na to někdo moh kouknout a případně zkontrolovat a doplnit ten výpis do souboru...

Nahlásit jako SPAM
IP: 85.207.114.–
Mircosoft+1
Věrný člen
7. 5. 2008   #3
-
0
-

Chceš to dělat v Pascalu nebo v Delphi? Jestli v Delphi, tak na to existuje samostatné fórum o pár řádků výš.
Navíc v Delphi nejde jen tak použít vstup z klávesnice (procedura Readln), ale musí se komplikovaně přes textové pole (Edit) a následně ruční převod na číslo (Strtofloat, Strtoreal nebo tak něco, přesné názvy si nepamatuju). Podobně nefunguje výpis na obrazovku přes Writeln, musíš to převést na řetězec a ten vložit do nějakého objektu v okně (další textové pole apod.). A výpočet musíš volat v nějaké události, třeba po kliku na tlačítko, a ne jednoduše "start - načti hodnoty - spočítej rovnici - vypiš výsledky - konec".

Výpis do souboru by měl být v obou případech podobný. Budeš potřebovat proměnnou typu Text (tj. textový soubor, v Delphi se jmenuje Textfile) a procedury Assign (přiřadí proměnnou k souboru s daným jménem), Rewrite (otevře soubor pro zápis), Write (něco do souboru zapíše), Writeln (totéž co Write, ale ještě potom zapíše konec řádku) a Close (zavře soubor).
Do textového souboru můžeš zapisovat řetězce a čísla podobně jako když je vypisuješ na obrazovku.
Více o práci se soubory třeba tady: http://mircosoft.ic.cz/texty/ZAKLADY.TXT (na konci kapitoly o datových typech).

Ohledně kódu:

type koreny=array[1..6] of integer;
- co má tohle být? Potřebuješ vrátit dvě komplexní čísla (reálné číslo je obecně komplexní číslo s nulovou imaginární částí), čili 4 reálná. Takže array[1..4] of real. Ale pole jako návratovou hodnotu funkce podporuje až Freepascal, takže jestli budeš dělat v Turbu, tak to budeš muset vyřešit čtyřmi parametry volanými odkazem (se slovem Var): procedure vypocet_korenu(ua,ub,uc:real; var re1,im1,re2,im2:real).


Potom ti ještě chybí ošetřit situaci, kdy rovnice vůbec nemá řešení (třeba 0*x^2+0*x+5=0, i to může zlomyslný uživatel zadat).

Jinak je algoritmus v pořádku.

Nahlásit jako SPAM
IP: 147.32.160.–
Chceš-li lepší odpověď, polož lepší otázku.
Moje stránka.
Anonymní uživatel
~ Anonymní uživatel
0 příspěvků
7. 5. 2008   #4
-
0
-

Dělaný to má bejt jako Console aplication v Delphy ( takže jestli jsem mimo správný tema tak se omlouvám ) zatím jsme s tím s kámošem pokročili. Posílám to jako přílohu... Kdyžtak jestli se na to někdo můžete mrknout a zkontrolovaz jestli tam jsou ošetřený všechny možnosti.... Předem díky

Nahlásit jako SPAM
IP: 85.207.114.–
Laaca0
Stálý člen
8. 5. 2008   #5
-
0
-

Ne, v pohodě, jseš ve správném fóru. Konzolové aplikace v Delphi se od klasického pascalu liší jenom málo, tudíž writeln a readln normálně funguje.
(elegantnější se mi ale zdá použít Freepascal, který je s Delphi kompatibilní a jeho standardní IDE vypadá jako klasický pascal, to je ale jedno)

Struktura record je podle mě nevhodně navržená - místo pole by se sem mnohem lépe hodil record. Něco jako

type koreny = record
pocet_reseni:byte;
r1,r2,r3,r4:real;
end;

Taky bys měl uživateli dovolit, aby mohl zadat koeficient A jako 0, normálně rovnici vypočítat a nehudrovat, že nejde o kvadratickou rovnici.
Jo, a v zadání stojí, že hodnoty a výsledky budou přidávány (nikoliv předávány) do souboru kvadrov.log
Tudíš musíš připisovat do existujícího souboru, jenže ty pokaždé vytváříš nový.

Nahlásit jako SPAM
IP: 81.0.253.–
DOS-u-akbar
Kranich
~ Anonymní uživatel
3 příspěvky
8. 5. 2008   #6
-
0
-

To Laaca : Díky za odpověď, program ve kterym se to má tvožit bohužel neovlivním, ten si vymyslel učitel a trvá na něm, co se týká tý nevhodný struktury tak jsem vycházel z prací, které jsme za celý rok dělali a tam se bohužel víc funkcí.... neoblevilo takže dělám s tím co bych ml znát.... No a co se týká posledních dvouch připomínek tak ty jsou zcela trefný, ale bohužel Pascalu nějak nevládnu, takže nevím jak na to :-( Nemohli by jste se na to někdo mrknout a přepsat to? Díky moc

Nahlásit jako SPAM
IP: 85.207.114.–
Mircosoft+1
Věrný člen
10. 5. 2008   #7
-
0
-

Rovnice s koeficientem a=0 je normální lineární rovnice s jedním řešením, nevidím v tom nic těžkého: bx+c=0 -> x=-c/b.

Pro připisování na konec stačí textový soubor otevřít procedurou Append (místo Rewrite).

Nahlásit jako SPAM
IP: 85.132.158.–
Chceš-li lepší odpověď, polož lepší otázku.
Moje stránka.
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 5 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý