6.4.. Napisati program koji učitava četverocifreni broj i ispisuje cifre.

Opis rješenja: Pri pretvaranju se koristi osobina pozicionog sistema. Četverocifren broj: broj = a*103 + b*102 + c*101 + d*100. Izrazom broj % 10 dobijamo jedinice broja (u ovom slučaju trocifrenog). Cjelobrojnim dijeljenom sa 1000 dobija se cifra hiljadica. Cifrea jedinica je ostatak dijeljenje sa 10. Vidi primjere >>.
Četverocifren broj x koji se predstavlja x = abcd. Izdvajanje cifara se izvodi slijeva cjelobrojnim dijljenjem a zatim se dobija ostatak korišćenjem naredbe MOD (%) ostatak cjalobrojanog dijeljenja:
I varijanta - izdvajanja cifara s lijeva;
II varijanta - izdvajanja cifara s desna

Tekstualni algoritam:

  1. ulaz - učitati petocifren broj: x
  2. obrada - izračunati:
    abcd / 1000 = a // cifra hiljadica
    (abcd % 1000) / 100 = bcd / 100 = b // cifra stotica
    (abcd % 100) / 10 = cd / 10 = c // cifra desetic
    abcd % 10 = d // cifra jedinica
  3. izlaz - ispisati: x, a, b, c, d
II varijanta
  1. ulaz - učitati petocifren broj: x
  2. obrada - izračunati:
    x%10 = abcd % 10 = d // cifra jedinica, ostatak dijeljenja (%) sa 10
    x/10 = abcd / 10 = abc = x // odbacuje se cifra s desna i ostaju prve 3 cifre - cetverocifren broj
    x%10 = abc % 10 = c // cifra desetica, ostatak dijeljenja (%) sa 10
    x/10 = abc / 10 = ab = x // odbacuje se cifra s desna i ostaju prve 2 cifre - trocifren broj
    x%10 = ab % 10 = b // cifra stotica, ostatak dijeljenja (%) sa 10
    x/10 = ab / 10 = a = x // odbacuje se cifra s desna i ostaju prva cifra - dvocifren broj
    x%10 = ab % 10 = a // cifra hiljadica, ostatak dijeljenja (%) sa 10
    x/10 = ab / 10 = a = x // odbacuje se cifra s desna i ostaju prve 2 cifre - dvocifren broj
  3. izlaz - ispisati: x, a, b, c, d

Listing programa:

// 06411107
#include <iostream>
using namespace std;
int main()
{
    int x, a, b, c, d;                  // deklarisanje varijabli
    cout << "Ucitaj cetverocifren broj: "; // ime varijable cija vrijednost se ucitava  
    cin >> x;                           // ucitavanje vrijednosti varijable sa tastature 

    a = x / 1000;         // cifra hiljadica 
    b = (x % 1000)/100;   // cifra stotica 
    c = (x % 100)/10;     // cifra desetica
    d =  x % 10;           // cifra jedinica
    
    cout << "Cifra hiljada = " << a << endl;     // ispis vrijednosti
    cout << "Cifra stotina = " << b << endl;    // ispis vrijednosti
    cout << "Cifra desetica = " << c << endl;    // ispis vrijednosti
    cout << "Cifra jedinica = " << d << endl;  // ispis vrijednosti
    return 0;
}

II varijanta
// 06411107
#include <iostream>
using namespace std;
int main()
{
    int x, a, b, c, d;                  // deklarisanje varijabli
    cout << "Ucitaj cetverocifren broj: "; // ime varijable cija vrijednost se ucitava  
    cin >> x;                           // ucitavanje vrijednosti varijable sa tastature 
    
    d = x%10;    // deljenjem sa ostatkom (%) sa 10 dobija se prva cifra s desne strane
    x = x/10;	 // cetvorocifren broj deljenjem (/) sa 10 svodimo na trocifren broj
    c = x%10;	 // iz prethodno svedenog trocifrenog broja deljenjem (%) sa 10 dobijamo ponovo ostatak na 3. mestu
    x = x/10;    // trocifreni broj iz prethodnog koraka deljenjem (/) sa 10 svodimo na dvocifren broj
    b = x%10;	 // postojeci dvocifren broj deljenjem (%) sa 10 dobijamo ostatak na 2. mestu
    a = x/10;	 // dvocifren broj delimo (/) sa 10 da ga svedemo na poslednju (jednu) cifru
    
    cout << "Cifra hiljada = " << a << endl;     // ispis vrijednosti
    cout << "Cifra stotina = " << b << endl;    // ispis vrijednosti
    cout << "Cifra desetica = " << c << endl;    // ispis vrijednosti
    cout << "Cifra jedinica = " << d << endl;  // ispis vrijednosti
    return 0;
}

Ispis na ekranu:

Index