- Drámaian begyorsítja pár játék első indítását az új Arc meghajtó
- Forradalomi előrelépésként jellemzi az NVIDIA a DLSS 5-öt
- Az Acer Helios sorozata is megkapja azt a bizonyos Plust
- Ultranagy sűrűségű rackkonfigurációkba jött az NVIDIA RTX PRO kártyája
- A tajvani chipgyártóknak is beteszi a kaput a Hormuzi-szoros lezárása
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- RAM topik
- Mikrokontrollerek Arduino környezetben (programozás, építés, tippek)
- Mini-ITX
- AMD Navi Radeon™ RX 9xxx sorozat
- Home server / házi szerver építése
- TCL LCD és LED TV-k
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
Ú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!
- Crimson Desert
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- A fociról könnyedén, egy baráti társaságban
- exHWSW - Értünk mindenhez IS
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- Itt a Galaxy S26 széria: az Ultra fejlődött, a másik kettő alig
- Motoros topic
- RAM topik
- Kés topik
- További aktív témák...
- AKCIÓ! Asrock B450M R5 5600 16GB DDR4 512GB SSD GTX 1080 8GB Zalman T3 Plus ADATA 600W
- Dell XPS 13 9310 i7-1185G7 16GB 512GB 13" FHD+ 1 év garancia
- Telefon felvásárlás!! Samsung Galaxy Note 10+/Samsung Galaxy Note 20/Samsung Galaxy Note 20 Ultra
- Bomba ár! HP EliteBook 820 G3 - i5-6GEN I 16GB I 256GB SSD I 12,5" FHD I Cam I W11 I Garancia!
- BESZÁMÍTÁS! Asus EX-B365M i5 9600K 16GB DDR4 500GB SSD RX 5500 XT 8GB Zalman T3 Plus 600W
Állásajánlatok
Cég: Laptopműhely Bt.
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?


