[zapocet] 30.5 16.00

qwyxyo
Matfyz(ák|ačka) level II
Příspěvky: 51
Registrován: 30. 5. 2005 19:26
Typ studia: Informatika Mgr.
Kontaktovat uživatele:

[zapocet] 30.5 16.00

Příspěvek od qwyxyo »

Klasika: printf bez printf... :lol: parametre %c, %s, %d, %f ... sami sme si mohli zvolit pocet desatinnych miest pri double... baz akychkolvek dalsich parametrov. Osetrenie minimalne. Postacili zakladne vlastne testovacie vstupy. Ten chlapik zdojak preletel len ocami a "bylo to v kapse"...

P.S.
Odchadzal som hodinu pred koncom a zastali tam cca uz len piati.
Ostatnym prajem podobny 'lak'... :P
Uživatelský avatar
Necroman
Supermatfyz(ák|ačka)
Příspěvky: 459
Registrován: 20. 1. 2005 19:46
Typ studia: Informatika Mgr.
Bydliště: Louny / kolej Jednota, Praha
Kontaktovat uživatele:

Re:

Příspěvek od Necroman »

Stastny ty jedince... program na ani ne 50 radku, takovy bych take rad dostal :wink: ... uvidime.
WANTED:
Dead or Alive
^-^
( ^ )
Schroedinger's Cat
qk
Matfyz(ák|ačka) level III
Příspěvky: 181
Registrován: 24. 2. 2005 10:03
Typ studia: Informatika Mgr.
Kontaktovat uživatele:

Příspěvek od qk »

co vsechno za fce povolili? napriklad jak se pomoci ceho se mohl prevadet float na "string"?
Don't worry, be dead
Uživatelský avatar
Dawe
Supermatfyz(ák|ačka)
Příspěvky: 360
Registrován: 12. 10. 2004 12:32
Typ studia: Informatika Mgr.
Bydliště: Doma a nebo na koleji

Vystup

Příspěvek od Dawe »

No mě by docela zajímalo jak se to dostávalo ven, přes třeba putc? A co obejít to přes C++? Určitě to nebylo zakázaný (teda jestli to jde, myslím, že to je jina fukce než printf). :D
qk
Matfyz(ák|ačka) level III
Příspěvky: 181
Registrován: 24. 2. 2005 10:03
Typ studia: Informatika Mgr.
Kontaktovat uživatele:

Re: Vystup

Příspěvek od qk »

Dawe píše:No mě by docela zajímalo jak se to dostávalo ven, přes třeba putc? A co obejít to přes C++? Určitě to nebylo zakázaný (teda jestli to jde, myslím, že to je jina fukce než printf). :D
no ven bych to dostal tak ze bych si to pripravil do retezce a puts, mne spis zajima ta konverze double -> string
Don't worry, be dead
Uživatelský avatar
Trupik
Matfyz(ák|ačka) level III
Příspěvky: 251
Registrován: 3. 1. 2005 14:45
Typ studia: Informatika Mgr.
Kontaktovat uživatele:

co se smelo?

Příspěvek od Trupik »

A byla povolena makra z stdarg.h?
Domovská stránka: http://www.jakubmaly.cz/, blog: http://blog.jakubmaly.cz/
Petice proti olympiádě http://olympiada.nazory.cz

Come on you target for faraway laughter,
Come on you stranger, you legend, you martyr, and shine!
Uživatelský avatar
Trupik
Matfyz(ák|ačka) level III
Příspěvky: 251
Registrován: 3. 1. 2005 14:45
Typ studia: Informatika Mgr.
Kontaktovat uživatele:

Re: Vystup

Příspěvek od Trupik »

Dawe píše:No mě by docela zajímalo jak se to dostávalo ven, přes třeba putc? A co obejít to přes C++? Určitě to nebylo zakázaný (teda jestli to jde, myslím, že to je jina fukce než printf). :D
a taky by se to dalo obejit přes fprintf:)
Domovská stránka: http://www.jakubmaly.cz/, blog: http://blog.jakubmaly.cz/
Petice proti olympiádě http://olympiada.nazory.cz

Come on you target for faraway laughter,
Come on you stranger, you legend, you martyr, and shine!
Uživatelský avatar
Necroman
Supermatfyz(ák|ačka)
Příspěvky: 459
Registrován: 20. 1. 2005 19:46
Typ studia: Informatika Mgr.
Bydliště: Louny / kolej Jednota, Praha
Kontaktovat uživatele:

Re: co se smelo?

Příspěvek od Necroman »

Trupik píše:A byla povolena makra z stdarg.h?
Zajimalo by mne, jak bys to chtel napsat bez stdarg.h? napsat si vlastni makra pro praci s volitenym poctem argumentu :-) .
Kdyz jsem to psal doma, tak jsem pouzil toto:

Kód: Vybrat vše

int my_printf(char *ret, ... )
{
	int c=0;
	va_list p;
	va_start (p, ret);
	while(ret[c]) 
	{
		if (ret[c]=='%')
			switch (ret[++c])
			{
			case ('d'):   // vypis cislo
				cout << va_arg(p, int);
				break;
			case ('c'):   // vypis znak
				cout << va_arg(p, char);
				break;
			case ('s'):   // vypis retezec
				cout << va_arg(p, char*);
				break;
			case ('f'):   // vypis double
				cout << va_arg(p, double);
				break;
			}
		else
		    putchar(ret[c]);  //jinak vypis nacteny znak
		c++;
	}
	va_end(p);
	return 0;
}
jeste je treba osetrit backslashe, ci jine vychytavky, ale takto by to mohlo fungovat (cout ale asi nebyl povolen, jak tak tipuji)
WANTED:
Dead or Alive
^-^
( ^ )
Schroedinger's Cat
Uživatelský avatar
Trupik
Matfyz(ák|ačka) level III
Příspěvky: 251
Registrován: 3. 1. 2005 14:45
Typ studia: Informatika Mgr.
Kontaktovat uživatele:

Re: co se smelo?

Příspěvek od Trupik »

Necroman píše:
Trupik píše:A byla povolena makra z stdarg.h?
Zajimalo by mne, jak bys to chtel napsat bez stdarg.h? napsat si vlastni makra pro praci s volitenym poctem argumentu :-) .
Kdyz jsem to psal doma, tak jsem pouzil toto:

Kód: Vybrat vše

int my_printf(char *ret, ... )
{
	int c=0;
	va_list p;
	va_start (p, ret);
	while(ret[c]) 
	{
		if (ret[c]=='%')
			switch (ret[++c])
			{
			case ('d'):   // vypis cislo
				cout << va_arg(p, int);
				break;
			case ('c'):   // vypis znak
				cout << va_arg(p, char);
				break;
			case ('s'):   // vypis retezec
				cout << va_arg(p, char*);
				break;
			case ('f'):   // vypis double
				cout << va_arg(p, double);
				break;
			}
		else
		    putchar(ret[c]);  //jinak vypis nacteny znak
		c++;
	}
	va_end(p);
	return 0;
}
jeste je treba osetrit backslashe, ci jine vychytavky, ale takto by to mohlo fungovat (cout ale asi nebyl povolen, jak tak tipuji)
proste jsem se ptal, jestli byla povolena - kdyby po vas chteli, abyste jejich praci simulovali rucne, zas tak by mne to neprekvapilo.
Domovská stránka: http://www.jakubmaly.cz/, blog: http://blog.jakubmaly.cz/
Petice proti olympiádě http://olympiada.nazory.cz

Come on you target for faraway laughter,
Come on you stranger, you legend, you martyr, and shine!
qk
Matfyz(ák|ačka) level III
Příspěvky: 181
Registrován: 24. 2. 2005 10:03
Typ studia: Informatika Mgr.
Kontaktovat uživatele:

Příspěvek od qk »

makra va_argu sme psali na cvikach a je to prace na 20 minut, ale je lepsi pouzit uz udelany, protoze kdyz se udela chyba v makrech, tak je to dost opruz.
Don't worry, be dead
Odpovědět

Zpět na „2005“