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

Hasonló dokumentumok
Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Előfeldolgozó rendszer Tömbök. Dr. Bécsi Tamás 4. Előadás

Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Mutatók. Dr. Bécsi Tamás 7. Előadás

Karakter- és sztringkezelő függvények, matematikai függvények

C string műveletek (string.h alkalmazása)

Programozás C nyelven (10a. ELŐADÁS) Sapientia EMTE

Programozás C nyelven (10. ELŐADÁS) Sapientia EMTE

Pénzügyi algoritmusok

Programozás I gyakorlat

Programozás I gyakorlat

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

A C programozási nyelv I. Bevezetés

A C programozási nyelv I. Bevezetés

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

Assembly programozás: 2. gyakorlat

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

Írjon olyan programot a standard könyvtár alkalmazásával, amely konzolról megadott valós adatokból meghatározza és kiírja a minimális értékűt!

Programozás II. 2. Dr. Iványi Péter

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek

Algoritmusok Tervezése. 4. Előadás Visual Basic 1. Dr. Bécsi Tamás

1. Gyakorlat. Rövid elméleti összefoglaló. <tárolási osztály>típus <típus > változónév <= kezdőérték><, >;

Programozás alapjai gyakorlat. 2. gyakorlat C alapok

Függvény pointer. Feladat: Egy tömbben soroljunk fel függvényeket, és hívjuk meg valahányszor.

Szövegek C++ -ban, a string osztály

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

Programozás C++ -ban 2007/1

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

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

/* Az iter függvény meghívása és a visszatérő érték átadása a gyok változóba */ gyok = iter( n, a, e ) ;

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

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

9.fejezet: Függvények és külső eljárások

Programozás I gyakorlat. 10. Stringek, mutatók

Elemi függvények. Matematika 1. előadás. ELTE TTK Földtudomány BSc, Környezettan BSc, Környezettan tanár október 4.

Elemi függvények. Matematika 1. előadás. ELTE TTK Földtudomány BSc, Környezettan BSc, Környezettan tanár 3. előadás. Csomós Petra

Típusok és konstansok

1. Feladat: beolvas két számot úgy, hogy a-ba kerüljön a nagyobb

Programozás I. gyakorlat

Programozás C és C++ -ban

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

A C++ nyelvben a függvény nevek túlterhelésével biztonságosabbá tehetnénk az adatok kiírását és beolvasását.

1. Feladatlap. Függvények. Mőveletek Matlab nyelvben. Példa inverz osztásra >>d=2\1 d= Információkérési lehetıségek help utasítás

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

5. gyakorlat. Konstansok Tömbök Stringek

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

Példák tematikus csoportosításban

A programozás alapjai előadás. A C nyelv típusai. Egész típusok. C típusok. Előjeles egészek kettes komplemens kódú ábrázolása

A Föld középpontja felé szabadon eső test sebessége növekszik, azaz, a

11. gyakorlat Sturktúrák használata. 1. Definiáljon dátum típust. Olvasson be két dátumot, és határozza meg melyik a régebbi.

1. Alapok. Programozás II

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

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

Függvények. Programozás I. Hatwágner F. Miklós november 16. Széchenyi István Egyetem, Gy r

Programozás alapjai 2.Gy: A C nyelv alapjai P R O

Egyváltozós függvények 1.

Bevezetés Kiíratás Beolvasás Formázás Fájlkezelés Gyakorló feladatok C++ I/O. Bevezetés. Izsó Tamás február 20. Izsó Tamás C++ I/O / 1

Programozás I gyakorlat

