Datoteke predavač: Nadežda Jakšić

Слични документи
Microsoft PowerPoint - Datoteke [Compatibility Mode]

Uvod u računarstvo 2+2

Programski jezik C

Programski jezici i strukture podataka

Microsoft PowerPoint - 11.Programski_Jezik_C_ulaz-izlaz [Compatibility Mode]

PHP kod

Uvod u računarstvo 2+2

Strukture predavač: Nadežda Jakšić

Funkcije predavač: Nadežda Jakšić

Razvoj programa, Code::Blocks, struktura programa, printf, scanf, konverzioni karakteri predavač: Nadežda Jakšić

Programski jezici i strukture podataka 2018/2019. Programski jezici i strukture podataka Računarske vežbe vežba 10 Zimski semestar 2018/2019. Studijsk

Programiranje 1 Beleške sa vežbi Školska 2007/2008 godina Matematički fakultet, Beograd Jelena Tomašević December 5, 2007

07_PJISP_II_Predavanja

Grananje u programu predavač: Nadežda Jakšić

Računarski praktikum I - Vježbe 03 - Implementacija strukture string

Microsoft PowerPoint - Programski_Jezik_C_Organizacija_Izvornog_Programa_I_Greske [Compatibility Mode]

Uvod u računarstvo 2+2

Programiranje u C-u ili C++-u Pseudo-slučajni brojevi; Dinamička alokacija memorije 1 ZADACI SA ČASA Zadatak 1 Napraviti funkciju koja generišlučajan

Funkcije predavač: Nadežda Jakšić

Programiranje 2 0. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog2 2019, 0. predavanje p. 1/4

MergedFile

PROGRAMIRANJE Program je niz naredbi razumljivih računalu koje rješavaju neki problem. Algoritam je postupak raščlanjivanja problema na jednostavnije

PowerPoint Presentation

Tutoring System for Distance Learning of Java Programming Language

Microsoft PowerPoint - MR - Vjezbe - 03.ppt [Compatibility Mode]

Konverzije, operatori, matematičke funkcije predavač: Nadežda Jakšić

070-ALIP2-udzbenik.indb

Računarski praktikum I - Vježbe 01 - Uvod

Slide 1

Programiranje 2 popravni kolokvij, 15. lipnja Ime i prezime: JMBAG: Upute: Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i brisanj

Programski jezik C

Microsoft PowerPoint - 07-DinamickeStrukturePodataka

I grupa 1. Napisati program koji izračunava i ispisuje zbir 4 najveća od pet brojeva unetih sa standardnog ulaza. ulaz izlaz Analiza: 1.

Univerzitet u Novom Sadu Tehnički fakultet Mihajlo Pupin Zrenjanin Seminarski rad Predmet: Konkuretno programiranje doc. dr Dejan Lacmanovic Zorica Br

Programiranje II Beleške sa vežbi Smer Informatika Matematički fakultet, Beograd Sana Stojanović 1

ELEKTROTEHNIČKI FAKULTET UNIVERZITETA U BEOGRADU BEOGRAD, Ispit iz Programiranja 2 Ispit traje 135 minuta Napomene: a) Pažljivo proučite U

PowerPoint Presentation

Računarski praktikum I - Vježbe 07 - Podstrukture, const, reference

Programiranje 1 5. predavanje dodatak Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2018, 5. predavanj

Tutoring System for Distance Learning of Java Programming Language

Uvod u računarstvo 2+2

Programiranje za UNIX Okruženje unix procesa

Упутство за пријављивање испита путем интернета Да би студент могао да пријави испит путем интернета мора прво да се пријави. Пријављивање се врши у п

PowerPoint Presentation

Test ispravio: (1) (2) Ukupan broj bodova: 21. veljače od 13:00 do 14:00 Županijsko natjecanje / Osnove informatike Osnovne škole Ime i prezime

Uvod u takmičarsko programiranje

Tutoring System for Distance Learning of Java Programming Language

Програмирај!

Računarski praktikum I - Vježbe 09 - this, static

Programiranje 2 Beleške sa vežbi Školska 2007/2008 godina Matematički fakultet, Beograd Jelena Tomašević February 23, 2008

Microsoft Word - 11 Pokazivaci

Primenjeno programiranje - vezbe GUI i baze podataka

Microsoft PowerPoint - Bitovi [Compatibility Mode]

УПУТСТВО ЗА КОРИСНИКА Приступ локацији часописа Српски архив за целокупно лекарство добија се преко internet adrese: Након

PROMENLJIVE, TIPOVI PROMENLJIVIH

1. Vremensko ograničenje Memorijsko ograničenje ulaz izlaz 0,1 s 64 MB standardni ulaz standardni izlaz Banka želi da upozori kupce na sumnjive aktivn

PASCAL UVOD 2 II razred gimnazije

Često postavljana pitanja u programu OBRT 1. Kako napraviti uplatu u knjizi tražbina i obveza? 2. Kako odabrati mapu/disk za pohranu podataka? 3. Kako

Studijski primer - Dijagrami toka podataka Softverski inženjering 1

1. OPĆE INFORMACIJE 1.1. Naziv kolegija Programiranje 1.6. Semestar Nositelj kolegija dr.sc. Bruno Trstenjak, v. pred Bodovna vrijednost

PRIRODNO MATEMATIČKI FAKULTET U NIŠU DEPARTMAN ZA RAČUNARSKE NAUKE Utorak, godine PRIJEMNI ISPIT IZ INFORMATIKE 1. Koja od navedenih ekste

Microsoft PowerPoint - Programski_Jezik_C_Organizacija_Izvrsnog_Programa [Compatibility Mode]

PowerPoint Presentation

Microsoft Word - Zadaci za samostalno vjezbanje 4.doc

DRŽAVNO IZBORNO POVJERENSTVO REPUBLIKE HRVATSKE e-learning upute UPUTE ZA REGISTRACIJU ZA E-LEARNING TEČAJ Zagreb, 03. svibanj 2019.

P11.3 Analiza zivotnog veka, Graf smetnji

Konstrukcija i analiza algoritama vežbe 10 Nina Radojičić 15. decembar Algoritamske strategije - podeli pa vladaj (divide and conquer) Ova stra

Microsoft PowerPoint - JavaP9_2019

Računarski praktikum I - Vježbe 11 - Funktori

УПУТСТВО ЗА КОРИСНИКА Приступ локацији часописа Српски архив за целокупно лекарство добија се преко internet adrese: Након

Microsoft PowerPoint - 10-Jednodimenzionalni nizovi.ppt [Compatibility Mode]

03 SUBP

Корисничко упутство апликације езапослени верзија Рачунски центар Електротехничког факултета, Универзитет у Београду

Државно такмичење године 5. и 6. разред 1. [pločice] Правоугаону терасу димензија d s центиметара квадратних треба поплочати коришћењем плочица

R u z v e l t o v a 5 5, B e o g r a d, t e l : ( ) , m a i l : c o n t a c p s i t. r s, w w w. p s i t. r s

Domaći zadatak - GUI (rok za sve grupe je ) Napraviti repozitorijum na GitHub-u koji se zove MenjacnicaGUI i postaviti Eclipse projekat menj

Microsoft PowerPoint - PRI2014 KORIGOVANO [Compatibility Mode]

Računarske mreže Čas 2 Ivana Tanasijević Matematički fakultet, Beograd 1

** Osnovni meni

Slide 1

Sveucilište u Zagrebu

1 jmbag ime i prezime Programiranje 2 prvi kolokvij, Rezultati i uvidi u kolokvije: Rezultati u petak, 3.5., navečer na webu, a uvidi u p

Prikaz znakova u računalu

PowerPoint Presentation

Microsoft PowerPoint - 13-Funkcije_2.ppt [Compatibility Mode]

NIZOVI

UPUTA za uvođenje JOPPD - prva faza

Lekcija 6 Prikaz podataka na graficima. Upis u fajl. 1. Cilj vežbe Cilj vežbe je da studente upozna sa: načinima prikaza podataka na različitim grafič

LAB PRAKTIKUM OR1 _ETR_

Programiranje predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2016, 10. predavanje p. 1

Microsoft PowerPoint - OOPpredavanja05 [Compatibility Mode]

Корисничко упутство апликације езапослени верзија Рачунски центар Електротехничког факултета, Универзитет у Београду

Писање и превођење модула

Državno natjecanje / Osnove informatike Srednje škole Zadaci U sljedećim pitanjima na odgovore odgovaraš upisivanjem slova koji se nalazi ispred

Microsoft Word - Uputstvo za koristenje aplikacije GIPKO

PROCES KUPNJE ULAZNICE NA PORTALU ULAZNICE.HR Početak kupovine... 2 Plaćanje Mastercard karticom... 5 Plaćanje Maestro karticom... 8 Plaćanje American

The real problem is that programmers have spent far too much time worrying about efficiency in the wrong places and at the wrong times; premature opti

Programiranje 1 9. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2018, 9. predavanje p. 1/6

PowerPoint Presentation

Орт колоквијум

Транскрипт:

Datoteke predavač: Nadežda Jakšić

svi podaci sa kojima smo do sada radili u programima su smeštani u operativnu memoriju računara i trajali su najduže koliko i sam program; kada program završi sa radom, vrednost svih promenljivih se gubi; ukoliko želimo na nam neki podaci ostanu sačuvani i posle izvršavanja programa moramo da ih smestimo na hard disk, a jedan od načina da to uradimo je da ih sačuvamo u fajl (datoteku) npr. imenik koji ne bi bio praktičan ako bismo pri svakom pokretanju sve podatke ponovo unosili datoteka predstavlja sekvencu bajtova i može biti tekstualna ili binarna za rad sa datotekama u C-u koriste se pokazivači; datoteka je predstavljena posebnim pokazivačem: FILE * fp; //pokazivač se tumači kao memorijska lokacija fajla na disku

fajl se otvara funkcijom fopen koja vraća pokazivač na strukturu FILE sve ostale funkcije za rad sa fajlovima koriste taj pokazivač umesto imena fajla sve funkcije osim fopen vraćaju vrednost int mnoge funkcije za rad sa fajlovima vraćaju konstantu EOF (End Of File) ukoliko nastane greška pri izvršavanju ili ako se dođe do kraja fajla

fopen (imefajla, mod) fclose (f) feof (f) fseek (f, kol, odakle) ftell (f) ferror (f) getc (f) otvaranje fajla zatvaranje fajla (rezultat 0=uspešno, EOF neuspešno) ispitivanje da li se došlo do kraja fajla (rezultat 0=nije kraj, >0 kraj) pozicioniranje SEEK _SET od početka SEEK_CUR od trenutne pozicije SEEK_END od kraja fajla trenutna pozicija u fajlu (vraća int vrednost ili -1 za grešku) spitivanje greške u prethodnoj operaciji (0=nema greške) citanje znaka iz fajla (vraća int ili EOF u slučaju greške)

putc (znak, f) fgetc (f) fputc (znak, f) fgets (f, kol., string) fputs (string, f) fscanf (f,maska,prom.) fprintf (f,maska,prom.) fflush (f) upisivanje znaka u fajl (isti karakter ili EOF u slučaju greške) čitanje znaka iz fajla (isto kao getchar) upisivanje znaka u fajl čitanje stringa iz fajla NULL ako nema više podataka upisivanje stringa u fajl (vraća >0 ili EOF u slučaju greške) čitanje promenljivih iz fajla - vraća broj pročitanih znakova, negativnu vrednost za grešku ili EOF ako nema podataka upisivanje promenljivih u fajl - vraća broj upisanih znakova ili negativnu vrednost u slučaju greške pražnjenje bafera (0=uspešno, EOF neuspešno)

r //otvaranje postojećeg fajla za čitanje podataka w // otvaranje fajla za pisanje, ako ne postoji fajl kreira se novi, ako postoji, pisanje počinje od početka (briše se postojeći sadržaj) a //otvaranje postojećeg fajla za dodavanje sadržaja na postojeći sadržaj r+ //otvaranje postojećeg fajla za čitanje i pisanje w+ //otvaranje fajla za čitanje i pisanje, ukoliko fajl postoji, prvo mu se dužina smanjuje na nulu, ako fajl ne postoji, kreira se novi fajl a+ //otvaranje fajla za čitanje i pisanje, čitanje se vrši od početka fajla, a pisanje u fajl se nastavlja na postojeći sadržaj, ukoliko fajl ne postoji krera se novi "b" //ako se iza slova w, r ili a napiše slovo b to označava da datoteku treba otvoriti u binarnom modu, inače se datoteka otvara u tekstualnom modu (rb, wb, ab, rb+,wb+, ab+ ili r+b, w+b )

po završetku rada sa fajlom potrebno je zatvoriti fajl int fclose (FILE *fp ); pozivom ove funkcije se prazni bafer koji je služio za ispis u fajl (sav zaostali sadržaj se upisuje u fajl), oslobađa se operativna memorija koja je korišćena za obradu fajla; ukoliko funkcija uspešno završi snimanje u fajl vraća se 0, inače se vraća definisana konstanta EOF

#include <stdio.h> #include <conio.h> int main() { FILE *fp; } fp = fopen ("test.txt", "w+"); fprintf (fp, "Ovo je test za funkciju fprintf...\n"); //upisuje u fajl fputs ("Ovo je test za funkciju fputs...\n", fp); //upisuje u fajl fclose (fp); return 0;

#include <stdio.h> int main() { } FILE *fp; char buff[255]; fp=fopen ("test.txt", "r"); fgets (buff, 255, (FILE*)fp); printf ("1: %s\n", buff ); //ispisuje na ekran fgets (buff, 255, (FILE*)fp); printf ("2: %s\n", buff ); //ispisuje na ekran fclose (fp); return 0;

//proverava da li postoji datoteka druga u tekućem folderu, otvori datoteku, ispiše na monitoru i zatvori #include <stdio.h> printf ("Tekstualni sadrzaj datoteke <%s>...\n", #include <stdlib.h> n); int main() { FILE *f; char *n="druga.txt"; char c; f=fopen(n,"r ); while ((c=fgetc(f))!=eof) putchar(c); printf ("\nkraj sadrzaja datoteke <%s>...\n", n); fclose(f); return 0;} if (f== NULL ) //ako pokazivač na datoteku druga.txt ne pokazuje ni { na šta (ima vrednost nula) printf ("Datoteka <%s> nije uspesno otvorena.\n", n); exit(1); } printf ("Datoteka <%s> je uspesno otvorena\n", n);

//program otvara fajl mojfajl.txt za pisanje, upisuje u njega string i zatvara fajl; kod zatvaranja i otvaranja fajla proverava se uspešnost i ispisuje poruka #include <stdio.h> #include <stdlib.h> int main() { FILE *fp; fp = fopen ("mojfajl.txt", "w"); //w ako ne postoji kreira fajl if (fp!=null) {printf ("Fajl je uspesno otvoren.\n"); fputs ("Ispis", fp); } //upisivanje sadržaja u fajl else {printf ("Greska.\n"); } if (fclose(fp)!=eof) {printf ("Fajl je uspesno zatvoren.\n"); exit(0); } else exit(1); return 0; }

demonstrira se formatiran upis 5 realnih brojeva u tekstualnu datoteku korisnik unosi brojeve datoteka ne mora prethodno da se kreira - mod je w funkcija fscanf() je pogodna za formatirani unos brojeva, ali nije pogodna za unos stringova i znakova

#include <stdlib.h> #include <stdio.h> int main() { FILE *fp; float data[5]; int i; char filename[20]; puts("unesi 5 real.brojeva"); for (i = 0; i < 5; i++) scanf ("%f", &data[i]); //pri unosu imena datoteke napisati npr. realni.txt //isprazni mogući višak znakova iz bafera ulaza fflush (stdin); puts("unesi ime datoteke:"); gets (filename); if ((fp = fopen (filename, "w")) == NULL) {fprintf (stderr, "Greska pri otvaranju datoteke %s.", filename); exit(1);} //ispiši vrednosti u datoteku i na standardni izlaz for (i = 0; i < 5; i++) {fprintf (fp, "\n podatak[%d] = %f", i, data[i]); fprintf (stdout, "\n podatak[%d] = %f", i, data[i]);} fclose(fp); printf ("\n Sada procitaj datoteku: %s, nekim editorom",filename); return(0);}

//datoteka ulaz.txt sadrži cele brojeve - izračunati njihov zbir i zapisati u izlaznu datoteku izlaz.txt - kreirati datoteke ulaz i izlaz u tekućem folderu #include <stdio.h> while (fscanf(ul,"%d",&a)!=eof) zbir+=a; #include <stdlib.h> int main() { FILE *ul,*iz; int a,zbir=0; ul=fopen ("ulaz.txt","r"); iz=fopen ("izlaz.txt","w"); if (ul==null) {fprintf (stderr,"neuspesno otvaranje ulaz.txt"); exit (EXIT_FAILURE); } if (iz==null) { fprintf (stderr,"neuspesno otvaranje izlaz.txt"); exit(exit_failure);} fprintf (iz,"%d",zbir); fclose (ul); fclose (iz); return 0; }

//program demonstrira dodavanje sadržaja u datoteku (funkcija append) - svaki put kada se program pokrene na izvršenje dodaje se nov sadržaj u datoteku #include <stdio.h> int main(){ FILE* datoteka; int godina = 2018; if ((datoteka=fopen("druga.txt","a"))==null) //mod je a {fprintf (stderr,"greska: nisam uspeo da otvorim dat.txt\n"); return 1;} fprintf (datoteka,"zdravo svima\n"); fprintf (datoteka,"sve najbolje u %d. godini!!!\n",godina); fclose(datoteka); return 0; }

//odrediti broj redova u tekstualnom faju čije ime unosi korisnik prethodno kreirati datoteku redovi.txt i uneti nekoliko redova teksta #include <stdio.h> #include <stdlib.h> int main() { FILE *ul; int BrRed=0; char ch,ime[100]; printf ("Unesite putanju do fajla:"); scanf ("%s",ime); ul=fopen (ime,"r"); if (ul==null) {fprintf (stderr,"neuspesno otvaranje ulaz.txt"); exit (EXIT_FAILURE);} while ((ch=fgetc(ul))!=eof) if (ch=='\n') BrRed++; printf ("Broj redova je %d.",brred); fclose (ul); return 0;}

//u datoteci automobili.txt nalazi se spisak sa modelima automobila, godištima i cenom - pročitati podatke iz datoteke i na standardnom izlazu ispisati podatke o automobilima čija je cena veća od 10 000 evra #include<stdio.h> #define DIM 100 typedef struct { char model [20]; int godiste; float cena;}auto; int main(){ FILE *ulaz; AUTO nizauto[dim]; int n, i; ulaz=fopen ("automobili.txt", "r"); if (ulaz==null){ printf ("Ulazna datoteka nije dostupna"); return 1; } n=i; for (i=0;i<n;i++) { if(nizauto[i].cena>10000) printf ("%s %d %f\n", nizauto[i].model, nizauto[i].godiste, nizauto[i].cena); } fclose (ulaz); return 0;} i=0; while (!feof (ulaz)) {fscanf (ulaz, "%s %d %f", &nizauto[i].model, &nizauto[i].godiste, &nizauto[i].cena); i++; }

//u datoteci studenti.txt nalaze se podaci o rezultatima ispita: ime i prezime, broj indeksa i broj bodova - pročitati podatke i u datoteku rezultati.txt upisati prvih 30% sortiranih podataka o studentima po broju bodova #include<stdio.h> #define DIM 100 typedef struct { char imeprezime [60]; char brindexa [9]; int bodovi; }STUDENT; void razmeni (STUDENT *a, STUDENT *b) {STUDENT tmp; tmp=*a; *a=*b; *b=tmp;} void sort (STUDENT niz [ ], int n) {int i, j; for (i=0;i<n-1;i++) {for(j=i+1;j<n;j++) {if (niz[i].bodovi<niz[j].bodovi) razmeni(&niz[i], &niz[j]); }}}

int main() {FILE *ulaz; FILE *izlaz; STUDENT niz[dim]; int n, i; float procenat; ulaz=fopen ("studenti.txt", "r"); if (ulaz==null) {printf ("Ulazna datoteka nije dostupna"); return 1;} izlaz=fopen ("rezultati.txt", "w"); if (izlaz==null){ printf ("Izlazna datoteka nije dostupna"); return 1;} i=0; while (!feof (ulaz)) {fscanf (ulaz, "%s%s%d", niz[i].imeprezime, niz[i].brindexa, &niz[i].bodovi); i++;}

n=i; procenat=n*30/(float)100; printf ("\npr %f\n",procenat); sort (niz,n); for (i=0;i<procenat;i++) { fprintf (izlaz,"%s %s %d\n", niz[i].imeprezime, niz[i].brindexa, niz[i].bodovi); printf ("%s %s %d\n", niz[i].imeprezime, niz[i].brindexa, niz[i].bodovi);} fclose (ulaz); fclose (izlaz); return 0; }