Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Úvod do jazyka C Algoritmizácia úloh.

Podobné prezentace


Prezentace na téma: "Úvod do jazyka C Algoritmizácia úloh."— Transkript prezentace:

1 Úvod do jazyka C Algoritmizácia úloh

2 Zadanie Zistite, či zadaný rok je priestupný.
Program spracujte formou funkcie

3 #include <stdio.h>
#include <string.h> #include <stdlib.h> #include <time.h> // tu bude funkcia, vracajuca priestupny / nepriestupny rok main() { int i, rok; char rok_text[20]; for(i=1890; i<2020; i++) if(priestupny_rok(i)==1) strcpy(rok_text,"priestupny"); else strcpy(rok_text,"nepriestupny"); printf("\n\r Rok %d je: %s ",i,rok_text); }

4 int priestupny_rok(int rok)
{ int priestupny=1; if((rok%4)!=0) priestupny=0; if((rok%100)==0) if((rok%400)!=0) priestupny=0; } return priestupny;

5 Zadanie Nájdite najväčší spoločný deliteľ dvoch čísel
Na zistenie čísla použite funkciu

6 #include <stdio.h>
#include <string.h> #include <stdlib.h> #include <time.h> // tu bude funkcia main() { int cislo1, cislo2, delitel; cislo1=150; cislo2=120; delitel=spolocny_delitel(cislo1,cislo2); printf("Najvacsi spolocny delitel %d a %d je %d ", cislo1, cislo2, delitel); }

7 int spolocny_delitel(int cislo1, int cislo2)
{ int i, max,delitel; if (cislo1 > cislo2) max=cislo1; else max=cislo2; delitel=1; for(i=1; i<max; i++) printf("\n\r Skusam: %d ",i); if( ((cislo1%i)==0) && ((cislo2%i)==0)) delitel=i; } return delitel;

8 Zadanie Nájdite najmenší spoločný násobok dvoch čísel
Na zistenie čísla použite funkciu

9 #include <stdio.h>
#include <string.h> #include <stdlib.h> #include <time.h> // tu bude funkcia main() { int cislo1, cislo2, nasobok; cislo1=15; cislo2=12; nasobok=spolocny_nasobok(cislo1,cislo2); printf("Najmensi spolocny nasobok %d a %d je %d ", cislo1, cislo2, nasobok); }

10 int spolocny_nasobok(int cislo1, int cislo2)
{ int i, max,nasobok; if (cislo1 > cislo2) max=cislo1; else max=cislo2; nasobok=1; for(i=(cislo1*cislo2); i>max; i--) printf("\n\r Skusam: %d ",i); if( ((i%cislo1)==0) && ((i%cislo2)==0)) nasobok=i; } return nasobok;

11 Výhody použitia štruktúr
Položky, ktoré logicky súvisia, sú zjednotené do jedného celku Zápis/čítanie zo súboru sa vykonajú v jednom kroku cez fread() / fwrite(). Nie je potrebné deklarovať n-premenných, ktoré zbytočné rozširujú program

12 Zadanie úlohy Existuje databáza, kde sú uložené dni a teploty
Program ho pridá podľa zadania užívateľa ďalšie, vypíše ich a najde minimum Pre prístup k dátam použite štruktúru „struct“

13 Hlavný program #include <stdio.h> #include <string.h>
struct den_teplota { char den[20]; int teplota; }; void nacitaj_teploty(); void zapis(struct den_teplota *zaznam); void vyber_najnizsiu(); main() nacitaj_teploty(); vyber_najnizsiu(); }

14 Načítanie teplôt void nacitaj_teploty() { int i, count;
char datum[20]; int teplota; struct den_teplota zaznam; printf("\n\r Zadaj pocet dni: "); scanf("%d",&count); for(i=0; i<count; i++) printf("\n\r Zadaj den: "); scanf("%s",&zaznam.den); printf("\n\r Zadaj teplotu: "); scanf("%d",&zaznam.teplota); zapis((struct den_teplota*)&zaznam); } return;

15 Zápis štruktúry void zapis(struct den_teplota *zaznam) { FILE *fp;
fp=fopen("zaznamy.txt","a"); if(fp!=NULL) fwrite((void*)zaznam,sizeof(struct den_teplota),1,fp); fclose(fp); } else {printf("\n\n\r zapis(): chyba pri otvarani suboru");} return;

16 Načítanie štruktúr a vyhľadanie najnižšej teploty
void vyber_najnizsiu() { int i, min=100; struct den_teplota zaznam; char buffer[1024]; FILE *fp; fp=fopen("zaznamy.txt","r"); if(fp!=NULL) while(!feof(fp)) fread(&zaznam,sizeof(zaznam),1,fp); printf("\n\r Den: '%s' Teplota: '%d' ",zaznam.den,zaznam.teplota); if(min>zaznam.teplota) min=zaznam.teplota; } fclose(fp); else {printf("\n\n\r vyber_najnizsiu(): chyba pri otvarani suboru");} printf("\n\n\r Najnizsia teplota: %d ",min); return;

17 Výpis programu


Stáhnout ppt "Úvod do jazyka C Algoritmizácia úloh."

Podobné prezentace


Reklamy Google