Advertisement
Guest User

Untitled

a guest
Apr 21st, 2018
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.83 KB | None | 0 0
  1. //Robert Kumanek
  2. #include<string>
  3. #include<iostream>
  4.  
  5. /*Rozstrzygnac kwestie:
  6. // PrzegrodkaNaLiczby przegrodka ( 45.0 ); // ma wypisać jedną wartość 45
  7. // przegrodka.prezentuj();
  8. // PrzegrodkaNaLiczby przegrodka2 ( 45 ); // ma wypisać 47 zer
  9. //// przegrodka2.prezentuj();
  10. */
  11.  
  12. class PrzegrodkaNaLiczby {
  13. public:
  14. bool isAnyValue;
  15. double value;
  16. unsigned int volume;
  17. std::string ( *foo )( unsigned int, double );
  18.  
  19. void zeruj () {
  20. value = 0;
  21. volume = 0;
  22. foo = NULL;
  23. isAnyValue = false;
  24. }
  25.  
  26. void prezentuj() {
  27. std::cout << "Prezentacja przegrodki na liczby" << std::endl;
  28. for ( unsigned int i = 1; i <= volume; i++ ){
  29. if ( foo != NULL) /*gdy foo ma w sobie jakas funkcje*/
  30. if ( isAnyValue )
  31. std::cout << foo ( i, value + i - 1 ) << std::endl;
  32. else
  33. std::cout << foo ( i, 0 ) << std::endl;
  34.  
  35. else /*gdy foo nie ma zadnej funkcji*/
  36. if ( isAnyValue )
  37. std::cout << value + i - 1 << std::endl;
  38. else
  39. std::cout << 0 << std::endl;
  40. }
  41. }
  42.  
  43. //===================== KONSTRUKTORY ==========================
  44.  
  45. // PrzegrodkaNaLiczby ( double val ){
  46. // value = val;
  47. // volume = 1;
  48. // foo = NULL;
  49. // }
  50. PrzegrodkaNaLiczby ( unsigned int vol ) { // 0,1,0
  51. isAnyValue = false;
  52. value = 0;
  53. volume = vol;
  54. foo = NULL;
  55. }
  56. PrzegrodkaNaLiczby ( bool invokedFromAnother = false ) // 0,0,0
  57. : isAnyValue ( false ), value ( 0 ), volume ( 1 ), foo ( NULL )
  58. { if ( invokedFromAnother )std::cout << "Konstruktor przegrodki" << std::endl; }
  59.  
  60. PrzegrodkaNaLiczby ( double val , unsigned int vol = 1 ) // 1,1,0 oraz 1,0,0
  61. : isAnyValue ( true ), value ( val ), volume ( vol ), foo ( NULL ) {}
  62.  
  63. PrzegrodkaNaLiczby ( unsigned int vol, std::string ( *fo )( unsigned int, double ) ) // 0, 1, 1
  64. : isAnyValue ( false ), value ( 0 ), volume ( vol ), foo ( fo ) {}
  65.  
  66. PrzegrodkaNaLiczby ( double val, unsigned int vol, std::string ( *fo )( unsigned int , double )) // 1, 1, 1
  67. : isAnyValue ( true ), value ( val ), volume ( vol ), foo ( fo ) {}
  68.  
  69. //=================== KONSTRUKTOR KOPIUJĄCY ===================
  70. PrzegrodkaNaLiczby ( const PrzegrodkaNaLiczby &c, bool invokedFromAnother = false )
  71. : value ( c.value ), volume ( c.volume ), foo ( c.foo ), isAnyValue ( c.isAnyValue )
  72. { if ( invokedFromAnother )std::cout << "Konstruktor przegrodki" << std::endl; }
  73.  
  74. //=================== DESTRUKTOR ==============================
  75. ~ PrzegrodkaNaLiczby ( ) { }
  76.  
  77. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement