Advertisement
rozman50

Vaja 8

Nov 28th, 2018
192
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.71 KB | None | 0 0
  1. #include "pch.h"
  2. #include <iostream>
  3. #include <string>
  4.  
  5. using namespace std;
  6.  
  7. // Vaja #1
  8. void obrniNiz(char niz[100], string &obrnjenoGeslo) {
  9. char obrnjen[100];
  10. for (int i = strlen(niz) - 1, j = 0; i != -1; i--, j++) {
  11. obrnjen[j] = niz[i];
  12. obrnjenoGeslo += obrnjen[j];
  13. }
  14. }
  15.  
  16. // Vaja #2
  17. void znaki(char polje[], int &soglasniki, int &samoglasniki) {
  18. char samoglas[10] = { 'a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U' };
  19. for (int i = 0; i < strlen(polje); i++) {
  20. bool jeSoglasnik = false;
  21. for (int j = 0; j < strlen(samoglas); j++) {
  22. if (polje[i] == samoglas[j]) {
  23. samoglasniki++;
  24. jeSoglasnik = true;
  25. break;
  26. }
  27. }
  28. if (jeSoglasnik == false) soglasniki++;
  29. }
  30. }
  31.  
  32. // Vaja #3
  33. bool jePalindrom(string niz) {
  34. bool je = false;
  35. for (int i = 0; i < niz.length(); i++) {
  36. if (niz[i] == niz[niz.length() - i]) {
  37. je = true;
  38. }
  39. }
  40. if (je) return false;
  41. else return true;
  42. }
  43.  
  44. // Vaja #4
  45. bool staEnaka(string niz1, string niz2) {
  46. if (niz1.length() != niz2.length()) return false;
  47. for (int i = 0; i < niz1.length(); i++) {
  48. if (niz1[i] != niz2[i]) return false;
  49. }
  50.  
  51. return true;
  52. }
  53.  
  54. // Vaja #5
  55. string zdruzi(string niz1, string niz2) {
  56. return niz1 + niz2;
  57. }
  58.  
  59. // Vaja #6
  60. string vMaleCrke(string niz) {
  61. string mala = "";
  62. for (int i = 0; i < niz.length(); i++) {
  63. mala += niz[i] + 32;
  64. }
  65. return mala;
  66. }
  67.  
  68. // Vaja #7
  69. void nizVPolje(string niz, int* polje) {
  70. int tabela[100];
  71. for (int i = 0; i < niz.length(); i++) {
  72. tabela[i] = int(niz[i]);
  73. polje[i] = tabela[i];
  74. // cout << tabela[i] << " ";
  75. }
  76. // cout << endl;
  77. }
  78.  
  79.  
  80. // Vaja #8
  81. string poljeVNiz(int tabela[], int velikost) {
  82. string niz = "";
  83. for (int i = 0; i < velikost; i++) {
  84. niz += (char)tabela[i];
  85. }
  86.  
  87. return niz;
  88. }
  89.  
  90.  
  91. // Vaja #9
  92. void kriptiranje(char geslo[], int kljuc, int* mnozenoPolje) {
  93. string obrnjenoGeslo;
  94. obrniNiz(geslo, obrnjenoGeslo);
  95. int polje[100];
  96.  
  97. nizVPolje(obrnjenoGeslo, polje);
  98. cout << "Kriptirano polje: ";
  99. for (int i = 0; i < obrnjenoGeslo.length(); i++) {
  100. mnozenoPolje[i] = polje[i] * kljuc;
  101. cout << mnozenoPolje[i] << " ";
  102. }
  103. cout << endl;
  104. }
  105.  
  106.  
  107. // Vaja #10
  108. string dekripcija(int mnozenoPolje[], int kljuc, int dolzina) {
  109. int deljenoPolje[100];
  110. for (int i = 0; i < dolzina; i++) {
  111. deljenoPolje[i] = mnozenoPolje[i] / kljuc;
  112. }
  113. // spremeni polje v niz
  114. string neobrnjenNiz = poljeVNiz(deljenoPolje, dolzina);
  115.  
  116. // pretvori string v char polje zaradi obracanja niza
  117. char charDekriptiranNiz[100];
  118. strcpy_s(charDekriptiranNiz, neobrnjenNiz.c_str());
  119.  
  120. // sprejme char polje in prek reference vrne obrnjen string
  121. string dekriptiranNiz;
  122. obrniNiz(charDekriptiranNiz, dekriptiranNiz);
  123.  
  124. return dekriptiranNiz;
  125. }
  126.  
  127. // Vaja #11
  128. void izris(string niz) {
  129. int n = niz.length();
  130. for (int i = 0; i < n; i++) {
  131. // stevilo presledkov
  132. int k = n - i - 2;
  133. int dolzinaVrstice = n + 2 * i;
  134. for (int j = 0; j < dolzinaVrstice; j++) {
  135. // izpise presledke
  136. if (k >= j) cout << " ";
  137. // izpise najvisjo crko
  138. if (j == n) cout << niz[i];
  139. // izpise zadnjo crko
  140. if (j == dolzinaVrstice - 1) cout << niz[i];
  141. else if (j > n-1) cout << " ";
  142.  
  143. }
  144. cout << endl;
  145. // izrise zadnjo vrsto 2x
  146. if (i == n - 1) cout << niz << niz;
  147. }
  148. }
  149.  
  150. int main()
  151. {
  152.  
  153. char niz[] = "avtomobil";
  154. string obrnjenNiz;
  155. // Vaja #1
  156. obrniNiz(niz, obrnjenNiz);
  157. cout << "Obrnjen niz: " << obrnjenNiz << endl;
  158.  
  159. // Vaja #2
  160. int soglasniki = 0;
  161. int samoglasniki = 0;
  162. znaki(niz, soglasniki, samoglasniki);
  163. cout << "Samoglasniki " << samoglasniki << endl;
  164. cout << "Soglasniki " << soglasniki << endl;
  165.  
  166. // Vaja #3
  167. string palindrom = "omilimo";
  168. cout << "Ali je " << palindrom << " palindrom? " << (jePalindrom(palindrom) ? "Da" : "Ne") << endl;
  169.  
  170. // Vaja #4
  171. cout << "Sta enaka " << staEnaka("niz51", "niz51") << endl;
  172.  
  173. // Vaja #5
  174. cout << "Zdruzena niza: " << zdruzi("Hello", "World") << endl;
  175.  
  176. // Vaja #6
  177. cout << "Velike v male: " << vMaleCrke("HELLOWORLD") << endl;
  178.  
  179. // Vaja #7
  180. int polje[100];
  181. string nizVPoljeNiz = "LepDan";
  182. nizVPolje(nizVPoljeNiz, polje);
  183. for (int i = 0; i < nizVPoljeNiz.length(); i++) {
  184. cout << nizVPoljeNiz[i] << " - " << polje[i] << " ";
  185. }
  186. cout << endl;
  187.  
  188. // Vaja #8
  189. int tabela[10] = { 115, 111, 110, 99, 101 };
  190. cout << "Polje je: " << poljeVNiz(tabela, 10) << endl;
  191.  
  192. // Vaja #9
  193. char geslo[] = "Geslo1234";
  194. int kljuc = 123123;
  195. int kriptiranoPolje[100];
  196. cout << "Geslo je: " << geslo << endl;
  197. cout << "Nekriptirano polje: ";
  198. kriptiranje(geslo, kljuc, kriptiranoPolje);
  199.  
  200. // Vaja #10
  201. string dekriptiran = dekripcija(kriptiranoPolje, kljuc, strlen(geslo));
  202. cout << "Dekriptiran niz je: " << dekriptiran;
  203.  
  204. cout << endl;
  205. // Vaja #11
  206. izris("besedilo");
  207. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement