FAQ  Szukaj  Użytkownicy  Grupy  Statystyki  Rejestracja  Zaloguj


Poprzedni temat :: Następny temat
Zamknięty przez: marczak
2008-04-10, 18:27
Co zle zrobilem
Autor Wiadomość
norbi123 
Programista



Wiek: 17
Dołączył: 10 Mar 2008
Posty: 117
Skąd: Jarocin
Wysłany: 2008-03-17, 12:00   Co zle zrobilem

Napisalem program w c++ ktory ma wyliczac funkcje kwadratowa wydaje mi sie ze jest dobrze a jednak nie prosze o pomoc w znalezieniu bledu
Kod:

#include<iostream.h>
main()
{

      int a,b,c,x,wynik,delta,x1,x2;
         
      cout << "Podaj liczbe(a): ";
      cin >> a;
      cout << "\nPodaj druga liczbe(b): ";
      cin >> b; 
      cout << "\nPodaj trzecia liczbe(c): ";
      cin >> c;
      cout << "\nPodaj jaka liczbe podstawic zamiast x: ";
      cin >> x;
      wynik = a(x*x) + bx + c;
      delta = b*b - 4ac;
      x1 = (-b - delta) /2a;
      x2 = (-b + delta) /2a;
      cout << "\nWynik równania kwadratowego to: " << wynik;
      cout << "\nDelta wynosi: "<< delta;
      cout << "\nx1 = " << x1 << "\nx2 = " << x2;
      system("pause");
      }
 
 
     
marczak 
Wygadana bestia



Wiek: 19
Dołączył: 01 Mar 2008
Posty: 354
Skąd: z nienacka
Wysłany: 2008-03-17, 19:22   

poprawki

Kod:



#include<iostream>
using namespace std;
main()
{

      int a,b,c,x,wynik,delta,x1,x2;
         
      cout << "Podaj liczbe(a): ";
      cin >> a;
      cout << "\nPodaj druga liczbe(b): ";
      cin >> b; 
      cout << "\nPodaj trzecia liczbe(c): ";
      cin >> c;
      cout << "\nPodaj jaka liczbe podstawic zamiast x: ";
      cin >> x;
      wynik = a*(x*x) + b*x + c;
      delta = b*b - 4*a*c;
      x1 = (-b - delta) /2*a;
      x2 = (-b + delta) /2*a;
      cout << "\nWynik równania kwadratowego to: " << wynik;
      cout << "\nDelta wynosi: "<< delta;
      cout << "\nx1 = " << x1 << "\nx2 = " << x2;
      system("pause");
      }

_________________
Gość Przeczytaj regulamin zanim zaczniesz przygode z forum.
Przed napisaniem nowego tematu uzyj opcji szukaj
 
 
     
surex 
Wasz Pan i Władca :)



Dołączył: 10 Mar 2008
Posty: 131
Skąd: spytaj mamę
Wysłany: 2008-03-17, 19:25   

miałeś drobne przeoczenie, wszędzie gdzie było mnożenie nie wstawiłeś znaku mnożenia czyli "*".
Oto poprawione 4 linijki:
Kod:
wynik = a*(x*x) + b*x + c;
delta = b*b - 4*a*c;
x1 = (-b - delta) /2*a;
x2 = (-b + delta) /2*a;


@edit
kurde marczak...a podziesz ty!
_________________
Witaj Gość!
Jeśli masz problemy z programowaniem zapraszam do działu "Programowanie".
Na pewno postaram się pomóc.

 
 
     
marczak 
Wygadana bestia



Wiek: 19
Dołączył: 01 Mar 2008
Posty: 354
Skąd: z nienacka
Wysłany: 2008-03-17, 19:28   

nom mialem to samo napisac, jednak pomyslalem ze lepiej bylo by poprostu wstawic mu caly kod ktory bedzie dzialac.

btw. bylem pierwszy:D
_________________
Gość Przeczytaj regulamin zanim zaczniesz przygode z forum.
Przed napisaniem nowego tematu uzyj opcji szukaj
 
 
     
norbi123 
Programista



Wiek: 17
Dołączył: 10 Mar 2008
Posty: 117
Skąd: Jarocin
Wysłany: 2008-03-17, 20:38   

dzieki. myslalem ze kompilator sam bedzie to mnozyl a jednak nie:) a mam jeszcze jedno pytanie co zrobic zeby ze np jak mam "3x+2+x-5 = -4 + 5 -x + 4x" to zeby mi wyliczylo ze
x=-4
 
 
     
Paaavlo 
C/C++ Programmer



Wiek: 15
Dołączył: 08 Kwi 2008
Posty: 64
Skąd: Rzeszów
Wysłany: 2008-04-08, 17:49   

