Potřebuji urychleně radu jak udělat program v C++ – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Potřebuji urychleně radu jak udělat program v C++ – C / C++ – Fórum – Programujte.comPotřebuji urychleně radu jak udělat program v C++ – C / C++ – Fórum – Programujte.com

 

19. 6. 2012   #1
-
0
-

dostala jsem za úkol kvadratické rovnice v C++, ale envíím si rady...kdo by mi mohl poradit??Můj přesný ukol zní takto : Kvadratické rovnice)zadávají se kořeny a do souboru se tisknout příslušné rovnice a naopak; naprogramovány jsou obě možnosti, program se jednou na začátku zeptá , kterou z možností chceme zvolit; lze zadávat kořeny celočíselné, nebo jeden ve tvarz zlomku - na formát se opět program zeptá jednou na začátku).Děkuji moc za odpověĎ

Nahlásit jako SPAM
IP: 88.101.116.–
JoDiK
~ Anonymní uživatel
987 příspěvků
19. 6. 2012   #2
-
0
-

#1 blechacek31
"jak udělat program v C++"

1. přečíst si a pochopit zadání

2. pokud nejsou v hlavě, vyhledat potřebné vzorečky a informace k řešenému problému

3. Navrhnout postup řešení (algoritmus) a ten si třeba nakreslit pomocí vývojového diagramu

4. zapsat algoritmus pomocí příkazů programovacího jazyka - například C++

5. odladit program, nebo-li odhalit a opravit případné chyby

Nahlásit jako SPAM
IP: 88.103.233.–
19. 6. 2012   #3
-
0
-

#2 JoDiK
To je právě to co nevíím, nechápu co po mě ani chce..hraji si stím celkem dlouho, ale nepochopila jsem z toho vůbec nic. ani když mi to všechno vysvětlil...Neporadil by jsi mi??Moc bych ti byla vděčná

Nahlásit jako SPAM
IP: 88.101.116.–
TheOndrap+2
Super člen
19. 6. 2012   #4
-
0
-

Ok, zkusíme pomoc s tou dekompozicí. Já jsem to pochopil následovně:

Po spuštění, jestli to má bejt teda v konzoli:

1) Chcete zadávat celou rovnici (a), nebo kořeny (b)

2) Chcete zadávat čísla celočíselně?

(3a) Zadejte kvadratický člen: --pokud chce ve tvaru zlomku, bude následovat přečtení čitatele a jmenovatele-- znač A

(4a) Zadejte lineární člen : -- to samé -- znač B

(5a) Zadejte absolutní člen: ---- znač C

(6b) udělej z toho float čísla (A_cit/A_jm), pokud to byly zlomky !!

(7a) Nyní spočtu diskriminant podle D=b^2 - 4(a*c) .. když D<0 => je záporný, rovnice nemá v R řešení, pokud D == 0 existuje jenom jedno řešení a tedy x1 == x2

(8a) výpočtem x1,2 = (-b+-sqrt(D))/(2a) získáš 2 kořeny -> x1 = -b+sqrt(..) a x2 = -b-sqrt(..) ..

--------

(3b) "Zadejte kořen x1:" -- pode toho jestli chce zadávat zlomky, vyzve k zadání čitatele/jmenovate - znač x1_cit/x1_jm

(4b) "Zadejte kořen x2:" -- pode toho jestli chce zadávat zlomky, vyzve k zadání čitatele/jmenovate - znač x2_cit/x2_jm

(5b) udělej z toho float čísla (x1_cit/x1_jm), pokud to byly zlomky !!

(6b) podle vzorce (x-x1)*(x-x2) vypočítáš hodnoty lineárního a absolutního členu ->

       lineární: x1+x2, absolutní x1*x2

4) výsledky vytiskneš do souboru. Výsledky jsou v (a) - kořeny rovnice x1,x2. V (b) je to celá kvadratická rovnice.

Logicky teda když nejdřív zvolíš možnost (a) s rovnicí x^2+2x+3 měly by ti vyjít výsledky x1=2, x2=1. když tyhle data podstrčíš možnosti (b), musí ti vyjít rovnice x^2+2x+3.

Je možný že to mám moc zbytečně složitý, nebo že sem na něco zapomněl, ale snažil jsem se to popsat tak aby to bylo srozumitelný. Musíš si uvědomit že správná dekompozice problému je to, o čem je programování :) Držím palec

Nahlásit jako SPAM
IP: 88.102.250.–
ZČU v Plzni je mnohem víc, než jenom právnická fakulta !!
Fakulta aplikovaných věd www.fav.zcu.cz
"Když nedokážete říci věci jednoduše, pak jim dostatečně nerozumíte"
cibule
~ Anonymní uživatel
100 příspěvků
19. 6. 2012   #5
-
0
-

#4 TheOndrap
Je tam překlep

D = b^2 - 4ac

Nahlásit jako SPAM
IP: 85.70.207.–
TheOndrap+2
Super člen
19. 6. 2012   #6
-
0
-

#5 cibule
děkuju, máš pravdu. Opraveno

Nahlásit jako SPAM
IP: 88.102.250.–
ZČU v Plzni je mnohem víc, než jenom právnická fakulta !!
Fakulta aplikovaných věd www.fav.zcu.cz
"Když nedokážete říci věci jednoduše, pak jim dostatečně nerozumíte"
20. 6. 2012   #7
-
0
-

