Feladat: Hogyan tudunk létrehozni egy olyan vector nevű tömb típust, amely egy háromdimenziós térbeli vektort reprezentál?

Hasonló dokumentumok
Információs Technológia

Programozás 3. Dr. Iványi Péter

Információs Technológia

3. Gyakorlat Ismerkedés a Java nyelvvel

Programozás alapjai C nyelv 5. gyakorlat. Írjunk ki fordítva! Írjunk ki fordítva! (3)

Programozás 5. Dr. Iványi Péter

Bevezetés a C programozási nyelvbe. Az Általános Informatikai Tanszék C nyelvi kódolási szabványa

C# gyorstalpaló. Készítette: Major Péter

Matematikai alapok. Dr. Iványi Péter

A C programozási nyelv I. Bevezetés

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós augusztus 29. Széchenyi István Egyetem, Gy r

C programnyelv 1. Kedves Kollegina, Kolléga!

Analóg és digitális jelek. Az adattárolás mértékegységei. Bit. Bájt. Nagy mennyiségû adatok mérése

Bevezetés a C++ programozásba

Programozás alapjai. 5. előadás

A C programozási nyelv I. Bevezetés

Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3)

A PROGAMOZÁS ALAPJAI 1. Függvény mint függvény paramétere. Függvény mint függvény paramétere. Függvény mint függvény paramétere


Programozás 1. Dr. Iványi Péter

Programozás. Programozás villamosmérnököknek

Java II. I A Java programozási nyelv alapelemei

PROGRAMOZÁS ALAPJAI (ANSI C NYELVEN)

Járműfedélzeti rendszerek II. 1. előadás Dr. Bécsi Tamás

Programozási nyelvek I. 5. előadás (Gregorics Tibor anyagának felhasználásával)

1.1. A forrásprogramok felépítése Nevek és kulcsszavak Alapvető típusok. C programozás 3

Programozás III CSOMAGOK. Az összetartozó osztályok és interfészek egy csomagba (package) kerülnek.

Túlmunkaidő óra Összesen: Egyéb óra Összesen: Éjszakai pótlékos óra Összesen: 100 % pótlékos óra Összesen: Összesen: Összesen: Összesen: Összesen:

M veletek és kifejezések

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe

malloc free malloc free int sum(int a[4]) { return a[0] + a[1] + a[2] + a[3]; }

OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN. vizsgatételek

Programozás BMEKOKAA146. Dr. Bécsi Tamás 1. Előadás

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

C# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem

Stack Vezérlés szerkezet Adat 2.

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás

Programozási nyelvek Java

Programozás alapjai 1. (BMEVIEEA100)

Az alábbi példában a Foo f(5); konstruktor hívása után mennyi lesz f.b értéke? struct Foo { int a, b; Foo(int c):a(c*2),b(c*3) {} };

Programozás. C++ típusok, operátorok. Fodor Attila

4. Fejezet : Az egész számok (integer) ábrázolása

Mintavételes szabályozás mikrovezérlő segítségével

A SystemC programok adattípusai

Típusok és konstansok

Bevezetés a C++ programozási nyelvbe

117. AA Megoldó Alfréd AA 117.

C# feladatgyűjtemény Kovács Emőd, Radványi Tibor, Király Roland, Hernyák Zoltán

Adattípusok. Max. 2GByte

VB C++ C# JScript J# Common Language Specification. ADO.NET and XML. Base Class Library. Common Language Runtime. Operating System

Adattípusok. Max. 2GByte

Szoftvertechnológia alapjai Java előadások

Programozás I gyakorlat. 5. Struktúrák

Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

Algoritmizálás + kódolás C++ nyelven és Pascalban


A C# PROGRAMOZÁSI NYELV

STL. Algoritmus. Iterátor. Tároló. Elsődleges komponensek: Tárolók Algoritmusok Bejárók

Elôszó a magyar kiadáshoz A Kiadó Elôszó

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás

Országzászlók (2015. május 27., Sz14)

Java II. I A Java programozási nyelv alapelemei

0.1. Mi az a standard be- és kimenet? A két mintafeladat leírása

VBA. Visual Basic for Applications

Programozás alapjai II. (2. ea) C++

Programozás alapjai II. (2. ea) C++

Horgásznaptár - részletes szolunáris naptár 2015

Pénzügyi algoritmusok

Labor gyakorlat Mikrovezérlők

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós február 18. Széchenyi István Egyetem, Gy r

Hibadetektáló és javító kódolások

Labor gyakorlat Mikrovezérlők

E7-DTSZ konfigurációs leírás


INFORMATIKAI ALAPISMERETEK

Programozás BMEKOKAA146. Dr. Bécsi Tamás 2. előadás

Megoldott feladatok. Informatika

MSP430 programozás Energia környezetben. Alfanumerikus LCD kijelzok

1) Hány byte-on tárol a C++ egy karaktert (char)? implementáció-függő ( viszont lásd 79. megjegyzés ) 1 8 4

Kifejezések. Kozsik Tamás. December 11, 2016

C programozási nyelv. Dr. Schuster György szeptember 18.

1 Rev 4. A C++ programozás alapjai- segédlet

Programozás I. Első ZH segédlet

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás 2. előadás

Bevezetés a mikrovezérlők programozásába: WS2812 RGB LED-ek vezérlése

A készülék használata elõtt kérjük olvassa el figyelmesen a használati utasítást.

7. gyakorlat. Fájlkezelés IO haladó Függvények haladó

A C nyelv aritmetikai típusai. Struktúrák.

100% BIO Natur/Bio kozmetikumok és testápolás

Miről lesz ma szó? A PROGAMOZÁS ALAPJAI 1. Programtervezési stratégiák. Top-down tervezés. Top-down tervezés. Bottom-up tervezés. 4.

PULLMANTUR. Az akciót a hajótársaság bármikor visszavonhatja, az akció a szabad helyek függvényében foglalható!

Programozás alapjai C nyelv 10. gyakorlat. Standard függvények. Union

Mérési útmutató. A/D konverteres mérés. // Első lépésként tanulmányozzuk a digitális jelfeldolgozás előnyeit és határait.

2.3. A C nyelv utasításai

7. Strukturált típusok

Programozási módszertan. Dinamikus programozás: Nyomtatási feladat A leghosszabb közös részsorozat

Angol kommunikációs tréning június ig

A C# programozási nyelv alapjai

A meteorológia az időjárás tudománya

Átírás:

Típus definiálás Ennek általános alakja: typedef típus név Feladat: Hogyan tudunk létrehozni egy olyan vector nevű tömb típust, amely egy háromdimenziós térbeli vektort reprezentál? typedef double vector[3]; Feladat: Hogyan lehet létrehozni egy N hosszúságú sztringek tárolására szolgáló karaktertömb típust? typedef char string[n+1]; Feladat: Hozz létre külön típust 16 bites nemnegatív értékek tárolására. typedef unsigned short int u16; Később, u16 szam; tudunk 16 bites nemnegatív értékek tárolására alkalmaz típusú szam nevű változót deklarálni! Felsorolás típus-enum Felsorolás adattípus értékhalmaza a típusképzésben felsorolt azonosítók, mint konstans azonosítók által meghatározott értékek. Feladat: Definiálj egy felsorolás típust a hét napjainak tárolására, majd írasd ki a napok értékeit!

