Új hozzászólás Aktív témák
-
PumpkinSeed
addikt
válasz overclockerr #3948 üzenetére
Ha a C-t megtanulod akkor az már nagyon jó! Szinte egy alap programozási nyelv. A HTML CSS-t 1 hét alatt megtanulod ha tényleg tanulni akarsz. De ha a C-t tudod akkor az már egy erős alap bármihez.
"Akinek elég bátorsága és türelme van ahhoz, hogy egész életében a sötétségbe nézzen, elsőként fogja meglátni benne a fény felvillanását." - Kán
-
Geresics
addikt
Most van épp vizsga, aki tud pls segítsen!
"Írjon programot, mely a következőket teszi!
Beolvassa a pontok számát (n). A pontok x és y koordinátáit struktúrában tároljuk.
Beolvassuk az n db pont koordinátáit. A koordináták valós számok.
Határozzuk meg az origótól legtávolabbi pontot és nyomtassuk ki ennek a pontnak a koordinátáit."*MOTOROS CSATORNA* youtube.com/MotorosVandor
-
Geresics
addikt
válasz Geresics #3954 üzenetére
Megoldásom:
#include <stdio.h>
struct koord
{
float x;
float y;
};
void main()
{
struct koord pont[10];
float tav[10];
int n, i, mem;
float max=0;
/* beolvasas */
printf("\nHany koordinatat szeretne rogziteni?");
scanf("%d",&n);
for (i=0; i<n; i++)
{
printf("\nAdja meg az x%d koordinatat: ", i+1);
scanf("%f",&pont[i].x);
printf("\nAdja meg az y%d koordinatat: ", i+1);
scanf("%f",&pont[i].y);
tav[i]==(sqrt(pont[i].x*pont[i].x)+(pont[i].y*pont[i].y));
}
for (i=0; i<n; i++)
if ((pont[i].x)>max)
{
max=pont[i].x;
mem=i;
}
else if ((pont[i].y)>max)
{
max=pont[i].y;
mem=i;
}
/* kiíratás */
printf("\nA legtavolabbi koordinata az origotol: %f, %f", pont[mem].x, pont[mem].y);
}*MOTOROS CSATORNA* youtube.com/MotorosVandor
-
Geresics
addikt
2. feladat: (hátha ebben valaki segít):
Írjon programot, mely bekér egy egyjegyű, egész számot és beolvas egy max. 20 karakterből álló szöveget, melyet úgy nyomtat ki, hogy egy sorba annyi karaktert nyomtat, amennyit a felhasználó definiál. Például:
Be: 3
cseresznyeEredmény:
cse
res
zny
e*MOTOROS CSATORNA* youtube.com/MotorosVandor
-
Jester01
veterán
válasz Geresics #3955 üzenetére
Ez nem jó, először szépen kiszámolod a távolságot de azután nem abból keresed a maximumot:
for (i=0; i<n; i++)
if ((pont[i].x)>max) {
max=pont[i].x;
mem=i;
} else if ((pont[i].y)>max) {
max=pont[i].y;
mem=i;
}Itt miért az x,y-al varázsolsz?
Helyesebben:for (i=0; i<n; i++)
if (tav[i]>max) {
max=tav[i];
mem=i;
}Egyébként ehhez el sem kellene tárolni a pontokat, a maximum távolságot a hozzá tartozó ponttal együtt a bekérő ciklusban is nyilvántarthatod.
Ja és kellene #include <math.h> az sqrt miatt.
[ Szerkesztve ]
Jester
-
skylaner
senior tag
válasz Geresics #3956 üzenetére
Nem a teljes kód, de a lényeg benne van.
#include <stdio.h>
void szoveg_tordelo(char* string, int char_num)
{
int i=1;
while (*string != '\0')
{
printf("%c",*string);
if (i%char_num == 0) printf("\n");
i++;
string++;
}
}
void main()
{
char* string="cseresznye";
szoveg_tordelo(string,3);
} -
Jester01
veterán
válasz skylaner #3958 üzenetére
1. A main visszatérési típusa int.
2. A string literálok típusa const char*.
3. Mivel a függvényed nem módosítja a stringet, oda is const char* ajánlott (különben az előző pont miatt nem tudod beadni a literált).
4. Karakterek kiírására putchar és társai valók.
5. Optimalizációs okokból az osztás általában kerülendő ha máshogy is meg lehet oldani.
6. Nyelveket nem keverjük (a függvényed szoveg_tordelo de a paraméter char_num), lehetőség szerint csak az angolt használjuk.Jester
-
Bobrooney
senior tag
köszönöm a bíztatást nekem is már végezni kéne, de Villamosságtan és Jelek és Rendszerek megkeseríti az életemet
dabadab: Áh de nem is az, értelmetlen szivatás az egész. Out of date az egész már nálunk. Most indul először Android oktatás rendes tárgy keretében (talán).
[ Szerkesztve ]
-
buherton
őstag
A szabvány elég egyértelműen fogalmaz:
It shall be defined with a return type of int and and with no parameters...
Vannak esetek, amikor lényegtelen, hogy van-e egyáltalán visszatérési érték, mert már a main függvény véget érése sem megengedett, mert nincs kinek megkapnia az értéket. Vélhetően ezekre az esetekre engedi a fordító, hogy void legyen a típus.
tely, baly, fojó, mennyél, mingyárt, telyföl, tolyás, malyd, kapú, egyenlőre, ejsd, jáccani, ahoz, fúj, hüje, muszály, alat, álok, lasan, fojtatás, ál, fontós, költsön, eggyüt, lyob (jobb?), mek, mongyak, milyért - !!! Tanúlyunk már meghejjessen irni... !!!
-
Jester01
veterán
válasz buherton #3968 üzenetére
Igen, a C szabvány ezt meg is említi:
"In a freestanding environment (in which C program execution may take place without any benefit of an operating system), the name and type of the function called at program startup are implementation-defined."Például gcc fordítónak van is rá kapcsolója, -ffreestanding. Ha ezt megadod akkor nem is reklamál a void main miatt.
[ Szerkesztve ]
Jester
-
buherton
őstag
válasz Jester01 #3969 üzenetére
De ez nem csak arra vonatkozik, hogy az induló függvény neve és az argumentum típusa lehet implementáció függő?
tely, baly, fojó, mennyél, mingyárt, telyföl, tolyás, malyd, kapú, egyenlőre, ejsd, jáccani, ahoz, fúj, hüje, muszály, alat, álok, lasan, fojtatás, ál, fontós, költsön, eggyüt, lyob (jobb?), mek, mongyak, milyért - !!! Tanúlyunk már meghejjessen irni... !!!
-
Jester01
veterán
válasz buherton #3970 üzenetére
A "type" az a teljes prototípus, visszatérési értékkel együtt.
Továbbá:
The effect of program termination in a freestanding environment is implementation-defined.Tulajdonképpen a main ezzel elvesztette a speciális mivoltát. Lehet, hogy nem is ott indul a program, és nem is tudni mit kap és mit ad vissza. Csak egy mezei függvény lett.
[ Szerkesztve ]
Jester
-
skylaner
senior tag
válasz Jester01 #3959 üzenetére
(Gondolom az nem jutott eszedbe hogy nem a tökéletesen szép megoldás volt a célom, hanem csak az algoritmus leírása? Eredetileg main-t se akartam írni csak a fgv-t, de a jobb érthetőség miatt beletettem.)
Amúgy mi a gond a printf("%c",c)-vel?#include <stdio.h>
void text_fragmentation(const char* string, int char_num)
{
int i=1;
while (*string != '\0')
{
putchar(*string);
if (i == char_num)
{
putchar('\n');
i=0;
}
i++;
string++;
}
}
int main(int argv, char* argc[])
{
const char* string="cseresznye";
text_fragmentation(string,3);
return 0;
}[ Szerkesztve ]
-
amiklos
csendes tag
Sziasztok!
Segítségetekre lenne szükségem. Nincs időm megírni valamint nem is tudom hogyan kéne megírni. C-ben ez a házim: 10. Awari
Egymással szemben elhelyezkedő játékosoknak 6-6 tálkája van és 1-1 gyüjtő tálkája. A 6-6 tálka mindegyikében 3 "babszem" foglal helyet. Például:
| 3 | 3 | 3 | 3 | 3 | 3 |
0|-----------------------|0
| 3 | 3 | 3 | 3 | 3 | 3 |
A játékos kiválaszt egy tetszőleges tálkát a hatból, kézbe veszi és elkezd "vetni". Ez annyit jelent, hogy az óramutató járásával ellentétés irányban minden szomszédos tálkába belepottyant egy babot melyet a kiválasztott tálkából vettünk ki. Ha a saját tálkáinak végére ért, akkor egyet a saját gyűjtő tálkába is tesz, majd az ellenfél tálkáinál folytatja. Az ellenfél gyűjtő tálkájába soha nem kell tenni. Ha az utolsó babot a saját gyűjtő tálkánkba dobtuk, akkor még egyszer léphetünk. Minden egyéb esetben az ellenfél következik. Ha az utolsó babot egy üres tálkába tesszük – feltéve hogy az ezzel szemben lévő tálka nem üres – mindkét tálka kiüríthető és a saját gyűjtő tálkába tehető. A játék addig folyik, amíg van bab a 6-6 tálkában.A játék célja hogy több bab legyen a saját gyűjtő tálkánkban mint az ellenfélében. Implementálja ezt a játékot. A számítógép stratégiája lehet véletlenszerű, vagy ha ismeri a nyerő stratégiát akkor azt programozza le. -
Geresics
addikt
válasz amiklos #3973 üzenetére
Májkí!
Mondtam Neked! Google 3. találat! Még memóriája is van! (Vedd ki belőle, mert rögtön gyanús lenne )*MOTOROS CSATORNA* youtube.com/MotorosVandor
-
Jester01
veterán
válasz skylaner #3972 üzenetére
A megjegyzéseket azért tettem, mert a topikot kezdők is olvassák akiknek esetleg hasznos lehet.
Amúgy mi a gond a printf("%c",c)-vel?
Működni működik, csak fölöslegesen küzd szegény gép a %c formátumstring feldolgozásával és még leírni is hosszabb Egyébként gcc van annyira okos, hogy kicseréli putchar hívásra, tehát ezesetben futásidőben már nincs hátránya (azon túl, hogy esetleg meglepődsz, hová lett a printf hívás).
Jester
-
PumpkinSeed
addikt
for (i=1;i<101;i++)
{
for(j=1;j<101;j++)
{
if (a[i]>a[j])
{
csere=a[i];
a[i]=a[j];
a[j]=csere;
}
}
}Ez Buborék rendezés nem?
[ Szerkesztve ]
"Akinek elég bátorsága és türelme van ahhoz, hogy egész életében a sötétségbe nézzen, elsőként fogja meglátni benne a fény felvillanását." - Kán
-
Karma
félisten
válasz PumpkinSeed #3976 üzenetére
Nem, akkor lenne buborék rendezés, ha a szomszédos elemeket cserélgetnéd.
Ez most egy sok felesleges kört futó valami“All nothings are not equal.”
-
Karma
félisten
válasz PumpkinSeed #3978 üzenetére
Elkezdtem szerkeszteni a hozzászólást, csak közben spontán meeting lett
Van egy nagyon súlyos hiba: 1-től indexeled a tömböt, nem pedig 0-tól. Ezzel az első elem kimarad az összehasonlításokból, így hülyeség a vége.
A fordított sorrend, amit bizonyára tapasztalsz, az meg azért van, mert a belső ciklusodat nem az első elemtől, hanem i+1-től kell indítani. Enélkül amellett, hogy túl sokszor mész végig a teljes tömbön, még egyszer megfordítod az egészet...
Ha ezt javítod (0-tól kezdeni a külső, i+1-től a belső ciklust), már működő négyzetes lépésszámú (azaz lassú) rendezést kapsz.
De nem lesz ettől még buborékrendezés, mert annak a sajátossága, hogy az összehasonlítások és cserék mindig szomszédos elemek között történnek (pl. J és J+1).
Papírforma szerinti kiválasztásos rendezéssé könnyebb átalakítani, ha nem cserét végzel a belső ciklusban, csak megjegyzed a legkisebb szám indexét, és a belső ciklus után csinálsz egy cserét az i. és a minimumelem között. De annyira nem kritikus.
[ Szerkesztve ]
“All nothings are not equal.”
-
PumpkinSeed
addikt
Végre sikerült a minimumelvű. A Fésűs már gondot okoz.
"Akinek elég bátorsága és türelme van ahhoz, hogy egész életében a sötétségbe nézzen, elsőként fogja meglátni benne a fény felvillanását." - Kán
-
FehérHolló
veterán
Találkozott esetleg valaki olyan C forráskódokkal, amiket kifejezetten C fordító és preprocesszor tesztelésére lehet használni (C elcseszett szerkezeteit nagyjából lefedi) és ingyen hozzáférhető(ek)?
[ Szerkesztve ]
Skynet is real. It's called Google.
-
Retekegér
HARDVERAPRÓD
Van arra mód, hogy lebegőpontos szám esetén a felhasználó adhassa meg a program futása során, hogy hány tizedesig akarja kiírni a számot?
Pl. printf("%.5f",i); --> itt az 5-öt a program futása során kéne megadni<< Heimdal >>
-
Retekegér
HARDVERAPRÓD
válasz FehérHolló #3984 üzenetére
Köszi, úgy látszik rosszul közelítettem meg a problémát, elvileg ennél egyszerűbb megoldással kellene kiírni a végeredményt. Megpróbálkozok tömbbel...
<< Heimdal >>
-
őstag
Üdv.! Olyan valakit keresek, aki tudna egy lány ismerősömnek segíteni. Egy C program megírása lenne a feladat. Holnap, vagy holnapután küldi el nekem, de még aznap meg is kellene neki csinálni. Ha valaki ráér és nagyon ért a témához, kérem dobjon egy pü-t! Thx előre is!
“Mankind invented the atomic bomb, but no mouse would ever construct a mousetrap.” Albert Einstein
-
Ereshkigal
őstag
Sziasztok!
Viszonylag egyszerű grafikus felületet szeretnék készíteni a szimulációimhoz (c/c++, windows), lehetőleg minél kevesebb kódrészlet át-/újraírásával. Nem akarok nagyon elmerülni a témában, de szükségessé vált, hogy kicsit felhasználóbarátabban lehessen a programjaimat paraméterezni. Tanácsot szeretnék kérni, milyen toolkittel fejlesszek. Ahogy utánanéztem, nagyjából a qt, wxwidgets és a gtk+ jöhet számításba. Mindegyikről olvastam jót és rosszat is.
-
doc
nagyúr
válasz Ereshkigal #3989 üzenetére
a GTK+ totalis katasztrofa, mar maga az otlet is borzalom, de ha nem C++ hanem sima C a valasztott nyelv, akkor muszaj lesz...
a wxwidgets idejetmult, onmagaval sem kompatibilis
a Qt sok pluszt hoz be, ami tulmutat a C++-on, cserebe platformfuggetlen, atlathato, remek a doksija, tud OpenGL-t is ha kelltalan nem meglepo hogy en a Qt-t ajanlom
[ Szerkesztve ]
-
Ereshkigal
őstag
Köszi. Korábban olvastam már, mennyire szereted.
QT5-tel kapcsolatban olvastam ilyesmit, hogy a natív C++-t kezdi egyre inkább felváltani a QML, és egyesek már temetik is az egész toolkitet. (Mondjuk nem tudom, mire akarnak váltani.
Felraknám, de úgy látom, a 5-höz nincs még MinGW-s verzió. :/
A GTK+ miért gáz ennyire? (Azon túl, hogy a Windows port "kicsit" le van maradva.) -
doc
nagyúr
válasz Ereshkigal #3996 üzenetére
nem kell qt5, a 4.x tokeletes lesz
temetni nem kell, a qml az teljesen mas, a Qt tokeletes a C++ melle
a GTK-nak mar az alapotlete is borzalmasan elhibazott, a megvalositas meg csak ratesz egy lapattal, raadasul mostanra mar az egesz felulet nagyon elavult -
doc
nagyúr
válasz Ereshkigal #3998 üzenetére
a Qt-hez a legfontosabb az OOP gondolkodasmod, es nem art ha van mar tapasztalatod C++ -szal
-
Karma
félisten
GTK+-hoz is kell OOP szemlélet, és bár nem szeretem, szerintem maga az objektummodell nem olyan rossz.
Persze a kettőből a Qt-ra szavaznék én is, sok más mellett azért is, mert könnyebb megtanulni és intuitívabb; pár extern "C" és mehet is a C-ben írt banzáj.
[ Szerkesztve ]
“All nothings are not equal.”
Ú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!
- LG NanoCell 55NANO766QA Halvány píxel csík
- Philips 58PUS8545/12 1 ÉV GARANCIA Játék üzemmód
- Tyű-ha! HP EliteBook 850 G7 Fémházas Szuper Strapabíró Laptop 15,6" -65% i7-10610U 32/512 FHD HUN
- Bomba ár! HP EliteBook 840 G5 - i5-8G I 8GB I 128GB SSD I 14" FHD I HDMI I Cam I W10 I Gari!
- The Last of Us Part I Ps5