programek v Cčku, Dev a chyba v makefile.win

HackForum

programek v Cčku, Dev a chyba v makefile.win#
Kdyz jsem si v DEVovi upravil svuj první prográmek (jiný zatím nemám :-)), vyhodil mi chybu ve souboru makefile.win (přikládám):


# Project: DRAHY
# Makefile created by Dev-C++ 4.9.9.2

CPP = g++.exe -D__DEBUG__
CC = gcc.exe -D__DEBUG__
WINDRES = windres.exe
RES = DRAHY_private.res
OBJ = "D:/Program\ Files/Dev-Cpp/drahy.o" $(RES)
LINKOBJ = "D:/Program Files/Dev-Cpp/drahy.o" $(RES)
LIBS = -L"D:/Program Files/Dev-Cpp/lib" -g3
INCS = -I"D:/Program Files/Dev-Cpp/include"
CXXINCS = -I"D:/Program Files/Dev-Cpp/lib/gcc/mingw32/3.4.2/include
" -I"D:/Program Files/Dev-Cpp/include/c++/3.4.2/backward" -I"D:/Program Files/Dev-Cpp/include/c++/3.4.2/mingw32" -I"D:/Program Files/Dev-Cpp/include/c++/3.4.2" -I"D:/Program Files/Dev-Cpp/include"
BIN = Drahy2.exe
CXXFLAGS = $(CXXINCS) -g3
CFLAGS = $(INCS) -g3
RM = rm -f

.PHONY: all all-before all-after clean clean-custom

all: all-before Drahy2.exe all-after


clean: clean-custom
${RM} $(OBJ) $(BIN)

/*tady je ta chyba*/
$(BIN): $(OBJ) /*tenhle radek*/
$(CC) $(LINKOBJ) -o "Drahy2.exe" $(LIBS)

"D:/Program\ Files/Dev-Cpp/drahy.o": D:/Program\ Files/Dev-Cpp/drahy.c
$(CC) -c "D:/Program Files/Dev-Cpp/drahy.c" -o "D:/Program Files/Dev-Cpp/drahy.o" $(CFLAGS)

DRAHY_private.res: DRAHY_private.rc
$(WINDRES) -i DRAHY_private.rc --input-format=rc -o DRAHY_private.res -O coff



ale kdyz jsem source překopíroval do normálního souboru, šel normálně zkompilovat.


jedou takhle dvě auta proti sově, kdy a kde se setkají? víceméně úkol z matiky...
zdroják:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>


/*******vypise udaje, no comment...*******/
int vypis (int *data) {
int i;
char pole [6][50];
strcpy (pole[0], "rychlost 1. auta v km/h");
strcpy (pole[1], "rychlost 2. auta v km/h");
strcpy (pole[2], "doba jizdy (v minutach)");
strcpy (pole[3], "vzdalenost mezi misty vyjezdu (v metrech)");
strcpy (pole[4], "draha, kterou ujede 1. auto (v metrech)");
strcpy (pole[5], "draha, kterou ujede 2. auto (v metrech)");
for (i=0; i<6; i++) {
printf ("%s: %d\n",*(pole + i), *(data + i));
}
return 0;
}



/***********************funkce pocita vysledky primo z/do struktury***********************/
/*******funkce potrbuje kontrolni soucet, podle ktereho pozna, co a jak ma zpocitat*******/
/******************************dalsi vysvetlovani nema cenu.******************************/

