23.1.23020140. Generisati 2 različita cijela broja. Ako su oba parna podijeliti veći sa manjim brojem. Ako su oba neparna od većeg oduzeti manji broj. Inače sabrati ta dva broja.

Opis rješenja: Prije dijeljenja mora se provjeriti da li je nazivnik 0 da bi se moglo izvesti dijeljenje.
Naredba return 0; završava izvođenje programa. Korišćene je:
- brojeve su isti
- nazivnik je nula
- na kraju slučaja oba parna, radi preglednosti programa da se ne koristi više if else naredbi.

Listing programa:

#include<iostream>
#include<cstdlib>
#include<ctime>

using namespace std;

int main()
{
    srand(time(NULL));
    int a=rand()%200,b=rand()%200;  // dva slucajna broja u opsegu [0, 200)
      cout << "a = " << a  << "    b = " << b << endl;    // generisani
    int p;                          // deklarisanja varijable
    float y;                        // deklarisanja izlazna varijable, kod dijeljenja moramo predvidjeti realan broj
    if (a == b)         // isti brojevi ?
        cout << "oba ista = " << a << endl;    // izlaz

    else              // za 2 razlicita slucajna broja
    {
        // podesiti da je a vece od b
        if (a < b)             // a manje od b ?
        {
            // zamjeni vrijednosti a i b, pa provjeri nazivnik
            p=a;                // pomocna varijabla p prima vrijednost varijable a
            a=b;                // varijabla a prima vrijednost varijable b
            b=p;                // varijabla b prima vrijednost pomocne varijabla p
        }                      // zamjenjen redoslijed prve dvije varijable

        if((a%2 == 0) && (b%2 == 0 ))     // oba parna
        {
            if (b == 0)            // nazivnik = 0 ?
            {
                // nazivnik = 0
                cout << "nazivnik = 0" << endl;     // zavrseno izvodjenje programa
                return 0;           // zavrsio program
            }
            y = a / b ;             // parni: veci podijeli sa manjim
            cout << "rezultat = " << y;      // izlaz
            return 0;              // zavrsi izvodjenje program kad su oba parna
        }    // dio programaa za oba parna

        if((a%2 != 0) && (b%2 != 0 ))  // oba neparna
            y = a - b ;            // razlika; vec je podeseno da je a vece
        else                       // samo jedan neparan
            y = a + b;             // suma; samo jedan neparan
        cout << "rezultat = " << y;    // ispis kad su neparni
        return 0;
    }
}

Ispis na ekranu:
oba ista = 57
II izvodjenje programa
a = 24    b = 81
rezultat = 105


II varijanta bez provjere nazivnika
//23020140
#include<iostream>
#include<cstdlib>
#include<ctime>

using namespace std;

int main(){
	srand(time(NULL));
	
	int a=rand()%200,b=rand()%200;
	double rez=0;
	
	cout << a << "  "<<  b << endl;
	
	if(a % 2 == 0 && b % 2 == 0){
		if(a > b){
			rez=a/b;
			cout<<"Rezultat je: "<<rez<<endl;
		}
		if(b > a){
			rez=b/a;
			cout<<"Rezultat je: "<<rez<<endl;
		}
		if(a == b){
			cout<<"Rezultat je: 1"<<endl;
		}
		return 0;
	}
	if(a % 2 != 0 && b % 2 != 0){
		if(a > b){
			rez=a-b;
			cout<<"Rezultat je: "<<rez<<endl;
		}
		if(b > a){
			rez=b-a;
			cout<<"Rezultat je: "<<b-a<<endl;
		}
		if(a == b){
			cout<<"Rezultat je: 0"<<endl;
		}
		return 0;
	}
	else{
		rez=a+b;
		cout<<"Rezultat je: "<<rez<<endl;
	}
	return 0;
}

Ispis na ekranu:

Riješeni zadaci    Index