Keresés

Részletes keresés

NevemTeve Creative Commons License 2005.02.04 0 0 205
Hogyan oldaható meg szépen hogyha nem int ek közül akarok switchelni?
Hanem? Ha int,short,char,long,enum típusod van, akkor switch-elhetsz, egyébként "if".

64 bites számokra lenne szükségem.(ahhoz hogy a sakktábla mely mezején áll az adott bábu) de egyenlőre csak 32 bites számról tudok,
A "long long" 64 bites, de speciel a sakktáblához elég 6 bit. Ellenőrizd: 2^6=64.

scanf után hogyan kérdezhetem le szépen hogy valóban a megfelelő tipusut (amit én kértem) pötyögték be?
Utána már nemigen... legfeljebb a visszaadott értékét lehet ellenőrizni: annyi, ahány értéket beolvasott... igényesebb működéshez a következők ajánlottak: fgets, strtok, strtol (és társai)

A legfontosabb változókat amiket használok hova szokás tenni? ( egy header fájlba vagy a main be vagy mindegy?)
Nincs külön szabály a változók fontossága szerint... legjobb minden változót abban a legszűkebb körben definiálni, ahol szükség van rá - ha csak egy függvényen belül kell, akkor ott, ha csak egy source-nak kell, akkor abban a source-ban static-ként, ha több source is használja, akkor egy modulban definiáljuk (int fontoska;) a többiben deklaráljuk (extern int fontoska) - a deklarációt praktikusan egy header-fileba tesszük.

/* valami.h */
extern int fontoska;

/* valami.c */
#include "fontoska.h"
int fontoska = 38;

/* main.c */
#include "fontoska.h"
int main(void) {
 printf ("fontoska=%dn", fontoska);
 return 0;
}
Előzmény: thuram (204)
thuram Creative Commons License 2005.02.04 0 0 204
Hát hazudnék ha azt mondanám, hogy értem no mindegy egyenlőre még nincs rá szükségem. Vannak viszont fontosabb kérdéseim:
1: hogyan oldaható meg szépen hogyha nem int ek közül akarok switchelni?
2: 64 bites számokra lenne szükségem.(ahhoz hogy a sakktábla mely mezején áll az adott bábu) de egyenlőre csak 32 bites számról tudok,szóval füzzek össze kettőt. (azaz minden bábuhoz csinálhatok egy kételemű long int tömböt) van egyszerübb?
3:scanf után hogyan kérdezhetem le szépen hogy valóban a megfelelő tipusut (amit én kértem) pötyögték be?
4:A legfontosabb változókat amiket használok hova szokás tenni? ( egy header fájlba vagy a main be vagy mindegy?)
Egyenlőre nem akarom több kérdéssel fárasztani a népet ugyhogy egyenlőre bőven elég lenne ha erre is választ kapnék.
Előzmény: NevemTeve (203)
NevemTeve Creative Commons License 2005.02.03 0 0 203
Épp a minap kérdezte ezt valaki egy másik topikban, úgyhogy elég átpasztáznom onnan:


# Makefile

CFLAGS = -g -Wall
LDFLAGS = -g

all: hello

clean:
<TAB>rm *.o hello 2>/dev/null || true

hello: hello.o func.o


ehhez tegyünk még hozzá egy-két függőséget


hello.o: hello.c func.h

func.o: func.c func.h


a többit a make tudja magát... ja, és még meg kell írnod a hello.c, func.c, func.h file-okat... ez már a te feladatod...
Előzmény: thuram (202)
thuram Creative Commons License 2005.02.03 0 0 202
Aszem ez kell nekem:)