int pocitej (int *data, int *sum) {

int i;
switch (*sum) {

/***chyba***/
case 0 :
printf ("Checksum error\n");
return -1;


/***dobre**/
/***mozna by stalo za to zamenit zpusob detekce..algoritmus neni tezky***/
case 7 :
*(data + 4)=(*(data + 2))*1000*(*(data+0))/60;
*(data + 5)=(*(data + 2))*1000*(*(data+1))/60;
*(data + 3)=(*(data+4))+(*(data+5));
break;

case 13 :
*(data + 4)=(*(data + 0))*1000*(*(data + 2))/60;
*(data + 5)=(*(data + 3))-(*(data + 4));
if (!((*(data + 2))/60)) {
printf ("Error:deleni nulou");
system ("pause");
exit -1;
}
if (!((*(data + 2))/60)) {
printf ("Error:deleni nulou");
system ("pause");
exit -1;
}
*(data + 1)=((*(data + 5))/1000)/((*(data + 2))/60);
break;

case 14 :
*(data + 5)=1000*(*(data + 1))*(*(data + 2))/60;
*(data + 4)=(*(data + 3))-(*(data + 5));
if (!(*(data + 2))) {
printf ("Error:deleni nulou");
system ("pause");
exit -1;
}
*(data + 0)=((*(data + 4))/(*data + 2)/1000);
break;
case 22 :
*(data + 5)=(*(data + 1))*(*(data + 2))/60;
*(data + 3)=(*(data + 4))+(*(data + 5));
if (!(*(data + 2))) {
printf ("Error:deleni nulou");
system ("pause");
exit -1;
}
*(data + 0)=60*(*(data + 4))/(*(data + 2));
break;
case 11 :
if ((!(*(data + 0))) && (!(*(data + 1)))) {
printf ("Error:deleni nulou");
system ("pause");
exit -1;
}
*(data + 2)=60*(*(data + 3))/(1000*((*(data + 0))+(*(data + 1))));
*(data + 4)=1000*(*(data + 0))*(*(data + 2))/60;
*(data + 5)=1000*(*(data + 1))*(*(data + 2))/60;
break;
case 37 :
*(data + 4)=(*(data + 0))*(*(data + 2))/60;
if (!(*(data + 2))) {
printf ("Error:deleni nulou");
system ("pause");
exit -1;
}
*(data + 1)=60*(*(data + 5))/(*(data + 2));
*(data + 3)=(*(data + 4))+(*(data + 5));
break;
case 25 :
*(data + 5)=(*(data + 3))-(*(data + 4));
if (!(*(data + 0))) {
printf ("Error:deleni nulou");
system ("pause");
exit -1;
}
*(data + 2)=60*(*(data + 4))/(*(data + 0));
if (!(*(data + 2))) {
printf ("Error:deleni nulou");
system ("pause");
exit -1;
}
*(data + 1)=60*(*(data + 5))/(*(data + 2));
break;
case 41 :
*(data + 4)=(*(data + 3))-(*(data + 5));
if (!(*(data + 0))) {
printf ("Error:deleni nulou");
system ("pause");
exit -1;
}
*(data + 2)=60*(*(data + 4))/(*(data + 0));
if (!(*(data + 2))) {
printf ("Error:deleni nulou");
system ("pause");
exit -1;
}
*(data + 1)=60*(*(data + 5))/(*(data + 2));
break;
case 42 :
*(data + 4)=(*(data + 3))-(*(data + 5));
if (!(*(data + 1))) {
printf ("Error:deleni nulou");
system ("pause");
exit -1;
}
*(data + 2)=60*(*(data + 5))/(*(data + 1));
if (!(*(data + 2))) {
printf ("Error:deleni nulou");
system ("pause");
exit -1;
}
*(data + 0)=60*(*(data + 4))/(*(data + 2));
break;
case 44 :
if (!(*(data + 2))) {
printf ("Error:deleni nulou");
system ("pause");
exit -1;
}
*(data + 1)=(60*(*(data + 5))/(*(data + 2)))/1000;
*(data + 4)=(*(data + 3))-(*(data + 5));
if (!(*(data + 2))) {
printf ("Error:deleni nulou");
system ("pause");
exit -1;
}
*(data + 0)=(60*(*(data + 4))/(*(data + 2)))/1000;
break;
case 19 :
if (!(*(data + 0))) {
printf ("Error:deleni nulou");
system ("pause");
exit -1;
}
*(data + 2)=(60*(*(data + 4))/(*(data + 0)))/1000;
*(data + 5)=(1000*(*(data + 1))*(*(data + 2)))/60;
*(data + 3)=(*(data + 4))+(*(data + 5));
break;
case 35 :
if (!(*(data + 1))) {
printf ("Error:deleni nulou");
system ("pause");
exit -1;
}
*(data + 2)=(60*(*(data + 5))/(*(data + 1)))/1000;
*(data + 4)=(1000*(*(data + 0))*(*(data + 2)))/60;
*(data + 3)=(*(data + 4))+(*(data + 5));
break;
case 49 :
*(data + 3)=(*(data + 4))+(*(data + 5));
if (!(*(data + 0))) {
printf ("Error:deleni nulou");
system ("pause");
exit -1;
}
*(data + 2)=(60*(*(data + 4))/(*(data + 0)))/1000;
*(data + 1)=(60*(*(data + 5))/(*(data + 2)))/1000;
break;
case 26 :
*(data + 5)=(*(data + 3))-(*(data + 4));
if (!(*(data + 1))) {
printf ("Error:deleni nulou");
system ("pause");
exit -1;
}
*(data + 2)=(60*(*(data + 5))/(*(data + 1)))/1000;
if (!(*(data + 2))) {
printf ("Error:deleni nulou");
system ("pause");
exit -1;
}
*(data + 0)=(60*(*(data + 4))/(*(data + 2)))/1000;
break;
case 50 :
*(data + 3)=(*(data + 4))+(*(data + 5));
if (!(*(data + 1))) {
printf ("Error:deleni nulou");
system ("pause");
exit -1;
}
*(data + 2)=(60*(*(data + 5))/(*(data + 1)))/1000;
if (!(*(data + 2))) {
printf ("Error:deleni nulou");
system ("pause");
exit -1;
}
*(data + 0)=(60*(*(data + 4))/(*(data + 2)))/1000;
break;
case 52 :
*(data + 3)=(*(data + 4))+(*(data + 5));
if (!(*(data + 2))) {
printf ("Error:deleni nulou");
system ("pause");
exit -1;
}
*(data + 0)=(60*(*(data + 4))/(*(data + 2)))/1000;
*(data + 1)=(60*(*(data + 5))/(*(data + 2)))/1000;
break;

/*error*/
default :
printf ("\n\n\a\nchecksum error\n\nsum: %d", *sum);
return -1;



}
return 0;
}