"Wyższa szkoła jazdy". To już nie takie proste.



// Gdyby tak nie było, autor nie zakładałby tematu... Proszę bez takich postów. / Swift

_________________
paaavl0.wordpress.com
 
 
     
Szalik 
the programista


Wiek: 15
Dołączył: 08 Kwi 2008
Posty: 2
Skąd: Oława < Wrocław
Wysłany: 2008-04-08, 18:53   

Jeżeli chcesz podstawić za X dowolną liczbę to robisz taką zmienną o podanej wartości lub po prostu wpisujesz ją z klawiatury.

Pozdrawiam,
 
 
     
Paaavlo 
C/C++ Programmer



Wiek: 15
Dołączył: 08 Kwi 2008
Posty: 64
Skąd: Rzeszów
Wysłany: 2008-04-08, 20:38   

Jeśli chodzi o zwykłe wstawienie zmiennej do wyrażania to chyba sobie poradzisz, bo post wyżej jest napisane co i jak. Myślałem, że chodziło ci o obliczenie równania.
_________________
paaavl0.wordpress.com
 
 
     
AraGorN 
.NET Lover


Wiek: 22
Dołączył: 08 Kwi 2008
Posty: 31
Wysłany: 2008-04-08, 20:40   

kilka porad dla piszacego
w szkole podstawowej, nie wiem w ktorej klasie, uczy sie dzieci podstawowych operacji arytmetycznych
w tym priorytetow operatorow, czyli mnozenie i dzielenie jest na takim samym poziomie jak dzielenie, dodawanie i odejmowanie maja rowniez taki sam ale mniejszy od / i *
w C++ sytuacja jest taka sama

poza tym przy pisaniu programu nalezy skorzystac w jakis zrodel wiedzy teoretycznej
np w tym wypadku: http://pl.wikipedia.org/w...anie_kwadratowe
jak widac nie zostalo to zrobione

dodam tylko ze przyda Ci sie jeszcze funkcja sqrt z biblioteki <cmath>

nie chodzi o to zeby podac gotowy kod bo to bez sesnu
najwiecej wiedzy mozna zdobyc piszac samemu program
takze do dziela i pisz jak jeszcze cos nie bedzie dzialac ;-)

PS. Zamiast #include<iostream.h> uzywaj #include<iostream> :-)
 
 
     
marczak 
Wygadana bestia



Wiek: 19
Dołączył: 01 Mar 2008
Posty: 354
Skąd: z nienacka
Wysłany: 2008-04-08, 22:03   

wiesz moze ja sie nie znam ale wg mnie to nie jest rownanie kwadratowe wiec sqrt nie bedzie tu potrzebne. Musisz napisac sobie jakas funckje ktora postara i sie obliczac rownania.
_________________
Gość Przeczytaj regulamin zanim zaczniesz przygode z forum.
Przed napisaniem nowego tematu uzyj opcji szukaj
 
 
     
AraGorN 
.NET Lover


Wiek: 22
Dołączył: 08 Kwi 2008
Posty: 31
Wysłany: 2008-04-08, 22:35   

marczak, bez urazy ale naprawde sie nie nasz ;-)
a dokladniej do chyba nie doczytales
chyba ze ten cytat mowi cos innego...
Cytat:
Wynik równania kwadratowego to:


sqrt bedzie potrzebne do obliczania miejsc zerowych
 
 
     
marczak 
Wygadana bestia



Wiek: 19
Dołączył: 01 Mar 2008
Posty: 354
Skąd: z nienacka
Wysłany: 2008-04-09, 10:26   

napisalem tak poniewaz odnioslem sie do tego:

norbi123 napisał/a:
a mam jeszcze jedno pytanie co zrobic zeby ze np jak mam "3x+2+x-5 = -4 + 5 -x + 4x" to zeby mi wyliczylo ze
x=-4


Jak widac jest to rownianie 1 stopnia, wiec sqrt bedzie zbedne.
Sqrt bedzie potrebne jedynie do funckji z 1programu w ktorym rzeczywiscie obliczy miejsca zerowe.

Wiec sie znam:D

btw. majac rozszerzona matematyke potrafie rozroznic rownanie stopnia 1 od kwadratowego :D
_________________
Gość Przeczytaj regulamin zanim zaczniesz przygode z forum.
Przed napisaniem nowego tematu uzyj opcji szukaj
 
 
     
AraGorN 
.NET Lover


Wiek: 22
Dołączył: 08 Kwi 2008
Posty: 31
Wysłany: 2008-04-09, 11:00   

no coz, ja mowilem o pierwszym programie
chyba tylko ja zauwazylem ze podane przez Ciebie i surexa rozwiazanie jest bledne ;)

nie ma nic do Twojej znajomosci matematyki
sam przezylem rozszerzona swego czasu i nie wspominam tego zbyt dobrze ;)
 
 
     
marczak 
Wygadana bestia



Wiek: 19
Dołączył: 01 Mar 2008
Posty: 354
Skąd: z nienacka
Wysłany: 2008-04-09, 11:24   

wiem ze rozwiazanie jest bledne, i nie jest to nasza wina lecze norbi123 ktory zle napisal program(program zle mu liczy miejsca zerowe) widocznie albo znalazl zly wzor albo zapomnial pierwiastkowac delty. My tylko poprawilismy program aby sie wykonal, bo jak zapewnie widziales w jego programie brakowalo operacji mnozenia.

wiec zamiast:

Kod:

x1 = (-b - delta) /2*a;
x2 = (-b + delta) /2*a;


powinno byc

Kod:
 
x1 = (-b - sqrt(delta)) /2*a;
x2 = (-b + sqrt(delta)) /2*a;
_________________
Gość Przeczytaj regulamin zanim zaczniesz przygode z forum.
Przed napisaniem nowego tematu uzyj opcji szukaj
 
 
     
Prezes123 


Dołączył: 08 Kwi 2008
Posty: 9
Wysłany: 2008-04-09, 16:44   

Widze ze spor trwa a ja tymczasem program napisalem program do liczenia tego typu rownan liniowych gdzie po jeden stronie i po drugiej macie jakies wyrazenia algebraiczne .. .;)
moze sie komus przyda :)
Kod:


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

using namespace std;

int main(int argc, char *argv[])
{
//=================Program do oblicznia rownan liniowych =================
int l=0;
int k=0;
int ll=0;
int kk=0;
double x=0;
double xx=0;
double y=0;
double yy=0;
double sumax=0;
double sumay=0;
double sumax2=0;
double sumay2=0;
//==============================Lewa strona ===================================

                                     cout<<"Podaj ile w twoim rownaniu po lewej stronie wystepuje niewiadoma X "<<endl;
                                     cin>>l;
                                     cout<<"Podaj ile pozostaly licz wystepuje oprocz niewiadomych w twojej lewej stronie rownania"<<endl;
                                     cin>>k;

//cout<< " Podaj wspolczynniki przy X-ach po lewej stronie twojego rownania " <<endl;
           for(int i = 0 ; i< l; i++)
           {
           cout<< " x =  " <<endl;
           cin>>x;
           sumax  +=  x;
           }

           for(int i = 0 ; i< k; i++)
           {
           cout<< " liczba = " <<endl;
           cin>>y;
           sumay += y;     
           }
//=======================Prawa strona ========================

                               cout<<"Podaj ile w twoim rownaniu po prawej stronie wystepuje niewiadoma X "<<endl;
                               cin>>ll;
                               cout<<"Podaj ile pozostaly licz wystepuje oprocz niewiadomych w twojej prawej stronie rownania"<<endl;
                               cin>>kk;


       
         for(int i = 0 ; i< ll; i++)
                 {
                 cout<< "  x =  " <<endl;
                 cin>>xx;
                 sumax2 += xx;
                 }

                 for(int i = 0 ; i< kk; i++)
                 {
                 cout<< " liczba = " <<endl;
                 cin>>yy;
                 sumay2 += yy;
                 }
//===============sumowanie stronami ====================

cout << "  X-ksy =  "<< sumax << "  ||   "  <<sumax2;
cout << "  Y-ki  =  "<< sumay << "  ||   " <<sumay2;
double sumaxx;
double sumayy;
           if ((sumax2 < 0) ) sumaxx = sumax + sumax2;
         
           if (sumax2>0) sumaxx= sumax-sumax2;
           
           if (sumay < 0) sumayy=sumay2 + (sumay * -1);
         
           if (sumay > 0 ) sumayy=  sumay2 - sumay;
         
cout<<"Po przeksztalceniach twoje rwonanie ma postac : "<<sumaxx<<"x + "<<sumayy<<endl;
//======================Wyznaczenie wartosci niewiadomej X =========================

double wynik;
       wynik = sumayy/sumaxx;
       
cout<<" X = "<<wynik<<endl;
cout<<"\n";
    system("PAUSE");
    return EXIT_SUCCESS;
}

 
 
     
Wyświetl posty z ostatnich:   
Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group
Stronę monitoruje stat24 website monitoring service



Wymiana Linkiem
Forum Komputerowe | PcPlanet |Forum eKing.pl | Warez | www.warezik.eu | Forum GSM | Serwis SonyEricsson | Robert Kubica | Darmowe dzwonki i motywy | Sony Ericsson Forum | gsmfon.org - GSM | Aukcje EMAR
Strona wygenerowana w 0,17 sekundy. Zapytań do SQL: 13