-
GAMEPOD.hu
Új hozzászólás Aktív témák
-
khalox
őstag
Az időzítő olvassa a billentyűzetet is és szükség szerint cselekszik. (Összetettebb lesz, mert a mozgatás mellett azt is kezelnie kell, hogy merre mozogjon az ütő.)
(Ha nem volt billentyűlenyomás, akkor 'csak' a labdát kell mozgatni, ha volt, akkor a platformot is...)
[Szerkesztve] -
VladimirR
nagyúr
delay nem jo, mert kozben nem tudod lekezelni a billentyuzetet, csak a vegen nezi meg a buffert, es akkor minden egyszerre lesz ertelmezve (vagy hasonlo)
ha ciklussal csinalod, akkor csinald valahogy igy:
repeat
repeat
mozgatas;
until keypressed;
billentyuleutes ellenorzese es platform mozgatasa
until az elozo billenytuzet #27; (esc)
igy a belso ciklusbol ha kilep egy billenytuleutes miatt, akkor mozgatod a platformot, majd visszamesz a labda mozgatasahoz
ha azonban esc-et utsz, az egeszbol kilep
delay helyett inkabb hasznalj mondjuk sajat idozitot (gettime es mented az idot, majd ujabb gettime-nal; ellenorzod, mennyi telt el), vagy hasznalj ures ciklusokat (pl i=1-100000), de ez utobbi sebessege fugg a geptol -
Gabesss
tag
Csá!!
Olyan progi kellene Delphi-be, hogy
1-n-ig írassuk ki a számokat de csak a négyzetszámokat!!!!!!!!!!!!!!!!!!!!!
Tud valaki ilyet írni? -
-
-
Orc
senior tag
Egy olyan sriptet kellene csinálnom, ami megmondja, hogy az előzőleg megadott dátum (pl: 2004.02.01) milyen konkrét napra esik (pl: kedd). Tudna nekem ebben valaki segíteni?
Kinyomom a szemed, eltöröm a lábad... aztán mehetsz amerre látsz!
-
Orc
senior tag
UP!
Kinyomom a szemed, eltöröm a lábad... aztán mehetsz amerre látsz!
-
Cler
csendes tag
Valaki megtudná mondani, hogy hogyn használhatnám a turbo pascal 7.0-t windows xp alatt. Mert mindig a 16-bittel jön
-
Cler
csendes tag
Próbáltam de nem megy. Ugyanezt írja ki:ab rendszerfájl nem megfelelő a futó MS-DOS és windows alkalmazásokhoz. Windows\system32\autoexec.nt. Az a furcsa hogy régebben elindult. A 32 bites free pascal az meg megy.
-
Fejv@dászLány
csendes tag
Sziasztok!
Tudna segíteni vki abban, hogy hogyan tudok gépi kódból a forráskódra rájönni? Van egy file,a softveren belül, amit szeretnék módisítani. Gondolom valami complier kéne, csak még azt sem tom, miben lett írva.
Köszike
[Szerkesztve]Nem minden munkaerő-közvetítő fejvadász és nem is minden fejvadász munkaerő-közvetítő...
-
becso13
aktív tag
válasz Fejv@dászLány #328 üzenetére
Én úgy tudom, hogy gépi kódot csak assemblyre lehet visszafejteni.
[Szerkesztve] -
Miracle
senior tag
válasz Fejv@dászLány #330 üzenetére
nézd meg ezt: Bővebben: link
Ha módosítani kell a szöveget, és a módosított szöveg nem olyan hosszú, mint az eredeti az problémákat vet fel(a fileon belüli címek megváltoznak), elképzelhető, hogy a módosítás után nem fog rendesen működni . Bár nem ismerem ezt a programot, nem használtam, csak olyannak tűnik, ami neked jó, elképzelhető, hogy erre is figyel, de nem hiszem.értelmező késziszótár :: rekurzió --> lásd : rekurzió
-
Cathfaern
nagyúr
int value = (rand() * 11) / (RAND_MAX + 1);
Így egy 1 és 10 közötti véletlenszám tárolódik a value változóban.
Valaki ezt kicsit el tudná nekem magyarázni? Amit nem értek:miért kell a rand() fgv-t 11-el megszorozni? Hogy tudnám elérni azt hogy egy felső határt adjak meg a generálásnak? (azaz, hogy egy adott számnál ne generáljon nagyobbat) -
Cathfaern
nagyúr
válasz VladimirR #334 üzenetére
Kösz.
Másik probléma:
Van egy adott szám és egy adott intervallum. Azt kéne meghatározni, hogy legoptimálisabb esetben hány próbálkozásból lehet ezt a számot biztosan kitalálni. Az elvet tudom: vesszük az intervallumot, elfelezzük. Utána megnézzük, hogy melyik fél intervallumban van a szám. Aztán azt továbbfelezem, majd megint megnézem hol van...stb. De akárhogy próbálkozok, ezt nem tudom lekódolni Már ott elakadok, hogy a mit adjak meg feltételnek, hogy meddig menjen a ciklus
(tudom, ez nagyon alap dolog, de még csak most kezdtem programozni) -
VladimirR
nagyúr
válasz Cathfaern #335 üzenetére
tehat a ciklus az szvsz hatultesztelo legyen es azt nezze, hogy intervallum alfo, vagy felso korlatja egybeesik-e a szammal
van ugye az intervallumod, amit a ket ''korlatja'' hataroz meg, ha egyik sem esik egybe a szammal, akkor ellenorzod, hogy a max+min/2 az nagyobb, vagy kisebb, mint a szam, s ennek megfeleloen a max, vagy min erteket (az intervallum szele) egyenlove teszed a max+min/2-vel - igy egyre kisebb lesz az intervallum, mig el nem talalod a szamot
es azt hiszem, hogy kettesalapu logaritmus(intervallum hossza) lepesben allapithato meg a szam, de ebben nem vagyok 100%-ig biztos
remelem ki tudsz hamozni valamit abbol, amit ''irtam'' -
corm
senior tag
Ezt az algoritmust Logaritmikus (bináris) keresésnek hívják. Művelet igénye pedig ahogy VladimirR is mondta: log2n
[Szerkesztve]Y N W A
-
Miracle
senior tag
válasz Cathfaern #338 üzenetére
de ne ne ne!
ne hagyd magad meghülyíteni!
neked nem kell logaritmust számotatni, arra semmi szükséged nincs , csak a progmatos(/műinfós? nem hiszem) kollégákból előtört az algoritmusok műveletigényéről tanult anyag , ami (hacsak nem írsz powerappot) annyira nem fontos. A kódoláshoz meg semmi közeértelmező késziszótár :: rekurzió --> lásd : rekurzió
-
VladimirR
nagyúr
''Azt kéne meghatározni, hogy legoptimálisabb esetben hány próbálkozásból lehet ezt a számot biztosan kitalálni'' - irta Cathfaern kicsit fentebb
egyebkent ha megnezed, akkor lathatod, hogy ami algoritmust javasoltam, annak koze nem volt a logaritmushoz, a log2n-t csak a kerdesre valaszolva irtam
(es tenyleg progmat ) -
faster
nagyúr
válasz Cathfaern #344 üzenetére
Bináris kereséshez nem kell logaritmust számolni, mert azt úgy számolod, hogy az intervallumot felezve közelíted az eredményt, és ehhez max. log2n lépésre van szükséged, de ezt nem kell előre kiszámolni. Te csak szépen közelítesz az eredményhez, majd hopp, megvan. Egyébként úgy, ahogy VladimirR leírta 336-ban:
''van ugye az intervallumod, amit a ket ''korlatja'' hataroz meg, ha egyik sem esik egybe a szammal, akkor ellenorzod, hogy a max+min/2 az nagyobb, vagy kisebb, mint a szam, s ennek megfeleloen a max, vagy min erteket (az intervallum szele) egyenlove teszed a max+min/2-vel - igy egyre kisebb lesz az intervallum, mig el nem talalod a szamot''
[Szerkesztve] -
VladimirR
nagyúr
válasz Cathfaern #344 üzenetére
math.h
egyebkent nem zavar be, igaza van - ha nincs kulon benne a feladatban, hogy szamold ki a lepesek szamat, akkor nincs ra szukseged
egyebkent az ilyen feladatokat a legkonnyebb programozni, hisz az algoritmus ott van elotted (irtad, hogy ''az elvet tudod'' - na ez nem csak az elv, ez maga az algoritmus)
egyebkent miben programozol? (ha jol remlik, akkor te linuxot nyuzols, szoval gondolom valami egyszeru szovegszerkeszto es parancssoros fordito) -csak azert mert pl a borland dos-os ''fejlesztokornyezeteinek'' (bp, bc) igen jo a sugoja, csak ajanlani tudom -
Cathfaern
nagyúr
válasz VladimirR #346 üzenetére
Na most elvileg nekem elég maga a szám, hogy hány lépésből lehet kitalálni.
De úgy döntöttem elszórakozok az egész megírásával, gyakorlásnak nem rossz.
lenne is egy kis gond (csodálkoztam volna is, ha működne rendesen): ezzel mi a gondja?
if (also_korlat+felso_korlat)/2) < szam
also_korlat = (also_korlat+felso_korlat)/2);
else felso_korlat = (also_korlat+felso_korlat)/2;
(ezt írja ki:
error C2143: syntax error : missing ';' before '/'
error C2059: syntax error : ')'
error C2059: syntax error : ')'
error C2181: illegal else without matching if
)
Egyébként MS Visual C++-ban programozok, hogy őszinte legyek a linuxos (szövegszerkesztő + fordító) messze jobban tetszik, de mivel MSVC-ben oktatják, úgy gondoltam kitanulom a f@szságait, hogy ne legyen ebből gond. -
Miracle
senior tag
válasz Cathfaern #344 üzenetére
sorry.
mondjuk így néz ki amit akarsz:
int a[1..100]; /* ebbe a tömbbe eltárolod a számokat, amikben keresni akarsz, persze _növekvő_ sorrendben.*/
struct nincs_meg{};
ekkor a függvény(a pontos a sorok elején csak a tabulálás miatt vannak ott):
int logker(const int[] t, const int b, const int e, const int what)
{
. int temp = (b+e) /2;
. if (t[temp] > what)
. {
. return logker(v, b, temp, what);
. }
. else
. {
. if (v[temp] == what) return temp;
. if (b = e) throw(nincs_meg);
. return logker(v, temp, e, what);
. }
}
ez egy rekurzív megvalósítás, nem garantálom, hogy műxik, nem fordítottam le, de szerintem működni fog. vedd észre, hogy hiába statikus az a tömb mérete, ezt a függvény nem használja ki, bármekkora tömböt átadhatsz neki, csak a 2. és a 3. változó 0, illetve tömbméret-1 legyen. megvalósítható templatekkel is, de nem szeretném bonyolítani. így tudod használni
try
{
logker(a,0,99,40) //a fenti a tömbben keressük a 40 értéket
}
catch(nincs_meg){std :: cout << ''nincs ilyen értékű elem a tömbben\n'';}
remélem érthető(és működik)
a műveletigény azt jelenti, hogy ezzel az algoritmussal ha n hosszú a tömb, akkor legrosszab esetben log_2(n) felső-egész-rész lépésben megtalálod a keresett számot, log2n pedig az a szám, mire 2őt emelve n-et kapunk, így tudod kiszámolni számológéppel: log_2(n) = lg(n) / lg(2) (itt lg tetszőleges logaritmus, amit találsz a számológépeden) megjegyzem, hogy az átlagos műveletigény azt feltételezve, hogy a keresett száém megtalálásának valószínűsége minden rekeszben 1/n log_2(n) felső-egészrész -1
és bocs hogy összezavartalak, remélem kiengeszteltelek..értelmező késziszótár :: rekurzió --> lásd : rekurzió
-
faster
nagyúr
válasz Cathfaern #347 üzenetére
Mintha a zárójelek nem stimmelnének
if (((also_korlat+felso_korlat)/2) < szam)
also_korlat = (also_korlat+felso_korlat)/2;
else felso_korlat = (also_korlat+felso_korlat)/2;
MSVC-vel nincs gond, később, ha már jobban érted a C, c++-t, és a fordítót, ráérsz kipróbálni mondjuk egy DevC-t. -
VladimirR
nagyúr
válasz Cathfaern #347 üzenetére
zarojelezessel vannak gondok (most ezt lehet eltulzom, de en inkabb mindenhova zarojelet rakok mar) - ami biztos rossz, hogy mindket ertekadasodnal egy nyito es ket zaro zarojel szerepel
if ( ( ( also_korlat + felso_korlat ) / 2 ) < szam ) {
also_korlat = ( ( also_korlat + felso_korlat ) / 2 );
} else {
felso_korlat = ( ( also_korlat + felso_korlat ) / 2;
}
szerk.: faster: ez a sebesseg olyok mar idegesito
[Szerkesztve]
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!