Guest User

Untitled

a guest
Aug 17th, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 8.41 KB | None | 0 0
  1. /* INSTRUKCIJE IZ C PROGRAMIRANJA
  2.  
  3. Za sve upite i informacije na e-mail:
  4.     HC.Instructions@gmail.com
  5.  
  6. */
  7.  
  8. /* POSTAVKA
  9. Napišite program koji učitava rečenicu od naviše 80 znakova i sprema u
  10. odgovarajući string.
  11. Napisati funkciju kojoj se string prenosi kao argument i koja upisuje učitanu
  12. rečenicu u tekstualnu datoteku. Zatvoriti datoteku.
  13. Napisati drugu funkciju koja će otvoriti datoteku, pročitati rečenicu iz nje
  14. i prebrojati koliko se puta pojavilo pojedino veliko slovo u rečenici i ukupni
  15. broj takvih znakova, te ispisati rezultat prebojavanja u tabličnom obliku, npr.:
  16.  
  17. slovo| broj
  18. ===========
  19. A | 7
  20. B | 11
  21. Z | 0
  22. ===|=====
  23. Uk. | 18
  24.  
  25. U istoj funkciji, u pročitanoj rečenici pretvoriti sva velika slova u mala i dodati kao novu rečenicu na kraj datoteke.
  26. U istoj funkciji, izračunati koliko je datoteka velika i zatvoriti je. Ispisati duljinu datoteke (u bajtovima).
  27.  
  28. */
  29.  
  30.  
  31. #include <stdio.h>
  32. #include <stdlib.h>
  33. #include <string.h>
  34. #include <ctype.h>
  35.  
  36. void intro();
  37. int write(char recenica[]);
  38. int read_and_count();
  39.  
  40. int main()
  41. {
  42.     char unos[80+1];
  43.     int i;
  44.    
  45.     intro();
  46.    
  47.     printf("Unesite recenicu do 80 znakova duzine (jedan red u konzoli).\n");
  48.     printf("Unesite \"xxx\" za testnu recenicu (radi ustede tipkanja).\n");
  49.     for (i=0; i<80; i++) printf("-"); //printa line
  50.     scanf("%80[^\n]", unos);
  51.    
  52.     //detekcija i postavljanje probne recenice
  53.     if (strcmp("xxx",unos) == 0) strcpy(unos, "QuIcKKK BrOwN FoXX JuMpS over ThE LaZZZZy DoGGie!");
  54.    
  55.     write(unos);
  56.     read_and_count();
  57.  
  58.     return 0;
  59. }
  60.  
  61. int write(char recenica[])
  62. {
  63.     FILE *datoteka = NULL;
  64.    
  65.     datoteka = fopen("unos.txt", "w");
  66.     if (datoteka == NULL)
  67.     {
  68.         printf(" *** Greska pri otvaranju datoteke!");
  69.         exit(1);       
  70.     }
  71.     else
  72.     {
  73.         fprintf(datoteka, "%s\n", recenica);
  74.         fclose(datoteka);
  75.     }  
  76.    
  77.     return 0;
  78. }
  79.  
  80. int read_and_count()
  81. {
  82.     FILE *datoteka = NULL;
  83.     char recenica_read[80+1];
  84.     char recenica_write[80+1];
  85.     int database[26] = {0};
  86.     char current_char;
  87.     int length, total = 0;
  88.     int i, j;
  89.    
  90.     { //****** otvaranje datoteke i citanje
  91.         datoteka = fopen("unos.txt", "r");
  92.         if (datoteka == NULL)
  93.         {
  94.             printf(" *** Greska pri otvaranju datoteke!");
  95.             exit(1);       
  96.         }
  97.         else
  98.         {
  99.             fscanf(datoteka, "%[^\n]", recenica_read);
  100.             fgetc(datoteka); //preskoči NewLine character
  101.             fclose(datoteka);
  102.         }
  103.     }
  104.    
  105.     { //****** prebrojavanje
  106.    
  107.         //kretanje po slovima
  108.         for (i=0; i<26; i++)
  109.         {
  110.             current_char = i+65;
  111.             length = strlen(recenica_read);
  112.             //kretanje po recenici
  113.             for (j=0; j<length; j++)
  114.             {
  115.                 //ako trenutni znak u recenici odgovoara trenutno testiranom (current_char) znaku, digni njegov index u database za 1
  116.                 if (recenica_read[j] == current_char)
  117.                 {
  118.                     database[i] = database[i] + 1; //povećaj vrijednost za taj znak u polju
  119.                     total = total + 1; //povećaj counter za ukupni broj velikih slova
  120.                 }
  121.             }
  122.         }
  123.     }
  124.    
  125.     { //****** ispis rezultata
  126.         system("cls");
  127.         printf("Recenica:\n");
  128.         printf("%s\n\n\n", recenica_read);
  129.        
  130.        
  131.     //prvih 13 slova (A-M)
  132.         //zaglavlje
  133.         printf("| Slovo |");
  134.         for (i=0; i<13; i++)
  135.         {
  136.             current_char = i+65;
  137.             printf("  %c |", current_char);
  138.         }
  139.         printf("\n");
  140.        
  141.         //spacer
  142.         printf("+-------+");
  143.         for (i=0; i<13; i++)
  144.         {
  145.             printf("----+");
  146.         }
  147.         printf("\n");
  148.        
  149.         //podatci
  150.         printf("|  Broj |");
  151.         for (i=0; i<13; i++)
  152.         {
  153.             current_char = i+65;
  154.             if (database[i] == 0) printf("  . |"); //ispisuje točku umjesto nule (lakše vidjeti rezultate)
  155.             else printf(" %2d |", database[i]);
  156.         }
  157.         printf("\n\n\n\n");
  158.        
  159.     //drugih 13 slova (N-Z)
  160.         //zaglavlje
  161.         printf("| Slovo |");
  162.         for (i=13; i<26; i++)
  163.         {
  164.             current_char = i+65;
  165.             printf("  %c |", current_char);
  166.         }
  167.         printf("\n");
  168.        
  169.         //spacer
  170.         printf("+-------+");
  171.         for (i=13; i<26; i++)
  172.         {
  173.             printf("----+");
  174.         }
  175.         printf("\n");
  176.        
  177.         //podatci
  178.         printf("|  Broj |");
  179.         for (i=13; i<26; i++)
  180.         {
  181.             current_char = i+65;
  182.             if (database[i] == 0) printf("  . |"); //ispisuje točku umjesto nule (lakše vidjeti rezultate)
  183.             else printf(" %2d |", database[i]);
  184.         }
  185.         printf("\n\n\n");
  186.         printf("Ukupno velikih slova: %d\n\n\n", total);
  187.        
  188.         system("pause");
  189.     }
  190.    
  191.     { //****** Convert velika slova u mala & append to the end
  192.         length = strlen(recenica_read);
  193.         //kretanje po recenici
  194.         for (j=0; j<length; j++)
  195.         {
  196.             //ako je trenutni znak veliko slovo...
  197.             if (isupper(recenica_read[j]) != 0)
  198.             {
  199.                 //...zapiši ga na istu poziciju u drugom polju kao malo slovo (putem tolower() funkcije)
  200.                 recenica_write[j] = tolower(recenica_read[j]);
  201.             }
  202.             else
  203.             {
  204.                 //Ako nije veliko slovo, samo ga prepiši
  205.                 recenica_write[j] = recenica_read[j];
  206.             }
  207.         }
  208.         recenica_write[length] = '\0'; //manualno dodavanje terminalnog znaka! Obavezno!
  209.        
  210.         //ispis na ekranu
  211.         system("cls");
  212.         printf("Originalna recenica:\n");
  213.         printf("%s\n\n", recenica_read);
  214.         printf("Recenica sa iskljucivo malim slovima:\n");
  215.         printf("%s\n\n\n", recenica_write);
  216.        
  217.         //Otvaranje datoteke za dodavanje
  218.         datoteka = fopen("unos.txt", "a");
  219.         if (datoteka == NULL)
  220.         {
  221.             printf(" *** Greska pri otvaranju datoteke!");
  222.             exit(1);       
  223.         }
  224.         else
  225.         {
  226.             //zapisivanje u datoteku
  227.             fprintf(datoteka, "%s\n", recenica_write);
  228.             printf("\n\n *** Nova recenica dodana u datoteku!");
  229.         }
  230.            
  231.         //size of file & close
  232.         rewind(datoteka);
  233.         fseek(datoteka, 0L, SEEK_END);
  234.         printf("\n\n *** Velicina datoteke: %.0f byte", (double)ftell(datoteka));
  235.    
  236.         fclose(datoteka);
  237.     }
  238. }
  239.  
  240. void intro()
  241. {
  242.     printf(" ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ\n");
  243.     printf("  Ű۲±°°  ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»  °°±˛ŰŰ \n");
  244.     printf("   ۲±°  ÉĽ                                                          Č»  °±˛Ű  \n");
  245.     printf("   ۲±°  ş          Ż  INSTRUKCIJE IZ PROGRAMIRANJA U C-u  ®          ş  °±˛Ű  \n");
  246.     printf("   ۲±°  Č»                                                          ÉĽ  °±˛Ű  \n");
  247.     printf("   ۲±°   ČËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËĽ   °±˛Ű  \n");
  248.     printf("   ۲±°    ş                                                        ş    °±˛Ű  \n");
  249.     printf("   ۲±°    ş    ţ 4-godisnje iskustvo, primarno sa studentima       ş    °±˛Ű  \n");
  250.     printf("   ۲±°    ş           TVZ-a s racunarstva i informatike            ş    °±˛Ű  \n");
  251.     printf("   ۲±°    ş                                                        ş    °±˛Ű  \n");
  252.     printf("   ۲±°    ş    ţ prilagodjenost programu i ucenje kroz praksu      ş    °±˛Ű  \n");
  253.     printf("   ۲±°    ş                                                        ş    °±˛Ű  \n");
  254.     printf("   ۲±°    ş    ţ individualne, grupne i intenzivne instrukcije     ş    °±˛Ű  \n");
  255.     printf("   ۲±°    ş                                                        ş    °±˛Ű  \n");
  256.     printf("   ۲±°    ş    ţ sat instrukcija vec od 25 kn! ***                 ş    °±˛Ű  \n");
  257.     printf("   ۲±°    ş                                                        ş    °±˛Ű  \n");
  258.     printf("   ۲±°    ş                                                        ş    °±˛Ű  \n");
  259.     printf("   ۲±°    ş  ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ KONTAKT ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄż  ş    °±˛Ű  \n");
  260.     printf("   ۲±°    ş  ł                                                  ł  ş    °±˛Ű  \n");
  261.     printf("   ۲±°    ş  ł            HC.Instructions@gmail.com             ł  ş    °±˛Ű  \n");
  262.     printf("   ۲±°    ş  ł                                                  ł  ş    °±˛Ű  \n");
  263.     printf("   ۲±°    Č» ŔÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄŮ ÉĽ    °±˛Ű  \n");
  264.     printf("   ۲±°     ş                                                      ş     °±˛Ű  \n");
  265.     printf("   ۲±°     ş    *** = ovisno od odabrane opcije. 1 h = 60 min.    ş     °±˛Ű  \n");
  266.     printf("  Ű۲±°°    ČÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍĽ    °°±˛ŰŰ");
  267.     getch();
  268.     system("cls");
  269. }
Add Comment
Please, Sign In to add comment