Pytanie na temat funkcji

0

Witam, mam pytanie dotyczące tego kodu: https://ideone.com/FgNEAg.
A mianowicie skąd funkcja wyswietl_dane wie jaką wartość ma amount_of_elements i wie co wyswietlic? Z góry dzięki!!!

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

void czytaj_dane();
void przetworz_dane();
void wyswietl_dane();

float a,b,c,x1,x2,x0;
char amount_of_elements;

int main()
{
    std::cout<<std::fixed<<std::setprecision(2);
    czytaj_dane();
    przetworz_dane();
    wyswietl_dane();

    return 0;
}

void czytaj_dane()
    {
        std::cout<<"Podaj dane rownania\n";
        std::cout<<"Podaj a: ";
        std::cin>>a;
        if(a==0)
        {
            std::cout<<"Niedozwolona wartosc!!! Nacisnij Enter";
            getchar();
            exit(1);
        }else
        {
        std::cout<<"b: ";
        std::cin>>b;
        std::cout<<"i c: ";
        std::cin>>c;
        }
    }

void przetworz_dane()
{
        float delta=b*b-4*a*c;

        if(delta<0) amount_of_elements=0;
        if(delta==0) amount_of_elements=1;
        if(delta>0) amount_of_elements=2;

        switch (amount_of_elements)
        {

            case 1:
            x0=-b/2*a;          
            break;

            case 2: {

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

        }break;
        }   
}
void wyswietl_dane()
{
    switch(amount_of_elements)
    {
    case 0:
    std::cout<<"Rownanie nie posiada pierwiastkow";
    break;
    case 1: 

    std::cout<<"Rownanie ma jeden pierwiastek rowny: "<<x0;
    break;

    case 2: {
    std::cout<<"Rownanie ma dwa pierwiastki\n";
    std::cout<<"x1: "<<x1;
    std::cout<<"\ni x2: "<<x2;

            }
    }

}
0

Tak to jest, jak się pisze spaghetti z zależnościami latającymi po całym module:). To jest zadeklarowan u góry zmienna globalna, którą wcześniej modyfikuje przetworz_dane.

0

No dobra dzięki!!! Jakaś porada co do tego spaghetti?

0

A więc lepiej w każdej pętli inicjować i i j niż inicjować je globalnie?

1

Aby skonsolidować ze sobą dane i zestaw funkcji jakie na tych danych operują wymyślono klasy. Zapoznaj się z koncepcją programowania obiektowego w C++ Bracie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0