Advertisement
Guest User

dupa

a guest
Oct 18th, 2019
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.05 KB | None | 0 0
  1. #include "pch.h"
  2. #include <iostream>
  3. #include <vector>
  4. #include <string>
  5.  
  6. using namespace std;
  7. //2.1
  8. int potega(int podstawa, int wykladnik) {
  9.     if (wykladnik == 0) {
  10.         return 1;
  11.     }
  12.     if (podstawa == 0) {
  13.         return 0;
  14.     }
  15.     return potega(podstawa, wykladnik - 1) * podstawa;
  16. }
  17. //2.2
  18. bool palindrom(string a) {
  19.     if (a.size() == 1 || a.size() == 0) {
  20.         return true;
  21.     }
  22.     if (a[0] == a[a.size() - 1]) {
  23.         string nowy;
  24.         for (int i = 0; i < a.size() - 2; i++) {
  25.             nowy.push_back(a[i + 1]);
  26.         }
  27.         return palindrom(nowy);
  28.     }
  29.     else {
  30.         return false;
  31.     }
  32. }
  33.  
  34.  
  35. //2.3
  36. int gwiazdki(int n) {
  37.     if (n == 0) {
  38.         return 0;
  39.     }
  40.     cout << "*";
  41.     return gwiazdki(n - 1);
  42. }
  43. //2.4
  44. int horner(int x, vector<int> tab, int stopien) {
  45.     if (stopien == 0) {
  46.         return tab[0];
  47.     }
  48.     return x * horner(x, tab, stopien - 1) + tab[stopien];
  49. }
  50. /*
  51. //2.5
  52. int spirala(int dlugosc, int odstep) {
  53.     int ** tab;
  54.     tab = new int*[dlugosc * dlugosc];
  55.     if (dlugosc == odstep) {
  56.         return 1;
  57.     }
  58.     for (int i = 0; i < dlugosc; i++) {
  59.         cout << '8';
  60.     }
  61.     cout << endl;
  62.     return spirala(dlugosc - odstep, odstep);
  63. }
  64. */
  65.  
  66. //
  67. int silnia(int n) {
  68.     if (n == 0) {
  69.         return 1;
  70.     }
  71.     return silnia(n - 1)*n;
  72. }
  73.  
  74.  
  75. //pomocnicze funkcje
  76. void wypisz(char** tab, int n, int m) {
  77.     for (int i = 0; i < n; i++) {
  78.         for (int j = 0; j < m; j++) {
  79.             cout << tab[i][j];
  80.         }
  81.         cout << endl;
  82.     }
  83. }
  84.  
  85. void spirala(int dl_max, char ** tab, int wspx, int wspy, int kierunek, int dlugosc, int par)
  86. {
  87.     //warunek stopu
  88.     if (dlugosc > dl_max)
  89.     {
  90.         return;
  91.     }
  92.     // tab[y][x]
  93.     tab[wspy][wspx] == '*';
  94.  
  95.     if (kierunek == 1)
  96.     {
  97.         for (int i = 0; i < dlugosc; i++)
  98.         {
  99.             tab[wspy][wspx] = '*';
  100.             wspy++;
  101.         }
  102.         return spirala(dl_max, tab, wspx, wspy, kierunek + 1, dlugosc + par, par);
  103.     }
  104.     if (kierunek == 2)
  105.     {
  106.         for (int i = 0; i < dlugosc; i++)
  107.         {
  108.             tab[wspy][wspx] = '*';
  109.             wspx++;
  110.         }
  111.         return spirala(dl_max, tab, wspx, wspy, kierunek + 1, dlugosc + par, par);
  112.     }
  113.     if (kierunek == 3)
  114.     {
  115.         for (int i = 0; i < dlugosc; i++)
  116.         {
  117.             tab[wspy][wspx] = '*';
  118.             wspy--;
  119.         }
  120.         return spirala(dl_max, tab, wspx, wspy, kierunek + 1, dlugosc + par, par);
  121.     }
  122.     if (kierunek == 4)
  123.     {
  124.         for (int i = 0; i < dlugosc; i++)
  125.         {
  126.             tab[wspy][wspx] = '*';
  127.             wspx--;
  128.         }
  129.         return spirala(dl_max, tab, wspx, wspy, 1, dlugosc + par, par);
  130.     }
  131.     return;
  132. }
  133. int main()
  134. {
  135.     /*
  136.     cout << "Hello World!\n";
  137.     cout << "(2.1) 2 do 5 = " << potega(2, 5) << endl;
  138.     cout << "(2.2) Czy kajak to palindrom? :1 - tak, 0 - nie: " << palindrom("kajak") << endl;
  139.     cout << "(2.3) 5 gwiazdek: ";
  140.     gwiazdki(5);
  141.     cout << endl << "5! = " << silnia(5) << endl;
  142.     vector<int> a(5);
  143.     a = { 5,4,3 };
  144.     cout << "(2.4) horner: dla 5x^2 + 4x +3" << horner(2, a, 2) << endl;
  145.     */
  146.  
  147.     //spirala(6, 1);
  148.  
  149.     int dl = 15;
  150.     char ** tab;
  151.  
  152.     int size = 2 * dl;
  153.     tab = new char*[size];
  154.     for (int i = 0; i < size; i++) {
  155.         tab[i] = new char[size];
  156.     }
  157.  
  158.  
  159.     for (int i = 0; i < size; i++) {
  160.         for (int j = 0; j <= size; j++) {
  161.             tab[i][j] = '_';
  162.         }
  163.     }
  164.     spirala(dl, tab, (size) / 2, (size) / 2, 1, 1, 2);
  165.     wypisz(tab, size, size);
  166. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement