Hirdetés

2024. április 25., csütörtök

Gyorskeresés

Útvonal

Fórumok  »  Szoftverfejlesztés  »  Programozás topic (kiemelt téma)

Téma összefoglaló

Téma összefoglaló

  • Utoljára frissítve: 2023-12-13 06:18:28

LOGOUT.hu

Összefoglaló kinyitása ▼

Hozzászólások

(#301) khalox válasza Drizzt (#300) üzenetére


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]

(#302) VladimirR válasza Drizzt (#300) üzenetére


VladimirR
nagyúr

c: berakod egy repeat until ciklusba a mzgast, gombnyomasra kilepsz a ciklusbol
visual c: pl. ontimer esemeny

(#303) Drizzt válasza VladimirR (#302) üzenetére


Drizzt
nagyúr

És utána újrakezdem? A pitsába! Ennyire hüjje lennék? :o

Pl: pascalban csak a delayyel figuráztam, de ennyire egyszerű dologra hogy nem jöttem rá?!? :O

[Szerkesztve]

I am having fun staying poor.

(#304) VladimirR válasza Drizzt (#303) üzenetére


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

(#305) Gabesss


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?

(#306) heihachi válasza Gabesss (#305) üzenetére


heihachi
addikt

Ne viccelj, ilyet Te is tudsz írni! De ha estig ráér Én megírom Neked.

"Lehet a Shift 2 már realisztikusabb mint a valóság" by NOD

(#307) heihachi válasza heihachi (#306) üzenetére


heihachi
addikt

Elég szar, de megy:

program Project2;

{$APPTYPE CONSOLE}

uses
SysUtils;

const
n = 10;

var
j : integer;

begin
for j := 1 to n do begin
if sqrt(j)-round(sqrt(j))=0 then writeln(j);
end;
readln;
end.

"Lehet a Shift 2 már realisztikusabb mint a valóság" by NOD

(#308) VladimirR válasza heihachi (#307) üzenetére


VladimirR
nagyúr

tulbonyolitod


begin
j:=round(sqrt(n));
for i:=1 to n do
writeln(i*i);
end.


deklaraciot meg ilyeneket nem irtam, de szvsz ez igy szebb

(#309) lao ce válasza VladimirR (#308) üzenetére


lao ce
aktív tag

nem azert mondom de ez hibas szerintem.
trunc-ot kell hasznalni nem round-ot.

nicht kompot

(#310) Szsolt válasza heihachi (#307) üzenetére


Szsolt
tag

Hogy sikerült a Zh-d? :)

(#311) Szsolt válasza VladimirR (#308) üzenetére


Szsolt
tag

? Ez így biztos jó?? :Y

(#312) heihachi válasza Szsolt (#310) üzenetére


heihachi
addikt

:( Hát nem sok jót tudok mondani. zsűlölök papíron programozni, a villamosságtan messze áll a lelkivilágomtól a matekhoz meg hülye vagyok (ezen a szinten). És akkor még van egy közgáz... :O

"Lehet a Shift 2 már realisztikusabb mint a valóság" by NOD

(#313) heihachi válasza Szsolt (#311) üzenetére


heihachi
addikt

Jó, csak a for ciklusban n helyett j kell szvsz (+trunc).

"Lehet a Shift 2 már realisztikusabb mint a valóság" by NOD

(#314) Szsolt válasza heihachi (#312) üzenetére


Szsolt
tag

Ne aggódj, másfele is papiruszon nyomják a ciklusokat :D
Szépen összeválogattad akkor a dolgokat, és ezt mind egyszerre nyomod?...egézségedre :)


[Szerkesztve]

(#315) Orc


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!

(#316) Orc válasza Orc (#315) üzenetére


Orc
senior tag

Up! Este 5-re kell.

Kinyomom a szemed, eltöröm a lábad... aztán mehetsz amerre látsz!

(#317) Orc válasza Orc (#315) üzenetére


Orc
senior tag

Unix script kellene.

Kinyomom a szemed, eltöröm a lábad... aztán mehetsz amerre látsz!

(#318) Orc


Orc
senior tag

UP!

Kinyomom a szemed, eltöröm a lábad... aztán mehetsz amerre látsz!

(#319) nagyis válasza Orc (#318) üzenetére


nagyis
tag

Ha meg ez kell,akkor
date 0201020204 | cut -f1 -d'' ''

02: honap
01: nap
02: ora
02: perc
04: ev

Udv
Nagyi

(#320) Miracle válasza Bagoly (#99) üzenetére


Miracle
senior tag

elnéztem.

[Szerkesztve]

értelmező késziszótár :: rekurzió --> lásd : rekurzió

(#321) Orc válasza nagyis (#319) üzenetére


Orc
senior tag

Köszi sokat segítettél, de igazság szerint olyan sciptet kell írnom, ami bekéri a dátumot és kidobja, hogy milyen napra esik.

Kinyomom a szemed, eltöröm a lábad... aztán mehetsz amerre látsz!

(#322) Orc válasza nagyis (#319) üzenetére


Orc
senior tag

Az óra és perc számomra teljesen feleselges, nem lehetne állandó értéket adni nekik?

Kinyomom a szemed, eltöröm a lábad... aztán mehetsz amerre látsz!

(#323) Orc válasza Orc (#322) üzenetére


Orc
senior tag

Már megoldottam mindent.

Kinyomom a szemed, eltöröm a lábad... aztán mehetsz amerre látsz!

(#324) Imrege válasza -mikey- (#28) üzenetére


Imrege
csendes tag

A Delphi tényleg megoldotta. Kristálytisztán OO, sőt komponens-alapú. Persze ha valaki nem ismeri az OOP-t, az is vígan ellubickolhat benne a beépített komponenseket felhasználva, de ha valaki ismeri... annak határ a csillagos ég.

(#325) Cler


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 :(

(#326) corm válasza Cler (#325) üzenetére


corm
senior tag

Elvileg a futtatható állományoknak a tulajdonságainál van olyan, hogy futtatási kompatibilitás, meg ki lehet választani a 256színben való futást is...

Y N W A

(#327) Cler


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.

(#328) Fejv@dászLány


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ő...

(#329) becso13 válasza Fejv@dászLány (#328) üzenetére


becso13
aktív tag

Én úgy tudom, hogy gépi kódot csak assemblyre lehet visszafejteni.

[Szerkesztve]

(#330) Fejv@dászLány válasza becso13 (#329) üzenetére


Fejv@dászLány
csendes tag

A célom az, hogy a file-ban lévő text-et, amit innen szed átírjam. De most semmit sem látok, csak zagyvaságot, még magát a text-et sem.... :O

Nem minden munkaerő-közvetítő fejvadász és nem is minden fejvadász munkaerő-közvetítő...

(#331) Miracle válasza Fejv@dászLány (#330) üzenetére


Miracle
senior tag

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ó

(#332) Fejv@dászLány válasza Miracle (#331) üzenetére


Fejv@dászLány
csendes tag

köszi, megnézem! megirom majd mi történt.... :)

Nem minden munkaerő-közvetítő fejvadász és nem is minden fejvadász munkaerő-közvetítő...

(#333) Cathfaern válasza JFL (#108) üzenetére


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)

(#334) VladimirR válasza Cathfaern (#333) üzenetére


VladimirR
nagyúr

[ide hulyeseget irtam]

pl.: (rand() % x) - 0 es x-1 kozotti egesz szamot ad vissza
masik: random(x) - 0 es x-1 kozotti egesz szamot ad vissza

[Szerkesztve]

(#335) Cathfaern válasza VladimirR (#334) üzenetére


Cathfaern
nagyúr

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 :F

(tudom, ez nagyon alap dolog, de még csak most kezdtem programozni)

(#336) VladimirR válasza Cathfaern (#335) üzenetére


VladimirR
nagyúr

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'' :DDD

(#337) corm


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

(#338) Cathfaern válasza corm (#337) üzenetére


Cathfaern
nagyúr

És hogy lehet C-vel logaritmust számoltatni?

(#339) VladimirR válasza Cathfaern (#338) üzenetére


VladimirR
nagyúr

Real:
          double log(double x);
          double log10(double x);
          long double logl(long double (x));
          long double log10l(long double (x));

Complex:
          complex log(complex x);
          complex log10(complex x);



[Szerkesztve]

(#340) Miracle válasza Cathfaern (#338) üzenetére


Miracle
senior tag

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 :U előtört az algoritmusok műveletigényéről tanult anyag :C , ami (hacsak nem írsz powerappot) annyira nem fontos. A kódoláshoz meg semmi köze :DD

értelmező késziszótár :: rekurzió --> lásd : rekurzió

(#341) VladimirR válasza Miracle (#340) üzenetére


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 :P)

(#342) Sick Boy válasza VladimirR (#341) üzenetére


Sick Boy
őstag

írtam Neked egy mailt :U

Powered By Poppy... | Buksi, Apa kiszökött!!!

(#343) Miracle válasza VladimirR (#341) üzenetére


Miracle
senior tag

igen, csak azért mondtam, mert láttam, hogy log2n kiszámítását kérdezi, arra következtettem, hogy bizony valahol ki akarja számolni, de akkor rossz úton jár sajnos.

értelmező késziszótár :: rekurzió --> lásd : rekurzió

(#344) Cathfaern válasza VladimirR (#339) üzenetére


Cathfaern
nagyúr

log fgv-hez milyen header kell?

Miracle:
ne zavarj már be :) Már azt hittem kezdem érteni, erre jösz te :O

(#345) faster válasza Cathfaern (#344) üzenetére


faster
nagyúr

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]

(#346) VladimirR válasza Cathfaern (#344) üzenetére


VladimirR
nagyúr

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

(#347) Cathfaern válasza VladimirR (#346) üzenetére


Cathfaern
nagyúr

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.

(#348) Miracle válasza Cathfaern (#344) üzenetére


Miracle
senior tag

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.. :B

értelmező késziszótár :: rekurzió --> lásd : rekurzió

(#349) faster válasza Cathfaern (#347) üzenetére


faster
nagyúr

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.

(#350) VladimirR válasza Cathfaern (#347) üzenetére


VladimirR
nagyúr

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]

Útvonal

Fórumok  »  Szoftverfejlesztés  »  Programozás topic (kiemelt téma)
Copyright © 2000-2024 PROHARDVER Informatikai Kft.