You are on page 1of 3

3.

gyakorlat: Első C programunk

Programírás:
Tetszőleges szövegszerkesztő programban. C program kiterjesztése: *.c

A fordítás menete:
Terminál ablakban:
gcc *.c (-> default: a.out) Futtatás: ./a.out
gcc *.c -o *.out
gcc *.c -c (-> object fájl: *.o)
Több object fájlt szóközökkel megadva, a gcc fordító elkészít egy futtatható állományt.

A fordító távoli elérése:


iit-s accounttal bejelentkezve a zeus-ra ssh-n keresztül.

Programozási feladatok

1. Helló világ!

#include <stdio.h>
main()
{
printf(”Hello Vilag!”);
}

2. Két szám összege.

#include <stdio.h>
main()
{
int a,b,c;
printf(”Kerek ket egesz szamot: ”);
scanf(”%d, %d”, &a, &b);
c = a + b; /* Az osszeg kiszamitasa */
printf(”\nA ket szam osszege: %d\n”, c);
}

#include <stdio.h>
#include <stdlib.h>
main()
{
int a,b,c;
printf(”Kerek ket egesz szamot: ”);
if (scanf(”%d, %d”, &a, &b) != 2)
{
printf(”Hibas adatbevitel!\n”);
exit(-1);
}
printf(”\nA ket szam osszege: %d + %d = %d\n”, a,b,c);
}
3. Derékszögű háromszög területének és kerületének kiszámítása.

#include <stdlib.h>
#include <stdio.h>
#include <math.h>

main()
{
int a,b;
double c,K,T;
printf(”A derekszogu haromszog ket befogoja: ”);
if (scanf(”%d, %d”, &a, &b) != 2)
{
printf(”Hibas adatbevitel!\n”);
exit(-1);
}
T = (a * b) / 2;
printf(”\nA haromszog terulete: %lf\n”, T);
c = sqrt( (a*a) + (b*b) );
K = a + b + c;
printf(”\nA haromszog kerulete: %lf\n”, K);
}

4. Másodfokú egyenletmegoldó.

#include <stdlib.h>
#include <stdio.h>
#include <math.h>

main()
{
int a, b, c;
double x1, x2;
printf(”Adja meg a masodfoku egyenlet konstans tagjait (3): ”);
if (scanf(”%d, %d, %d”, &a, &b, &c) != 3)
{
printf(”Hibas adatbevitel!\n”);
exit(-1);
}
/* A masodfoku egyenlet megoldasai */
x1 = ( ( -1*b) + sqrt( (b*b) – (4*a*c) ) ) / 2*a;
x2 = ( ( -1*b) - sqrt( (b*b) – (4*a*c) ) ) / 2*a;
printf(”\nA masodfoku egyenlet megoldasai: %lf, %lf\n”, x1, x2);
}

Megjegyzés: a math.h header fájl inkludálása miatt a 3. és 4. programokat a –lm kapcsolóval


kell fordítani!
5. Kör területének és kerületének kiszámítása.

#include <stdlib.h>
#include <stdio.h>

#define PI 3.14

main()
{
int r;
double K,T;
printf(”Adja meg a kor sugarat: ”);
if (scanf(”%d”, &r) != 1)
{
printf(”Hibas adatbevitel!\n”);
exit(-1);
}
T = r*r*PI;
K = 2*PI*r;
printf(”\nA kor terulete: %lf\n”, T);
printf(”\nA kor kerulete: %lf\n”, K);
}

A gyakorlaton elsajátítandó ismeretek/fogalmak:

C program felépítése:
– Előfordító utasítások
– Header állományok megadása (fgv-ek definícióját tartalmazza)
– Makrók, konstans definíciók megadása
– Globális definíciók, deklarációk
– Függvény definíciók megadása
– Függvény fejléce (prototípusa): visszatérési típus, név, paraméterlista
– Függvénytörzs { … }
– Minden program tartalmaz egy Main() függvényt, a program futása ennek az
indításával kezdődik.

– Függvénytörzs utasításai:
– lokális változók deklarálása, inicializálása
– szabványos outputra írás (printf), szabványos bemenetről adatbeolvasás (scanf,
címképző operátor használata), formátum (%d, %lf, %c, %s) megadása
– aritmetikai operátorok, precedenciájuk
– C program fordítása (cc, gcc);
– egész és lebegőpontos típusok;
– kommentezés.

Házi feladat:
Két elem cseréje.
Az előadáson ismertetett „Négyzet progi” kódolása (külön függvénnyel!).
Téglatest felszínének (A = 2 * (a*b + a*c + b*c)) és térfogatának (V = a*b*c) kiszámítása.

You might also like