Advertisement
MikiStrail

Лаб датотеки

Jan 10th, 2019
608
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 5.34 KB | None | 0 0
  1. Цифри и букви Problem 1 (1 / 3)
  2. Да се напише програма која од датотеката со име "text.txt" ќе ги одреди и отпечати на стандарден излез односот на цифри и букви.
  3. Забелешка: Да не се менува функцијата writeToFile(). Таа служи за креирање и пополнување на влезната датотека со податоците дадени на стандардниот влез.
  4. #include <stdio.h>
  5.  
  6. void writeToFile() {
  7.     FILE *f = fopen("text.txt", "w");
  8.     char c;
  9.     while((c = getchar()) != '#') {
  10.         fputc(c, f);
  11.     }
  12.     fclose(f);
  13. }
  14.  
  15. int main() {
  16.     writeToFile();
  17.     float l=0, br=0;
  18.     char ch;
  19.     FILE *f1;
  20.     if ((f1 = fopen("text.txt", "r")) == NULL) {
  21.         printf ("Datotekata ne se otvara");
  22.         return -1;
  23.     }
  24.     while ((ch = fgetc(f1))!=EOF) {
  25.         if (isalpha(ch)) {
  26.             l++;
  27.         }
  28.         if (isdigit(ch)) {
  29.             br++;
  30.         }
  31.     }
  32.     printf("%.2f",br/l);
  33.     fclose(f1);
  34.     return 0;
  35. }
  36.  
  37. Збир на редици на матрица Problem 2 (1 / 2)
  38. Да се напише програма која ќе ги прочита елементите на една матрица сместени во текстуална датотека „matrica.txt“. Во првиот ред на датотеката се запишани бројот на редици и колони на матрицата, а потоа се запишани елементите на матрицата. Потребно е за секоја редица да го пресметате збирот на елементите и во текстуалната датотека „izlez.txt“ да се испечатат само оние збирови по редици коишто се поголеми од 10.
  39.  
  40. Забелешка: Да не се менуваат дадените функции writeToFile() printFile(). Тие служат за креирање и проверка на потребните датотеки.
  41.  
  42. #include <stdio.h>
  43. #define MAX 100
  44. void writeToFile() {
  45.     FILE *f = fopen("matrica.txt", "w");
  46.     char c;
  47.     while((c = getchar()) != '#') {
  48.         fputc(c, f);
  49.     }
  50.     fclose(f);
  51. }
  52. void printFile() {
  53.     FILE *f=fopen("izlez.txt","r");
  54.     char line[100];
  55.     while(!feof(f)) {
  56.         fgets(line,100,f);
  57.         if (feof(f))
  58.             break;
  59.         printf("%s",line);
  60.     }
  61.     fclose(f);
  62. }
  63. int main() {
  64.     writeToFile();
  65.     FILE *f1, *f2;
  66.     char c;
  67.     int h, b, m[MAX][MAX], i, r, s = 0;
  68.     if((f1 = fopen("matrica.txt", "r")) == NULL) {
  69.         printf("Datotekata ne se otvora.");
  70.         return -1;
  71.     }
  72.     fscanf(f1,"%d %d", &h, &b);
  73.     for(i = 0; i < h&&!feof(f1); i++) {
  74.         for(r = 0; r < b&&!feof(f1); r++) {
  75.             fscanf(f1, "%d", &m[i][r]);
  76.         }
  77.     }
  78.     fclose(f1);
  79.     f2 = fopen("output.txt", "w");
  80.     for(i = 0; i < h; i++) {
  81.         for(r = 0; r < b; r++) {
  82.             s=s+m[i][r];
  83.         }
  84.         if(s > 10) {
  85.             printf("%d\n", s);
  86.         }
  87.         s = 0;
  88.     }
  89.     fclose(f2);
  90.     printFile();
  91.     return 0;
  92. }
  93.  
  94. Зборови палиндроми 3 Problem (3/4)
  95. #include <stdio.h>
  96. #define MAX 100
  97. #include <ctype.h>
  98. #include <string.h>
  99.  
  100. void writeToFile() {
  101.     FILE *f = fopen("text.txt", "w");
  102.     char c;
  103.     while((c = getchar()) != '#') {
  104.         fputc(c, f);
  105.     }
  106.     fclose(f);
  107. }
  108.  
  109. void printFile() {
  110.     FILE *f=fopen("print.txt","r");
  111.     char line[100];
  112.     while(!feof(f)){
  113.         fgets(line,100,f);
  114.         if (feof(f))
  115.             break;
  116.         printf("%s",line);
  117.     }
  118.     fclose(f);
  119. }
  120.  
  121. int e_palindrom(char c[])
  122. {
  123.     int i,j,k=0;
  124.     char n[MAX];
  125.     for (i=0;i<strlen(c);i++)
  126.     {
  127.         if (isalpha(c[i]))
  128.         {
  129.             n[k]=c[i];
  130.             k++;
  131.         }
  132.     }
  133.     n[k]='\0';
  134.     for (i=0,j=strlen(n)-1;i<strlen(n);i++,j--)
  135.     {
  136.         if (tolower(n[i])!= tolower(n[j])) return 0;
  137.     }
  138.     for (i=0;i<strlen(n);i++)
  139.     {
  140.         c[i]=n[i];
  141.     }
  142.     c[i]='\0';
  143.     return 1;
  144. }
  145.  
  146. int main() {
  147.     writeToFile();
  148.    
  149.     char n[MAX];
  150.     FILE *dat1=fopen("text.txt","r");
  151.     FILE *dat2=fopen("print.txt","w");
  152.     while (fscanf(dat1,"%s",n)!=EOF)
  153.     {
  154.         if (e_palindrom(n))
  155.         {
  156.             fprintf(dat2,"%s\n",n);
  157.         }
  158.     }
  159.     fclose (dat1);
  160.     fclose (dat2);
  161.     printFile();
  162.     return 0;
  163. }
  164.  
  165. Позиција на ред 4 Problem (4/4)
  166. #include <stdio.h>
  167. #include <string.h>
  168.  
  169. int main(){
  170.     FILE * fpInput;
  171.     fpInput = fopen("text.txt", "r");
  172.     if(NULL == fpInput){
  173.         puts("GRESKA PRI CITANJE DATOTEKA");
  174.         return -1;
  175.     }
  176.     int upperCaseCount=0,lineNum=0,tempCaseCount=0;
  177.     int k=1;
  178.     char red[80];
  179.     while ((fgets(red,80,fpInput))!=NULL){
  180.         int i;
  181.         printf("%d. %s",k,red);
  182.         for(i=0;i<strlen(red);i++)
  183.             if(isupper(red[i]))
  184.                 tempCaseCount++;
  185.             if(tempCaseCount>upperCaseCount){
  186.                 upperCaseCount=tempCaseCount;
  187.                 lineNum=k;
  188.             }
  189.             k++;
  190.             tempCaseCount=0;
  191.         }
  192.     printf("%d RED, %d Bukvi", lineNum,upperCaseCount);
  193.     fclose(fpInput);
  194.     return 0;
  195. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement