• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Wartosci f.kwadratowej - wyznaczanie

Object Storage Arubacloud
0 głosów
117 wizyt
pytanie zadane 29 czerwca 2020 w C i C++ przez Kacperek_code Obywatel (1,690 p.)
edycja 29 czerwca 2020 przez Kacperek_code

Cześć, miałem napisać taki program, który będzie wyznaczać wartości funkcji kwadratowej dla określonego przedziału dziedziny. Napisałem taki program i chciałbym was prosić o jego ocenę. Ponadto zadaje może głupie pytanie, ale ważne - czy dobrze zrozumiałem polecenie zadania pisząc taki program? Ponadto chciałbym, abyście powiedzieli mi czy dobrze zrobiłem schemat blokowy do tego samego polecenia. Wielkie dzięki!

#include <iostream>
#include <windows.h>

HANDLE  hConsole = GetStdHandle(STD_OUTPUT_HANDLE);

double wartosci(double a, double b, double c, int x1, int x2)
{
    double wzor;

    for(int i = x1; i <= x2; i++)
    {
        wzor = (a*i*i)+(b*i)+c;
        std::cout << "f" << "(" << i << ") = " << wzor << "\n";
    }
    return wzor;
}

int main()
{
    double a, b, c;
    int x1,x2;

    std::cout << "Podaj a: ";

    while(!(std::cin >> a ))
    {
        std::cin.clear();
        std::cin.ignore(1000, '\n');
        std::cout << "Podano inna wartosc niz liczba ! Prosze podawac liczby !\n";
        std::cout << "Podaj a: ";
    }

    if(a == 0)
    {
        SetConsoleTextAttribute(hConsole, FOREGROUND_RED);
        std::cout << "Rozpatrywana funkcja nie jest funkcja kwadratowa. Jest to funkcja liniowa.";
        std::cout << "\n";
        SetConsoleTextAttribute(hConsole, FOREGROUND_INTENSITY);
        std::cin.ignore(1000, '\n');
        std::cin.get();
        return 0;
    }

    std::cout << "Podaj b: ";

    while(!(std::cin >> b ))
    {
        std::cin.clear();
        std::cin.ignore(1000, '\n');
        std::cout << "Podano inna wartosc niz liczba ! Prosze podawac liczby !\n";
        std::cout << "Podaj b: ";
    }

    std::cout << "Podaj c: ";

    while(!(std::cin >> c ))
    {
        std::cin.clear();
        std::cin.ignore(1000, '\n');
        std::cout << "Podano inna wartosc niz liczba ! Prosze podawac liczby !\n";
        std::cout << "Podaj c: ";
    }

    std::cout << "Podaj przedzial: ";

    std::cout << "Podaj x1: ";

    while (!(std::cin >> x1))
    {
        std::cin.clear();
        std::cin.ignore(1000, '\n');
        std::cout << "Podano inna wartosc niz liczba ! Prosze podawac liczby ! \n";
        std::cout << "Podaj przedzial (x1): ";
    }

    std::cout << "Podaj x2: ";

    while (!(std::cin >> x2))
    {
        std::cin.clear();
        std::cin.ignore(1000, '\n');
        std::cout << "Podano inna wartosc niz liczba ! Prosze podawac liczby ! \n";
        std::cout << "Podaj przedzial (x2): ";
    }
    std::cout << "\n";
    std::cout << "Wartosci funkcji wynosza kolejno: \n";
    wartosci(a,b,c,x1,x2);

    std::cin.ignore();
    std::cin.get();
    return 0;
}

1 odpowiedź

0 głosów
odpowiedź 29 czerwca 2020 przez TOM_CPP Pasjonat (22,640 p.)

W funkcji wartosci definiujesz zmienną wzor jako liczbę typu int, zamiast double. Stąd też każda obliczona wartość jest zaokrąglana do wartości całkowitej.

czy dobrze zrozumiałem polecenie zadania pisząc taki program?

Nie jest możliwe wypisanie wszystkich wartości funkcji kwadratowej dla danej niepustej dziedziny, gdyż jest ich nieskończenie wiele. To co robisz to wypisujesz wszystkie wartości dla całkowitych argumentów funkcji, dodatkowo zakładając, że początek i koniec dziedziny jest także liczbą całkowitą.

komentarz 29 czerwca 2020 przez Kacperek_code Obywatel (1,690 p.)
Zmienną już poprawiłem. Zdaję sobie z tego sprawę, że nie jest to możliwe. Natomiast jakoś ten program wykonać musiałem, a że jestem laikiem to zapytałem czy zrobiłem to co mówiło polecenie zadania. Czy mógłbyś rzucić okiem na schemat blokowy? Wielkie dzięki.

Podobne pytania

0 głosów
0 odpowiedzi 101 wizyt
0 głosów
0 odpowiedzi 98 wizyt

92,568 zapytań

141,422 odpowiedzi

319,641 komentarzy

61,957 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...