Hirdetés
- Nagyot léphet előre az Oppo Find X10 kameraképességek tekintetében
- Geekbench eredményen a Galaxy S26 Plus grafikus ereje
- Akciófigyelő: Jelentősen olcsóbban megvehető a Honor Magic8 Pro
- Kijavították az iPhone Air legfőbb hibáját
- Tanúsítvány árulta el az Oppo Find N6 töltését, jöhet a műholdas változat is
- iPhone topik
- Fotók, videók mobillal
- Samsung Galaxy A56 - megbízható középszerűség
- Tekintélyes kamerasziget kerül az Oppo Find X9 Ultra hátuljára
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Minden a BlackBerry telefonokról és rendszerről
- Akciófigyelő: Jelentősen olcsóbban megvehető a Honor Magic8 Pro
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- Xiaomi 14 - párátlanul jó lehetne
- Android alkalmazások - szoftver kibeszélő topik
Új hozzászólás Aktív témák
-
Zsolt1
tag
Igen közben megkérdeztem más embereket is, és ők is ezt mondták, hogy a rekurzívan való megoldás is backtrack, és alap helyzetben én is erre gondoltam (hiszen itt is visszább lépkedek, csak itt a rekurzió old meg mindent majdnem).
Azért hittem azt, hogy a rekurzív nem az, mert ez egy feladat volt és az előadó kihangsúlyozta, hogy az ötöshöz backtrackel kell megoldani, viszont ha valaki rekurzívan csinálja meg, azt is elfogadja (csak az gondolom nem 5-ös, de ez lényegtelen), és ez miatt alakult ki teljes káosz bennem
A vicc az, hogy még ma is ezt mondta, szóval úgy lehetett érteni, mintha csak a ciklusos megoldás lenne backtrack, viszont ebből és az itteni kommentekből rájöttem, hogy mind a kettő az, csak az egyik így a másik úgy működik. Tanulság: amit mond az oktató, azt azért 3 helyen legalább le kell ellenőrizni, hogy tényleg úgy van-e
Szerencsére már minden működik, köszönöm a segítséget. -
Zsolt1
tag
Köszönöm a segítséget! Igen közben rájöttem, hogy én igazából nem is backtrackel csinálom, hanem szimplán rekurzióval, amire valamiért azt hittem, hogy backtrack, de közben utánaolvastam és abban ugye teljesen máshogy van a visszalépés (nem rekurzióval), nekem meg ez idáig nem tűnt fel és nálam minden visszalépéses dolgot a rekurzió csinál meg, szóval köze sincs a backtrackhez az én megoldásomnak.
Ez mondjuk elég nagy gond, mert a feladatot konkrétan backtrackel kéne megoldanom, de valószínűleg most már maradok a rekurziónál, azt legalább értem mit csinál 
-
Zsolt1
tag
válasz
EQMontoya
#5314
üzenetére
Igen ezt már próbáltam, hogy minden lépésnél ugye 1 elemet módosítok (jelölöm a bejárt utat) és azt elmentem egy tmp-be még a fv hívása előtt és a fv hívás után visszaírom azt az egyet, viszont nálam valamiért nem volt jó így, mert ez után a visszaírás helyett csak feltöltötte 2-esekkel (azzal jelölöm a bejárt utat) az egész labirintust.
Azért még próbálkozok
Köszönöm az eddigi segítséget! 
-
Zsolt1
tag
válasz
EQMontoya
#5310
üzenetére
Igen a végén írtam ezt én is, hogy ez az egyik tippem, hogy miért módosul, de akkor van valami egyszerűbb módszer, amivel ki lehet azt küszöbölni, hogy megváltozzon (esetleg másféle átadás, stb...)? Szerintem az lenne a megoldás, ha az egész tömböt eltárolnám egy másolatban, csak ugye nagyon sokszor kéne a rekurzió miatt másolgatni a tömböt ide-oda és nem hiszem hogy túl optimális lenne. (szerk.: na most jól leírtam még egyszer, ami a válaszban volt) Gondolkodtam azon is, hogy csak azokat az elemeket másolgatom, amik a rekurzió alatt megváltoznak, de az valamiért nem működött.
(#5312) EQMontoya
Labirintusban útkeresés backtrack algoritmussal. Azért módosítom, mert ahogy halad befele, úgy mindig beleírom a már bejárt utat és a rekurzióból visszafele meg további lehetséges utakat keresek, mert az összes lehetségeset meg kell találnia. És itt kéne, hogy a backtrack miatti visszaugrásnál eltünjön a módosítás és visszakapjam a rekurzió előtti tömböt. Az nem okoz gondot, hogy ott nincs megjelölve, hogy jártam (sőt a másik irányból érkező utak miatt pont ezért kéne ez), mert az if szerkezet miatt ugyan azt az útvonalat többet már nem vizsgálja meg. -
Zsolt1
tag
Sziasztok!
Egy olyan kérdésem lenne, hogy egy rekurzív függvény hívásnál, ahol a függvény paramétere egy tömb, ott miért módosul az eredeti tömb a rekurzióból visszatérés után? Elvileg úgy lenne logikus, hogy mivel azt a tömböt csak paraméterként átadom a függvénynek rekurzív hívásnál és az ott abban a fv-ben az újonnan létrehozok egy tömböt, akkor csak odafelé adom át az értékeket, visszafele nincs módosítás, és miután lefutott a rekurzív fv., akkor a felső szinten nem változik meg a tömb tartalma. Azért nem értem a dolgot, mert pont e-miatt kell ugye változó helyett pointert használnom, ha meg akarom tartani az értéket a rekurzióból visszatérés után is.
Ez most szerintem kicsit össze-vissza lett ezért írok inkább egy példát, hogy mire gondoltam:
void rekurzivfv(int tomb[][M]) { //definiálom a fv-t és megadom paraméternek a tömböt
...függvényen belüli műveletek amik módosítják a tömb tartalmát....
rekurzivfv(tomb); //meghívom a fv-t, ami megkapja a tömböt
...itt már a tömb elemeinek értéke módosult, ahhoz képest, ami a függvény elején volt, arra
amire a rekurzió alatt változott pedig elvileg nem szabadna, mert a rekurzív fv-nél a fv újra
létrehozza a tömböt és miután a végigfutott, az innen már nem lehetne elérhető, mert
semmilyen formában nem adtam vissza...
}
Az jutott az eszembe még, hogy a teljes tömb átadásakor ott igazából tömb elejére mutató címet adom csak át (ha jól tudom), szóval olyan mintha az egy pointer lenne elvileg. Lehet, hogy az miatt módosul?
Meg lehet valahogy azt oldani, hogy ne módosuljon a rekurzív meghívás alatt az alap függvényben a tömb? Előre is köszönöm a segítséget!
-
Zsolt1
tag
Sziasztok!
Egy kis segítséget szeretnék kérni kétdimenziós tömb átadása függvénynek témakörben. Gyakorlaton sajnos csak 1 dimenziós tömbbel csináltuk és sajnos úgy nem működik.Az egydimenziósnál:
void beolv(int*); //main() fv. előtt
beolv(tomb); //main() fv.-ben: tömb átadása a beolv fv.-nek
void beolv(int *t) {... //main() fv. utáni kifejtésA kétdimenziósnál (ami nem működik):
void ujadat(int*,char*,char*); //három tömböt adok majd át neki, 1 db egydimenziósat és 2 db kétdimenziósat
ujadat(azontomb,tipus,rendszam);
void ujadat(int *tomb, char *chartomb1, char *chartomb2) {...A codeblocks eltérő típusú pointerekre panaszkodik és gondolom is, hogy miért, mert kétdim. tömbnél a tomb és a tomb[] nem ugyan arra a címre mutat csak nem tudom, hogy hogy kéne megoldani azt, hogy az összesnél jó legyen az átadás.
Találtam egy ilyet: [link] és egy ilyet is:[link] ezek alapján így néz ki a kétdimenziósnál a 3. sor:
void ujadat(int *tomb, char chartomb1[][HOSSZ], char chartomb2[][HOSSZ2]) {...
Ezzel már sokkal kevesebb hibát dob a CB, de még így is eltérő típusú pointereket ír.Ha valaki tudna benne segíteni azt nagyon megköszönném, mert elég sok helyen megnéztem már és szinte sehol sem írnak ezzel kapcsolatban semmit, illetve ha írnak is, akkor sem működik.

-
Zsolt1
tag
Sziasztok!
Egy feladathoz muszáj lenne használnom a magyar ékezetes betűket. Sajnos fordításkor már jelzi is a CodeBlocks, hogy a karakterkódolással baj van és utána futtatáskor is rosszul jelennek meg a betűk. Többféle módszerrel próbálkoztam már:
1. #include <local.h> + setlocal(LC_ALL,""); - Ez egy darabig működött is, de amikor következőre megnyitottam CodeBlocks-al akkor már nem volt jó.
2. Olvastam, hogy át kell állítani a kódlapot 852-re - system("CHCP 852") - de ez sem jó, mivel ez rendesen kiírja, hogy "Az aktív kódlap: 852", de utána ugyan úgy rosszul kezeli az ékezetes karaktereket.
CodeBlocks-ban Windows-1250 van beállítva karakterkódolásnak, de próbáltam már UTF-8-al is(Nem tudom miért hittem benne, hogy segítene, de gondoltam megpróbálom
). A kérdés lényege az lenne tehát, hogy milyen módszer van arra, hogy fordításkor és futtatáskor is rendesen kezelje a CodeBlocks az ékezetes karaktereket? -
Zsolt1
tag
válasz
skoda12
#4005
üzenetére
1. szám: 101101, 2. szám: 110110. A művelet végrehajtása után 011011-et kapok. Ha megcsinálom ezt a műveletet az eredménnyel + az 1. számmal, akkor visszakapom a 2. számot.
Akkor ezek szerint, a feladatban az 1. szám a begépelt szöveg, a 2. szám a hexadecimális szám, az eredmény pedig a titkosított szöveg, vagyis a mivel a memóriában a szöveget és a hexadecimális számot(mindent) is 2-es számrendszerben tárolja, ezért amikor végigmegyünk a XOR-al, akkor a két értéket a 2-es számrendszerben hasonlítjuk össze és a visszakapott eredményt(2-es számrendszerbeli számot) újból szövegként írjuk ki?
-
Zsolt1
tag
Sziasztok!
Egy könyvben talált példa értelmezésében kérnék segítséget:
#include <stdio.h>
#include <stdlib.h>
#define KULCS 0xE7
int main()
{
char s[80], *p;
int i;
printf("Kerek egy szoveget:");
fgets(s,80,stdin);
for(i=0;s[i];i++)
{
s[i]^=KULCS; /*Titkosítás*/
}
printf("A titkositott szoveg:\n %s\n",s);
p=s;
while(*p)
{
*p++^=KULCS; /*Visszaállítás*/
}
printf("Az eredeti szoveg:\n%s\n",s);
return 0;
}A példából csak azt a részt nem értem, amikor kizáró vagy segítségével titkosítva lesz a szöveg. Azt tudom, hogy mit jelent a kizáró vagy(csak az egyik feltétel teljesülésénél lesz igaz), viszont nem értem, hogy hogyan lehet titkosítani egy hexadecimális szám + kizáró vagy segítségével. (A feladat a pointereket és sztringeket akarja magyarázni, azért van két különböző ciklus használva.)
Új hozzászólás Aktív témák
Hirdetés
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Újszerű Lenovo 15,6"FullHD,10.gen.Core i5(8x3,6Ghz)Intel UHD VGA,8-40GB/256-512SSD,jó akku
- Gamer PC-Számítógép! Csere-Beszámítás! R7 5700 / RTX 2080Ti 11GB / 16GB DDR4 / 1TB SSD!
- Xiaomi 12 256GB, Kártyafüggetlen, 1 Év Garanciával
- iPad Air M1 64GB WiFi - kék 1 év garancia
- Új, modolt billentyűzet eladó knobbal, kijelzővel + választható Magyar(PBT) kupakkal és kapcsolókkal
- HIBÁTLAN iPhone 13 Pro 256GB Sierra Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS3022
- Bomba ár! HP ProBook 430 G6 - i5-8265U I 8GB I 128SSD I HDMI I 13,3" FHD I Cam I W10 I Gari!
- Apple iPhone 14 / 128GB / Kártyafüggetlen / 12HÓ Garancia / Akku: 85%
- Thermalright Aqua Elite 360 V3
- Dell Latitude 3510 15,6", i5 10210U, 8-16GB RAM, SSD, jó akku, számla, garancia
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest

Szerencsére már minden működik, köszönöm a segítséget.
Köszönöm az eddigi segítséget! 

.
). A kérdés lényege az lenne tehát, hogy milyen módszer van arra, hogy fordításkor és futtatáskor is rendesen kezelje a CodeBlocks az ékezetes karaktereket?