int main() { enum { Hetfo, Kedd, Szerda, Csutortok, Pentek, Szombat, Vasarnap nap; for(nap=hetfo; nap <= Vasarnap; nap++) { printf("%d\n", nap); Feladat: Vedd külön a típusdefiníciót és a változódeklarációt! typedef enum { Hetfo, Kedd, Szerda, Csutortok, Pentek, Szombat, Vasarnap het; int main() { het nap; for(nap=hetfo; nap <= Vasarnap; nap++) { printf("%d\n", nap); Egy enum változó tulajdonképpen egy egész változó. Kérdések: -Mi történik, ha Hetfo=1 ként adod meg az első elemet? -Mi történik, ha Szombat=10 ként adod meg a hatodik elemet? -Adhatod-e az enum mindegyik elemének ugyanazt az int értéket?

Vizsgáljuk meg a következő programot! Mi is történik, és miért? int main() { enum het { Hetfo, Kedd, Szerda, Csutortok, Pentek, Szombat, Vasarnap nap; typedef enum { piros, zold, sarga colors; colors col; printf("milyen napon szeretnél almát enni? "); scanf("%d",&nap); printf("milyen színu almát szeretnél enni? "); scanf("%d",&col); switch(nap) { case Hetfo : case Kedd : case Szerda : case Csutortok : case Pentek : printf("csak hétvégén tudok almát felszolgálni!\n"); case Szombat : case Vasarnap : printf("mivel hétvége van, alma is van!\n"); switch(col) { case piros: printf("a piros alma egészséges, jó választás!\n"); case zold : printf("vigyázz, a zöldalma savanyú!\n"); case sarga : printf("a sárga alma is nagyon finom!\n"); default : printf("nem ismerek ilyen színu almát!\n"); default: printf("a hét csak 7 napból áll!\n");

Karakter típusról részletesebben sizeof operátor - típusok méretének meghatározása byteokban. Pl.: int i = sizeof(int); // ilyenkor az i változóba bele kerül az int típus mérete. ez a C esetén 4 byte A legtöbb típust mind meg lehet adni előjeles vagy előjeltelen formában. Egy típust előjelessé a signed, előjeltelenné az unsigned módosítóval tehetünk. A típusok alapértelmezés szerint általában előjelesek. C típus méret(bájt) alsó határ felső határ char 1?? signed char 1-128 127 unsigned char 1 0 255 short int 2-32768 32767 unsigned short int 2 0 65535 int 4-2147483648 2147483647 unsigned int 4 0 4294967295 long int 4-2147483648 2147483647 unsigned long int 4 0 4294967295 long long 8-263 263-1 float 4 -+3.4028234663852886E+38 double 8 -+1.7976931348623157E+308 long double 8 -+1.7976931348623157E+308 Túlcsordulás: Ha egy művelet eredménye túlhalad valamelyik irányban az azt eltárolni próbáló változó értékkészletén, akkor túlcsordulásról beszélünk. (Ha lefelé halad túl, szoktuk alulcsordulásnak is hívni.) Ilyenkor a "számláló körbefordul", tehát ha pl. egy unsigned char változóhoz, aminek az értéke 250 hozzáadunk 10-et, a változó értéke 5 lesz. ( Mivel a char típus mérete 1 byte = 8bit, mely maximum 255 értéket vehet fel. 250 + 10 = 260, mely nem tárolható 8 biten, hanem 9 bitre van szükség. 1 bit a túlcsordulás. ) Feladat: Írjunk egy programot, mely megmutatja, hogy hány byteon tárolódik a char típus!

printf("char: %d\n", sizeof(char)); Feladat: Írasd ki a 64 és 95 közé eső kódú karaktereket! char c; for(c=64; c<96; c++) { printf(" %c", c); putchar('\n'); Feladat: Alakítsd át az előző példát úgy, hogy írja ki az a és z közé eső karakterek kódjait. Feladat: Mi a különbség a signed char és az unsigned char értékkészlete között? Írasd ki -128-tól 255-ig egy signed és egy unsigned char típusú változó számértékét!

#include <string.h> char egyik[21], masik[21], harmadik[41]; scanf("%s %s", egyik, masik); strcpy(harmadik, egyik); strcat(harmadik, masik); printf(" -> %s\n", harmadik); Float Feladat: Hány byteon tárolódik a float és double típus? printf("float : %d\n", sizeof(float)); printf("double: %d\n", sizeof(double)); Feladat: Mi a különbség a float és a double pontossága között? Add hozzá az 1, 0.1, 0.01, 0.001,... sorozat elemeit egy-egy float és double változóhoz. Milyen értékeket kapsz lépésenként? int i; float f = 0.0, df = 1.0; double d = 0.0, dd = 1.0; for(i=0; i<20; i++) { f += df; d += dd; df *= 0.1; dd *= 0.1; printf("%d: float: %22.20f; double: %22.20lf\n", i + 1, f, d);

Eredmény: Feladat: Mi a különbség a float és a double értékkészlete között? Szorozgasd egy float és double változó értékét 0.1-gyel, amíg 0 nem lesz mindkettő. Milyen értékeket kapsz lépésenként? float f = 1.0; double d = 1.0; int i = 0; do { printf("%d: float: %g; double: %lg\n", ++i, f, d); f *= 0.1; d *= 0.1; while((f!=0.0) (d!=0.0)); Integer Feladat: Hány bájton tárolódik a short int, int, long int, long long típus?

printf("short int: %d\n", sizeof(short int)); printf("int : %d\n", sizeof(int)); printf("long int : %d\n", sizeof(long int)); printf("long long: %d\n", sizeof(long long)); Feladat: Mi a különbség ugyanazon típus előjeles és előjeltelen verziója között? Deklarálj 6 változót (signed/unsigned, short/long/long long) változót, 0 kezdőértékkel, és vonj ki belőlük egyet. Milyen értékeket kapsz? Add értékül a változóknak a legnagyobb előjelesen ábrázolható értéket (ez fele az előjeltelen maximális értéknek), és adj hozzá egyet. Most mik a változók értékei?

signed short int ssi = 0; unsigned short int usi = 0; signed long int sli = 0; unsigned long int uli = 0; signed long long sll = 0; unsigned long long ull = 0; ssi -= 1; usi -= 1; sli -= 1; uli -= 1; sll -= 1; ull -= 1; printf("0 mínusz 1\n"); printf("s16: %hd\n", ssi); printf("u16: %hu\n", usi); printf("s32: %ld\n", sli); printf("u32: %lu\n", uli); printf("s64: %lld\n", sll); printf("u64: %llu\n", ull); ssi = usi /= 2; sli = uli /= 2; sll = ull /= 2; printf("legnagyobb ábrázolható előjeles szám...\n"); printf("s16: %hd\n", ssi); printf("u16: %hu\n", usi); printf("s32: %ld\n", sli); printf("u32: %lu\n", uli); printf("s64: %lld\n", sll); printf("u64: %llu\n", ull); ssi += 1; usi += 1; sli += 1; uli += 1; sll += 1; ull += 1; printf("... plusz 1\n"); printf("s16: %hd\n", ssi); printf("u16: %hu\n", usi); printf("s32: %ld\n", sli); printf("u32: %lu\n", uli); printf("s64: %lld\n", sll); printf("u64: %llu\n", ull);

Eredmény: