#include <stdio.h>
#include <stdlib.h>
Go to the source code of this file.
Macros | |
#define | je_cislice(radix, znak) ((znak)>='0'&&(znak)<='9' ? (znak)-'0'<(radix) : ((znak)>='A'&&(znak)<='Z') ? (znak)-'A'<(radix) : 0) |
#define | je_cislice2(radix, znak) ((znak)>='0'&&(znak)<='9' ? (znak)-'0'<(radix) : (((znak)|0x20)>='a'&&((znak)|0x20)<='z') ? ((znak)|0x20)-'a'<(radix) : 0) |
#define | test(radix, znak) printf("radix=%2d znak='%c' %s\n",(radix), (znak), je_cislice((radix), (znak))?"Ano":"Ne") |
#define | test2(radix, znak) printf("radix=%2d znak='%c' %s\n",(radix), (znak), je_cislice2((radix), (znak))?"Ano":"Ne") |
Functions | |
int | main (void) |
Téma: Práce s preprocesorem
Procvičované učivo: makra s parametry, podmínkový operátor, logické operátory, operátory porovnání
Napište makro je_cislice(zaklad, znak) pro testování, zda je daný znak (určen argumentem znak) číslicí soustavy s daným zakladem (argument zaklad). Makro je_cislice by mělo korektně fungovat pro základy soustav od 2 do 36 a libovolné znaky. Pro číslice s hodnotou větší než 9 používejte pro jednoduchost pouze velká písmena anglické abecedy. Příklad použití: if (je_cislice(8,'8')!=0) printf("Ano\n"); else printf ("Ne\n"); if (je_cislice(10+6,'0'+4)!=0) printf("Ano\n"); else printf ("Ne\n"); if (je_cislice(30,'@')!=0) printf("Ano\n"); else printf ("Ne\n");
Příklad výstupu: Ne Ano Ne
Definition in file cislice-dane-soustavy.c.
#define je_cislice | ( | radix, | |
znak | |||
) | ((znak)>='0'&&(znak)<='9' ? (znak)-'0'<(radix) : ((znak)>='A'&&(znak)<='Z') ? (znak)-'A'<(radix) : 0) |
zda je daný znak
znak | číslicí soustavy s daným zakladem |
radix. | tj. znaky '0'..'9' a 'A'-'Z' |
Definition at line 38 of file cislice-dane-soustavy.c.
#define je_cislice2 | ( | radix, | |
znak | |||
) | ((znak)>='0'&&(znak)<='9' ? (znak)-'0'<(radix) : (((znak)|0x20)>='a'&&((znak)|0x20)<='z') ? ((znak)|0x20)-'a'<(radix) : 0) |
dtto, akorat umi velka/mala:
Definition at line 42 of file cislice-dane-soustavy.c.