Facebook
From Smelly Horse, 3 Years ago, written in C++.
Embed
Download Paste or View Raw
Hits: 75
  1. //
  2. // Created by Mateusz Baran, Tomasz Sośnicki on 24.10.2020.
  3. // Copyright (c) 2020 AGH. All rights reserved.
  4. //
  5. #include <iostream>
  6.  
  7. #define SIZE 10                             //stałe dla tablic
  8. #define COLUMNS 3
  9. #define ROWS 2
  10.  
  11. using namespace std;
  12.  
  13. struct Book {
  14.     string title;
  15.     int year;
  16. };
  17.  
  18. void print(int number) {
  19.     /*wypisuje wartość int*/
  20.     cout << "Integer: " << number << endl;
  21. }
  22.  
  23. void print(float number) {
  24.     /*wypisuje wartość float*/
  25.     cout << "Decimal: " << number << endl;
  26. }
  27.  
  28. void print(Book book) {
  29.     /*wypisuje Book przez wartość*/
  30.     cout << "Title: " << book.title << endl;
  31.     cout << "Year: " << book.year << endl;
  32. }
  33.  
  34. // //nie działa przecież
  35. //void print(const Book book)
  36. //{
  37. //    cout << "Title: " << book.title << endl;
  38. //    cout << "Year: " << book.year << endl;
  39. //}
  40.  
  41. void print(Book &book) {
  42.     /*wypisuje Book przez referencję*/
  43.     cout << "Title: " << book.title << endl;
  44.     cout << "Year: " << book.year << endl;
  45. }
  46.  
  47. void print(const Book &book) {
  48.     /*wypisuje Book przez stałą referencję*/
  49.     cout << "Title: " << book.title << endl;
  50.     cout << "Year: " << book.year << endl;
  51. }
  52.  
  53. void print(Book *book) {
  54.     /*wypisuje Book przez wskaźnik*/
  55.     cout << "Title: " << book->title << endl;
  56.     cout << "Year: " << book->year << endl;
  57. }
  58.  
  59. void print(const Book *book) {
  60.     /*wypisuje Book przez stały wskaźnik*/
  61.     cout << "Title: " << book->title << endl;
  62.     cout << "Year: " << book->year << endl;
  63. }
  64.  
  65. void print(int arr[]) {
  66.     /*wywpisuje tablicę 1D*/
  67.     for(int i = 0; i < SIZE; ++i) {
  68.         cout << arr[i] << "\t";
  69.     }
  70.     cout << endl;
  71. }
  72.  
  73. //konieczna jest inna nazwa by zadziałało
  74. void printPtr(int *arr) {
  75.     /*wywpisuje tablicę 1D*/
  76.     for(int i = 0; i < SIZE; ++i) {
  77.         cout << *arr << "\t";
  78.         ++arr;
  79.     }
  80.     cout << endl;
  81. }
  82.  
  83. void print(int arr2D[][COLUMNS]) {
  84.     /*wypisuje tablicę 2D*/
  85.     for(int i = 0; i < ROWS; ++i) {
  86.         for(int j =0; j < COLUMNS; ++j) {
  87.             cout << arr2D[i][j] << "\t";
  88.         }
  89.         cout << "\n";
  90.     }
  91.     cout << "\n";
  92. }
  93.  
  94. void print(int **arr2D) {
  95.     /*wypisuje tablicę 2D*/
  96.     for(int i = 0; i < ROWS; ++i) {
  97.         for(int j = 0; j < COLUMNS; ++j) {
  98.             cout << arr2D[i][j] << "\t";
  99.         }
  100.         cout << "\n";
  101.     }
  102.     cout << "\n";
  103. }
  104.  
  105.  
  106. int main()
  107. {
  108.     float f = 5;
  109.     print(f);
  110.     print(5);
  111.     print(5.5f);
  112.  
  113.      int A[SIZE] {};                                    // deklaracja tablicy 1D i wypełnienie zerami
  114.      print(A);                                          // funkcja wypisująca tablicę 1D za pomoca arr[]
  115.      printPtr(A);                                       // funkcja wypisująca tablicę 1D za pomocą *arr
  116.      int B[ROWS][COLUMNS] {};                           // deklaracja tablicy 2D i wypełnienie zerami
  117.      print(B);                                          // funkcja wypisująca tablicę 2D za pomocą arr[][]
  118.  
  119.      int **C = new int *[ROWS];                         // alokacja pamięci dla tablicy 2D
  120.      for (int i = 0; i < ROWS; ++i) {
  121.          C[i] = new int[COLUMNS];
  122.      }
  123.      for (int i = 0; i < ROWS; ++i){                    // wypełnienie tablicy 2D
  124.          for(int j = 0; j < COLUMNS; ++j) {
  125.              C[i][j] = 9;
  126.          }
  127.          cout << "\n";
  128.      }
  129.      print(C);                                           // funckja wypisująca tablicę 2D za pomocą **arr
  130.  
  131.      /*##############################*/
  132.      Book ks;
  133.      ks.year = 45;
  134.      ks.title = "kek";
  135.      //print(ks);                                       // nie działa - komunikat o wieloznacznośi funkcji
  136.  
  137.  
  138.      Book *ksPtr;
  139.      ksPtr->year = 12;
  140.      ksPtr->title = "Pan Tadeusz";
  141.  
  142.      print(ksPtr);                                         //funkcja wypisująca Book przez wskaźnik
  143.  
  144.  
  145.     return 0;
  146. }
  147. // TODO: Napisz przeładowania funkcji print dla struktury Book (przekazanie przez wartość, stałą wartość, referencję stałą referencję, wskaźnik, wskaźnik do stałego obiektu B
  148. // TODO: Napisz funkcję print dla tablicy jednowymiarowej i dwuwymiarowej liczb całkowitych ( int [], int *, int [][], int **)