D-Gj

Proekt Ana

Apr 17th, 2013
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.38 KB | None | 0 0
  1. /*
  2. 1. Опис на проблемот:
  3.  
  4.     Програма со која се пресметува збирот на цифрите на трицифрен број,
  5.     која притоа кориси функција да провери дали бројот е трицифрен.
  6.  
  7. 2. Анализа на задачата:
  8.    
  9.     Задачата вклучува проверка дали број а трицифрен, а доколку е
  10.     исполнет условот, пресметување на збирот на неговите три цифри.
  11.  
  12. 3. Влесни податоци, меѓурезултати и резултати:
  13.  
  14.     Влезни податоци: се внесува текст (број) преку стандарден влез.
  15.    
  16.     Меѓурезултати: Доколку не е внесен број, или пак е внесен број, но
  17.     не трицифрен, програмата бара од корисникот да се обиде повторно.
  18.    
  19.     Резултат: Доколку е внесен број и тој број е трицифрен, програмата го
  20.     печати својот резултат -- збирот на трите цифри од бројот.
  21.  
  22. 4. Алгоритам:
  23.  
  24.     алгоритам ZbirNaCifriKajTricifrenBroj;
  25.  
  26.         функција e_tricifren(broj)
  27.             почеток
  28.                 ако ( [log10(broj)] + 1 = 3 ) тогаш
  29.                     врати TRUE;
  30.                 инаку
  31.                     врати FALSE;
  32.                 крај_ако { [log10(broj)] + 1 = 3 }
  33.             крај
  34.         крај_функција
  35.  
  36.     почеток
  37.         читај broj;
  38.        
  39.         ако ( e_tricifren(broj) ) тогаш
  40.             печати 'Збирот на цифрите е ', broj DIV 100 + (broj DIV 10) MOD 10 + broj MOD 10;
  41.         инаку
  42.             печати 'Грешка!';
  43.         крај_ако { e_tricifren(broj) }
  44.        
  45.     крај.
  46.  
  47. 5. Користење:
  48.  
  49.     Програмата се користи така што се внесува број преку стандарден влез (тастатура). Доколку
  50. е внесен број, и тој број е трицифрен, програмата го печати збирот на неговите цифри. Ако не,
  51. програмата бара корисникот да се обите повторно.
  52. */
  53.  
  54. #include <iostream>
  55. #include <cmath>
  56. #include <limits>
  57.  
  58. using namespace std;
  59.  
  60. bool e_tricifren ( int );
  61.  
  62. int main ( )
  63. {
  64.     while ( true )
  65.     {
  66.         int broj;
  67.         cout << "Vnesete broj: ";
  68.         cin >> broj;
  69.  
  70.         if ( cin.fail() )
  71.         {
  72.             cout << "Vie ne vnesovte broj. Obidete se povtorno." << endl;
  73.             cin.clear();
  74.             cin.ignore(numeric_limits<streamsize>::max(), '\n');
  75.             continue;
  76.         }
  77.  
  78.         if (broj < 0) broj = -broj;
  79.  
  80.         if ( !e_tricifren(broj) )
  81.         {
  82.             cout << "Brojot shto go vnesovte ne e tricifren. Obidete se povtorno." << endl;
  83.             continue;
  84.         }
  85.  
  86.         cout << "Zbirot na cifrite e " << broj / 100 + (broj / 10) % 10 + broj % 10 << "." << endl;
  87.         break;
  88.     }
  89.     return 0;
  90. }
  91.  
  92. bool e_tricifren ( int n )
  93. {
  94.     return ( floor(log10(n)) + 1 == 3 );
  95. }
Advertisement
Add Comment
Please, Sign In to add comment