Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
KiadtaAndrea Juhászné Megváltozta több, mint 10 éve
1
Programozás I. Horváth Ernő 1
2
Elérhetőségek Bauer Péter http://www.sze.hu/~bauer/ Horváth Ernő http://www.sze.hu/~herno/ Tanszéki honlap http://it.sze.hu 2
3
Feladat Készítsen int toi(char s[]) függvényt, mely tizenegynél kisebb alapú számrendszerbeli számjegyekből álló karakterláncból előállít egy egész számot! A számrendszer alapja legyen fordítási időben változtatható! 3
4
Algoritmus Billentyűzetről karakterlánc beolvasása - getline Karakterlánc ellenőrzése – megnézzük, számot adott-e be a felhasználó – karakterek ‘0’ és ‘9’ közé esnek (csak 10es számrendszer) Karakterlánc átalakítása számmá 4
5
toi int toi(char s[]){ int i, eredmeny = 0; for(i=0; s[i]!=0; ++i) eredmeny = eredmeny * ALAP + s[i] - '0'; return eredmeny; } 5
6
toi printf("%d", '0'); ASCII 48 = '0' 49 = '1' 50 = '2'... 65 = 'A' 6
7
toi for(i=0; s[i]!=0; ++i) eredmeny = eredmeny * ALAP + s[i] - '0'; "1264" [0] >> 0 * 10 + 1 = 1 [1] >> 1 * 10 + 2 = 12 [2] >> 12* 10 + 6 = 126 [3] >> 126*10 + 4 = 1264 7
8
szame //"Az s karakterlanc ALAP alapu szam-e?" kerdesre ad logikai valaszt a fuggveny. int szame(char s[]){ int i; // Ha 10-es szamrendszert kellene vizsgálni isdigit() for(i=strlen(s)-1; i && s[i]>='0' && s[i]<ALAP+'0'; --i); if(s[i]>='0' && s[i]<ALAP+'0') return 1; else return 0; } 8
9
stlib.h 9 FüggvényLeírása atoi Stringet konvertál integerré, a fehér karaktereket figyelmen kívül hagyva. –32768 és 32767 között atol Stringet konvertál long int típussá, a fehér karaktereket figyelmen kívül hagyva. −2,147,483,648 és +2,147,483,647 között atof Stringet konvertál lebegőpontos double-é, a fehér karaktereket figyelmen kívül hagyva. ±1.7*10 -308 15–16 decimális jegy pontosság
10
atoi // string --> decimalis int atoi(char st[]){ int decimal = 0; int i = 0; char neg=0; while(st[i]==' ' || st[i]=='\t' || st[i]=='\n') ++i; if(st[i]=='-') ++neg; if(st[i]=='-' || st[i]=='+') ++i; for(;st[i];++i) decimal = decimal*10+st[i]-'0'; if(neg) decimal = -decimal; return decimal; } 10
11
atoi char string[]="-2147"; printf("Ez egy sima string: %s \n", string); printf("Ez decimalis szam : %d", atoi(string)); Ez egy sima string: -2147 Ez decimalis szam : -2147 11
12
Köszönöm a figyelmet! 12
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.