24.2.3.24010920. Napisati program koji treba da ponudi korisniku sljedeće tri opcije:
a) Rješavanje linearne jednačine
b) Rješavanje kvadratne jednačine
c) Kraj programa
Ukoliko korisnik unese opciju a), program treba da pita korisnika za vrijednosti koeficijenata a i b i da izračuna i ispiše rješenje jednačine a x + b = 0. Ukoliko korisnik unese opciju b), program treba da pita korisnika za vrijednosti koeficijenata a, b i c i da izračuna i ispiše rješenja jednačine a x2 + b x + c = 0. Ukoliko korisnik unese opciju c), program treba da završi sa radom. Ukoliko korisnik unese bilo šta drugo, treba ispisati poruku da je unos pogrešan. Nakon što se obavi proračun u opcijama a) i b), korisniku treba ponovo ponuditi izbor, pri čemu se postupak ponavlja sve dok korisnik ne zatraži kraj. Program treba realizirati isključivo korištenjem modularnog pristupa, tj. cjeline za ispis menija, rješavanje linearne i kvadratne jednačine treba realizirati kao posebne module (funkcije) koji će se pozivati iz glavne funkcije. Pri tome, glavnu funkciju treba napisati ispred preostale tri funkcije. Sve tri pomoćne funkcije ne zahtijevaju nikakve parametre, i ne vraćaju nikakav rezultat, osim funkcije za ispis menija, koja treba da kao rezultat vrati broj koji odgovara rednom broju opcije koju je korisnik izabrao (1, 2 ili 3).

Opis rješenja:

Listing programa:

#include <iostream>
#include <cmath>
using namespace std;
void trougao(int,char z='*');
int main()
{
int meni();
void linearna();
void kvadratna();
int n;
do{
n=meni();
if(n==1)linearna();
else if(n==2)kvadratna();
}while(n!=3);
return 0;
}
int meni(){
int a;
cout<<"\nIzaberite:\n"
    <<"1)rjesavanje linearne j-ne( unesite 1)\n"
    <<"2)rjesavanje kvadratne j-ne( unesite 2)\n"
    <<"3)kraj programa( unesite 3)\n";
cin>>a;
while(a<1||a>3){
cout<<"EROR!IZABERITE PONOVO:\n";
cin.clear();
cin.ignore(1000,'\n');
cin>>a;
}
return a;
}
void linearna(){
double a,b;
cout<<"Unesite koeficiente lin. j-ne:\n";
cin>>a>>b;
cout<<"Rjesenje je:\nx="<<(-b)/a<<endl;
}
void kvadratna(){
double a,b,c,d;
cout<<"Unesite koeficiente kv. j-ne:\n";
cin>>a>>b>>c;
d=b*b-4*a*c;
cout<<"Rjesenja su:\n";
if(d>=0)cout<<"x1="<<(-b+sqrt(d))/(2*a)<<",\nx2="<<(-b-sqrt(d))/(2*a)<<endl;
else{
    d=sqrt(abs(d));
    cout<<"x1=("<<(-b)/(2*a)<<","<<d/(2*a)<<"),\nx2=("<<(-b)/(2*a)<<","<<-d/(2*a)<<")\n";
}
}

Ispis na ekranu:

Riješeni zadaci 2    Index