/*******funkce makecheck (int i, int *sum) vytori kontrolni soucty*******/
/*********pri chybe, ktera by teoreticky nemela nastat, vrati -1*********/
/************************tedy slespon ne v tomto programu****************/
int makecheck (int i, int *sum) {
switch (i) {
case 0 :
*sum+=1;
break;
case 1 :
*sum+=2;
break;
case 2 :
*sum+=4;
break;
case 3 :
*sum+=8;
break;
case 4 :
*sum +=16;
break;
case 5 :
*sum +=32;
break;
default :
printf ("\n\aERROR:Chyba pri vytvareni checksumu,\nsum:%d", *sum);
return -1;
}
return 0;
}

/*******pokud udaje staci, rekne "Dost!" :^)*******/
int checkin (int *sum, int *data) {
if ((*sum == 7) || (*sum == 13) || (*sum == 14) || (*sum == 22) || (*sum == 11) || (*sum == 37) || (*sum == 25) || (*sum == 41) || (*sum == 42) || (*sum == 44) || (*sum == 19) || (*sum == 35) || (*sum == 49) || (*sum == 26) || (*sum == 52) || (*sum == 50)) {
printf ("\nStaci, vim vse, co potrebuju...\n");
return 0;
}
else return 1;

}



/*******nacita data, bez komentare*******/

int nacitej (int *data, int *sum) {
int x;
int check=0;
int i;
char ret[80];
char pole [6][50];
strcpy (pole[0], "rychlost 1. auta v km/h");
strcpy (pole[1], "rychlost 2. auta v km/h");
strcpy (pole[2], "dobu jizdy (v minutach)");
strcpy (pole[3], "vzdalenost mezi misty vyjezdu (v metrech)");
strcpy (pole[4], "drahu, kterou ujede 1. auto (v metrech)");
strcpy (pole[5], "drahu, kterou ujede 2. auto (v metrech)");
printf ("Zadavejte udaje (MUSI BYT KLADNE), pokud nevite, zadejte nejaky neciselny znak:\n\n\n");

/*******vlastni nacitani, jeste vylepsim kontrolu pri nesouhlasejicich vstupech...*******/
for (i=0; i<6; i++) {



if (!(check=checkin (sum, data))) {
break;
}
if (((*sum == 5)&&(i == 4)) || ((*sum == 6) && (i == 5)) || ((*sum == 24) && (i == 5))) continue; /*tak tady to je*/



do {
printf ("\nZadejte %s: ", pole);
scanf ("%s", ret);
if (!isdigit (ret[0])) {
*(data + i)=0;
printf ("\nDobra..");
break;
}
if ((x=makecheck(i, sum))==-1) {
return -1;
}

}while ((*(data + i) = atoi (ret)) == 0); /**konec do**/

}
printf ("\n\n\n\n\n"); /*konec for*/
return 0;
}

int main(int argc, char *argv[])
{
int i;
int sum=0;
struct struktura {
unsigned int rych_1;
unsigned int rych_2;
unsigned int cas;
unsigned int draha_celk;
unsigned int draha_1;
unsigned int draha_2;
};

struct struktura vysl;
int *data = & vysl.rych_1;
for (i=0; i<6; i++) { /*vynulovat...*/
*(data + i)=0;
}
if ((nacitej (data, &sum))==-1) {
printf ("ERROR");
return -1;
}

/***Zkouzka...***
for (i=0; i<6; i++) {
printf ("%d\n", *(data + i));
}
printf ("sum:%d\n", sum);
***END_OF_CHECK***/
if ((pocitej (data, &sum))!=0) {
system("PAUSE");
return -1;
}
/***Zkouzka...***
for (i=0; i<6; i++) {
printf ("%d\n", *(data + i));
}
printf ("sum:%d\n", sum);
***END_OF_CHECK***/
vypis (data);
printf ("\n\n\n\n\n");
system("PAUSE");
return 0;
}

když jsem přidal tu podmínku if (neco1 || neco2 || neco_dalsiho) contuine;
ohlásilo mi to tu chybu

..doufám, že mě za tuhle prasárnu neukammenujete, je to můj první prográmek...díky za radu


ja a pls kdyby se vam neco nezdálo, tak mi dejte vědět
(odpovědět)
NyQ | E-mail | Website18.4.2008 14:29
re: programek v Cčku, Dev a chyba v makefile.win#
Už to někdo přečetl?
(odpovědět)
NyQ | E-mail | Website18.4.2008 15:32
re: programek v Cčku, Dev a chyba v makefile.win#
jo, zbezne som to precital.

1) upresni prosim tu chybu, vyhlasil ju make, IDE, gcc alebo kto? pokial mozno nielen kde je chyba, ale aj znenie chybovej hlasky

2) ten program je vazne zahul :) kamo, je vidno, ze pointrova aritmetika ti nie je cudzia, neprogramoval si povodne v assembleri?
(odpovědět)
myself | 78.128.195.*18.4.2008 20:43
re: programek v Cčku, Dev a chyba v makefile.win#
ten assembler beriem spat, prave som si pozrel funkciu makecheck.

*sum += (1<<i);
(odpovědět)
myself | 78.128.195.*18.4.2008 21:00
re: programek v Cčku, Dev a chyba v makefile.win#
ten zdrojak sem ani necet ale takovyhle priklad se da resit JEDNOU rovnicí
vzdalenost = rychlost1*cas + rychlost2*cas
tzn. cas = vzdalenost / (rychlost1 + rychlost2)
????
nebo melu sracky??

----------
Dal bych všechno co vím za polovinu toho co neznám.
(odpovědět)
Taypan | E-mail18.4.2008 20:59
re: programek v Cčku, Dev a chyba v makefile.win#
ono by mu o malo pocitat vzdy tie chybajuce veliciny v zavislosti na tom, ktore veliciny zadal. nebo melu sracky :)
(odpovědět)
myself | 78.128.195.*18.4.2008 21:01
re: programek v Cčku, Dev a chyba v makefile.win#
chybejci veliciny muze zjistit par podminkama

----------
Dal bych všechno co vím za polovinu toho co neznám.
(odpovědět)
Taypan | E-mail18.4.2008 21:11
re: programek v Cčku, Dev a chyba v makefile.win#
jasne, ale ked clovek objavi binarnu sustavu, je z toho prirodzene nadseny :)
(odpovědět)
myself | 78.128.195.*18.4.2008 21:16
re: programek v Cčku, Dev a chyba v makefile.win#
to snad neni duvod spachat kod na 5 stran misto 20 radku :)

----------
Dal bych všechno co vím za polovinu toho co neznám.
(odpovědět)
Taypan | E-mail18.4.2008 21:44
re: programek v Cčku, Dev a chyba v makefile.win#
nemozem si pomoct, ale u mna ma ten chlap bod za snahu.
(odpovědět)
myself | 78.128.195.*18.4.2008 21:50
re: programek v Cčku, Dev a chyba v makefile.win#
kod je neefektivni, da se zkratit temer o polovinu. Zbytecne roztahle. Standardy mu asi taky nic nerikaji.
(odpovědět)
_( | )_ | 85.132.197.*19.4.2008 0:01
re: programek v Cčku, Dev a chyba v makefile.win#
ale hlavne ze jsi mu pomohl..

.. jak sam rikal, zacina, takze je logicke ze kod nebude dokonaly.. vsichni vime ze by se dal zkratit.. ale ted se hleda chyba .. (urcite odpovis neco ve smyslu ze je to jasne, ale nereknes to xD )

----------
Cow power by Gentoo...
(odpovědět)
Anonymous_ | E-mail19.4.2008 0:45
re: programek v Cčku, Dev a chyba v makefile.win#
No ono už tím přepsáním kódu na kratší tvar se ta chyba může sama najít... a když ne, v kratším se bude líp hledat.
(odpovědět)
gugumaa | 195.113.79.10/10.0.10.*21.4.2008 18:27
re: programek v Cčku, Dev a chyba v makefile.win#
kdyz uz se ucim programovat, ucim se od zacatku psat efektivni kod (logicky). Chyba tam vazne je a neni vubec slozite ji najit.
(odpovědět)
_( | )_ | 85.132.197.*19.4.2008 1:20
re: programek v Cčku, Dev a chyba v makefile.win#
zalezi na tom kolik toho mas za sebou. uplny zacatecnik asi nezacne efektivne uz proto, ze je to pro nej bezrozmerny pojem.
(odpovědět)
prc | 213.211.51.*19.4.2008 2:55
re: programek v Cčku, Dev a chyba v makefile.win#
ja nevim, nemuzu to ted vyzkouset, ale rozhodne se mi nelibi ty uplne cesty (treba ta dvojtecka). a jinak souhlasim s predchudci, ze je to cele na bliti :)

(odpovědět)
prc | 213.211.51.*19.4.2008 3:26
re: programek v Cčku, Dev a chyba v makefile.win#
zatracení chlapi, vy jste fakt už nemožní. To je takový problém mu napsat chyba je tam a tam, ale napsali bychom to jinak? JSem taky začátečník, tady zatím jen pozorovatel a už bych se asi opravdu ani na nic neptala. Debil, který chce keylogger bez práce se setkal se slušnějším zacházením, než někdo kdo se snaží . Fakt blé.
(odpovědět)
misacek | E-mail19.4.2008 10:15
re: programek v Cčku, Dev a chyba v makefile.win#
vitej v realnem svete. svete, kde te za obrazek hranateho zeleneho slona nikdo nepochvali. napsal bych to i jinak, ale nechci te rozplakat :)

(odpovědět)
prc | 213.211.51.*19.4.2008 15:18
re: programek v Cčku, Dev a chyba v makefile.win#
no jo :D ví _( | )_ kde je chyba ale on přeci není od toho aby do Threadu napsal radu :D ale buzeraci :D to nevíte ?
(odpovědět)
MiKee | E-mail | ICQ 43603619019.4.2008 11:19
re: programek v Cčku, Dev a chyba v makefile.win#
Presne tak. Nehodlam se delit o sve vedomosti s naprosto neschopnyma lidma. I kdyz je to jeho prvni program. Ta chyba tam je primitivni. Primitivni jako cely kod.
(odpovědět)
_( | )_ | 85.132.197.*19.4.2008 12:15
re: programek v Cčku, Dev a chyba v makefile.win#
to NyQ: Vono nez sem takhle hazet ten zdrojak by bylo lepsi, kdybys napsal presne zneni te chyby, pac ja to k sobe kopirovat nebudu a to cteni me spise odradilo. Vono uz jenom z popisu chyby se da zjistit kde je chyba. Za dalsi, pokud mas tak dlouhej kod, tak davej spis odkaz na nej, nez abys to cpal takhle do fora, je to fakt necitelny... Ke kodu se vyjadrovat radsi nebudu :)

btw... Devko se uz nekolik let nevyviji, tak je mozne ze je to chyba prostredi.
(odpovědět)
babca | 194.212.59.*19.4.2008 13:33
re: programek v Cčku, Dev a chyba v makefile.win#
tak jsem to zkusil a opravdu to dela ta dvojtecka, kdy se takovy zapis jevi jako multitarget. a presne to taky rika chybova hlaska.
(odpovědět)
prc | 213.211.51.*19.4.2008 15:11
re: programek v Cčku, Dev a chyba v makefile.win#
No u mě je ten problem, že nejsem dome připojenej, připojuju se jinde, kde se da..link nebude..sorry..

babca: a to mam pouzit jaky treba? Visual studio?

chybova hláška mi rika jenom build error

Jaka dvojtečka? U přepínače?

btw ja vas upozornil, že to je prásárna :-)
Ale proč to dělat jednoduše, když to de složitě, žejo
(odpovědět)
NyQ | E-mail | Website21.4.2008 18:00
re: programek v Cčku, Dev a chyba v makefile.win#
ono se ti casem vymsti ;)
(odpovědět)
_( | )_ | 90.176.138.*21.4.2008 18:15
re: programek v Cčku, Dev a chyba v makefile.win#
Tak napriklad MinGW (GCC) nebo VSC++, ja pouzivam VS 6.0 (oficialni) a nemuzu si stezovat, az na jednu vyjimku a to, ze se neda zkompilovat DirectDraw7, s jinymi problemy jsem se jeste nesetkal...
(odpovědět)
babca | 194.212.59.*21.4.2008 20:21

Zpět
 
 
 

 
BBCode