Új hozzászólás Aktív témák
-
Jester01
veterán
válasz plaschil #200 üzenetére
A lényeget pont lehagytad. Emberek, legyetek szívesek mindig a teljes programot is mellékelni (külső link formájában), hogy ki lehessen próbálni! Ugyancsak általános megjegyzés, hogy tessék szépen bekapcsolni az összes warningot és kijavítani őket, hacsak nincs rá nyomós ok.
Valószínűleg az f változód simán char*. Ez baj, annak bizony helyet kell foglalni. A scanf hívásba pedig nem kell az & jel az f elé. Ettől eltekintve a progi sajnos több sebből vérzik.
A struct és az union közötti óriási különbség, hogy az union tagjai egymást átfedve helyezkednek el a memóriában, míg a struct esetében egymás után. Union esetén általában mindig csak az egyik mezőt használjuk (speciális eset pl. a típuskonverzió)
Jester
-
plaschil
aktív tag
Ő lenne az. A case1 lefut, a case2 nem. De miért nem? Segítsetek ha tudtok!
#include <stdio.h>
int fajlvizsgal( int argc, char *argv[] )
{
FILE *f1;if ( argc != 3 )
{
printf( "Hibas parameterezes!" );
printf( "\nHasznalat: programnev blabla.txt blabla.txt\n" );
return( -1 );
}if ( ( f1 = fopen( argv[1],"rt" ) ) == NULL )
{
printf( "\nHiba az elso argumentumban megadott fajl megnyitasaban!\n" );
return( -1 );
}fclose( f1 );
main( argv );}
int main (char *argv[])
{
int a, b, c, d, e, f;
FILE *f1;
FILE *f2;printf("Valasszon opciot: A konyvek.txt es az autok.txt fajlok osszehasonlitasa (1-es es enter)\n"
" A haha.txt fajl es begepelt szoveg osszehasonlitasa (2-es es enter)\n");
scanf("%d",&e);switch(e)
{
case 1:
f1=fopen("konyvek.txt","r");
f2=fopen("autok.txt","r");
b=1000;
for(a=0;a<b;a++){
c=getc(f1);
d=getc(f2);if(c!=d)
{break;
a++;
}}
if(a!=b)
{
fprintf(stderr, "\n A ket fajl szovege ettol a karaktertol nem egyezik: %d", a);
getchar();
getchar();
}
break;case 2:
printf("Gepelje be a szoveget, majd usson egy entert!\n");
f2=fopen("haha.txt","w+");
scanf("%s",&f);
fprintf(f2,"%s",f);b=1000;
for(a=0;a<b;a++){
c=getc(f1);
d=getc(f2);if(c!=d)
{break;
a++;
}}
if(a!=b)
{
fprintf(stderr, "\n A ket szoveg ettől a karaktertol nem egyezik: %d", a);
getchar();
}
if(a=b)
{
getchar();}
fclose(f1);
fclose(f2);break;
break;
}
}Creative G500 vezérlő panelt keresek// Hol vagy helyileg? - A kisszobába. // Szilvásbuktát, mert azt szeretem!
-
a_nagy_pok
csendes tag
-
plaschil
aktív tag
válasz a_nagy_pok #204 üzenetére
Igen, tudom, azzal is kéne valamit kezdeni.
Creative G500 vezérlő panelt keresek// Hol vagy helyileg? - A kisszobába. // Szilvásbuktát, mert azt szeretem!
-
SKFA
csendes tag
Üdvözlet!
Nemrég kaptam egy beadandó feladatot, amit sehogysem bírok megfejteni....
Így hangzik: (e^x=1+x+(x^2/2!)+(x^3/3!)+(X^4/4!)... ) adott pontossággal (input). Azb exp() nem használható.
Input pontosság: (>10E-15)
Output: Az e a kért pontossággal.Egyáltalán mit jelentene ennél a feladatnál a pontosság? Input=x?
Ameddig eljutottam:#include <stdio.h>
#include <math.h>
int main (){
int p, i=0;
double e;
printf("Adja a meg a kivant pontossagot!\n");
scanf("%d", &p);
if (p<0)
printf("Csak pozitiv egesz szam fogadhato el!");
else
for (i=0; i<p; i++){
e=1+p+pow(p,i);}
printf("%lf", e);
return 0; }Van esetleg valakinek valamiféle ötlete a megoldáshoz?
Előre is köszönöm! -
-
Jester01
veterán
válasz plaschil #203 üzenetére
Jajj, az f ráadásul egy int.
Én a következő módon csinálnám. Mivel az stdin is egy fájl, ezért készítenék egy függvényt ami bemenetként FILE* argumentumokat vár. Ezt ezután simán lehet hívni "igazi" fájlokkal illetve az stdin-el is.
Az "abcdef" stílusú változókról pedig addig szokj le amíg nem késő
Jester
-
SKFA
csendes tag
válasz Jester01 #208 üzenetére
Köszönöm a segítséget utólag, és előre is!
Őszintén szólva annyira nem vágom a programozást hogy így kivitelezzem, tanárnak is valószínűleg eleg lenne egy egyszerűbb megoldás.
Ha jól értem a pontosságnak nem sok köze van a tizedesjegyek számához, sokkal inkább a az x^n/x! elvégzett műveletek számához. -
SKFA
csendes tag
Üdv ismét!
Nagyjából sikerült megérteni a feladatot, a következőképpen hangzana:Ez a feladat szövege: Az e kiszámolása (ex=1+x+x2/2!+x3/3!+...) adott pontossággal (input). Az exp() nem használható .
Input: pontosság (>10E-15)
Output: Az e a kért pontossággal.Ha jól értelmezem, akkor
ha input=7, akkor ezt a műveletsort hajtaná végre:
e=2+(1/2!)+(1/3!)+(1/4!)+(1/5!)+(1/6!)+(1/7!), és kiírná e-t.
Ha input=3, akkor ezt:
e=2+(1/2!)+(1/3!), és kiírná e-t.#include <stdio.h>
#include <math.h>
int faktorialis(int n){
if(n==1) return 1;
return (n * faktorialis(n-1));
}
int eszam(){
int h, p=0, i=0;
double e=2.0;
printf("Adja a meg a kivant pontossagot!\n");
scanf("%d", &p);
if (p<0)
printf("Csak pozitiv egesz szam fogadhato el!");
else
for (i=2; i<p; i++) {
e+=1/faktorialis(p);
}
return e;
}
int main(){
printf("\nVegeredmeny:%e",eszam());
return 0;
}Idáig jutottam, már abszolút nincs ötletem hogyan tovább. Így a program nem működik, 1.6-ot ad eredményül, többek között ezt sem tudom miért. Estére viszont be kellene adnom, különben csúszok egy évet.
Valaki tud, segítsen. Előre is köszönöm![ Szerkesztve ]
-
Jester01
veterán
--- t.c.orig 2007-12-14 18:46:12.000000000 +0100
+++ t.c 2007-12-14 18:49:52.000000000 +0100
@@ -7,7 +7,7 @@
}
-int eszam(){
+double eszam(){
int h, p=0, i=0;
double e=2.0;
@@ -17,13 +17,13 @@
printf("Csak pozitiv egesz szam fogadhato el!");
else
for (i=2; i<p; i++) {
- e+=1/faktorialis(p);
+ e+=1./faktorialis(i);
}
return e;
}
int main(){
- printf("\nVegeredmeny:%e",eszam());
+ printf("Vegeredmeny:%g\n",eszam());
return 0;
}Fő probléma 2 volt: az egész és a lebegőpontos számítások helytelen használata, illetve a faktoriális hívásban nem a ciklusváltozót adtad át.
Jester
-
feherpeter
csendes tag
Hello!
Itt van egy egyszerű kis program. Azt kéne csinálnia, hogy középre kiírja, hogy a képernyő milyen széles. De valami fura karaktereket kapok#include <graphics.h>
#include <conio.h>
#include <stdlib.h>
void main()
{
int x, Gd, Gm, Hibakod;
Gd = DETECT;
initgraph(&Gd, &Gm, "");
Hibakod = graphresult();
if (Hibakod)
{
clrscr();
cprintf("Grafikus hiba: %s", grapherrormsg(Hibakod));
getch();
exit(1);
}
rectangle(0, 0, getmaxx(), getmaxy());
settextjustify(CENTER_TEXT, CENTER_TEXT);
settextstyle(DEFAULT_FONT, HORIZ_DIR, 3);
x = getmaxx();
outtextxy(getmaxx() / 2, getmaxy() / 2, x);
getch();
closegraph();
} -
Jester01
veterán
válasz feherpeter #214 üzenetére
Hát mert gondolom a szerencsétlen outtextxy szöveget vár, te meg egy számot adsz be neki. Ezt egyébként a fordító valószínűleg meg is mondta neked.
Jester
-
feherpeter
csendes tag
Igen mondta . Az a baj hogy fura karaktereket ír ki nem számokat(vagy semmit). Tudom hogy szöveg kell neki csak nem tudom hogy csináljak szöveget számból. Ezt magyarázza el valaki
[ Szerkesztve ]
-
feherpeter
csendes tag
char string[3];
...
string[0] = getmaxx();
outtextxy(getmaxx() / 2, getmaxy() / 2, string);Ha ezt rakom be akkor is fura karaktereket kapok
outtextxy(getmaxx() / 2, getmaxy() / 2, 640);
itt is fura karakterek
outtextxy(getmaxx() / 2, getmaxy() / 2, "640");
ennél rendesen kiírja hogy 640
Lécci segítsetek!
-
shev7
veterán
válasz feherpeter #217 üzenetére
at kell konvertalnod az int-et char*-ba. Mivel ez relative gyakori muvelet van ra konyvtari fv. itoa a baratod.
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
CPT.Pirk
Jómunkásember
Sziasztok!
Úgy fújta a szél, hogy most c++,java,pascal,assembly és qbasic után sima C-t kell tanúlni fősulin. A dolog megyeget, meg is írtam egy email cím ellenőrző progit, de azzal kapcsolatban lenne kérdésem.
ugyan nem volt kikötve, honnan kell vennie a proginak az emailcímet, én scanfel kértem be egy char tömbbe, aztán hosszellenőrzés, majd vizsgáló ciklusok, stb...
Viszont a tanár úr kiakadt, mondván a scanf olyan, mintha a viszkető szemünket a seggünkön keresztűl akarnánk megvakarni. (igyekeztem pontossan idézni) Valami hasonló dolgot mondott a getchar()-ra is, ott a pascalosokra utalva, de azt nem használtam. Szóval valami átadásos dolgot kell majd megoldanom, hogy pl. program.exe asdfg@fgg.hu -ból kiszedje az emailcímet magának. ilyen argv meg nemtudom dolgok kellenének nekem oda main fgv-be...
Nincs más - csak egy szál gitár - szidom a rendszert - forradalmár. - Én vagyok egyedül 88 telén. (Auróra)
-
shev7
veterán
válasz CPT.Pirk #219 üzenetére
probald ki mit csinal ez, es erteni fogod
#include <stdio.h>
int main( int argc, const char* argv[] )
{
// Prints each argument on the command line.
for( int i = 0; i < argc; i++ )
{
printf( "arg %d: %s\n", i, argv[i] );
}
}[ Szerkesztve ]
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
feherpeter
csendes tag
Kösz shev7! Már csak azt kéne tudnom hogy mi az a függvény.
-
shev7
veterán
válasz feherpeter #221 üzenetére
google-t ismered?
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
feherpeter
csendes tag
Ja bocs ok akkor békénhagylak
-
shev7
veterán
válasz feherpeter #223 üzenetére
nem ertem a felhaborodasodat... adtam linket, vagy nem?
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
CPT.Pirk
Jómunkásember
Aha, okés. Ennek a működése világos, tanár ezt is tanította, meg ezt várta el, de ha nem adja meg, hogy honnan szedjen be a progi email címet, akkor elvileg szabad kezem lenne a döntésben... Viszont a scanf utálat okára még nem jöttem rá.
Nincs más - csak egy szál gitár - szidom a rendszert - forradalmár. - Én vagyok egyedül 88 telén. (Auróra)
-
odonye
csendes tag
Hello mindeki! Azt szeretném kérdezni, hgoy hogyan tudnám azt megcsinálni, hogy a bekért karaktersort egy másik szöveges fájl-ban tárolom?
-
feherpeter
csendes tag
Hello!
Van a delay() függvény. Az a bajom vele hogy nincs késleltetés hanem simán kihagyja. Nincs hibaüzi. Az elejére odaírtam "#include <dos.h>"-t. Mit csiáljak hogy működjön? -
a_nagy_pok
csendes tag
Hali!
char * string; /* a bekért karaktersor */
/* ..... */
FILE * f = fopen("fajl_neve", "w");
fprintf(f, "%s", string);
fclose(f);Részletesebben lásd itt:
http://www.cppreference.com/stdio/ -
odonye
csendes tag
épp törölni akartam a hozzászólást mert rájöttem! De köszönöm szépen! Viszont ez valamiert nem menti a szokozt es ami utanna van.:S
[ Szerkesztve ]
-
odonye
csendes tag
De, úgy olvastam be. Hogyan kéne?
-
odonye
csendes tag
Köszönönöm!
-
feherpeter
csendes tag
Könyörgök valaki segítsen!
#include <dos.h>
void main()
{
delay(5000);
printf("Letelt az 5 másodperc.");
getch();
}Itt 5 öt mp múlva kéne kiírna a szöveget. De rögtön megjelenik.
-
Lortech
addikt
válasz feherpeter #234 üzenetére
traits of turbo c
8. oldal: 15.12.2 delay( ) pont.Thank you to god for making me an atheist
-
Lortech
addikt
válasz feherpeter #236 üzenetére
Nem a gépeddel van a "baj", hanem a rutinnal. Mai ( és "tegnap előtti" ) gépeken nem fog megfelelően futni, mert túl gyorsak.
De ott van leírva jól a probléma, és lehetséges alacsonyszintű megoldási módok is. Jobban, jobbat én se tudok írni.
Hardver / operációs rendszer / fordítófüggetlen, jó megoldás nem nagyon van erre az egyszerűnek tűnő problémára.Turbo C + DOS-ról van szó egyáltalán? A legemészthetőbb megközelítés talán az, hogy egy ciklusban lekéred az aktuális időt addig, amíg a kiinduláshoz képest megfelelő idő eltelt. Ez azért nem jó megoldás, mert hiába nem csinál semmi hasznosat a program, a várakozás közben folyamatosan terheli a gépet.
Thank you to god for making me an atheist
-
odonye
csendes tag
Kérdés. A struct-omban int-re char-ra es float-ra miert irja hogy undeclared?(minden tipusra ezt kapom).
-
odonye
csendes tag
struct valami
{
int a;
float b;
}
scanf("%d",&a)
Hát valami ilyesmi. Igazából az én gondom az, hogy sehol semmi programozást nem tanultam illetve tanulok, és az info tanárom is csak pascal-ban tud egy keveset.:S -
ttower
aktív tag
hello mindenki
c és mysqlben kellene egy kis segítség. interneten találtam egy rakat leírást hogy hogy kéne a mysql-t használni c programokból, de sehol sem találom a mysql.h fájlt. megvan ez esetleg valakinek vagy van valami gyűjtőoldal ahonnan le lehetne szedni?It's not a bug until it is in production. | Wake up and smell the ashes.
-
doc
nagyúr
a struct-ot zárd le pontosvesszővel, tehát így:
struct valami
{
int a;
float b;
} ;vagy ha akarsz változót ilyen típussal, akkor:
struct valami
{
int a;
float b;
} valtozo;ttower: azert az nem igy megy, a mysql.h önmagában kevés, abban csak a deklarációk vannak, fel kell tenned a mysql-t a megfelelő dev fileokkal (lib, header, stb)
-
odonye
csendes tag
Köszönöm.
[ Szerkesztve ]
-
lszabi83
csendes tag
Hello!
Vki segítsen plíííz! Nem nagyon megy a prog, gondolom nem nehéz ez a feladat! De nem jövök rá magamtól! Részletesen el tudjátok mondani a megoldáast??
int a=0, b=1; b=a++; a+=++b; a+=b++; Mennyi a és b értéke?
Sok ilyen hasonló feladatot kaptam, de nem értem! THX!! -
-
plaschil
aktív tag
Sziasztok!
Van egy-két vizsgakérdés ami annyira összetett, hogy nem tudok rá pontosan válaszolni.
Segítenétek nekem?
A kérdések:
1. Adatfolyam, fájlkezelés; szabványos adatfolyamok, bufferelés
2. C preprocesszor direktívák, makrószimbólumok és makróeljárásokCreative G500 vezérlő panelt keresek// Hol vagy helyileg? - A kisszobába. // Szilvásbuktát, mert azt szeretem!
-
#25954560
törölt tag
Uraim!
ha van egy eleg osszetett C/C++ progi es at kell tenni tobbmagos/64bites kornyezete, akkor nagyon-nagyon-nagy vonalakban mit kell nezni, mi lesz a feladat?
teljesitmeny-noveles a cel, minimum a tobbmagos procit ki kene hasznalni (nem csak ketto, akkor mar menjen n+1 magon is, mindjart jonnek a nehalem-ek )
tudom h tulsagosan altalanos a kerdes, de majd ha egyre tobb mindent ertek, akkor lesz konkretabb iskoszi,
&rew -
Jester01
veterán
válasz #25954560 #248 üzenetére
Több magot akkor fog kihasználni, ha több szálon fut. Ahhoz meg az kell, hogy a feladatot lebontsd párhuzamosan végezhető műveletekre, lehetőleg hasonló számításigénnyel. Mindezt ideális esetben tetszőleges számú szálra, például az adatmennyiség n részre osztásával. Általában ehhez szükséges valami extra művelet, ami a részműveletek eredményéből összerakja a végeredményt. Például ha az a feladat, hogy készíts fényességdiagramot egy fényképről, akkor a képet feloszthatod annyi részre ahány mag van és a részekre párhuzamosan végrehajtod a számlálást. Végül pedig összeadod a részeredményeket. Persze ha lehetséges, akkor menet közben is egyből aggregálhatsz, csak akkor figyelni kell a szinkronizálásra. (Amire persze amúgy is figyelni kell). Ha eleve több feladat van (mint például egy web szerver esetén) akkor tipikusan a thread pool architektúrát szokták alkalmazni, amikoris az n (vagy n-1) végrehajtó szál párhuzamosan, de önállóan dolgozza fel a kéréseket. A feladatokat funkcionálisan is szét lehet bontani, csak ekkor nagyobb probléma az egyenlő elosztás illetve a tetszőleges skálázódás. Pl. egy játék esetén lehet dedikált futási szála a rajzolásnak, a hangkezelésnek, a hálózatkezelésnek -- csak ezek ugye közel sem azonos processzorigényűek.
64 bites architektúra általában nem igényel speciális kódot, de persze ki lehet használni az előnyeit a nagyobb címtartománynak. Például ha van sok adatot tartalmazó fájlod amit eddig seek/read módon használtál véletlen elérésre, azt most nyugodtan bemappolhatod (jajj) a memóriába és így majd az operációs rendszer a hardver segítségével meggyorsíthatja a működést.
Ugyanakkor át kell nézni a jelenlegi programot, nem végez-e trükköket (tipikusan pointer -> int -> pointer konverziót) ami nem működik 64 biten.Az x86-64 továbbá nem csak azt jelenti, hogy 64 bites a címtartomány, hanem több regiszter is van. Ezzel viszont c++ esetén elég a fordítónak foglalkozni.
Jester
-
#25954560
törölt tag
válasz Jester01 #249 üzenetére
aha. latom mar, kozben talaltam par jo linket is.
ha kizarolag unix/linux rendszerrol beszelunk, akkor mindig a kernel intezkedik az uj szalak szetosztasarol a magok kozott? (mondjuk terhelestol fuggoen)
ha nem kene hozzanyulni minden egyes uj sokmagos proci megjelenesekor, akkor hogyan lehet erdemben 2, 4 es 8 magra elore megirni? megirom nyolc szalra es akkor ket magon is 2x4 szalon fut majd?
memoriateruletek hozzaferesevel nem kell foglalkozni? vagy lehet azert nemileg optimalizalni?
szerencsere olyan a cuccos h konnyu sok szalra bontani es raadasul csak az altaluk irt adattablak miatt kell figyelni arra h egyszerre csak egy valaki irhat. (nehogy belefussunk szoftveresen a tlb bugba )
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!