Advertisement
Guest User

STRUKTURE I DATOTEKE ISPITNI

a guest
Jan 18th, 2017
667
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.19 KB | None | 0 0
  1. STRUKTURE ZADATAK:
  2. FUNKCIJA PRIMA NIZ TACAKA I NIZ PRAVOUGAONIKA TE NJIHOVE DUZINE. FUNKCIJA TREBA VRATITI BROJ PRAVOUGAONIKA KOJI SADRZAVAJU SVE TACKE
  3. -----------------------------------------------------------------------------------------------
  4. #include <stdio.h>
  5. #include <stdlib.h>
  6. struct tacka{
  7. int x,y;
  8.  
  9. };
  10. struct pravougaonik{ //donja lijeva i gornja desna
  11. struct tacka dl,gd;
  12. };
  13.  
  14. int obuhvat(struct tacka *t, int velt, struct pravougaonik*k,int velp){
  15. int brojp=0, brojt=0; int i, j;
  16. for(i=0;i<velp;i++){ //prodjemo kroz pravouganike
  17. brojt=0; //postavimo broj tacaka koji zadovoljavaju uslov na 0
  18. for(j=0;j<velt;j++){ //prodjemo kroz tacke
  19. if(t[j].x>k[i].dl.x && t[j].x<k[i].gd.x && t[j].y>k[i].dl.y && t[j].y<k[i].gd.y)
  20. brojt++; //ako je tacka izmedju donje lijebe i gornje desne po x i y znaci da je unutra i povecamo broj tacaka
  21. if(brojt==velt) //ako smo prosli sve tacke i uslov zadovoljavaju sve
  22. brojp++; //broj pravougaonika povecamo
  23. }
  24. }
  25. return brojp;
  26. }
  27.  
  28. int main(){
  29. struct tacka t[3]={{1,1},{2,2},{3,3}};
  30. struct pravougaonik k[2]={
  31. {{0,0},{1,1}},{{0,0},{5,5}}
  32. };
  33. printf("%d",obuhvat(t,3,k,2));
  34. return 0;
  35. }
  36.  
  37. ZADATAK DATOTEKA:
  38. IZ ULAZNE DATOTEKE UCITATI TEKST I U IZLAZNU ISPISATI SAMO ONE ZNAKOVE KOJI SE POJAVLJUJU U ULAZNOJ ALI IH ISPISATI PO BROJU PONAVLJANJA
  39. ------------------------------------------------------------------------------------------
  40. #include <stdlib.h>
  41.  
  42. int main(){
  43. FILE* ulaz=fopen("asim.txt","r");
  44. if(ulaz==NULL) {
  45. printf("greska pri otvaranju");
  46. exit(1);
  47. }
  48. FILE *izlaz=fopen("izlaz.txt","w+");
  49. if(izlaz==NULL) {
  50. printf("greska pri otvaranju");
  51. fclose(ulaz);
  52. exit(2);
  53. }
  54.  
  55. char znak=fgetc(ulaz);
  56. int brojaci[127]={0}; //niz brojaca
  57. char slova[127]; //niz znakova redom po ascii
  58. int i;
  59. for(i=0;i<127;i++) slova[i]=i; //napunimo ga znakovima po ascii
  60.  
  61. while(znak!=EOF){ //prodjemo kroz datoteku uzimamo znak po znak
  62. brojaci[znak]++; //niz brojaca na poziciji znak povecamo za 1 da znamo da se taj znak 1 ponovio
  63. znak=fgetc(ulaz);
  64. }
  65. int j;
  66. for(i=0;i<127;i++){ //prodjemo kroz nasa nizove
  67. for(j=i;j<127;j++){
  68. if(brojaci[j]>brojaci[i]){ //sortiramo od vecih ka manjim
  69. int temp=brojaci[i]; //obrnemo brojeve
  70. brojaci[i]=brojaci[j];
  71. brojaci[j]=temp;
  72. char temp1=slova[i]; //usput obrcemo i slova
  73. slova[i]=slova[j];
  74. slova[j]=temp1;
  75. }
  76.  
  77. }
  78. }
  79. int ukupno=0;
  80. for(i=0;i<127;i++) if(brojaci[i]!=0) ukupno++; //izbrojimo koliko ima slova koja su razlicita od nule
  81. for(i=0;i<ukupno;i++) {
  82. fputc(slova[i],izlaz); //redom ubacujemo slova
  83. fputc(brojaci[i]+'0',izlaz); //i njihov broj ponavljanja
  84. }
  85. fclose(ulaz);
  86. fclose(izlaz);
  87. return 0;
  88. }
  89.  
  90. ZADATAK DATOTEKE:
  91. UNIJETI 2 BROJA SA DO WHILE PETLJOM, MORA DRUGI BITI VECI OD PRVOG. IZ ULAZNE DATOTEKE PREPISATI U IZLAZNU SVE ZNAKOVE KOJI SU PO ASCII VRIJEDNOSTI IZMEDJU TA 2 NASA BROJA
  92. ----------------------------------------------------------------------------------------
  93. #include <stdio.h>
  94. #include <stdlib.h>
  95.  
  96. int main()
  97. {
  98. FILE *ULAZ=fopen("asim.txt","r");
  99. if(ULAZ==NULL){
  100. printf("greska");
  101. exit (1);
  102. }
  103. FILE *IZLAZ=fopen("izlaz.txt","w");
  104. if(IZLAZ==NULL){
  105. printf("greska");
  106. fclose(ULAZ);
  107. exit (1);
  108. }
  109. int prvi, drugi;
  110. do{
  111. scanf("%d %d",&prvi,&drugi);
  112. }while(drugi<prvi);
  113. char znak=fgetc(ULAZ);
  114.  
  115. while(znak!=EOF){
  116. if(znak>prvi&& znak<drugi)
  117. fputc(znak,IZLAZ);
  118. znak=fgetc(ULAZ);
  119. }
  120.  
  121. fclose(ULAZ);
  122. fclose(IZLAZ);
  123. return 0;
  124. }
  125.  
  126. ZADATAK STRUKTURE:
  127. FUNKCIJA PRIMI NIZ STRUKTURA STUDENATA I VRATI ONOG SA NAJBOLJIM PROSJEKOM
  128. ---------------------------------------------------------------------------------
  129. #include <stdio.h>
  130.  
  131. struct Student{
  132. char ime[20],prezime[20];
  133. int ocjene[10];
  134.  
  135. };
  136.  
  137. float prosjek(int niz[10]){
  138. int i=0,suma=0;
  139. for(i=0;i<10;i++){
  140. if (niz[i]==5) return 5;
  141. suma+=niz[i];
  142. }
  143. return (float)suma/10;
  144. }
  145.  
  146. struct Student najbolji(struct Student* niz, int vel){
  147. float max=5;
  148. int i,indexbrata=0;
  149. for(i=0;i<vel;i++){
  150. if(prosjek(niz[i].ocjene)-max>0) {
  151. max=prosjek(niz[i].ocjene);
  152. indexbrata=i;
  153. }
  154.  
  155. }
  156.  
  157. return niz[indexbrata];
  158. }
  159. int main() {
  160. struct Student niz[4] = {
  161. {"Meho", "Mehic", {6,6,6,6,6,6,6,6,6,6}},
  162. {"Suljo", "Suljic", {9,9,9,9,9,9,9,9,9,9}},
  163. {"Pero", "Peric", {7,7,7,7,7,7,7,7,7,7}},
  164. {"Alma", "Almic", {8,8,8,8,8,8,8,8,8,8}}
  165. };
  166. struct Student rez = najbolji(niz, 4);
  167. printf ("%s %s", rez.ime, rez.prezime);
  168.  
  169. return 0;
  170. }
  171. ZADATAK DATOTEKE:
  172. UCITATI IZ DATOTEKE PLANINE I NJIHOVE VISINE, TE U IZLAZNU UPISATI SAMO VISINE ONE KOJE SU IZNAD ZADANE VISINE
  173. --------------------------------------------------------------
  174. #include <stdio.h>
  175. #include <stdlib.h>
  176.  
  177. struct pl{
  178. char ime[10];
  179.  
  180. int visina;
  181. };
  182. int main(){
  183. FILE* ulaz=fopen("asim.txt","r");
  184. if(ulaz==NULL) {
  185. printf("greska pri otvaranju");
  186. exit(1);
  187. }
  188. FILE *izlaz=fopen("izlaz.txt","w+");
  189. if(izlaz==NULL) {
  190. printf("greska pri otvaranju");
  191. fclose(ulaz);
  192. exit(2);
  193. }
  194. struct pl planine[100];
  195. int i=0,j;
  196. while(fscanf(ulaz,"%10s%d",planine[i].ime, &planine[i].visina)==2 ){
  197. i++;
  198. }
  199. printf("unesite visinu ");
  200. float pr;
  201. scanf("%f",&pr);
  202.  
  203. int k;
  204. for(k=0;k<i;k++){
  205. if(planine[k].visina>pr)
  206. fprintf(izlaz,"%d ",planine[k].visina);
  207.  
  208. }
  209. fclose(ulaz);
  210. fclose(izlaz);
  211. return 0;
  212. }
  213. ZADATAK DATOTEKE:
  214. UCITATI IME PREZIME BROJ OCJENA I OCJENE SVAKOG STUDENTA KOJI JE U DATOTECI, ZATIM UPISATI U IZLAZNU IME I PROSJEK ONIH STUDENATA KOJI IMAJU MANJI PROSJEK OD ZADANOG
  215. ---------------------------------------------------
  216. #include <stdio.h>
  217. #include <stdlib.h>
  218. float prosjek(int niz[], int vel){
  219. int suma=0;
  220. int i;
  221. for(i=0;i<vel;i++)suma=suma+niz[i];
  222.  
  223. return (float) suma/vel;
  224. }
  225. struct uc{
  226. char ime[10],prez[10];
  227. int br_oc;
  228. int ocjene[50];
  229. };
  230. int main(){
  231. FILE* ulaz=fopen("asim.txt","r");
  232. if(ulaz==NULL) {
  233. printf("greska pri otvaranju");
  234. exit(1);
  235. }
  236. FILE *izlaz=fopen("izlaz.txt","w+");
  237. if(izlaz==NULL) {
  238. printf("greska pri otvaranju");
  239. fclose(ulaz);
  240. exit(2);
  241. }
  242. struct uc studenti[100];
  243. int i=0,j;
  244. while(fscanf(ulaz,"%10s%10s%d",studenti[i].ime, studenti[i].prez, &studenti[i].br_oc)==3 && i<100){
  245. for(j=0;j<studenti[i].br_oc;j++)
  246. fscanf(ulaz,"%d",&studenti[i].ocjene[j]);
  247.  
  248. i++;
  249. }
  250. printf("unesite prosjek ");
  251. float pr;
  252. scanf("%f",&pr);
  253.  
  254. int k;
  255. for(k=0;k<i;k++){
  256. if(prosjek(studenti[k].ocjene,studenti[k].br_oc)<pr)
  257. fprintf(izlaz,"%10s %f\n",studenti[k].ime,prosjek(studenti[k].ocjene,studenti[k].br_oc));
  258.  
  259. }
  260. fclose(ulaz);
  261. fclose(izlaz);
  262. return 0;
  263. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement