logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak napisać program w C++ obliczający funkcję kwadratową?

haki731 13 Lis 2007 01:24 13753 13
REKLAMA
  • #1 4475407
    haki731
    Poziom 10  
    Posty: 11
    Witam ,jestem nowy na forum
    spytałem sie pana od informatyki co musze zrobić na 6 z informatyki
    mowi ze mam napisac program w c++ z funkcja kwadratową
    tylko jest w tym problem ze nie wiem jak sie za to zabrac i w czym...

    pomozecie? w jakims stopniu chociaz?
  • REKLAMA
  • Pomocny post
    #2 4475442
    drak
    Poziom 19  
    Posty: 403
    Pomógł: 12
    Ocena: 12
    Popacz tutaj:
    http://peb.pl/programowanie/52-c-nauka-c-kr-tki-kurs.html

    Tu masz kod programu co ci narysuje funkcje kwadatową:
    
    #include <iostream.h>
    main()
    {
    int x, y;
    
    for ( x = -10; x < 10; x++ )
    {
    y=x*x*40;   
    putpixel (x,y,red);
    }
    
    }
    


    Skompilujesz to sobie w dev cpp
    http://www.bloodshed.net/dev/devcpp.html
  • #3 4476629
    haki731
    Poziom 10  
    Posty: 11
    dzięki wielkie ! :)poczytam później
  • #4 4476694
    damian1902
    Poziom 10  
    Posty: 5
    Ja to skopiowałem i nie chce się skompilowac.
    Czemu??
  • REKLAMA
  • #5 4476704
    tzok
    VIP Zasłużony dla elektroda
    Posty: 38797
    Pomógł: 3174
    Ocena: 6529
    Fuuu... jaki nieładny main, powinien zwracać int i pobierać tablicę parametrów. Funkcja main, kiedy kończy się bez błędu powinna zwracać wartość 0, wartość ta jest przekazywana do procesu który wywołał nasz proces, jeśli był to program wywołany z wiersza poleceń to może być odczytana przez zmienną ERRORLEVEL. Zero oznacza poprawne zakończenie pracy programu, każda inna wartość - błąd.

    int main(int argc, char *argv[]) {
       return 0;
    }


    Funkcji putpixel to też raczej w stdlib ani w iostream nie ma, podobnie jak stałej red...
  • #6 4476745
    Konto nie istnieje
    Konto nie istnieje  
  • REKLAMA
  • #7 4477623
    haki731
    Poziom 10  
    Posty: 11
    to w jaki sposob powinien być wpisany ten kod do tego dev cpp potem wpisuje go tam zapisuje jako plik.cpp otwieram taki porogram jak TC wpisuje tam biore save i mam .exe plik ?

    Proszę poprawić post i używać znaków przestankowych!
    - dbaj o styl swojej wypowiedzi
    - nie popełniaj błędów
    - nie zaniżaj poziomu elektroda.pl

    krzychoocpp
  • Pomocny post
    #8 4477638
    smerfikk
    Poziom 12  
    Posty: 107
    Pomógł: 2
    Dev cpp też zapisuje do exe.
  • #9 4477784
    Stepel
    Poziom 20  
    Posty: 490
    Pomógł: 26
    Ocena: 28
    Myślisz, że zasługujesz na tą 6? :) . Która to jest klasa? Wydaje mi się, że chodzi o program obliczający miejsca zerowe funkcji kwadratowej a nie jej rysowanie. Ale mogę sie mylić.

    Pozdrawiam
  • REKLAMA
  • #10 4477798
    tzok
    VIP Zasłużony dla elektroda
    Posty: 38797
    Pomógł: 3174
    Ocena: 6529
    Najpierw trzeba utworzyć nowy projekt, napisać program, zapisać go (plik .cpp) i skompilować - wynikiem kompilacji jest plik wykonywalny (.exe).
  • #11 4478758
    drak
    Poziom 19  
    Posty: 403
    Pomógł: 12
    Ocena: 12
    Rysowanie:
    
    #include <iostream>
    #include <graphics.h> 
    int main(int argc, char *argv[])
    { 
    int x, y; 
    for ( x = -10; x < 10; x++ ) 
    { 
    y=x*x*40;    
    putpixel (x,y,5); 
    } 
    }
    

    Obiczanie wartości:
    
    #include <iostream>
    int main(int argc, char* argv[])
    {
    int n;
    cout<<"podaj liczbe "<<endl;
    cin>>n;
    cout<<n*n<<endl;
    return 0;
    }
    


    Teraz pasuje. Z tego co widze to kolejna dyskusja typu signed unsigned. Nie mam kompilatora skleiłem pare programów z google wraz z błędami i się czepiacie zamiast poprawić. Kolega by zaczą sam zobaczył by, że nie działa i może by się czegoś nauczył. Jak zada się jakieś ambitniejsze pytanie to odsyłają wszystcy fachowcy piszą że to trudno będzie zrobić itd..

    W dodatku nie rozumiem takiego problemu #include <iostream> czy #include <iostream.h> i tak będzie ten sam efekt i komputer się nie zawiesi, nie będzie działać wolniej szybciej poprostu to samo.

    Jak chodzi o te zapiswanie do exe to się nazywa kompilacja a w menu kompiluj.

    A tu miejsca zerowe zgodnie ze standartem
    
    #include <stdio.h>
    #include <math.h>
     
    main()
    {
      double  a, b, c,
              delta;
     
      printf(" Podaj wspolczynniki a, b, c < ");
      scanf("%lf %lf %lf", &a, &b, &c);
     
      if ( a == 0 )
        if ( b == 0 )
          if ( c == 0)
            printf(" Rownanie nieoznaczone.\n ");
          else
            printf(" Rownanie nie ma rozwiazania.\n");
        else{
          printf(" Rownanie ma jedno");
          printf(" rozwiazanie: %.2f\n ", -c/b);
        }
      else{
        delta = b*b - 4*a*c;
        if ( delta < 0 )
          printf(" Rownanie nie ma rozwiazania.\n ");
        else{
          printf(" Rownanie ma dwa rozwiazania:\n ");
          printf("x1 = %.2f, x2 = %.2f",
                 (-b-sqrt(delta))/(2*a),(-b+sqrt(delta))/(2*a));
        }
      }
     
      return 0;
    


    Teraz będzie wielki waszym zdaniem problem dlaczego nie cin i cout będziecie tworzyć historie jakie to złe te printf czy scanf.
  • #12 4478793
    tzok
    VIP Zasłużony dla elektroda
    Posty: 38797
    Pomógł: 3174
    Ocena: 6529
    drak napisał:
    Teraz pasuje. Z tego co widze to kolejna dyskusja typu signed unsigned. Nie mam kompilatora skleiłem pare programów z google wraz z błędami i się czepiacie zamiast poprawić. Kolega by zaczą sam zobaczył by, że nie działa i może by się czegoś nauczył. Jak zada się jakieś ambitniejsze pytanie to odsyłają wszystcy fachowcy piszą że to trudno będzie zrobić itd..
    Nie, nie będzie...
    drak napisał:
    W dodatku nie rozumiem takiego problemu #include <iostream> czy #include <iostream.h> i tak będzie ten sam efekt i komputer się nie zawiesi, nie będzie działać wolniej szybciej poprostu to samo.
    Zależy w jakim kompilatorze...
  • #13 4478798
    drak
    Poziom 19  
    Posty: 403
    Pomógł: 12
    Ocena: 12
    Chyba tylko nowe wersje msvc mają z tym problem.
  • Pomocny post
    #14 4479230
    tzok
    VIP Zasłużony dla elektroda
    Posty: 38797
    Pomógł: 3174
    Ocena: 6529
    Sam poleciłeś kompilator DevCpp... jeśli już piszesz za kogoś program i podajesz mu w jakim środowisku ma go kompilować - sprawdź czy się w nim go da skompilować.

    W Dev (GCC) nie ma graphics.h, możesz to sobie rysować przez GlUTa albo Allegro.

    Z błędów mniejszych - nie określiłeś też przestrzeni nazw, obecna wersja GCC, która jest w DevCpp kompiluje twój ostatni przykład, mimo braku określenia namespace, starsza wersja zgłosi błąd).

    Powinno to wyglądać tak:
    #include <cstdlib>
    #include <stdio.h>
    #include <math.h>
    
    using namespace std;
     
    int main(int argc, char *argv[])
    {
          double  a, b, c,
                  delta;
     
          printf(" Podaj wspolczynniki a b c > ");
          scanf("%lf %lf %lf", &a, &b, &c);
     
          if ( a == 0 )
            if ( b == 0 )
              if ( c == 0)
                printf(" Rownanie nieoznaczone.\n ");
              else
                printf(" Rownanie nie ma rozwiazania.\n");
            else{
              printf(" Rownanie ma jedno");
              printf(" rozwiazanie: %.2f\n ", -c/b);
            }
          else{
            delta = b*b - 4*a*c;
            if ( delta < 0 )
              printf(" Rownanie nie ma rozwiazania.\n ");
            else{
              printf(" Rownanie ma dwa rozwiazania:\n ");
              printf("x1 = %.2f, x2 = %.2f",(-b-sqrt(delta))/(2*a),(-b+sqrt(delta))/(2*a));
            }
          }
          system("PAUSE");
          return EXIT_SUCCESS; 
    }

    Do printf się nie przyczepię, bo sam je stosuję ale faktycznie to jest podejście "nieobiektowe", tyle że cały program jest napisany liniowo (imperatywnie, czy jakkolwiek to nazwać), więc to nie problem.

Podsumowanie tematu

✨ Dyskusja dotyczyła napisania programu w C++ obliczającego funkcję kwadratową. Użytkownik był nowicjuszem i nie wiedział, jak zacząć ani w jakim środowisku pisać program. Zaproponowano użycie środowiska Dev-C++ (Bloodshed Dev-C++), które kompiluje pliki .cpp do .exe. Podano przykładowy kod rysujący funkcję kwadratową z użyciem funkcji putpixel, jednak zwrócono uwagę, że graphics.h nie jest dostępny w Dev-C++, a funkcja putpixel i stała red nie są standardowe. Zasugerowano alternatywy jak GLUT lub Allegro do grafiki. Omówiono poprawną składnię funkcji main (int main(int argc, char *argv[])) oraz konieczność zwracania wartości 0. Podano prosty przykład programu obliczającego wartość funkcji kwadratowej oraz bardziej rozbudowany kod do obliczania miejsc zerowych równania kwadratowego z użyciem standardowych funkcji C (printf, scanf). Poruszono kwestie różnic między #include a #include w zależności od kompilatora. Wskazano, że do rysowania funkcji kwadratowej w Dev-C++ potrzebne są biblioteki graficzne spoza standardowej biblioteki C++. Podsumowując, aby napisać program obliczający funkcję kwadratową, należy utworzyć projekt w Dev-C++, napisać kod w pliku .cpp, skompilować i uruchomić plik .exe, a do grafiki użyć odpowiednich bibliotek zewnętrznych.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA