// // Created by Mateusz Baran, Tomasz Sośnicki on 24.10.2020. // Copyright (c) 2020 AGH. All rights reserved. // #include #define SIZE 10 //stałe dla tablic #define COLUMNS 3 #define ROWS 2 using namespace std; struct Book { string title; int year; }; void print(int number) { /*wypisuje wartość int*/ cout << "Integer: " << number << endl; } void print(float number) { /*wypisuje wartość float*/ cout << "Decimal: " << number << endl; } void print(Book book) { /*wypisuje Book przez wartość*/ cout << "Title: " << book.title << endl; cout << "Year: " << book.year << endl; } // //nie działa przecież //void print(const Book book) //{ // cout << "Title: " << book.title << endl; // cout << "Year: " << book.year << endl; //} void print(Book &book) { /*wypisuje Book przez referencję*/ cout << "Title: " << book.title << endl; cout << "Year: " << book.year << endl; } void print(const Book &book) { /*wypisuje Book przez stałą referencję*/ cout << "Title: " << book.title << endl; cout << "Year: " << book.year << endl; } void print(Book *book) { /*wypisuje Book przez wskaźnik*/ cout << "Title: " << book->title << endl; cout << "Year: " << book->year << endl; } void print(const Book *book) { /*wypisuje Book przez stały wskaźnik*/ cout << "Title: " << book->title << endl; cout << "Year: " << book->year << endl; } void print(int arr[]) { /*wywpisuje tablicę 1D*/ for(int i = 0; i < SIZE; ++i) { cout << arr[i] << "\t"; } cout << endl; } //konieczna jest inna nazwa by zadziałało void printPtr(int *arr) { /*wywpisuje tablicę 1D*/ for(int i = 0; i < SIZE; ++i) { cout << *arr << "\t"; ++arr; } cout << endl; } void print(int arr2D[][COLUMNS]) { /*wypisuje tablicę 2D*/ for(int i = 0; i < ROWS; ++i) { for(int j =0; j < COLUMNS; ++j) { cout << arr2D[i][j] << "\t"; } cout << "\n"; } cout << "\n"; } void print(int **arr2D) { /*wypisuje tablicę 2D*/ for(int i = 0; i < ROWS; ++i) { for(int j = 0; j < COLUMNS; ++j) { cout << arr2D[i][j] << "\t"; } cout << "\n"; } cout << "\n"; } int main() { float f = 5; print(f); print(5); print(5.5f); int A[SIZE] {}; // deklaracja tablicy 1D i wypełnienie zerami print(A); // funkcja wypisująca tablicę 1D za pomoca arr[] printPtr(A); // funkcja wypisująca tablicę 1D za pomocą *arr int B[ROWS][COLUMNS] {}; // deklaracja tablicy 2D i wypełnienie zerami print(B); // funkcja wypisująca tablicę 2D za pomocą arr[][] int **C = new int *[ROWS]; // alokacja pamięci dla tablicy 2D for (int i = 0; i < ROWS; ++i) { C[i] = new int[COLUMNS]; } for (int i = 0; i < ROWS; ++i){ // wypełnienie tablicy 2D for(int j = 0; j < COLUMNS; ++j) { C[i][j] = 9; } cout << "\n"; } print(C); // funckja wypisująca tablicę 2D za pomocą **arr /*##############################*/ Book ks; ks.year = 45; ks.title = "kek"; //print(ks); // nie działa - komunikat o wieloznacznośi funkcji Book *ksPtr; ksPtr->year = 12; ksPtr->title = "Pan Tadeusz"; print(ksPtr); //funkcja wypisująca Book przez wskaźnik return 0; } // 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 // TODO: Napisz funkcję print dla tablicy jednowymiarowej i dwuwymiarowej liczb całkowitych ( int [], int *, int [][], int **)