- gban: Ingyen kellene, de tegnapra
- sziku69: Fűzzük össze a szavakat :)
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- sellerbuyer: Milyen laptopot vegyek? Segítek: semmilyet!
- Magga: PLEX: multimédia az egész lakásban
- btz: Internet fejlesztés országosan!
- Argos: Az vagy, amit megeszel
- Luck Dragon: Asszociációs játék. :)
- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
- eBay-es kütyük kis pénzért
Új hozzászólás Aktív témák
-
válasz
jattila48 #6347 üzenetére
Úgy maradhat benne, hogy ahhoz, pl hogy egy eljárásban keletkező átmeneti változót visszaadjon (mert pár év után valaki rájött, hogy az is milyen jól jöhet máshol), változtatni kell az eljárás szignatúráját, ami viszont a kód más részeiben igényel újraírást. Ezt megspórolandó az új kód inkább turkál a (memória-) szemétben. Time is money.
-
-
válasz
pmonitor #6219 üzenetére
Ott mondjuk pont meg lehetne egyszerűen, bár szerintem ez a felírás egyértelműbb, mint ha a sswitch egy negált feltételben volna (egyébként szerintem amúgy is pont erre az alakra fogja fordítani a fordító). De "optimalizáld" ki lsz a 2921. sorban kezdődő switch-ből a goto-t, hogy ne nézzen ki nagyon csúnyán...
Ezek (mind a 300 sorban), mind később a switchben szemantikailag pont jól néznek ki:
ha (feltétel) ugorj a labelre
És amúgy itt sem látsz olyat, hogy a goto "összevissza" ugrálna, csak előrefelé. -
válasz
pmonitor #6206 üzenetére
Mondjuk ha folyamatosan Pascal példát hozol, akkor én meg azt mondom, hogy Try/Catch hiányában nem lehet (értelmesen) error handlinget csinálni Visual Basic 6 (és VBA / VBS-ben) Goto nélkül: [link]
Most akkor egy platformon vagyunk, hogy tökre irreleváns magasszintű nyelvekben alkalmazott Goto megoldásokról vitatkozunk a C topikban?
-
válasz
pmonitor #6204 üzenetére
Mondjuk ha pont erre van szükséged, akkor a break-kel is ezt csináljuk:
int f = 1;
while (f) {
// utasítások
for (int i=k; i>l; i+=m) {
//még utasítások
if (feltétel) {
f = 0;
break;
}
}
Technikailag pont ugyanazt csinálja (és szerintem amúgy goto-val jobban is néz ki, mint ez a megerőszakolt while 1 ciklus...) -
válasz
pmonitor #6197 üzenetére
Igazából azt sem tudom min vitatkozol...
Csak annyit írtam (viccesen), hogy ha a continue-t tiltják, akkor miért nem tiltják a break-et is... amúgy implementálva mind-mind goto (ráadásul az is előrefelé, nem hátra - pl for (int i=k; i>l; i+=m).// értékadás
int ix = k;
:loop_start
//kilépési feltétel
if n>l goto outside_of_loop;
/*
utasítások
*/
// continue
if condition_continue goto loop_increment;
/*
még utasítások
*/
// break
if condition_break goto outside_of_loop;
/*
még utasítások
*/
:loop_increment
i += m;
goto loop_start;
:outside_of_loop -
válasz
Domonkos #6009 üzenetére
Nem, mivel 100/j UB, amennyiben nincs ellenőrizve, hogy a j egyenlő-e 0-val.
Tehát, ha az if-et kioptimalizálná, akkor az egész függvényt ki kell, mert a 100/j UB...Szerintem a fordító inkább "beoptimalizál" egy if j !=0-t a kódba, ha nincs ott, hogy ne legyen HW interrupt, csak szoftveres.
-
válasz
ub19student #5945 üzenetére
Vagy futtasd az exe-t parancssorból.
-
ezek csak pszeudo-függvények: inputa és inputb-vel töltöd fel az a és b változók értékeit...
Viszont ha csak kiértekeléskor kéri be az értékeket, akkor:
while(1) {
if (fv(inputa())) break;
fb = fv(inputb());
if (fb == 0 || fb == 2) break;
}Így a b-t be sem kéri, ha az első input hatására kilépett az első függvénynél.
-
Asszem valahogy így (remélem jól értettem az ábrát):
while(1) {
a = inputa();
b = inputb();
if (fv(a)) break;
fb = fv(b);
if (fb == 0 || fb == 2) break;
}Vagy az értékeket csak egyszer kéri be? De akkor ha fv(a) == 0 és fv(b) = 1 akkor végtelen ciklus lesz...
Vagy egymás eredményét használják fel?
a = input >> b = fv(a) >> a = fv(b)? -
-
válasz
PumpkinSeed #3693 üzenetére
Gondolom, mert nem tudja hibátlanul megírni
-
válasz
PumpkinSeed #3671 üzenetére
Ja és a kolléga időben kijavított, mielőtt rögzült volna
-
válasz
PumpkinSeed #3660 üzenetére
if(ev % 400 == 0){
/* szökőév */
}
else if(ev % 100 == 0){
/* nem szökőév */
}
else if(ev % 4 == 0){
/* szökőév */
}
else
/* nem szökőév */
} -
válasz
WonderCSabo #3509 üzenetére
dupla
(nem is akarok mentségeket keresni) -
válasz
PumpkinSeed #3506 üzenetére
Itt leírtam, mit kell csinálnod.
D = B * B - 4 * A * C;
if (D > 0) {
M1 = (-1 * B - sqrt(D)) / (2 * A);
M2 = (-1 * B + sqrt(D)) / (2 * A);
}
else if if (D == 0) {
M1 = (-1 * B) / (2 * A);
}
else { // kizárásos alapon (D < 0)
// Nincs megoldás
}Ja és célszű a determinánst nem lebegőpontos számokkal számolni, hanem egészekkel, mert különben a determináns számításban a kivonás okozhat 0-hoz közeli számot (kerekítési hiba miatt).
-
válasz
PumpkinSeed #3503 üzenetére
Pfff (nem mintha nem reagáltam volna, nekem úgy tűnt te nem válaszoltál a kérdésemre).
De legyek kicsit konkrétabb:
0) Csak valós vagy immaginárius gyököket is szeretnél?
1) Matematikailag le tudod írni a megoldóképletet?
2) C szintaktika megy?
3) Alapvető függvények (alapműveletek, sqrt) megvannak?
4) Feltételes szerkezetet tudsz készíteni C-ben?Ezek közül melyik pontnál akadtál el?
-
válasz
bandi0000 #3499 üzenetére
És érted is?
Vazz, csak most látom, hogy beleszkerkesztettem a kód végébe (return elé) a kommentet...
És még egy plusz komment (tévedés az eredeti kommentben): nem 16384 a max, a 65535-ig menő számokon működik helyesen a kód (az annál nagyobb számokon az 15. feletti biteket nem írja ki)
1111 | 1111 | 1111 | 1111 = 65 535 -
válasz
bandi0000 #3494 üzenetére
12-nél a 1100 helyes (1*8+1*4+0*2+0*1)
Vagy fordítva rakod be a tömbbe (végétől kezdve és a végére teszel egy '\0'-t (string vége karakter C-ben) és onnan iroatod ki ahova visszafele eljutottál (ezt csinálja az én példám). Vagy feltöltöd a tömböt rendesen és kiiratáskor címezed meg a végétől és egy csökkenő ciklusban egyesével kiírod a számokat (de ugye csak annyit, amennyit beleraktál).
Harmadik megoldás - valahogy így (fordító és ellenőrzés nélkül):
bitmaszk és bitshift
char* binaryConv(int szam){
char* binary = "0000|0000|0000|0000";
int bitmask = 0x4000; //16 384
int counter = 0;
while (bitmask > 0){
if (szam & bitmask) binary[counter] = '1'; // ha az adott bit 1, akkor a stringbe is azt helyettesítjük
counter++;
if (counter%4 == 0) counter++; //átléptetni az elválaszókat
bitmask = bitmask >> 1; //bitmaszkot eggyel jobbra tolni
}1) Csak 4 jegyű számokig működik (azaz pontosabban 16384-ig)
2) Amit visszaad ki lehet irattatni printf-fel...
return binary;
} -
válasz
bandi0000 #3449 üzenetére
Nálam is >= a >
pszeudo:while (num>0){
if num >=900 { s+="CM"; num -=900;}
else if num >=500 { s+="D"; num -=500;}
else if num >= 400 { s+="CD"; num -=400;}
else if num >= 100 { s+="C"; num -=100;}
else if num >= 90 { s+="XC"; num -=90;}
else if num >= 50 { s+="L"; num -=50;}
else if num >= 40 { s+="XL"; num -=40;}
else if num >= 10 { s+="X"; num -=10;}
else if num >= 9 { s+="IX"; num -=9;}
else if num >=5 { s+="V"; num -=5;}
else if num >=4 { s+="IX"; num -=4;}
else if num >=1 { s+="I"; num -=1;}
} -
válasz
PumpkinSeed #3440 üzenetére
Az nem ciklus. A ciklus az amikor egy adott műveletsorozatot többször (több ciklusban) végrehajtasz. Amúgy miért kellene 0-nál nagyobbnak lennie?
egy -4x^2 + 3x - 19 teljesen értelmes másodfokú egyenlet... -
válasz
PumpkinSeed #3438 üzenetére
Mármint mire kell a ciklus?
if D > 0 { két valós gyök }
else if D = 0 { egy valós gyök }
else { két komplex gyök } -
válasz
PumpkinSeed #3430 üzenetére
A myFunction a függvény neve (lehetne akár legnagyobbKozosOszto is)...
-
válasz
PumpkinSeed #3404 üzenetére
TerminateProcess WINAPI a barátod.
Ú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!
- iPhone topik
- Bemutatta saját SSD-jét a Raspberry Pi
- Képregény topik
- Kerékpárosok, bringások ide!
- OLED TV topic
- Yettel topik
- Futás, futópályák
- gban: Ingyen kellene, de tegnapra
- A magas vérnyomást is felismerheti az Apple Watch Series 11
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- További aktív témák...
- Logitech PRO X TKL (Rose) Vadi új, bontatlan, számlával - garanciával
- Apple AirPods Pro 3 - bontatlan, új - 1 év Apple garancia
- iPhone 17 - összes tárhely és szín bontatlan, független - 1év Apple garancia - Szept 20
- iPhone 17 Air - összes tárhely és szín bontatlan, független - 1év Apple garancia - Szept 20.
- iPhone 17 Pro - összes tárhely és szín bontatlan, független - 1év Apple garancia - Szept 20
- Targus Universal USB 3.0 DV1K-2K Compact docking station (DisplayLink)
- Telefon felvásárlás!! Xiaomi Redmi Note 13, Xiaomi Redmi Note 13 Pro, Xiaomi Redmi Note 13 Pro+
- Kaspersky, BitDefender, Avast és egyéb vírusírtó licencek a legolcsóbban, egyenesen a gyártóktól!
- ÁRGARANCIA!Épített KomPhone i5 14400F 16/32/64GB RAM RX 9060 XT 16GB GAMER PC termékbeszámítással
- Bezámítás! Gigabyte G5 KC Gamer notebook - i5 10500H 16GB DDR4 512GB SSD RTX 3060 6GB WIN10
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest