Programozás I. gyakorlat 1. gyakorlat
Alapok
Eszközök Szövegszerkesztő:
●
– –
Szintaktikai kiemelés Egyszerre több fájl szerkesztése ●
pl.: gedit, mcedit, joe, vi, Notepad++ stb.
Fordító:
●
–
Szöveges file-ban tárolt forráskódból készít futtatható állományt ●
gcc, MSVC, Intel Compiler stb.
Fapados módszer Indítsunk el egy szövegszerkeszőt ●Gépeljük be a következőt: ●
#include <stdio.h> int main() { printf(”Hello world!\n”); return 0; }
Fapados módszer Vegyük észre, hogy bizonyos szavakat kiemel a szövegszerkesztő! Ezek közül némelyek a c kulcsszavai közé tartoznak.
●
Mentsük el a forráskódot, a fájl kiterjesztése legyen .c
●
Nyissunk meg egy terminált
●
Fapados módszer Navigáljunk abba a könyvtárba, ahol a forrásfile található ●Könyvtár listázás Linuxban: ls ●Könyvtárba belépés: cd
●Szülő könyvtárba lépés: cd .. ●
Fordítsuk le a programunkat: gcc -Wall -o elso elso.c
●
Magyarázat gcc : a fordítóprogram ●-Wall: kapcsoló, amely utasítja a fordítót, hogy minden figyelmeztetést írjon ki a képernyőre (tanuláshoz érdemes használni) ●-o elso : megadjuk a kimeneti fájl, azaz a futtatható program nevét ●elso.c : a bemeneti file, azaz a forrásfile neve ●
Fapados módszer Amennyiben a forráskódot helyesen gépeltük be, a fordító lefut, és nem ad visszajelzést
●
Futtassuk a programunkat: ./elso
●
Hello world!
Fapados módszer Írjunk át valamit a forráskódban, hogy hibás legyen ●Nézzük meg, hogy a fordító mit ír ki! ●
IDE használata IDE: Integrated development environment, azaz Integrált fejlesztői környezet ●Szövegszerkesztő, fordító, hibakereső, projekt kezelő, verziókövető, stb. ●
Példák:
●
–
Eclipse, Netbeans, Anjuta, Geany, Dev-C++, Code::Blocks, Microsoft Visual Studio
Geany Az egyszerűbb IDE-k közé tartozik ●Alkalmas szövegszerkesztésre, fordításra, futtatásra ●
Geany Hozzunk létre új forrásfile-t
●
Mentsük el ●Összeállítás\Összeállítás vagy F9 ●Futtassuk a kész programot (F5) ●
Változók Hozzunk létre egy változót: ●Típusa legyen integer, és adjunk neki értéket! ●
#include <stdio.h> int main(int argc, char** argv) { int a = 42; printf("ez egy szam: %d\n", a); return 0; }
Változók Irassuk ki a változót különböző módokon!
●
#include <stdio.h> int main(int argc, char** argv) { int a = 42; printf("ez egy szam: %d\n", printf("ez egy szam: %u\n", printf("ez egy szam: %x\n", printf("ez egy szam: %X\n", printf("ez egy szam: %o\n", printf("ez egy szam: %c\n", return 0; }
a); a); a); a); a); a);
Változók Hozzunk létre egy karakter típusú változót! ●Írassuk ki kétféleképpen! ●Adjunk neki értéket kétféleképpen! ●
#include <stdio.h> int main(int argc, char** argv) { char ch1 = 'A'; char ch2 = 65; printf("ch1 = %c\n", ch1); printf("ch2 = %c\n", ch2); return 0; }
Változók Nézzük meg a lebegőpontos változókat is!
●
#include <stdio.h> int main(int argc, char** argv) { double a = 65.3; printf("lebegopontos: %f\n", a); printf("lebegopontos: %g\n", a); return 0; }
Bekérés, kiíratás Olvassunk be egy egész típusú számot a billentyűzetről, majd írassuk ki!
●
#include <stdio.h> int main(int argc, char** argv) { int a = 0; int res = scanf("%d", &a); printf("A bekert szam: %d\n", a); printf("A visszateresi ertek: %d\n", res); return 0; }
Bekérés, kiíratás Írjunk programot, amely beolvas egy számot, és kiírja a kétszeresét!
●
#include <stdio.h> int main(int argc, char** argv) { int a = 0; scanf("%d", &a); printf("A bekert szam: %d\n", a); printf("A bekert szam ketszerese: %d\n", a*2); return 0; }
Összetettebb program Kérjük be egy téglatest oldalainak hosszát, majd írassuk ki a téglatest felszínét és térfogatát! ●Kérjük be egy háromszög alaplapjának és magasságának hosszát, majd írjuk ki a területét! ●
Egyik megoldás #include <stdio.h> int main(int argc, char** argv) { int a, b, c; printf("\n"); scanf("%d", &a); scanf("%d", &b); scanf("%d", &c); printf("A terfogat: %d\n", a*b*c); printf("felszin: %d\n", (a*b + b*c + c*a)*2); return 0; }
Kicsit eltérő megoldás #include <stdio.h> int main(int argc, char** argv) { int a, b, c, terf, felsz; printf("\n"); scanf("%d", &a); scanf("%d", &b); scanf("%d", &c); terf = a*b*c; felsz = (a*b + b*c + c*a)*2; printf("A terfogat: %d\n", terf); printf("felszin: %d\n", felsz); return 0; }
2. feladat Írjon programot, amely bekéri egy osztály létszámát, majd megkérdezi, hogy ebből hányan tanulnak német, angol és francia nyelven (tegyük fel, hogy a bevitt adatok lehetségesek). ●A program írja ki, hogy az osztály hány százaléka tanulja az egyes nyelveket (% jellel együtt). ●A százalékot egy tizedes pontossággal írja ki! ●
2. feladat, példa Osztály létszáma: 34 Német: 12 Angol: 30 Francia: 6 Németet tanulnak: 35.3 % Angolt tanulnak: 88.2 % Franciát tanulnak: 17.6 %
2. feladat, megoldás #include <stdio.h> int main(int argc, char** argv) { int letszam, angol, nemet, francia; printf("Osztaly letszama: "); scanf("%d", &letszam); printf("Nemet: "); scanf("%d", &nemet); printf("Angol: "); scanf("%d", &angol); printf("Francia: "); scanf("%d", &francia);
2. feladat, megoldás
}
printf("\nNemetet tanulnak: %.1f %%", ((double)nemet / letszam)*100); printf("\nAngolt tanulnak: %.1f %%", ((double)angol / letszam)*100); printf("\nFranciat tanulnak: %.1f %%", ((double)francia / letszam)*100); return 0;
3. feladat Írja ki a képernyőre egy idézetet, valamint annak szerzőjét az alábbi módon:
●
”A repülés titka az, hogy valaki próbálja ledobni magát a földre, de elvéti.” \ Douglas Adams \
A szerző neve előtt legyen 2 tabulátor is ●Oldja meg a feladatot egy printf használatával is! ●
3. feladat, megoldás #include <stdio.h> int main(int argc, char** argv) { printf("\"A repülés titka az, hogy valaki próbálja\n"); printf("ledobni magát a földre, de elvéti.\"\n"); printf("\t\t\\ Douglas Adams \\\n"); return 0; } ● Egy printf-el: ● printf("\"A repülés titka az, hogy valaki próbálja\nledobni magát a földre, de elvéti.\"\n \t\t\\ Douglas Adams \\\n");
4. feladat A korábban írt programokban vétsen hibákat, például:
●
– – – – – – –
Töröljön ki egy pontosvesszőt Hagyjon el egy ”-t a printf függvény hívásánál A printf függvénynél a ”-t cserélje '-ra Írja át az int-et Int-re Hagyja el a return 0; sort Figyelje meg, hogy a szintaktikai kiemelés mely esetekben segít a hiba előrejelzésében Figyelje meg, hogy a fordító mely hibára, mit ír ki
4. feladat Ötlet gyakorláshoz: szükséges 2 vagy több személy ●Mindenki írjon valamilyen programot, ami tartalmaz valamilyen hibát ●Cseréljenek forráskódot, és próbálják megtalálni a mások által vétett hibákat, először a kód átolvasása, majd ha így nem megy, a fordító hibaüzenetei, esetleg a program futása alapján ●