no a v tom programu by to bylo konkrétně jak??celý napsaný??

Nahlásit jako SPAM
IP: 88.101.116.–
20. 6. 2012   #8
-
0
-

stímto programem dělám poprvé a moc se v něm neorientuju :(

Nahlásit jako SPAM
IP: 88.101.116.–
TheOndrap+2
Super člen
20. 6. 2012   #9
-
0
-

promin, v C++ nedělám .. ale to by neměl být zase takový problém, pokud jsi měla alespon pár hodin programování v tom. Myslím že jsem to napsal poměrně dost podrobně. Upozornuju že nejsem C++, ale něco si snad ještě pamatuju.

#include <cstdlib>
#include <iostream>
#include <math.h>


using namespace std;


//interakce s uzivatelem, jestli chce cisla zadat ve zlomkach
int ve_zlomkovem_tvaru()
{
int volba;
cout << "(1) Chci zadat koef. ve zlomkovem tvaru" << endl;
cout << "(2) Chci zadat celoèíselné koeficienty" << endl;
cout << " Volba: ";
cin >> volba;
return volba;
}

int main(int argc, char *argv[])
{
int volba, zlomek, citatel, jmenovatel;
float kvadr, lin, abs;
cout << "Program pro vypocet kvadraticke rovnice:" << endl;
cout << "(1) Zadani rovnice" << endl;
cout << "(2) Zadani korenu" << endl;
cout << " Volba: ";
cin >> volba;
if (volba == 1){
  zlomek = ve_zlomkovem_tvaru();
  cout << "Rovnice ve tvaru ax^2 + bx + c" << endl;
  if (zlomek == 1){
   cout << "Kvadraticky clen(a) - citatel: ";
   cin >> citatel;
   cout << "Kvadraticky clen(a) - jmenovatel: ";
   cin >> jmenovatel;
   kvadr = citatel / jmenovatel;
   cout << "Linearni clen(b) - citatel: ";
   cin >> citatel;
   cout << "Linearni clen(b) - jmenovatel: ";
   cin >> jmenovatel;
   lin = citatel / jmenovatel;
   cout << "Absolutni clen(c) - citatel: ";
   cin >> citatel;
   cout << "Absolutni clen(c) - jmenovatel: ";
   cin >> jmenovatel;
            abs = citatel / jmenovatel;
  
  }
  if (zlomek == 2){
   cout << "Kvadraticky clen(a): ";
   cin >> kvadr;
   cout << "Linearni clen(b): ";
   cin >> lin;
   cout << "Absolutni clen(c): ";
   cin >> abs;
  }
  int diskriminant = lin*lin - 4*(abs*kvadr);
  int x1,x2;
  if (diskriminant > 0){
   x1 = (-lin+sqrt(diskriminant))/(2*kvadr);
   x2 = (-lin-sqrt(diskriminant))/(2*kvadr);
   cout << "koreny jsou x1 = " << x1 << ", x2 = " << x2;
   system("PAUSE");
  }
  if (diskriminant == 0){
   int x1 = (-lin+sqrt(diskriminant))/(2*kvadr);
   cout << "Jeden dvojnasobny koren je  x1,2 = " << x1;
   system("PAUSE");
  }
  if (diskriminant < 0){
   cout << "Rovnice nema v R reseni" << endl;
   system("PAUSE");
  }
  else {
             cout << "Nezadali jste cislo 1,2. Program bude ukoncen" << endl;
             system("PAUSE");
             }
 
}
if (volba == 2){
  zlomek = ve_zlomkovem_tvaru();
  float x1,x2;
  if (zlomek == 1){
   cout << "Prvni koren(x1) - citatel: ";
   cin >> citatel;
   cout << "Prvni koren(x1) - jmenovatel: ";
   cin >> jmenovatel;
   x1 = citatel / jmenovatel;
   cout << "Druhy koren(x2) - citatel: ";
   cin >> citatel;
   cout << "Druhy koren(x2) - jmenovatel: ";
   cin >> jmenovatel;
   x2 = citatel / jmenovatel;
  }   
  if (zlomek == 2){
   cout << "Prvni koren(x1): ";
   cin >> x1;
   cout << "Druhy koren(x2): ";
   cin >> x2;
  }
  lin = x1+x2;
  abs = x1*x2;
  cout << "Kvadraticka rovnice x^2 + " << lin << "x + " << abs << endl;
  system("PAUSE");
}
else cout << "Nezadali jste cislo 1,2. Program bude ukoncen" << endl;
}

Zapisování do souboru si budeš muset vyřešit sama. Tohle sem sesmolil tedko, nemám momentálně nainstalovaný C++ kompilátor, takže ti to bohužel nepovím, jestli to běží, ale mělo by. Není to komentovaný, neb sou to samý výpisy  a zadávání z klávesnice .. kdybys něco nevěděla tak napiš

Nahlásit jako SPAM
IP: 195.113.139.–
ZČU v Plzni je mnohem víc, než jenom právnická fakulta !!
Fakulta aplikovaných věd www.fav.zcu.cz
"Když nedokážete říci věci jednoduše, pak jim dostatečně nerozumíte"
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, 20 hostů

Podobná vlákna

Jak udělat tento program? — založil Aleš

Potřebuji radu — založil Johnyyy

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ý