Advertisement
Guest User

Untitled

a guest
Jan 20th, 2020
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.52 KB | None | 0 0
  1. [17:54, 20.01.2020] Beni: #define _CRT_SECURE_NO_WARNINGS
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. int cerintaC(int** a, int n);
  5. int cerintaD(int** a, int n);
  6. int cerintaE(int** a, int n);
  7. void cerintaF(int** a, int n);
  8. int main()
  9. {
  10. char in_fis[] = "fis.in";
  11. FILE* in = fopen(in_fis, "r"); ///deschide fisierul pentru citire(r)
  12. int** a, n;
  13. fscanf(in, "%d", &n); ///citeste n
  14. if (a = (int**)malloc(n * sizeof(int))) ///aloca memorie dinamic pentru matrice ( doar coloana 0 )
  15. {
  16. for (int i = 0; i < n; i++)
  17. {
  18. a[i] = (int*)malloc(n * sizeof(int)); ///aloca memorie dinamic pentru fiecare pozitie din coloana 0 (n elemente pentru fiecare
  19. if (a[i] == 0)
  20. {
  21. printf("eroare de alocare", in_fis);
  22. return 0;
  23. }
  24. }
  25. for (int i = 0; i < n; i++) ///merge pe linie
  26. {
  27. for (int j = 0; j < n; j++) /// merge pe coloana
  28. {
  29. fscanf(in, "%d", &a[i][j]); ///citeste din fisier matricea
  30. }
  31. }
  32. }
  33. else
  34. {
  35. printf("eroare de alocare", in_fis);
  36. return 0;
  37. }
  38. if (in == NULL)
  39. {
  40. printf("eroare la dechiderea fisierului", in_fis);
  41. return 0;
  42. }
  43. if (cerintaC(a, n) == 1)///afiseaza rezultatul de la functie (depinde ce returneaza fct
  44. {
  45. printf("elementele sunt pozitive si cuprinse in unul dintre intervale\n", in_fis);
  46. }
  47. else
  48. {
  49. printf("elementele nu sunt pozitive si cuprinse in unul dintre intervale\n", in_fis);
  50. }
  51. printf("suma elem. impare este: %d \n", cerintaD(a, n));
  52. if (cerintaE(a, n) == 1)
  53. {
  54. printf("exista linii sau coloane egale cu 32\n", in_fis);
  55. }
  56. else
  57. {
  58. printf("nu exista linii sau coloane egale cu 32\n", in_fis);
  59. }
  60. cerintaF(a, n);///asta scrie in fiser in interiorul ei
  61. fclose(in);
  62. }
  63. int cerintaC(int** a, int n)
  64. {
  65. int ok1 = 0, ok2 = 0, ok = 0;
  66. for (int i = 0; i < n; i++) ///pentru linii
  67. {
  68. for (int j = 0; j < n; j++) ///pt coloane
  69. {
  70. if ((a[i][j] >= 65 && a[i][j] <= 90) && (a[i][j] > 0)) ///in astea 2 if -uri verifica daca s in intervalale cerute
  71. {
  72. ok1 = 1;
  73. }
  74. if ((a[i][j] >= 32 && a[i][j] <= 65) && (a[i][j] > 0))
  75. {
  76. ok2 = 1;
  77. }
  78. }
  79. }
  80. if (ok1 == 1 || ok2 == 0)
  81. ok = 1;
  82. return ok;
  83. }
  84. int cerintaD(int** a, int n)
  85. {
  86. int s = 0;
  87. for (int i = 0; i < n; i++)
  88. {
  89. for (int j = 0; j < n; j++)
  90. {
  91. if ((i + j) % 2 == 1)
  92. {
  93. s = s + a[i][j]; /// face suma elementelor din pozitii impare
  94. }
  95. }
  96. }
  97. return s;
  98. }
  99. int cerintaE(int** a, int n)
  100. {
  101. int okl = 0, okc = 0, okcerinta = 0;
  102. for (int i = 0; i < n; i++) ///verica pentru fiecare linie daca are 32
  103. {
  104. int ok = 1;
  105. for (int j = 0; j < n; j++)
  106. {
  107. if (a[i][j] != 32)
  108. {
  109. ok = 0;
  110. }
  111.  
  112. }
  113. if (ok == 1)
  114. {
  115. return ok;
  116. break;
  117. }
  118. }
  119. for (int i = 0; i < n; i++)///verica pentru fiecare coloana daca are 32
  120. {
  121. int ok = 1;
  122. for (int j = 0; j < n; j++)
  123. {
  124. if (a[j][i] != 32)
  125. {
  126. ok = 0;
  127. }
  128.  
  129. }
  130. if (ok == 1)
  131. {
  132. return ok;
  133. break;
  134. }
  135. }
  136. }
  137. void cerintaF(int** a, int n)
  138. {
  139. char out_fis[] = "fis.out";
  140. FILE* out = fopen(out_fis, "w"); /// deschide fisierul pentru scriere ( W)
  141. for (int i = 0; i < n; i++)
  142. {
  143. for (int j = 0; j < n; j++)
  144. {
  145. if (i + j == n - 1) /// merge pe diagonala secundara
  146. {
  147. fprintf(out, "%c ", a[i][j]); ///o transforma in carecter
  148. }
  149. else
  150. fprintf(out, "%d ", a[i][j]);
  151.  
  152. }
  153. fprintf(out, "\n");
  154. }
  155. fclose(out);
  156. }
  157. [17:54, 20.01.2020] Beni: cateva comentarii
  158. [17:54, 20.01.2020] Beni: la prob ce mi ai trimis o
  159. [17:54, 20.01.2020] Beni: mai fac dupa ce vin de la romana
  160. [18:06, 20.01.2020] Dragoș Briscan: bun
  161. [20:21, 20.01.2020] Beni: Ceau
  162. [20:21, 20.01.2020] Beni: Acum am ajuns acasă
  163. [20:21, 20.01.2020] Beni: Ma pun sa fac
  164. [20:21, 20.01.2020] Beni: Si ma mai poti întreba ce nu stii
  165. [20:22, 20.01.2020] Beni: Si sper sa ti pot raspunde
  166. [20:24, 20.01.2020] Dragoș Briscan: Okk
  167. [22:28, 20.01.2020] Beni: #include <iostream>
  168. #include <fstream>
  169. using namespace std;
  170.  
  171. struct student{
  172. char nume[30];
  173. char prenume[30];
  174. int nr_matricol;
  175. short grupa;
  176. float note[21];
  177. };
  178.  
  179. void cerintaB(struct student *p, int n);
  180. void cerintaC(struct student *p , int n);
  181. int main()
  182. {
  183. struct student *p;
  184. int n;
  185. FILE *f;
  186. char fileName[255]={"fisier.in"};
  187.  
  188.  
  189. if((f = fopen(fileName,"r"))==NULL)
  190. {
  191. cout<<"Eroare la deschiderea fisierului";
  192. return 0;
  193. }
  194. fscanf(f, "%d", &n); ///citesc n din fisier
  195.  
  196. if(!(p = new struct student[n])) ///alocare memorie dinamica pentru un sir in care se pot memora n elevi cu toate datele de la struct student
  197. {
  198. cout<<"Eroare la alocarea d…
  199. [23:38, 20.01.2020] Beni: #include <iostream>
  200. #include <fstream>
  201. #include <string.h>
  202. using namespace std;
  203.  
  204. struct puncte{
  205. float x;
  206. float y;
  207. char denumire[255];
  208. };
  209. void cerintaC(struct puncte *p, int n);
  210. void cerintaD(struct puncte *p , int n);
  211. void cerintaE(struct puncte *p , int n);
  212.  
  213. int main()
  214. {
  215. struct puncte *p;
  216. int n;
  217. FILE *f;
  218. char fileName[255]={"fisier.in"};
  219.  
  220.  
  221. if((f = fopen(fileName,"r"))==NULL)
  222. {
  223. cout<<"Eroare la deschiderea fisierului";
  224. return 0;
  225. }
  226. fscanf(f, "%d", &n); ///citesc n din fisier
  227.  
  228. if(!(p = new struct puncte[n])) ///alocare memorie dinamica pentru un sir in care se pot memora n elevi cu toate datele de la struct student
  229. {
  230. cout<<"Eroare la alocarea dinamica!";
  231. return 0;
  232. }
  233. for(int i=0; i<n; ++i)
  234. {
  235. fscanf(f,"%f", &(p+i) -> x );
  236. fscanf(f,"%f", &(p+i) -> y );
  237. fgets((p+i)->denumire,sizeof (p+i)->denumire,f)!= NULL; /// citesc cuvintele de dupa puncte(denumirea)
  238. }
  239. cerintaC(p,n);
  240. cerintaD(p,n);
  241. cerintaE(p,n);
  242. return 0;
  243. }
  244.  
  245. void cerintaC(struct puncte *p, int n)
  246. {
  247. for(int i=0; i<n; ++i)
  248. {
  249. if((p+i)->x <-1 || (p+i)->x >1 || (p+i)->y <-1 || (p+i)->y >1) /// verific sa fie cuprinse intre -1 si 1
  250. {
  251. cout<<"Datele pentru punctul " <<i+1 << " nu respecta valorile corecte\n" ;
  252. }
  253.  
  254. }
  255. }
  256. void cerintaD(struct puncte *p,int n)
  257. {
  258. for(int i=0 ; i<n; ++i)
  259. {
  260. if(strstr((p+i)->denumire ,"restaurant") != 0)
  261. cout<<(p+i)->denumire;
  262.  
  263. }
  264. }
  265. void cerintaE(struct puncte *p, int n)
  266. {
  267. char fileout[255]="fisier.out";
  268. FILE *out = fopen(fileout,"w");
  269. for(int i=0 ; i<n; ++i)
  270. {
  271. if((p+i)->x == 0 || (p+i)->y == 0)
  272. fprintf(out,"%s ",(p+i)->denumire);
  273. }
  274. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement