Úvod do jazyka C Programovací jazyk C.

Slides:



Advertisements
Podobné prezentace
Procedurálne programovanie: 3. prednáška
Advertisements

Řetězce v jazyce C ● řetězec je posloupnost znaků ● řetězcové konstanty se v C vkládají mezi uvozovky, např. "Ahoj Hugo!" ● v paměti je řetězec uložen.
Sčítanie a odčítanie výrazov
Batové dávky Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Vojtěch Mrózek. Dostupné z Metodického portálu ISSN: ,
Vstupní a výstupní operace (1)
Datové typy v jazyce C Datové typy void skalární aritmetické
ODBYT registračné pokladnice: kontrola stavu hotovosti
Von  Neumannov  počítač Gymnázium Š. Moysesa, Moldava nad Bodvou.
Osobný počítač Kornélia Kontrová 1.OB.
SOFTVÉR Programové vybavenie počítača
SYSTÉMY SIEŤOVÉHO PLÁNOVANIA Metóda CPM
Tolerancie rozmerov Kód ITMS projektu:
Algoritmizácia úloh.
AIRDANCE – realizácia multiplatformovej aplikácie typu klient - server
Zápisný lístok.
REALIZÁCIA PROGRAMU 3. etapa tvorby programu
L1 cache Pamäť cache.
„Brutácia“ nepeňažného príjmu
Údaje, informácie, znalosti Informatika
Údaje, informácie, znalosti Informatika
VÝRAZ S PREMENNOU 8.ročník.
Kreslenie v textovom dokumente 1.časť
Informatická výchova 3. ročník
Slovné úlohy Zdroj: Križalkovič, K. a kol.: 500 riešených slovných úloh z matematiky.
Rímske číslice Pre 5. ročník ZŠ.
Rozpoznávanie slovných druhov alebo vetnej skladby
Časti počítača von Neumannovského typu
Riadenie zbernice.
Vstupné zariadenia.
PaedDr. Jozef Beňuška
Postoj mládeže na Slovensku k armáde
Kľúč na určovanie rastlín
Elektronická výplatná páska
Informácia – definícia a výpočet
Popis hardwarových komponentov počítača
Práca so zálohami.
Deliť celok na rovnaké časti / opakovanie /.
Stredná odborná škola automobilová Moldavská cesta 2, Košice
Rastrova a Vektorov grafika
Licencie programov Precvičenie pojmov.
Úvod do jazyka C Algoritmizácia úloh.
Geografické informačné systémy
Zmeny v podsystéme v roku 2016
Cabri geometry II Mgr. Róbert Truchan ZŠ Sačurov.
Pojem, modely zavádzania zlomkov, porovnávanie, operácie so zlomkami.
Počítačové siete Čo je to počítačová sieť ?
Operačné systémy Funkcia a zloženie OS.
Zmeny v podsystéme v roku 2017
Divergentné úlohy v matematike
Počítač von Neumanovského typu
Výskumný súbor.
Hardware Pamäťové média.
Úvod do jazyka C Algoritmizácia úloh.
Orientácia na pracovnej ploche
Výpočet exekučných zrážok
MS POWERPOINT ZŠ, Z. Nejedlého 2 Spišská Nová Ves
Aplikácia sieťového grafu v príprave a realizácii projektu Metóda CPM a PERT Sieťový graf je definovaný dvojicou množín, kde množina uzlov U = ( u1 , u2,
Digitalizácia informácií
Písanie dátumov, časových údajov a telefónnych čísel
VLOOKUP (po česky SVYHLEDAT)
RIEŠENIE LINEÁRNYCH ROVNÍC A NEROVNÍC
ELDP Evidenčný List Dôchodkového Poistenia
MEDLINE Complete ~ Vyhľadávanie
Tutoriál ~ eKnihy Sťahovanie
4. Algoritmy a programovanie v jazyku Pascal Cykly a riadenie
Stredná odborná škola automobilová Moldavská cesta 2, Košice
Datové typy v jazyce C Datové typy void skalární aritmetické
Vstupní a výstupní operace (1)
Opakování ze 4. cvičení int a; printf("Zadej číslo: ");
Opakování ze 4. cvičení int a; printf("Zadej číslo: ");
Transkript prezentace:

Úvod do jazyka C Programovací jazyk C

Práca so súbormi Vo väčšine programov sa pre vstup dát používajú súbory (z klávesnice sa zadávajú len základné údaje). Spracované údaje majú cenu len v prípade že budú výsledky uložené do súborov. Práca so súbormi je jednou zo základných znalostí programovania v jazyku C.

Základné pojmy Súbor je postupnosť bajtov uložených na médiu (najčastejšie disku) v niekoľkých blokoch. Bloky majú rovnakú veľkosť a nemusia ležať za sebou. Ako sa s nimi pracuje je záležitosťou operačného systému. Prístup k súboru je možný sekvenčne alebo náhodilo. Budeme sa zaoberať len sekvenčným prístupom k súboru. Z užívateľského hľadiska je súbor postupnosť po sebe idúcich bajtov od začiatku do konca súboru. Starosťou operačného systému je aby nám tieto bajty dodal v správnom poradí.

Základné pojmy Z dôvodu čo najväčšieho obmedzenia počtu periférnych operácií (zvýšenie rýchlosti) sú I/O operácie bufferované. Pre vstup to predstavuje: naraz sa číta celý blok dát z disku do pamäti (bufferu). Jednotlivé položky sa potom čítajú z pamäti a nie priamo z disku. Pre výstup: dáta sa zapisujú do bufferu (pamäti) a keď je plný, zapíše sa celý obsah bufferu na disk ako jeden blok. Keď potrebujeme 2 znaky zo súboru, načíta sa do pamäti celý úsek súboru napr. blok dát velkosti 512 bajtov, v ktorom sú naše požadované znaky obsiahnuté. Potom sa z pamäti znaky postupne čítajú. Dôvod – zrýchlenie práce.

Začiatok práce so súbormi Nehľadajte v práci so súbormi žiadne zložitosti Základný dátový typ pre prácu so súbormi: FILE * Definícia premennej f pre prácu so súborom: FILE *fp; Poznámka: -identifikátor FILE musí byť veľkými písmenami !!! - premenná f sa používa pre čítanie aj zápis do súboru.

Operácie so súbormi Pred začiatkom práce so súborom je potrebné súbor otvoriť. Spôsob otvorenia súboru určuje, aké činnosti bude možné so súborom vykonávať. Otvorenie súboru pre čítanie: fp = fopen(“a.txt”, “r”); Otvorenie súboru pre zápis: fp = fopen(“a.txt”, “w”); Musí byť dve \\

Operácie so súbormi Zápis adresárovej cesty fp = fopen(“\\a.txt”, “w”); fp = fopen(“d:\\student\\a.txt”, “w”); Musí byť dve \\

Testovanie na existenciu súbora, resp. jeho otvorenia Používa sa porovnanie identifikátora súboru na hodnotu NULL. if (fp==NULL) { printf(“\n\r Subor sa nepodarilo otvorit”); }

Testovanie na existenciu súbora, resp. jeho otvorenia #include <stdio.h> #include <stdlib.h> #include <time.h> main() { FILE *fp; fp=fopen("mena.txt","r"); if(fp!=NULL) …. vykoname nejake prikazy fclose(fp); } else printf("\n\r Subor sa nepodarilo otvorit");

Základné operácie so súbormi Funkcie štandartnej knižnice stdio.h pre prácu so súborom. Súbor musí byť vopred otvorený. Premenná f je typu FILE *: formátované čítanie zo súboru fscanf(fp, “format”, argumenty); formátovaný zápis do súboru fprintf(fp, “format”, argumenty); čítanie znaku zo súboru c = getc(fp); zápis znaku do súboru putc(c,fp); Porovnať s použitím zápisu na obrazovku a čítaním z klávesnice.

Testovanie konca súboru Na konci súboru je uložený znak EOF. Na testovanie konca súboru sa používa funkcia feof(<identifikator_suboru>) Tento spôsob používame vtedy, ak nevieme, aký veľký súbor je alebo koľko údajov sa v ňom nachádza.

Ukončenie práce so súborom Po ukončení práce so súborom je nutné to operačnému systému oznámiť – uzatvoriť súbor Funkcia pre uzatvorenie súboru fclose(fp); Operačný systém súbory uzatvára po ukončení programu, ale môže dojsť pri zápise k situácii, že program bude ukončený a dáta z bufferu nebudú zapísané na disk.

Základné operácie so súbormi fscanf(fp, “%c”, znak); // nacitanie a zapis znaku fprintf(fp, “%c”, znak); fscanf(fp, “%d”, cislo); // nacitanie a zapis cisla fprintf(fp, “%d”, cislo); fscanf(fp, “%f”, zlomok); // nacitanie a zapis des. cisla fprintf(fp, “%f”, zlomok); Porovnať s použitím zápisu na obrazovku a čítaním z klávesnice.

Základné operácie so súbormi Zapísanie textu s číslom fprintf(fp, “Vysledok prikladu: %d”, cislo); Zapísanie dvoch čísel fprintf(fp, “Cislo %d na druhu je %d ”, cislo , cislo*cislo); Porovnať s použitím zápisu na obrazovku a čítaním z klávesnice.

Základné operácie so súbormi Zadanie: a) zapísať druhú a tretiu mocninu čísla do súbora. b) načítať druhú a tretiu mocninu čísla do súbora. Porovnať s použitím zápisu na obrazovku a čítaním z klávesnice.

Základné operácie so súbormi Najskôr je potrebné zapísať údaje: #include <stdio.h> int main(int argc, char *argv[]) { FILE *fp; int i; fp=fopen("mocniny.txt","w"); for(i=0; i<10; i++) fprintf(fp,"%d %d %d \n", i, i*i, i*i*i); } fclose(fp); Porovnať s použitím zápisu na obrazovku a čítaním z klávesnice.

Základné operácie so súbormi Potom tieto údaje načítame: #include <stdio.h> int main(int argc, char *argv[]) { FILE *fp; int i, cislo1, cislo2, cislo3; fp=fopen("mocniny.txt","r"); for(i=0; i<10; i++) fscanf(fp,"%d %d %d \n", &cislo1, &cislo2, &cislo3); printf("\n\r Cislo: %d x^2=%d x^3=%d", cislo1, cislo2, cislo3); } fclose(fp); Porovnať s použitím zápisu na obrazovku a čítaním z klávesnice.

Základné operácie so súbormi Potom tieto údaje načítame: #include <stdio.h> int main(int argc, char *argv[]) { FILE *fp; int i, cislo1, cislo2, cislo3; fp=fopen("mocniny.txt","r"); while(!feof(fp)) fscanf(fp,"%d %d %d \n", &cislo1, &cislo2, &cislo3); printf("\n\r Cislo: %d x^2=%d x^3=%d",cislo1,cislo2,cislo3); } fclose(fp); Porovnať s použitím zápisu na obrazovku a čítaním z klávesnice.

Zápis do súboru #include <stdio.h> #include <stdlib.h> #include <time.h> main() { FILE *fp; char meno[256]; int i,vek; fp=fopen("mena.txt","w"); for(i=0; i<5; i++) printf("\n\r Zadaj meno: "); scanf("%s",&meno); printf("\n\r Zadaj vek: "); scanf("%d",&vek); fprintf(fp, "%s %d\n",meno,vek); } fclose(fp);

Čítanie zo súboru #include <stdio.h> #include <stdlib.h> #include <time.h> main() { FILE *fp; char meno[256]; int vek; fp=fopen("mena.txt","r"); while(!feof(fp)) fscanf(fp,"%s %d",&meno,&vek); printf("\n\r %s %d",meno,vek); } fclose(fp);

FILE *fr; int c; long int pocet = 0; if ((fr = fopen("PISMENA.TXT", "r")) == NULL) { printf("Subor PISMENA.TXT sa nepodarilo otvorit\n"); return 1; } while ((c = getc(fr)) != EOF) pocet++; printf("V subore PISMENA.TXT je %d znakov\n", pocet); return 0;

#include <stdio.h> int main(void) { FILE *fr; int i; if ((fr = fopen("CISLA.TXT", "w")) == NULL) { printf("Soubor CISLA.TXT sa nepodarilo otvorit\n"); return 1; } for (i = 0; i < 20; i++) fprintf(fr, " %.2f\n", i * 3.14); fclose(fr); return 0; Formatovaný zápis čísel do súboru

Záver Pozrieť si funkcie: fseek, fread, fwrite