Tudnátok mutatni olyan egyszerű példát a make re ahol van 2-3 .c kiterjesztésű (lehetőleg egyszerű) file 1-2 .h kiterjesztésű ill egy make file. (persze nem várom hogy irjatok olyat tökéletes ha a netről letudom tölteni)
NevemTeve Creative Commons License 2004.12.26 0 0 201
Aki nem rendszergazda, az beteheti az aktuális könyvtárat a PATH-ba, valahogy így:
PATH=/bin:/usr/bin:/usr/local/bin:
a végén lévő üresség jelenti az aktuális könyvtárat
tkeda Creative Commons License 2004.12.26 0 0 200
Köszi! Asszem ide még visszanézek párszor...
Előzmény: locsemege (199)
locsemege Creative Commons License 2004.12.25 0 0 199
Igen, dj helyesen írta, de nem magyarázta meg. A linuxban a parancsot a shell a PATH környezeti változóban megadott elérési utakban keresi. Szemben a DOS-szal, Windows-zal, az aktuális könyvtárban nem keresi, és mivel az nem volt a path-ban, nem is találta meg. Ezért meg kell adni az elérési utat is. Te ezt úgy tetted, hogy feljebb mentél, majd onnan CProg/a.out-tal indítottad. Mivel az aktuális könyvtár jele a . - akár a Windows-ban -, elindíthattad volna úgy is a progidat, hogy nem mész feljebb (ahogy dj is írta):

./a.out
Előzmény: tkeda (197)
dj Creative Commons License 2004.12.25 0 0 198
Általában így kell:
dma@linux:~/Documents/CProg> ./a.out
Előzmény: tkeda (197)
tkeda Creative Commons License 2004.12.25 0 0 197
dma@linux:~/Documents/CProg> a.out
bash: a.out: command not found
dma@linux:~/Documents/CProg> ..
dma@linux:~/Documents> CProg/a.out
Helló világ!!!dma@linux:~/Documents>
Előzmény: N.G.J. (196)
N.G.J. Creative Commons License 2004.12.24 0 0 196
Mi a pontos hibaüzenet?

Hogyan próbáltad indítani? Csak a beírtad a program nevét, vagy eléírtad az éppen aktuális könyvtárra való hivatkozást is? (program_neve vagy ./program_neve formában próbáltad indítani)
Előzmény: tkeda (195)
tkeda Creative Commons License 2004.12.24 0 0 195
Miért nem lehet futtatni abban könyvtárban a lefordított
kódot ahol van, miért kell eggyel feljebb lépni???(suse9.0,gcc)
dj Creative Commons License 2004.11.11 0 0 194
Köszönöm, meglett.
Előzmény: zsowy (193)
zsowy Creative Commons License 2004.11.11 0 0 193
adatbázisnak ezt kell mondani:
set client_encoding to 'UNICODE';
Előzmény: dj (188)
dj Creative Commons License 2004.11.03 0 0 192
Kössz! Letöltöm, biztosan jó az anyag.
Előzmény: N.G.J. (191)
N.G.J. Creative Commons License 2004.10.30 0 0 191
A QT-ről pont a napokban tettek ingyenesen letölthetőve egy
nagyon jónak mondott könyvet.
Letölthető innen, a Downloads pontra kattintva.
Előzmény: dj (188)
dj Creative Commons License 2004.10.29 0 0 190
Kössz! Mostmár igen :)
Előzmény: NevemTeve (189)
NevemTeve Creative Commons License 2004.10.29 0 0 189
Ezt olvastad?
http://developer.postgresql.org/docs/postgres/multibyte.html#AEN19684
Előzmény: dj (188)
dj Creative Commons License 2004.10.29 0 0 188
Sziasztok!

Nem tudom, hogy ezt itt vagy valami QT-s topikban kellene feltenni, először ide próbálom. Volna feltöltött postgres adatbázis amire QT-s guit kellene csinálni. Az a bajom egyelőre, hogy ha felteszem a táblát grafikus felületre akkor a magyar ékezetes szavak így jelennek meg:
"Termék azonosító" ilyenre "Term??k azonos??t??" változik.

Hol tudom megadni a kódolást QT-ban? Vagy nem lehet összehozni a kettőt? A PG most iso8859-2-t használ a QT alkalmazás pedig UTF8-at.

Köszi előre is!
Belohin Creative Commons License 2004.09.23 0 0 187
Köszi, megvan a tettes (természetesen jómagam). Az -o mögül hiányzott az object file neve, és nyilván ez megkeverte a paraméterkezelést. Kezdők okulására talán alkalmas. De hát még belohin vagyok...
Előzmény: NevemTeve (186)
NevemTeve Creative Commons License 2004.09.22 0 0 186
Mit ír ki a pkg-config, és hol van a hiányzó include-file? Biztos hogy az hiányzik, amire gondolsz? Nem inkább abban van egy újabb include?
Előzmény: Belohin (185)
Belohin Creative Commons License 2004.09.22 0 0 185
Sziasztok!
Nem találtam közelebbi topicot...
Nagy nehezen felkönyörögtem forrásból a gtkmm-2.4.3-at SUSE 9.0 alá. A legegyszerűbb példával szerettem volna kipróbálni a tutorial-ból: simple.cc. A javasolt utasítás: g++ simple.cc -o `package-config gtkmm-2.4 --libs --cflags`.
Nem találja a header file-t, pedig ha beírom külön a backtick-ben levőt, a package-config kimenete rendben levőnek látszik.
A f* man-ban olyasmit láttam, hogy a -I paraméter figyelmen kívül marad, ha rendszer-include könyvtár. De hol, hogyan tudatom a rendszerrel, hogy a /usr/local/include/gtkmm-2.4 -ben is keressen?
KoporShow Creative Commons License 2004.09.01 0 0 184
A GCC-nek mukodnie kell.

SuSe-9.1.-hez nyilvan van gcc rpm mind az installacios CD, mind a halon.

Előzmény: Torda26 (183)
Torda26 Creative Commons License 2004.09.01 0 0 183

Hali mindenki!

 

Szóval van egy Novell SuSE Linux 9.1-em, és szeretnék .c fájlokat lefordítani. Letöltöttem kb. 6 fordítót, de mindegyiknek csak a .c forrásfájla volt meg, így az ördögi kör bezárult. Van többek között GNU Compiler Collectionom, de nem tudom bekonfigurálni, és nekem egy darab, parancssoros .c fordító bőven elég.

 

Tudna valaki segíteni?

Esetleg egy e-maillel is megdobhatna: torda@uw.hu

 

Köszönöm!

mdozsa Creative Commons License 2004.08.06 0 0 182
Koszonom a tanacsokat, es a forraskodot :)
Elobbit megprobalom megfogadni, utobbit attanulmanyozom :)
NevemTeve Creative Commons License 2004.08.05 0 0 181
Unalmas az életem... az alábbi kódot csaptam össze a problémára:
/* harom.c */

#include <stdio.h>

int main (void)
{
int summa, max, mid, min;
int osszes, jo;

osszes = jo = 0;
for (summa=3; summa<101; ++summa) {
for (max=(summa+2)/3; max<=summa-2; ++max) {
for (mid=(summa-max+1)/2; mid<=summa-max-1 && mid<=max; ++mid) {
min = summa-max-mid;
++osszes;
if (((max-mid)%3==0) ||
((max-min)%3==0) ||
((mid-min)%3==0)) {
printf ("+ %d+%d+%d=%d\n", max, mid, min, summa);
++jo;
} else {
printf ("- %d+%d+%d=%d\n", max, mid, min, summa);
}
}
}
}
printf ("Összesen %d hármas van, ebből jó %d\n", osszes, jo);

return 0;
}
Előzmény: NevemTeve (180)
NevemTeve Creative Commons License 2004.08.05 0 0 180
Nem tudtam ugyan megérteni az algoritmusodat, de két tanácsot adhatok:

1. Valahányszor növeled az "összeg"-et, annyiszor tegyél be egy ilyen kiíratást is:
printf ("%d+%d+%d=%d\n", a, b, c, i1);

2. Olyan változóneveket használj, amik utalnak a változó szerepére (tehát nem i1, i2, i3, hanem pl summa, delta, first, second, min, max stb)
Előzmény: mdozsa (178)
locsemege Creative Commons License 2004.08.04 0 0 179
off

Itt a fórumon 2db \ kell ahhoz, hogy egyszer megjelenjen. Az első escape-ként értelmeződik, mint pl. a Bash-ben. Tehát így:

printf ("\nÖsszesen %d ilyen számhármas van", osszes);

on
Előzmény: mdozsa (178)
mdozsa Creative Commons License 2004.08.03 0 0 178
Üdvözlök mindenkit!
Kezdő programozó vagyok, és kezdő Linuxos.
A programozás-tudásom fejlesztésére elkezdtem mindenféle algokat írni, de hamar elakadtam.

A feladat: megkeresni az összes olyan számhármast (és kiírni a számukat), ahol a+b+c<101, és a,b,c közül valamelyik kettőnek (legalább) a különbsége osztható 3-al. (a,b,c>=0, int)

A megoldást úgy gondoltam, hogy végigmegyek az összegeken 1-től 100-ig, majd 1-től az összegig meghatározom a-t, ezután, ha a maradék (összeg-a) osztható 2-vel, akkor megnézem azokat a számokat, melyek ülönbsége 6*x (x>=0), ha nem osztható 2-vel, akkor megnézem azokat a számokat, melyek ülönbsége 3+6*x (x>=0).

Mellékelem a kódot:
# include <stdio.h>
main ()
{
int i1,i2,i3;
int a,b,c;
int osszes=0;
for (i1=1;i1<101;i1++)
{
for (i2=1;i2<i1+1;i2++)
{
a=i2;
if (((i1-a) % 2) == 0)
{
for (i3=0;i3<(i1-a);i3+=6)
{
b=(i1-a-i3) / 2;
c=i1-a-b;
osszes++;
}//for
}//if
else
{
for (i3=3;i3<(i1-a);i3+=6)
{
b=(i1-a-i3) / 2;
c=i1-a-b;
osszes++;
}//for
}//else
}//for
}//for
printf ("nÖsszesen %d ilyen számhármas vann", osszes);
}//main


De ez valamiért nagyobb számot ad, mint ahány számhármas van.
Plz segítsen valaki, és bocs, hogy hosszú és lama voltam.
liberálmensevik Creative Commons License 2002.10.04 0 0 177
Egy barátom által írt tankönyvet sem érdemes kihagyni :

C/C++ programozás Bodor László - Bérci N 1792 Ft
LSI Oktatóközpont, Budapest 1998.

Előzmény: khiraly (176)
khiraly Creative Commons License 2002.10.04 0 0 176
Aha ertem. Csak a Muzegyetemi jegyzetboltban aszondtak, hogy mar regota nincsen, es a Muszaki kiado nyomja ki.

Az ara egy kicsit borsos. (3500, de tudom, hogy most mar minden konyv ilyen draga;)

CSak gondoltam, ha neked esetleg mar nem kene.

Tenyleg antikvariumot nem tudtok, ahol kapni lehet?

Kosz.

((ha valaki el akarna adni es Bp-i akkor megegyezhetunk..;)
Annyira nem surgos, de _KELL_ ;)
(Hobbiprogramolni akarok es kell.)

Ja meg egy uccso kerdes:

Ki milyen magyar konyvet ismer/tud ajanlani ami C programozassal foglalkozik?
(tehat nem C++)

A "Programozzunk C nyelven" mar itt ki lett targyalva. Szal nem hordozhato kodjaival max az elmeleti szinten ad egy kezdo szintet.
(amugy is mar leprogramoztam amit le lehetet abbol a konyvbol linux alatt)

Tehat _MEG_ magyar nyelvu C konyvet ki tud?

Kosz.

Előzmény: liberálmensevik (175)

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!