Začíname programovať


Obsah tém. 

  1. Príklady: 1. 2. 3. 4.1. 4.2. 5. 6. 7.
  2. Čo sme sa naučili
  3. Úlohy na zopakovanie
 

Príklad č.1:

Tento  program vypíšeme na obrazovku Ahoj SPŠE .
 


/* Prvý program v jazyku C */

#include<stdio.h>             //pripojenie hlavičkového súboru s deklaráciami funkcií

void main(void)               // hlavný program - void oznamuje "nepoužité" jednak
{                             // parametre programu a jednak návratová hodnota main
   printf("Ahoj SPŠE");       // výpis textu na obrazovku
   }
  


Každý program  v jazyku C musí obsahovať jednu hlavnú funkciu main(). Príkazy sú umiestnené medzi dvoma zátvorkami {}.
Koment
áre v C- ku sa nachádzajú medzi  /*......*/.Všetky znaky medzi /* prekladač neberie do úvahy. V Jazyku C++ komentáre začínajú znakmi //. Takýto komentár končí na konci riadku.
Funkcia printf( ) je funkcia formátovaného výstupu. To znamená, že na obrazovku sa vypíše výraz tak, ako to uvádza formátovací reťazec. Počet výrazov za formátovacím reťazcom obecne nie je presne stanovený a závisí od obsahu formátovacieho reťazca. Avšak aby sme mohli túto funkciu použiť potrebujeme príkaz predprocesora  #include <stdio.h> . Súbor stdio.h umožňuje deklarovať funkciu printf(). Každý príkaz v programe musí byť ukončený bodkočiarkou.

 

Priklad č.2:

Program vypíše na obrazovku vetu Koľko máš rokov a čaká pokiaľ nezadáme celé číslo. Potom číslo uloží do premennej  x a vypíše vetu Mám ? rokov.


#include <stdio.h>
#include <conio.h>

void main(void)
{
   int x;                           // deklarácia premenej x

   clrscr();                        // zmaž obrazovku
   printf("Koľko máš rokov/n");     // vypíš text /n na konci odriadkuje riadok
   scanf("%d",&x);                  // načítaj hodnotu a preveď ju na int, ulož na
   printf("Mám %d rokov",x);        // pozíciu x(vid. &x) a potom ju vypíš na obrazovku
   }
  
 

int x definícia dátového typu premennej x, to znamená že premennú x budeme používať na ukladanie celých čísel.
Funkcia clrscr() zmaže obrazovku je to vhodné pri opätovnom spúšťaní programu. Súbor, ktorý umožňuje deklarovať funkciu clrscr() je conio.h, preto sme použili príkaz #include <conio.h>.
Funkcia formátovaného vstupu scanf( ) načíta z klávesnice postupnosť znakov, ktoré upraví podľa formátovacieho reťazca a uloží do premenných. Počet výrazov za formátovacím reťazcom musí byť rovný počtu znakov ´%´ vo formátovacom reťazci. Znak & predstavuje adresu.

Napr.:
            scanf("%d",&x)
                                    program načíta celého čísla v 10-ovom tvare a uloží na adresu premennej x.

scanf( ˝%d %f %c %s˝,&a,&b,&c,d )
                        do premennej a sa uloží celé číslo v 10-ovom tvare
                        do premennej b sa uloží desatinné číslo

                       
do premennej c sa uloží jeden znak
                        do premennej c sa uloží reťazec znakov

Pozn: pri načítaní reťazca znakov sa ampersand (&) k pred premennú nedáva

Za znakom % sa náchadzajú znaky konverzie
 

Znaky konverzie
    znak    datov
ý typ    funkcia

    d            int            očakáva sa celé číslo v 10-tkovej sústav
    o                            celé číslo v osmičkovej sústave bez znamienk
    x, X                        celé číslo v šestnástkovej sústave bez znamienkom
    f            float           desatinné číslo v desiatkovej sústave
    e                            desatinné číslo v desiatkovej sústave v tvare [ + - ] d.dddde[ + - ] dd
    c            char           1 znak
   
s            char*          postupnosť znakov
                  char[ ]           


Príklad č.3:     


#include <stdio.h>
#include <conio.h>

void main(void)
{
   int x;
   float y;     // deklarácia reálnej premennej

   clrscr();    // zmaž obrazovku
   printf(˝Zadaj dve cele cisla:˝);         // vypíš žiadosť a ponechaj na konci kurzor
   scanf( ˝%d %d˝, &x, &y );                // načítaj dve int čísla na pozície(&) x a y
   printf( ˝\n%d + %d = %d˝, x, y, x + y ); // výpis x, y a súčtu hodnôt x a y
   printf( ˝\n%d - %d = %d˝, x, y, x - y ); // detto ale na konci rozdiel x a y
   getch();  // finta ako pozdržať program pred ukončením a zavretím okna - čítaj znak
   }
  

 

Program načíta 2 čísla, jedno desatinné číslo a jedno celé číslo a vypíše ich súčet a rozdiel.

V tomto programe používame 2 premenné pretože chceme načítať 2 čísla. prvá premenná je dátového typu int, pretože ju budeme používať na načítanie celého čísla.
Druhá premenná je dátového typu float, pretože ju budeme používať na načítanie desatinného čísla.
Program čaká na zadanie dvoch čísel z klávesnice a potom pomocou funkcie printf() vytlačí súčet a rozdiel v uvedenom tvare formátovaného reťazca

 

Príklad č.4.1:

 Program načíta 1 znak, vypíše ho jeho ASCII kód a vyjadrí ho v 16-ovej t.j.hexadecimálnej číselnej sústave.     


#include <stdio.h>
#include <conio.h>

void main(void)
{
   char znak;

   clrscr();
   printf(˝Zadaj ľubovoľný znak z klavesnice:˝);
   scanf( ˝%c˝, &znak);     // načítaj znak a ulož na pozíciu premennej &znak
   printf(˝\nStlačil si znak %c, ktorý ma ASCII kód %d a v 16-ovej %#x˝,znak, znak, znak);
   getch();
   }
  

V tomto programe používame premennú pre načítanie 1 znaku, preto sme premennej pridelili dátový typ char. Znak z klávestnice ( uložený v premennej znak) má svoj ASCII kód, ktorý vytlačíme cez %d. Túto hodnotu vieme vytlačiť v hexadecimálnej sústave cez %#x.
Funkcia getch() slúži na načítanie 1 znaku. Táto funkcia je deklarovaná v súbore conio.h.
V tomto programe má getch() za úlohu zdržanie programu, to znamená, že program sa nevykonáva pokiaľ nezadáme z klávesnice jeden znak.

Keďže vieme na čo sa používa funkcia getch(), pokúsime sa príklad č.4 urobiť ináč.

 

Príklad č.4.2:


#include <stdio.h>
#include <conio.h>

void main(void)
{
   int znak;
  
   clrscr();
   printf(˝Zadaj ľubovoľný znak z klavesnice:˝);
   znak=getch();          // načítanie znaku pomocou funkcie getch()
   printf(˝\nStlačil si znak %c, ktorý ma ASCII kód %d a v 16-ovej %#x˝,znak, znak, znak);
   getch();
   }

Treba si všimnúť, že premenná je dátového typu int.
Prečo?

Funkcia getch() vracia hodnotu typu int. Teda ak do premennej znak chceme uložiť 1 znak z klávesnice, pomocou príkazu znak=getch() tak v skutočnosti v premennej znak je uložený ASCII kód znaku z klávesnice. A keďže ASCII kód je celé číslo musí byť premenná znak definovaná ako int.

Iná funkcia, ktorá je podobná funkcii getch() je putch(). Tiež jej deklarácia sa nachádza v hlavičkovom súbore conio.h. Funkcia vracia hodnotu typu int.

Pozor: Obe funkcie pracujú len s jedným znakom. Takže ak budete chcieť pracovať s viacerými znakmi používajte funkciu printf() resp. scanf().

 

Príklad č.5: 

Program vypíše slovo Škola po znakoch a skončí.


#include <conio.h>

void main(void )
{
   clrscr();
   putch(´Š´);     // vypíš jeden znak
   putch(´k´);
   putch(´o´);
   putch(´l´);
   putch(´a´);
   getch();
   }

 

Príklad č.6:

Program pre výpočet paralelného a sériového odporu


#include <stdio.h>
#include <conio.h>

void main(void)
{
   float R1,R2,Rs,Rp;
  
   clrscr();
   printf(˝Zadaj dva odpory\n"˝);
   scanf( ˝%f %f˝,&R1,&R2);   // načítanie reálnych hodnôt na pozície premenných R1 a R2
   Rs=R1+R2;
   Rp=(R1*R2)/(R1+R2);
   printf( ˝sériový odpor = %f\tparalelný odpor = %f˝, Rs,Rp );
   getch();
   }
    

Keďže výsledky výpočtu  paralelného a sériového odporu môžu byť desatinné čísla pre premenné sme zvolili dátový typ float.

 

zaokruhlovanie?????

Príklad č.7:

Program pre  výpočet obvodu a obsahu kruhu


#include <stdio.h>
#include <conio.h>
#define PI 3.14            // definícia konštanty PI

void main(void)
{
   float obvod,obsah,r;
  
   clrscr();
   printf(˝Zadaj polomer kruhu\n"˝);
   scanf( ˝%f",&r);
   obvod=2*PI*r;           // miesto PI kompilator dosadí 3.14
   obsah=PI*r*r;
   printf( ˝obvod kruhu je  %f\n",obvod);
   printf( ˝obsah kruhu je  %f",obsah);
   getch();
   }
  

V C jazyku platí ?????, to znamená že operácie ako násobenia a delenie má vyššiu prioritu ako sčítanie a odčítanie

 


 

Čo sme sa naučili?

  1. Ako vytlačíme text?

  2. Ako načítavame údaje z klávesnice?

  3. Použitie funkcií pre prácu s jedným znakom.

  4. Ako zmažeme obrazovku?

  5. V ktorých hlavičkových súboroch sa nachádzajú jednotlivé funkcie?

  6. Čo je premenná?

  7. Ako definujeme konštanty?

  8. Aké dátové typy a k nim prislúchajúce znaky konverzie poznáme?

  9. Ako píšeme vzorce v jazyku C?

  10. Ako v C-ku tvoríme komentáre?

 

 

 

 

 

 

 

 



Úlohy na zopakovanie

  1. Napíšte program, ktorý po stlačení znaku vypíše na obrazovku " Stlačil si znak: ?"

  2. Napíšte program, ktorý vypíše vaše meno potom do nového riadku priezvisko a vek (odsadené o TAB). Po stlačení
              klávesy vypíše triedu do ktorej chodíte.

  3. Napíšte program pre výpočet objemu a povrchu kocky ak hrana má veľkosť 5,25cm.

  4. Napíšte program pre výpočet ohmického napätia vinutia transformátora ak  pri priloženom jednosmernom napätí U=10 V
              ním preteká prúd I=2,245 A

  5. Cievkou s ľubovoľným počtom závitov N ,zadaných zo vstupu, preteká prúd I=2,5 A. Napíšte program, ktorý učí veľkosť
              magnetického napätia.

  6. Napíšte program, ktorý časový údaj zadaný v sekundách prevedie na hodiny, minúty a sekundy.