Advertisement
simov

SP Lab. 9

Dec 16th, 2013
710
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.82 KB | None | 0 0
  1. 1. Цифри и букви
  2. Да се напише програма која од датотеката со име "text.txt" ќе ги одреди и отпечати на стандарден излез односот на цифри и букви. Забелешка: Да не се менува функцијата writeToFile(). Таа служи за креирање и пополнување на влезната датотека со податоците дадени на стандардниот влез.
  3.  
  4. Sample input:
  5. t is preferable to avoid 4134sav54543253ing empty li432432434nes on the history list, since users rarely have a burning need to reuse a blan7777k line. Here is a 23 function which 3 usefully repla98343242ces the 42134 4354678789876978standard gets() library function, and has the advantage of no static buffer to overflow#
  6. Sample output:
  7. 0.27
  8. -------------------------------------------------
  9. #include <stdio.h>
  10.  
  11. void writeToFile()
  12. {
  13. FILE* f = fopen("text.txt", "w");
  14. char c;
  15. while((c = getchar()) != '#')
  16. {
  17. fputc(c, f);
  18. }
  19. fclose(f);
  20. }
  21.  
  22. int main()
  23. {
  24. writeToFile();
  25. FILE* file = fopen("text.txt", "r");
  26.  
  27. int cifri = 0, bukvi = 0;
  28. char c;
  29.  
  30. while((c = fgetc(file)) != EOF)
  31. {
  32. if (isalpha(c)) bukvi++;
  33. else if (isdigit(c)) cifri++;
  34. }
  35.  
  36. fclose(file);
  37.  
  38. float odnos = (float)cifri / (float)bukvi;
  39. printf("%.2f", odnos);
  40. return 0;
  41. }
  42. -------------------------------------------------
  43. 2. Збир на редици на матрица
  44. Да се напише програма која ќе ги прочита елементите на една матрица сместени во текстуална датотека „matrica.txt“. Во првиот ред на датотеката се запишани бројот на редици и колони на матрицата, а потоа се запишани елементите на матрицата. Потребно е за секоја редица да го пресметате збирот на елементите и во текстуалната датотека „izlez.txt“ да се испечатат само оние збирови по редици коишто се поголеми од 10. Забелешка: Да не се менуваат дадените функции writeToFile() printFile(). Тие служат за креирање и проверка на потребните датотеки.
  45.  
  46. Sample input:
  47. 5 5
  48. 8 2 8 0 7
  49. 1 3 -1 3 8
  50. 2 3 5 8 1
  51. 7 0 -1 1 0
  52. 0 8 0 1 2
  53. #
  54. Sample output:
  55. 25
  56. 14
  57. 19
  58. 11
  59. -------------------------------------------------
  60. #include <stdio.h>
  61.  
  62. void writeToFile() {
  63. FILE *f = fopen("matrica.txt", "w");
  64. char c;
  65. while((c = getchar()) != '#') {
  66. fputc(c, f);
  67. }
  68. fclose(f);
  69. }
  70.  
  71. void printFile() {
  72.  
  73. FILE *f=fopen("izlez.txt","r");
  74. char line[100];
  75. while(!feof(f)){
  76. fgets(line,100,f);
  77. if (feof(f))
  78. break;
  79. printf("%s",line);
  80. }
  81. fclose(f);
  82. }
  83.  
  84. int main()
  85. {
  86. writeToFile();
  87.  
  88. FILE *f1,*f;
  89. char c;
  90. int m,n,a[100][100],i,j,suma=0;
  91.  
  92. if((f1 = fopen("matrica.txt","r")) == NULL)
  93. {
  94. printf ("Datotekata nemoze da se otvori");
  95. return -1;
  96. }
  97.  
  98. fscanf(f1, "%d %d", &m, &n);
  99. for(i = 0; i < m && !feof(f1); i++)
  100. {
  101. for(j = 0; j < n && !feof(f1); j++)
  102. {
  103. fscanf (f1, "%d", &a[i][j]);
  104. }
  105. }
  106.  
  107. fclose(f1);
  108.  
  109. f = fopen("izlez.txt", "w");
  110. for(i = 0; i < m && !feof(f1); i++)
  111. {
  112. for(j = 0; j < n && !feof(f1); j++)
  113. {
  114. suma = suma + a[i][j];
  115. }
  116. if(suma > 10) printf("%d\n",suma);
  117. suma = 0;
  118. }
  119.  
  120. fclose(f);
  121. printFile();
  122. return 0;
  123. }
  124. -------------------------------------------------
  125. 3. Зборови палиндроми
  126. Да се направи програма која од влезната датотека „text.txt“ ќе ги одреди и отпечати сите зборови палиндроми во излезната датотека „print.txt“. Да се избегнуваат интерпукциските знаци точка (.) и запирка (,) и да не се прави разлика меѓу големи и мали букви. Забелешка: Да не се менуваат дадените функции writeToFile() printFile(). Тие служат за креирање и проверка на потребните датотеки.
  127.  
  128. Sample input:
  129. Ana vozi kajak, a Ema trotinet. I potoa im se prikluci Marko.#
  130. Sample output:
  131. Ana
  132. kajak
  133. a
  134. I
  135. -------------------------------------------------
  136. #include <stdio.h>
  137.  
  138. void writeToFile() {
  139. FILE *f = fopen("text.txt", "w");
  140. char c;
  141. while((c = getchar()) != '#') {
  142. fputc(c, f);
  143. }
  144. fclose(f);
  145. }
  146.  
  147. void printFile() {
  148. FILE *f=fopen("print.txt","r");
  149. char line[100];
  150. while(!feof(f)){
  151. fgets(line,100,f);
  152. if (feof(f))
  153. break;
  154. printf("%s",line);
  155. }
  156. fclose(f);
  157. }
  158.  
  159. int palindrom (char niza[])
  160. {
  161. int a = strlen(niza), i, j = a;
  162. if(!isalpha(niza[a-1])) a -= 1;
  163.  
  164. for(i = 0; i < a/2; i++)
  165. {
  166. if (tolower(niza[i]) != tolower(niza[a-i-1]))
  167. return 0;
  168. }
  169.  
  170. return 1;
  171. }
  172. int main()
  173. {
  174. writeToFile();
  175. FILE *f1;
  176.  
  177. char niza[100];
  178. if ((f1 = fopen("text.txt", "r")) == NULL)
  179. {
  180. printf ("Datotekata nemoze da se otvori");
  181. return -1;
  182. }
  183.  
  184. while(!feof(f1))
  185. {
  186. fscanf(f1,"%s",niza);
  187. if(palindrom(niza))
  188. if(!isalpha(niza[strlen(niza)-1]))
  189. printf("%.*s\n", (int)strlen(niza)-1, niza);
  190. else printf("%s\n",niza);
  191. }
  192.  
  193. fclose(f1);
  194. return 0;
  195. }
  196. -------------------------------------------------
  197. 4. Позиција на ред
  198. Да се напише програма која од дадена датотека text.txt ќе ја испечати позицијата на редот кој содржи најголем број на големи букви. Максималната должина на еден ред е 80 знаци. Доколку има повеќе редови со ист максимален број на големи букви, треба да се испечати позицијата на првиот од нив. Забелешка: Да не се менува функцијата writeToFile(). Таа служи за креирање и пополнување на влезната датотека со податоците дадени на стандардниот влез.
  199.  
  200. Sample input:
  201. Chuck Norris doesn't read books.
  202. He stares them down until he gets
  203. the information he wants.#
  204. Sample output:
  205. 1
  206. -------------------------------------------------
  207. #include <stdio.h>
  208.  
  209. void writeToFile() {
  210. FILE *f = fopen("text.txt", "w");
  211. char c;
  212. while((c = getchar()) != '#') {
  213. fputc(c, f);
  214. }
  215. fclose(f);
  216. }
  217.  
  218. int main()
  219. {
  220. writeToFile();
  221. FILE *f1;
  222. char c;
  223.  
  224. char niza[100];
  225. if ((f1 = fopen("text.txt", "r")) == NULL)
  226. {
  227. printf ("Datotekata nemoze da se otvori");
  228. return -1;
  229. }
  230.  
  231. int maxGolemi = 0, red = 1, brGolemi = 0
  232. , redMaxGolemi;
  233. while((c = fgetc(f1)))
  234. {
  235. if (c != '\n' && c != EOF)
  236. {
  237. if (isupper(c))
  238. {
  239. brGolemi++;
  240. }
  241. }
  242. else
  243. {
  244. if (brGolemi > maxGolemi)
  245. {
  246. maxGolemi = brGolemi;
  247. redMaxGolemi = red;
  248. }
  249. brGolemi = 0;
  250. red++;
  251. }
  252. if (c == EOF) break;
  253. }
  254.  
  255. fclose(f1);
  256. printf("%d", redMaxGolemi);
  257.  
  258. return 0;
  259. }
  260. -------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement