Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- 1. Опис на проблемот:
- Програма со која се пресметува збирот на цифрите на трицифрен број,
- која притоа кориси функција да провери дали бројот е трицифрен.
- 2. Анализа на задачата:
- Задачата вклучува проверка дали број а трицифрен, а доколку е
- исполнет условот, пресметување на збирот на неговите три цифри.
- 3. Влесни податоци, меѓурезултати и резултати:
- Влезни податоци: се внесува текст (број) преку стандарден влез.
- Меѓурезултати: Доколку не е внесен број, или пак е внесен број, но
- не трицифрен, програмата бара од корисникот да се обиде повторно.
- Резултат: Доколку е внесен број и тој број е трицифрен, програмата го
- печати својот резултат -- збирот на трите цифри од бројот.
- 4. Алгоритам:
- алгоритам ZbirNaCifriKajTricifrenBroj;
- функција e_tricifren(broj)
- почеток
- ако ( [log10(broj)] + 1 = 3 ) тогаш
- врати TRUE;
- инаку
- врати FALSE;
- крај_ако { [log10(broj)] + 1 = 3 }
- крај
- крај_функција
- почеток
- читај broj;
- ако ( e_tricifren(broj) ) тогаш
- печати 'Збирот на цифрите е ', broj DIV 100 + (broj DIV 10) MOD 10 + broj MOD 10;
- инаку
- печати 'Грешка!';
- крај_ако { e_tricifren(broj) }
- крај.
- 5. Користење:
- Програмата се користи така што се внесува број преку стандарден влез (тастатура). Доколку
- е внесен број, и тој број е трицифрен, програмата го печати збирот на неговите цифри. Ако не,
- програмата бара корисникот да се обите повторно.
- */
- #include <iostream>
- #include <cmath>
- #include <limits>
- using namespace std;
- bool e_tricifren ( int );
- int main ( )
- {
- while ( true )
- {
- int broj;
- cout << "Vnesete broj: ";
- cin >> broj;
- if ( cin.fail() )
- {
- cout << "Vie ne vnesovte broj. Obidete se povtorno." << endl;
- cin.clear();
- cin.ignore(numeric_limits<streamsize>::max(), '\n');
- continue;
- }
- if (broj < 0) broj = -broj;
- if ( !e_tricifren(broj) )
- {
- cout << "Brojot shto go vnesovte ne e tricifren. Obidete se povtorno." << endl;
- continue;
- }
- cout << "Zbirot na cifrite e " << broj / 100 + (broj / 10) % 10 + broj % 10 << "." << endl;
- break;
- }
- return 0;
- }
- bool e_tricifren ( int n )
- {
- return ( floor(log10(n)) + 1 == 3 );
- }
Advertisement
Add Comment
Please, Sign In to add comment