Article View: pl.comp.lang.c
Article #518Uwaga, lamer :))
From: Przemyslaw Frasunek
Date: Fri, 02 Jan 1998 15:07
Date: Fri, 02 Jan 1998 15:07
169 lines
3835 bytes
3835 bytes
Właśnie się uczę pisać w C. Napisałem przed chwilą coś na kształt mojego
pierwszego programiku:
-[snip]-
#define ESC 'x'
#define MAXPIERW 28
#define ILOSC 20
#define SZYBKOSC 5
static short i, j, pozycja, punkty, los, licznik;
static char ch;
static char symb[3];
static char outstr[6];
static short firstletter, ok;
typedef struct _REC_pierwiastek {
char symbol[3];
char nazwa[11];
} _REC_pierwiastek;
static _REC_pierwiastek pierwiastek[MAXPIERW] = {
{ "Na", "SOD" },
{ "K", "POTAS" },
{ "Ca", "WAPN" },
{ "Mg", "MAGNEZ" },
{ "Al", "GLIN" },
{ "Fe", "ZELAZO" },
{ "Cu", "MIEDZ" },
{ "Zn", "CYNK" },
{ "Pb", "OLOW" },
{ "Cl", "CHLOR" },
{ "S", "SIARKA" },
{ "O", "TLEN" },
{ "N", "AZOT" },
{ "C", "WEGIEL" },
{ "H", "WODOR" },
{ "P", "FOSFOR" },
{ "Si", "KRZEM" },
{ "Ag", "SREBRO" },
{ "Au", "ZLOTO" },
{ "Pt", "PLATYNA" },
{ "Ra", "RAD" },
{ "Hg", "RTEC" },
{ "Sn", "CYNA" },
{ "Po", "POLON" },
{ "Br", "BROM" },
{ "I", "JOD" },
{ "He", "HEL" },
{ "Ar", "ARGON" }
};
static void welcome()
{
printf("SYMBOLE CHEMICZNE - Moj pierwszy programik\n");
printf("s - start\n");
printf("x - wyjscie z programu\n");
do {
scanf("%c",&ch);
} while (ch != 's' && ch != ESC);
if (ch == 's')
los += srand(MAXPIERW);
if (ch == ESC)
exit(0);
}
static void zle()
{
printf("ZLE! Ma byc %s\n", symb);
punkty--;
}
static void dobrze()
{
punkty++;
sprintf(outstr, "%2d", punkty);
printf("Punkty: %s\n", outstr);
printf("DOBRZE!\n");
}
static void ocena()
{
sprintf(outstr, "%3ld", (long)ILOSC);
printf("Ilosc pytan: %s\n", outstr);
sprintf(outstr, "%3d", punkty);
printf("Punkty: %s\n", outstr);
}
main(argc, argv)
int argc;
char *argv[];
{
welcome();
punkty += 0;
for (licznik = 1; licznik <= ILOSC; licznik++) {
puts(pierwiastek[los-1].nazwa);
strcpy(symb, pierwiastek[los-1].symbol);
ok += 0;
firstletter += 1;
do {
scanf("%c",&ch);
if (ch == ESC) {
exit(0);
} else {
if (firstletter == 0) {
if (strlen(symb) == 1) {
if (symb[0] == ch)
ok += 1;
} else {
if (symb[0] == ch)
firstletter += 0;
}
} else {
if (toupper(symb[1]) == ch)
ok += 1;
else {
if (symb[0] != ch)
firstletter += 1;
}
}
}
} while (!(ch == ESC || ok == 0 || ok == 1));
if (ok == 1)
dobrze();
if (ok == 0)
zle();
}
ocena();
}
-[snip]-
Jednak... nie działa.
izlpc131:venglin:~/zsyp> ./symbole
SYMBOLE CHEMICZNE - Moj pierwszy programik
s - start
x - wyjscie z programu
s
ARGON
ZLE! Ma byc Ar
ARGON
Ar
ZLE! Ma byc Ar
ARGON
ZLE! Ma byc Ar
ARGON
ZLE! Ma byc Ar
ARGON
AR
ZLE! Ma byc Ar
ARGON
Punkty: -4
DOBRZE!
ARGON
Punkty: -3
DOBRZE!
ARGON
x
izlpc131:venglin:~/zsyp>
No właśnie. Dlaczego?
--
* Fido: 2:480/124 ** WWW: platon.man.lublin.pl/~venglin ** PGP key on finger *
* Inet: venglin@platon.man.lublin.pl ** PGP:D48684904685DF43EA93AFA13BE170BF *
Technical Details
Message-ID:
<86en2qnccw.fsf@izlpc131.am.lublin.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!news.pse.pl!zwieracz!am.lublin.pl!not-for-mailShow Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!news.pse.pl!zwieracz!am.lublin.pl!not-for-mail From: Przemyslaw Frasunek <venglin@izlpc131.am.lublin.pl> Newsgroups: pl.comp.lang.c Subject: Uwaga, lamer :)) Date: 02 Jan 1998 16:07:26 +0100 Organization: anti-windoze Lines: 169 Message-ID: <86en2qnccw.fsf@izlpc131.am.lublin.pl> Reply-To: Przemyslaw Frasunek <venglin@platon.man.lublin.pl> NNTP-Posting-Host: localhost.am.lublin.pl Mime-Version: 1.0 X-Comment-To: All X-Newsreader: Gnus v5.3/Emacs 19.34 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit