Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Programování Turbo C++,poradit

Dobrý den chtěl bych poradit
Napište funkci
char NahodnyZnak(int param)
která vrátí
- náhodný znak z intervalu A až Z pro parametr param =1
- náhodný znak z intervalu a až z pro parametr param =0
- náhodný znak z intervalu 0 až 9 pro parametr param =-1
- znak ! pro ostatní hodnoty parametry
Ten začátek by měl by být podobný tomudle

int PrestupnyRok(int rok)
{
   if(rok<1600)               // pravidlo plati asi od roku 1600
	 return 0;

	if((rok % 400) == 0)
	  return 1;
	if((rok % 100) == 0)
	  return 0;
	if((rok %4) == 0)
	  return 1;

   return 0;
}

Kuji moc :-)

Předmět Autor Datum
No, fajn. A co už máš hotového? Čemu konkrétně nerozumíš?
host 14.01.2012 12:29
host
No nevim jak napíšu interval pro písmena a aby to porovnávalo že je to opravdu písmeno... :(
Vext 14.01.2012 12:33
Vext
Nedával jsi ve škole při hodině pozor? Řešení je několik. Třeba písmeno můžeš převést na jeho ASCII…
host 14.01.2012 12:36
host
a nemohl bys mi prosimtě aspon napsat jak to má bejt třeba jen pro ty velká písmena prosimtě ? od to…
Vext 14.01.2012 12:43
Vext
ASCII kód pro A je 65, pro Z je 90. Takže si vygeneruj číslo mezi 65 a 90 a převeď to na znak.
Wikan 14.01.2012 12:48
Wikan
Proč bych ti to měl psát? Ten úkol máš asi proto, aby ses to naučil ty, ne? A mimo to nesnáším lenos…
host 14.01.2012 12:49
host
tak v tom případě dík moc :-) moc jste mi pomohli :-) už je mi to hnedka všechno jasné ;-)
Vext 14.01.2012 13:08
Vext
Rádo se stalo. Je vidět, že jsi inteligentní nadějný programátor, z tebe jednou něco bude! Značím v…
host 14.01.2012 13:11
host
Interval pre písmená nenapíšeš v štandardnom jazyku C/C++ nijako, pretože taká vec tam neexistuje. E…
los 14.01.2012 13:50
los
Niekde na začiatku použiješ funkciu srand pre inicializáciu generátora: srand(time(0)); Funkcia Na… poslední
los 14.01.2012 14:09
los

Interval pre písmená nenapíšeš v štandardnom jazyku C/C++ nijako, pretože taká vec tam neexistuje. Existujú neštandardné rozšírenia jazyka, vďaka ktorým môžež napísať interval ako 'A'..'Z', resp. 'a'..'z'.

Že je niečo opravdu písmeno v základnom ASCII kódovaní, zistíš takto:

char c = 65;
if ('A' <= c && c <= 'Z' || 'a' <= c && c <= 'z') {
  // je to znak A..Z alebo a..z
}

Niekde na začiatku použiješ funkciu srand pre inicializáciu generátora:

srand(time(0));

Funkcia NahodnyZnak by mohla vyzerať takto: (absolútne netestované)

char NahodnyZnak(int param) {
  switch (param) {
    case 1: return 'A' + rand() % ('Z' - 'A' + 1);
    case 0: return 'a' + rand() % ('z' - 'a' + 1);
    case -1: return '0' + rand() % ('9' - '0' + 1);
    default: return '!';
  }
}

Nemáš za čo.

Zpět do poradny Odpovědět na původní otázku Nahoru