int tokeletes(int szam) { int i,oszto=0; for(i=1; i<szam; i++) { if(szam %i == 0) { oszto+=i; }

10. gyakorlat Tömb, mint függvény argumentum

ÁTVÁLTÁSOK SZÁMRENDSZEREK KÖZÖTT, SZÁMÁBRÁZOLÁS, BOOLE-ALGEBRA

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

Programozás C és C++ -ban

Példatár a Programozás 1 tárgyhoz

Felvételi vizsga mintatételsor Informatika írásbeli vizsga

Sztringkezelő függvények. A string típusú változók kezelése, használata és szerepük a feldolgozás során

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

C programozás. 6 óra Függvények, függvényszerű makrók, globális és

500. AA Megoldó Alfréd AA 500.

Programozás alapjai C nyelv 8. gyakorlat. Mutatók és címek (ism.) Indirekció (ism)

Mutatók és címek (ism.) Programozás alapjai C nyelv 8. gyakorlat. Indirekció (ism) Néhány dolog érthetőbb (ism.) Változók a memóriában

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

M veletek és kifejezések

main int main(int argc, char* argv[]) { return 0; } main return 0; (int argc, char* argv[]) main int int int main main main

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

Java II. I A Java programozási nyelv alapelemei

Programozás alapjai 8.Gy: Program struktúra

2. Fejezet : Számrendszerek

Információs Technológia

The Architecture of Computer Hardware and Systems Software: An InformationTechnology Approach 3. kiadás, Irv Englander John Wiley and Sons 2003

1. Írjunk programot mely beolvas két számot és ellenőrzi hogy mindkét szám zérus-e:

Programozás C++ -ban 2007/7

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

A C programozási nyelv VI. Parancssori argumentumok File kezelés

A helyi információ és az id kezelése

Preprocesszor. Programozás alapjai C nyelv 11. gyakorlat. Makrók (2) Makrók (#define) Makrók (3) #include

Programozás alapjai C nyelv 11. gyakorlat. Preprocesszor. Makrók (#define)

Miről lesz ma szó? A PROGAMOZÁS ALAPJAI 1. Dinamikus változók. Dinamikus változók. Dinamikus változók. Dinamikus változók. 7.

1. Írjunk programot mely beolvas két egész számot és kinyomtatja az összegüket.

3. gyakorlat. Kettes számrendszer: {0, 1} Tízes számrendszer: {0, 1, 2,..., 9} 16-os (hexadecimális számrendszer): {0, 1, 2,..., 9, A, B, C, D, E, F}

A számok kiírása is alapvetően karakterek kiírásán alapul, azonban figyelembe kell venni, hogy a számjegyeket, mint karaktereket kell kiírni.

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

Matematikai alapok. Dr. Iványi Péter

Raszteres elemzés végrehajtása QGIS GRASS moduljával 1.7 dr. Siki Zoltán

I. ALAPALGORITMUSOK. I. Pszeudokódban beolvas n prim igaz minden i 2,gyök(n) végezd el ha n % i = 0 akkor prim hamis

Programozás alapjai 9.Gy: Struktúra 2.

Objektum Orientált Programozás IV.

C programozási nyelv Pointerek, tömbök, pointer aritmetika

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

2012. október 9 és 11. Dr. Vincze Szilvia

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

500. CC Megoldó Alfréd CC 500.

Átírás:

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

String formázása A formátumozott adatkiviteli konverziót alapvetően a printf függvény különböző változatai végzik. int sprintf(char *s, const char *format,...) Az sprintf a kimenetet az s karaktersorozatba írja, majd a '\0' végjellel lezárja. Az s karaktersorozatnak elegendően hosszúnak kell lennie, hogy az eredményt tárolni tudja. A függvény visszatérésekor a kiírt karakterek számát adja ('\0'nélkül számolva) A függvény a format karaktersorozatban leírt formátum szerint átalakítja a megadott adatok értékét. A függvény a kiírt karakterek számát adja visszatérési értékként, vagy egy negatív számot, ha hiba volt. 2013.05.08. Dr. Bécsi Tamás: Járműfedélzeti rendszerek II. 2

String formázása formátum karaktersorozat A formátumot leíró karaktersorozat kétféle objektumot tartalmaz: közönséges karaktereket, amelyeket változtatás nélkül bemásol a kimeneti adatáramba, valamint konverziós specifikációkat, amelyek mindegyike az sprintf soron következő argumentumának konverzióját és kiíratását vezérli. Az egyes konverziós specifikációk a % karakterrel kezdődnek és egy konverziós karakterrel végződnek. %[flags][width][.precision][length]specifier 2013.05.08. Dr. Bécsi Tamás: Járműfedélzeti rendszerek II. 3

String formázása %[flags][width][.precision][length]specifier Konv Arg A nyomtatás módja kar típusa d, i int decimális szám o int előjel nélküli oktális szám vezető nullák nélkül) x, X int előjel nélküli hexadecimális szám (a vezető 0x vagy 0X nélkül), a 10...15jelzése az abcdef vagy ABCDEF karakterekkel u int előjel nélküli decimális szám c int egyetlen karakter s char* karaktersorozatból karaktereket nyomtat a '\0' végjelzésig vagy a pontossággal megadott darabszámig f double [-]m.dddddd alakú decimális szám, ahol d számjegyeinek számát a pontosság adja meg (alapfeltételezés szerint d=6) e, E double [-]m.dddddde xx vagy [-]m.dddddde xx alakú decimális szám, ahol d számjegyeinek számát a pontosság adja meg (alapfeltételezés szerintd=6 g, G double %e vagy %E alakú kiírást használ, ha a kitevő < -4 vagy >= pontosság, különben a %f alakú kiírást használja. A tizedespont és az utána következő értéktelen nullák nem íródnak ki p void * mutató a géptől függő kiírási formában n int * a printf függvény aktuális hívásakor kiírt karakterek száma beíródik az argumentumba. Az argumentum nem konvertálódik % nincs egy % jelet ír ki 2013.05.08. Dr. Bécsi Tamás: Járműfedélzeti rendszerek II. 4

String formázása %[flags][width][.precision][length]specifier Jelzők (bármilyen sorrendben), amelyek módosítják a specifikációt: - mínuszjel, ami a konvertált argumentum balra igazítását írja elő a kiírási mezőben; + jel, ami azt írja elő, hogy a számok kiírása mindig előjellel együtt történjen; szóközkarakter hatására a szám elé szóköz íródik, ha az első karaktere nem előjel; 0 számkonverzió esetén azt írja elő, hogy a kiírási mezőben a szám előtti üres helyek vezető nullákkal töltődjenek fel; # jel a kimeneti formátum megváltoztatását írja elő. o esetén a kiírt első számjegy nulla lesz (oktális szám kiírása). X vagy x esetén a nem nulla szám elé 0x vagy0x íródik (hexadecimális szám kiírása), e, E, g és G esetén a kiírt szám mindig tartalmazza a tizedespontot és g vagy G esetén a szám végén lévő értéktelen nullák megmaradnak. 2013.05.08. Dr. Bécsi Tamás: Járműfedélzeti rendszerek II. 5

String formázása %[flags][width][.precision][length]specifier A kiírási mező minimális szélességét előíró szám: az átalakított argumentum legalább ilyen szélességben (vagy ha szükséges, akkor szélesebb formában) fog kiíródni. Ha az átalakított szám a megadott mezőszélességnél kevesebb karakterből áll, akkor a mező bal széle (ill. ha balra igazítás volt előírva, akkor jobb széle) helykitöltő karakterekkel fog feltöltődni. A helykitöltő karakter normális esetben szóköz, de ha 0-val való feltöltést írtuk elő, akkor nulla. 2013.05.08. Dr. Bécsi Tamás: Járműfedélzeti rendszerek II. 6

String formázása %[flags][width][.precision][length]specifier A pont karakter, ami elválasztja a mezőszélességet a pontosságtól. A pontosságot meghatározó szám, ami megadja, hogy e, E és f konverzió esetén a tizedespont után hány számjegyet kell kiírni, vagy g és G konverzió esetén minimálisan hány számjeggyel íródjon ki egy egész szám (a szükséges szélesség elérése érdekében a szám elé vezető nullák íródnak), vagy a karaktersorozatból hány karaktert kell kiírni. Hosszmódosító, ami h, l vagy L lehet. A h azt jelzi, hogy a megfelelő argumentum short vagy unsigned short formában nyomtatható, az l azt, hogy az argumentum long vagy unsigned long és az L pedig azt, hogy az argumentum long double. A mezőszélesség vagy pontosság vagy mindkettő a * jellel is megadható, és ebben az esetben a kívánt érték a következő argumentum(ok)ból, az(ok) konverziójával számítódik ki (az erre a célra használt argumentumoknak int típusúaknak kell lenni). 2013.05.08. Dr. Bécsi Tamás: Járműfedélzeti rendszerek II. 7

String formázása példa unsinged char (245) %d 245-11 singed char (- 11) %u 245 4294967285 %o 365 37777777765 %x F5 fffffff5 %X F5 FFFFFFF5 %5d " 245" %+5d " +245" %-+5d "+245 " %0+5d "+0245" float 123.123456 %f "123.123456" %g "123.123" %e "1.231235e+002" %E "1.231235E+002" %+f "+123.123456" %014f "0000123.123456" %-14f "123.123456 " % f " 123.123456" %7.1f " 123.1" %.1f "123.1 2013.05.08. Dr. Bécsi Tamás: Járműfedélzeti rendszerek II. 8

String formázása példa char c= a char *s szoveg %c "a" %5c " a" %-5c "a " %s "szoveg" %-10s "szoveg " %10s " szoveg" 2013.05.08. Dr. Bécsi Tamás: Járműfedélzeti rendszerek II. 9

B3. Karaktersorozat-kezelő függvények: a <string.h> header char *strcpy(s, ct) Az strcpy függvény a ct karaktersorozatot átmásolja az s karaktersorozatba, beleértve act-t záró '\0' végjelet is. A függvény visszatérési értéke s mutatója. char *strncpy(s, ct, n) Az strncpy függvény a ctből n karaktert átmásol s-be és visszatér s mutatójával. Az s végét '\0' végjelekkel tölti fel, ha ct n karakternél rövidebb volt. char *strcat(s, ct) Az strcat függvény a ct karaktersorozatot az s karaktersorozat végéhez fűzi (konkatenálja) és visszatér s mutatójával. char *strncat(s, ct, n) Az strncat függvény a ct karaktersorozatból n karaktert az s karaktersorozat végéhez fűz, s-t lezárja a '\0' végjellel és visszatér s mutatójával. 2013.05.08. Dr. Bécsi Tamás: Járműfedélzeti rendszerek II. 10

Strcpy példa /* strcpy example */ #include <stdio.h> #include <string.h> int main () { char str1[]="sample string"; char str2[40]; char str3[40]; strcpy (str2,str1); strcpy (str3,"copy successful"); printf ("str1: %s\nstr2: %s\nstr3: %s\n",str1,str2,str3); return 0; } str1: Sample string str2: Sample string str3: copy successful 2013.05.08. Dr. Bécsi Tamás: Járműfedélzeti rendszerek II. 11

Strncpy példa /* strncpy example */ #include <stdio.h> #include <string.h> int main () { char str1[]= "To be or not to be"; char str2[40]; char str3[40]; /* copy to sized buffer (overflow safe): */ strncpy ( str2, str1, sizeof(str2) ); /* partial copy (only 5 chars): */ strncpy ( str3, str2, 5 ); str3[5] = '\0'; /* null character manually added */ puts (str1); puts (str2); } puts (str3); return 0; To be or not to be To be or not to be To be 2013.05.08. Dr. Bécsi Tamás: Járműfedélzeti rendszerek II. 12

Strcat,strncat példa /* strcat example */ #include <stdio.h> #include <string.h> int main () { char str[80]; strcpy (str,"these "); strcat (str,"strings "); strcat (str,"are "); strncat (str,"concatenated. ",5); puts (str); return 0; } these strings are concat 2013.05.08. Dr. Bécsi Tamás: Járműfedélzeti rendszerek II. 13

B3. Karaktersorozat-kezelő függvények: a <string.h> header int strcmp(cs, ct)az strcmp függvény összehasonlítja a cs karaktersorozatot a ct karaktersorozattal és visszatér negatív értékkel, ha cs < ct, nulla értékkel, ha cs == ct és pozitív értékkel, ha cs > ct. int strncmp(cs, ct, n)az strncmp függvény összehasonlítja a cs karaktersorozat legfeljebb n karakterét a ct karaktersorozattal és visszatér negatív értékkel, ha cs < ct, nulla értékkel, ha cs == ct és pozitív értékkel, ha cs > ct. char *strchr(cs, c)az strchr függvény a c karakter cs-beli első előfordulási helyének mutatójával, ill. ha c nem található meg cs-ben, akkor NULL értékű mutatóval tér vissza. char *strrchr(cs, c)az strrchr függvény a c karakter cs-beli utolsó előfordulási helyének mutatójával, ill. ha c nem található meg cs-ben, akkor NULL értékű mutatóval tér vissza. 2013.05.08. Dr. Bécsi Tamás: Járműfedélzeti rendszerek II. 14

Strcmp példa /* strcmp example */ #include <stdio.h> #include <string.h> int main () { char szkey[] = "apple"; char szinput[80]; do { printf ("Guess my favourite fruit? "); gets (szinput); } while (strcmp (szkey,szinput)!= 0); } puts ("Correct answer!"); return 0; Guess my favourite fruit? orange Guess my favourite fruit? apple Correct answer! 2013.05.08. Dr. Bécsi Tamás: Járműfedélzeti rendszerek II. 15

Strncmp példa /* strncmp example */ #include <stdio.h> #include <string.h> int main () { char str[][5] = { "R2D2", "C3PO", "R2A6" }; int n; puts ("Looking for R2 astromech droids..."); for (n=0 ; n<3 ; n++) if (strncmp (str[n],"r2xx",2) == 0) { printf ("found %s\n",str[n]); } return 0; Looking for R2 astromech droids... } found R2D2 found R2A6 2013.05.08. Dr. Bécsi Tamás: Járműfedélzeti rendszerek II. 16

Strchr példa /* strchr example */ #include <stdio.h> #include <string.h> int main () { char str[] = "This is a sample string"; char * pch; printf ("Looking for the 's' character in \"%s\"...\n",str); pch=strchr(str,'s'); while (pch!=null) { printf ("found at %d\n",pch-str+1); pch=strchr(pch+1,'s'); } } return 0; Looking for the 's' character in "This is a sample string"... found at 4 found at 7 found at 11 found at 18 2013.05.08. Dr. Bécsi Tamás: Járműfedélzeti rendszerek II. 17

B3. Karaktersorozat-kezelő függvények: a <string.h> header char *strstr(cs, ct)az strstr függvény visszatérési értéke a ct karaktersorozat cs-beli első előfordulásának kezdetét címző mutató, vagy NULL, ha a ct nem található meg cs-ben. size_t strlen(cs)az strlen függvény visszatérési értéke a cs karaktersorozat hossza. char *strerror(n)az strerror függvény az n hibaszámhoz tartozó, a gépi megvalósítástól függő hibaüzenet karaktersorozatának mutatójával tér vissza. 2013.05.08. Dr. Bécsi Tamás: Járműfedélzeti rendszerek II. 18

Strstr példa /* strstr example */ #include <stdio.h> #include <string.h> int main () { char str[] ="This is a simple string"; char * pch; pch = strstr (str,"simple"); strncpy (pch,"sample",6); puts (str); return 0; } This is a sample string 2013.05.08. Dr. Bécsi Tamás: Járműfedélzeti rendszerek II. 19

B3. Karaktersorozat-kezelő függvények: a <string.h> header void *memcpy(s, ct, n) A memcpy függvény a ctből n karaktert átmásol az s-be és visszatér s mutatójával. void *memmove(s, ct, n)a memmove függvény megegyezik a memcpy függvénnyel, kivéve, hogy egymást átfedő objektumok esetén is használható. int memcmp(cs, ct, n)a memcmp függvény összehasonlítja a cs első n karakterét ct-vel. A függvény visszatérési értékei megegyeznek az strcmp visszatérési értékeivel. Ellentétben az strcmp-vel, nem áll meg \0-nál 2013.05.08. Dr. Bécsi Tamás: Járműfedélzeti rendszerek II. 20

Memcpy példa /* memcpy example */ #include <stdio.h> #include <string.h> struct { char name[40]; int age; } person, person_copy; int main () { char myname[] = "Pierre de Fermat"; /* using memcpy to copy string: */ memcpy ( person.name, myname, strlen(myname)+1 ); person.age = 46; person_copy: Pierre de Fermat, 46 /* using memcpy to copy structure: */ memcpy ( &person_copy, &person, sizeof(person) ); printf ("person_copy: %s, %d \n", person_copy.name, person_copy.age ); return 0; } 2013.05.08. Dr. Bécsi Tamás: Járműfedélzeti rendszerek II. 21

Memcpy példa /* memmove example */ #include <stdio.h> #include <string.h> int main () { char str[] = "memmove can be very useful..."; memmove (str+20,str+15,11); puts (str); return 0; } memmove can be very very useful. 2013.05.08. Dr. Bécsi Tamás: Járműfedélzeti rendszerek II. 22

B3. Karaktersorozat-kezelő függvények: a <string.h> header void *memchr(cs, c, n)a memchr függvény visszatérési értéke a c karakter cs-beli első előfordulásának helyét címző mutató, vagy NULL, ha c nem található meg cs első n karakterében. void *memset(s, c, n)a memset függvény elhelyezi a c karaktert az s első n karakterében és visszatérési értéke az s mutatója. 2013.05.08. Dr. Bécsi Tamás: Járműfedélzeti rendszerek II. 23

B4. Matematikai függvények: a <math.h> header sin(x) az x argumentum szinusza; cos(x) az x argumentum koszinusza; tan (x) az x argumentum tangense; asin(x) az x argumentum árkusz szinusza, az értékkészlet a [-π/2, π/2] tartomány, x E [-1, 1]; acos(x) az x argumentum árkusz koszinusza, az értékkészlet a [0, π] tartomány, x E [-1, 1]; atan(x) az x argumentum árkusz tangense, az értékkészlet a [-π/2, π/2] tartomány; atan2(y, x) az y/x érték árkusz tangense, az értékkészlet a [-π, π] tartomány; sinh(x) az x argumentum szinusz hiperbolikusa; cosh(x) az x argumentum koszinusz hiperbolikusa; tanh(x) az x argumentum tangens hiperbolikusa; exp(x) az e x exponenciális függvény; log(x) az x argumentum természetes alapú logaritmusa (ln(x))), x>0; log10(x) az x argumentum tízes alapú logaritmusa (lg(x))), x>0; 2013.05.08. Dr. Bécsi Tamás: Járműfedélzeti rendszerek II. 24

B4. Matematikai függvények: a <math.h> header fabs(x) ldexp(x, n) frexp(x, int *exp) modf(x, double *ip) fmod(x, y) pow(x, y) sqrt(x) ceil(x) floor(x) az x argumentum abszolút értéke ( x ); az x*2 n függvény értéke; a függvény az x argumentum értékét az [1/2, 1) intervallumba eső normált törtrésszé alakítja és ezzel az értékkel tér vissza. A 2 hatványaként értelmezett kitevő a *exp című változóba tárolódik. Ha x=0, akkor az eredmény törtrésze és kitevője egyaránt nulla lesz; result = frexp (8, &n); -> result=0.5, n=4 az x argumentum eredeti x előjelével azonos előjelű egész- és törtrészre bontása. Az egészrész az *ip című változóban tárolódik, a függvény visszatérési értéke a törtrész lesz; fractpart = modf (3.14, &intpart); -> fractpart=0.14,intpart=3 az x/y lebegőpontos osztás lebegőpontos maradéka, ami ugyanolyan előjelű mint x. Ha y=0, akor az eredmény a gépi megvalósítástól függ. fmod (5.3,2)->1.3 az x y alakú hatványfüggvény, értelmezési tartomány hiba lép fel, ha x=0 és y<0, vagy ha x<0 és y értéke nem egész szám; az x argumentum négyzetgyöke, x>0; az x argumentumnál nem kisebb legkisebb egész szám, double típusra konvertálva; az x argumentumnál nem nagyobb legnagyobb egész szám, double típusra konvertálva; 2013.05.08. Dr. Bécsi Tamás: Járműfedélzeti rendszerek II. 25

B5. Kiegészítő rendszerfüggvények <stdlib.h> double atof(const char *s)az atof függvény az s karaktersorozat tartalmát double típusú számmá alakítja. A függvény egyenértékű az strtod(s, (char**)null, 10) függvénnyel. int atoi(const char *s)az atoi függvény az s karaktersorozat tartalmát int típusú számmá alakítja. A függvény egyenértékű az (int)strtol(s, (char**)null, 10) függvénnyel. long atol(const char *s)az atol függvény az s karaktersorozat tartalmát long típusú számmá alakítja. A függvény egyenértékű az strtol(s, (char**)null, 10) függvénnyel. 2013.05.08. Dr. Bécsi Tamás: Járműfedélzeti rendszerek II. 26

B5. Kiegészítő rendszerfüggvények <stdlib.h> int abs(int n)az abs függvény visszatérési értéke az egész típusú argumentumának abszolút értéke (egész értékként). long labs(long n)a labs függvény long típusú vissztérési értéke a long típusú argumentum abszolút értéke. div_t div(int szaml, int nevez)a div függvény kiszámítja az egész típusú argumentumokra felírt szaml/nevez tört hányadosát és maradékát. Az eredmény egy div_t típusú struktúra quot és rem nevű,int típusú tagjaiban tárolódik (a quot a hányadost, rem a maradékot tárolja). ldiv_t ldiv(long szaml, long nevez)az ldiv függvény kiszámítja a long típusú argumentumokra felírt szaml/nevez tört hányadosát és maradékát. Az eredmény egy ldiv_t típusú struktúra long típusú, quotés rem nevű tagjaiban tárolódik (a quot a hányadost, rem a maradékot tárolja). 2013.05.08. Dr. Bécsi Tamás: Járműfedélzeti rendszerek II. 27

Vége Köszönöm a figyelmet! 2013.05.08. Dr. Bécsi Tamás: Járműfedélzeti rendszerek II. 28