Guest User

Untitled

a guest
Mar 19th, 2019
54
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. /*Zadatak 2:
  3. Napisati program koji omogućava unos karaktera sve dok se ne popuni niz od 30 elemenata prema sljedećim pravilima:
  4. · Elementi niza mogu biti samo velika slova i brojevi.
  5. · Svaki naredni element u nizu treba da bude abecedno poslije prethodnog, odnosno u slučaju broja, dalje od nule na brojnoj osi (voditi računa da se međusobno porede samo slova i samo brojevi).
  6. · Ukupna suma ASCII kodova unesenih elemenata ne smije biti veća od 1000.
  7. Izlaz iz programa treba da budu dobiveni elementi niza. Testni primjer je urađen za niz od 5 elemenata.
  8.  
  9.  
  10. Unesite veliko slovo ili broj: D
  11. Unesite veliko slovo ili broj: 3
  12. Unesite veliko slovo ili broj: A
  13. Unesite veliko slovo ili broj: F
  14. Unesite veliko slovo ili broj: 0
  15. Unesite veliko slovo ili broj: 4
  16. Unesite veliko slovo ili broj: R
  17.  
  18. */
  19.  
  20. // charovi 65 - 90
  21. // brojevi 48 - 57
  22. #include <iostream>
  23.  
  24. using namespace std;
  25.  
  26. int v=5;
  27.  
  28.  
  29. int toA(char num){
  30. return (int)num;
  31. }
  32.  
  33. void unos(char niz[],int v){
  34.  
  35. int asciiSuma =0;
  36. char zadnjiChar ='@', zadnjiInt ='/',temp;
  37.  
  38. for(int i=0; i<v; i++){
  39. do{
  40. cout << "Unesite niz[" << i << "]: ";
  41. cin >> temp;
  42.  
  43. }while((toA(temp)<65 || toA(temp)>90) && (toA(temp)<48 || toA(temp)>57) || asciiSuma+toA(temp)>1000);
  44.  
  45. // charovi 65 - 90
  46. // brojevi 48 - 57
  47.  
  48. if (toA(temp) >= 65 && toA(temp)<=90 && toA(temp) > toA(zadnjiChar)){
  49. niz[i] = temp;
  50. zadnjiChar = niz[i];
  51. asciiSuma+=toA(niz[i]);
  52. }
  53. else if ((toA(temp)>=48 && toA(temp) <=57) && toA(temp) > toA(zadnjiInt)){
  54.  
  55. niz[i] = temp;
  56. zadnjiInt = niz[i];
  57. asciiSuma+=toA(niz[i]);
  58. }else{
  59. i--;
  60. }
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67. }
  68.  
  69.  
  70. }
  71.  
  72. void ispis(char niz[], int v){
  73.  
  74. for (int i=0; i<v; i++){
  75. if (toA(niz[i]) >= 65 && toA(niz[i])<=90)
  76. cout << niz[i] << endl;
  77. else {
  78. int ia = (int)niz[i];
  79. cout << niz[i] << endl;
  80. }
  81. }
  82. }
  83.  
  84.  
  85. int main()
  86. {
  87. char niz[v];
  88. unos(niz,v);
  89. ispis(niz,v);
  90.  
  91.  
  92.  
  93. return 0;
  94. }
RAW Paste Data