Fórumok
Üdv emberek!
Nem értek egy feladatot , szeretném ha segítene benne valaki.
Előre is köszönöm
A feladat:
Generálj 3 számot (ez eddig megy) irasd ki őket válaszd ki a legkisebbet és legnagyobbat. és írasd ki a 3 mal oszható számokat a legkisebbtől a legnagyobbig
hogy kéne kiválasztani legkisebb és legnagyobb számot a generáltakból?
Valaki súgja meg a megoldást please.
Tomcsi1987
Hozzászólások
tomb, rendezed
Nem úgy értette, hanem csináldd meg helyette a házifeladatot :P
--
unix -- több, mint kód. filozófia.
Life is feudal
jaaaaaa.... sry
:D!
http://hu.wikipedia.org/wiki/Kerti_t%C3%B6rpe-rendez%C3%A9s
Fordítsd a C-t Pascalra :D!
Hova kell ez a bonyolult feladat? Általános iskola?
Na de kérem! Ne bántsd! Tanulni nem szégyen! Minden expedíció az első lépéssel kezdődik!
--
unix -- több, mint kód. filozófia.
Life is feudal
Szakközépbe 12. be kéne:)
Nemsokára érettségi
A tudásodhoz képest nagyon messze van az az érettségi...
Az emelt informatika erettsegi nem, az ez a szint osszetettebb feladatokkal.
Meg iden is van Pascal?
A topiknyito pedig fogja magat es szerezze be a kovetkezo konyvet, alapmu:
Csőke Lajos - Garamhegyi Gábor:
A SZÁMÍTÓGÉP-PROGRAMOZÁS LOGIKAI ALAPJAI
ALGORITMUSOK ÉS ELEMI ADATSZERKEZETEK
Nem tudni akar, hanem a feladaton túllenni.
--
unix -- több, mint kód. filozófia.
Life is feudal
Az érettségin tudni kell. Ha egy ilyen feladaton fennakad, és az elindulás sem megy, akkor vagy nem akar gondolkodni, vagy nem tud. Egyik esetben sem való neki az érettségi.
Ha ismered a topikjait, akkor megvan a megfejtés is.
Hub... Keresgéltem, de fölösleges volt kíváncsifáncsinak lenni...
Meg idén is van Pascal? :: Idén még van, tudtommal utoljára. Az októberi időszaktól kezdve lépnek hatályba az újítások.
:: by BRI.
:: config :: Acer TravelMate // Ubuntu Intrepid
:: tothab [a] gmail [pötty] kom
:: black rose immortal's weblog
Es lehet tudni, mik azok az ujitasok? (mas nyelv talan?)
[...]
Vaaaaaaagy:
Angster Erzsébet Programozás tankönyve is nagyon jó, minket abból tanítottak szakközépben
3 számra, nehéz az élet...;) Valami építő jellegű tippet is kapj, 2 számra tudsz-e ilyen functiont írni? (min, max kiválasztás)
Ha van egy megoldásod 2 számra pl. min(a,b), azzal hogyan oldanád meg a 3 számos esetet?
Bocs a cikizésért! Egy kis segítség:
Két számot hasonlíts össze, pl
if A > B then {utasítások jönnek ide, ha a feltétel igaz}
else {utasítások, ha a feltételed hamis};
Próbálgasd, ha megérted lépj tovább.
hogy kéne kiválasztani legkisebb és legnagyobb számot a generáltakból?
legkisebb:=elsogeneraltszam;
legnagyobb:=elsogeneraltszam;
Ciklussal végigmész a többi számon, s megvizsgálod őket:
-ha a legkisebb>epp_vizsgalt, akkor legkisebb=epp_vizsgalt
-ha a epp_vizsgalt>legnagyobb, akkor legnagyobb=epp_vizsgalt
Istenem! Senki se olvassa el a postot? 3 db. számról van szó mindösszesen, és erre jönnek tömbrendezések, meg ciklusok...
Nem mintha ez rossz megoldás lenne persze, de azért nem kell a kezdőket így elbátortalanítani...
akkor mégegyszerűbben:
három szám: a, b, c
legkisebb=a;
legnagyobb=a;
ha legkisebb>b, akkor legkisebb=b;
ha b>legnagyobb, akkor legnagyobb=b;
ha legkisebb>c, akkor legkisebb=c;
ha c>legnagyobb, akkor legnagyobb=c;
vagy ha mar van min es max akkor
legkisebb:=min(a,min(b,c));
legnagyobb:=max(a,max(b,c));
ha az a feladat, hogy válaszd ki, az a legtöbb tanárnál azt jelenti, hogy használd a szélsőértékkiválasztás-tételeket. ha nézi a kódot a tanár, akkor arra is kapja a jegyet.
szerk.: milyen tanár ad föl ilyen feladatot?!
:: by BRI.
:: config :: Acer TravelMate // Ubuntu Intrepid
:: tothab [a] gmail [pötty] kom
:: black rose immortal's weblog
nagyon reg volt mar pascal de emlekeim szerint van a math unitban min() meg max() azokkal mar nem nagy ugy kivalasztani :)
tudtommal c-ben van math.h "unit", pascalnál nem emlékszem ilyenre
:: by BRI.
:: config :: Acer TravelMate // Ubuntu Intrepid
:: tothab [a] gmail [pötty] kom
:: black rose immortal's weblog
És ha nem tanultátok az if-et vagy nem érted:
min(a,b,c)=(a-sqrt((a - b)^2)+b-sqrt((a-sqrt((a - b)^2)+b-2*c)^2)+2*c)/4
persze négyzetre emelés és gyök helyett használhatsz abs-t is, de az csalás, mert abba túl egyértelműen bele van drótozva az "if". ;)
az abs-be nem feltetlenul van beledrotozva az if:
int32_t myabs(int32_t szam) { return (szam+(szam>>31))^(szam>>31) }
- Use the Source Luke ! -
Hú, köszi!
Akkor azt hiszem, meg is oldottuk problémát, úgy ahogy a nagy könyvben meg van írva... ;)
Nem hiszem, hogy ezt quicksort nélkül meg lehetne csináni... három szám közül a legnagyobb... húzós...
if a>b then begin
max:= a;
min:= b;
end else begin
max:= b;
min:= a;
end;
if c>max then max:=c;
else if c
Ez igy ne biztos hogy jo mert mi van akkor ha c kisebb mint min?
Akkor nem a nekunk kello kimenetet adja.
azt hiszem nem zártad le a code tagot a postodban... ie nem olyan intelligens, hogy kijavítsa megjelenítéskor, mindenkinek kódként látszik a szövege alattad
Most itt lezártam, kíváncsi leszek hogy reagál az ie.
szerk: sikerült lezárni :D
http://album.drag2web.com/Albums/vegyes/hup_code.jpg
Bocs az off-ért...
egyébként..
Király Sándor: A programozás logikája I-II. ha valahol a kérdező útjába került, akkor nem ártana elolvasnia... pár százasba kerül és szerintem remek könyv.
Beszerezhető valahol az említett könyv?
--
unix -- több, mint kód. filozófia.
Life is feudal
jó eséllyel beszerezhető, mert a google dobott ki 2006os kiadást is...
viszont nem látok olyat, mint ami nekem van: egybe van kötve az I+II rész. Nekem '95-'96-os kiadású, a tartalomjegyzéke olyan mint a frissnek. http://album.drag2web.com/Albums/vegyes/proglog.jpg
Külön kötetként kb 800+800 ft körül láttam. szerk: hopp de ott van "Informatika III" név alatt 1500ért egyben.
ez a kiadó: http://www.graduation.hu/
var tarolo: integer;
szam :array[1..3] of integer;
begin
randomize;
{veletlanszem generalas}
szam[1] := random (100);
szam[2] := random (100);
szam[3] := random (100);
writeln ('A generalt szamok: ',szam[1],',',szam[2],',',szam[3]);
{min max kereses sorbarendezessel}
if szam[1] > szam[2] then begin tarolo:=szam[1]; szam[1]:=szam[2]; szam[2]:=tarolo; end;
if szam[1] > szam[3] then begin tarolo:=szam[1]; szam[1]:=szam[3]; szam[3]:=tarolo; end;
if szam[2] > szam[3] then begin tarolo:=szam[2]; szam[2]:=szam[3]; szam[3]:=tarolo; end;
writeln ('Legnagyobb szam: ',szam[3]);
writeln ('Legkisebb szam: ',szam[1]);
{harommal oszthato}
write('Harommal oszthato:');
for tarolo:=1 to 3 do
if (szam[tarolo] mod 3)=0 then write(szam[tarolo],',');
readln;
end.
Két okból írtam be egy lehetséges megoldás (a kód inkább egyszerű mint szép megoldás a könnyebb érthetőség végett):
1. Már vagy 6-7 éve nem láttam Pascalt egy kis nosztalgia :)
2. Én sokkal jobban szeretek egy megoldáson keresztül megérteni dolgokat pl ha megvan a megoldás átnézem majd egyedül is próbálom megirni magamtól és ha megy akkor értem. :D A ti módszeretek szerintem csak akkor célravezető ha ott ülsz mellette és próbálod rávezetni a megoldásra de nem így fórumon keresztül hogy 5 -en 8 félét magyaráztok :) de ha tévredek én kérek elnézést.
Hát okok, de:
1. talán nem kéne egy az egyben megoldani valaki háziját
2. de szerencsére ezt te sem tetted. ;)
tipp (én ezt értelmezem máshogy):
"és írasd ki a 3-mal oszható számokat a legkisebbtől a legnagyobbig"
(szerk.: ráadásul csak egy részfeladathoz kért segítséget)
for tarolo:=1 to 3 do
if (szam[tarolo] mod 3)=0 then write(szam[tarolo],',');
Ez nem azt csinálja?
A legkisebb számtól a legnagyobbig kell kiíratni a hárommal oszthatókat.
ebben az értelmezésben (gondolom) ott lenne hogy meddig,
ráadásul és el van irva a mondat ezért gondoltam hogy
az az előzőek folytatása.
Nem értelek. Számomra "és írasd ki a 3-mal oszható számokat a legkisebbtől a legnagyobbig" egyértelműen megegyezik zeller értelmezésével.
ok igaz! De így átirni a kódot már tényleg a kérdező feladata lesz :)
A hárommal osztható részt szerintem félreértetted, a legkisebb és a legnagyobb közötti 3-mal osztható számokat kell kiírni, ezt meg valami
ilyesmi...
Update: a két kódot elegyítve az fpc szépen forgatja, és jó is, úgyhogy a követhező HUP-sörözésen az ifjú barátunk jöhet egy sörrel mindkettőnknek :-)
Ja, úgy 1992-'93 óta egy árva sor pascal programkódot nem írtam...
Fujj ennyi if :-)
Én buborék rendezéssel csináltam (hasonló okok miatt mint te :-) )
--szerk--
Hopsz, nem sorbarendezés volt a feladat :-), de legalább megtanultam a buborékrendezést :-)
@@
"You can hide a semi truck in 300 lines of C."
Debian Lenny 2.6.27.6
OpenSolaris 2008.05
Hát igen, fentebb már összeraktuk if mentesen is denessel... ;)
Jól van na, ma sem találtam föl a spanyolviaszt :-( :-)
@@
"You can hide a semi truck in 300 lines of C."
Debian Lenny 2.6.27.6
OpenSolaris 2008.05
No de mégsem olyan rossz ez a megoldás sem. Mert ha sorba rendezted már nem kell tökölni a hárommal oszthatók sorba rendezésével. :-)
@@
"You can hide a semi truck in 300 lines of C."
Debian Lenny 2.6.27.6
OpenSolaris 2008.05
Ahamm. Ezt én is benéztem.
Az én házimat sosem oldották ennyien, nagyon irigy vagyok :D
(Na ezt a postot összevissza szerkesztgettem, de most már jó;)
szerk: Nem mégsem jó, de most már itt hagyom hátha valaki ki tudja dolgozni a forradalmi ötletet helyesen... :)
Nagyon unatkozom, úgyhogy előállok még egy megoldással, ami kicsit más :) :
Két véletlen számot generálunk csak, azonban olyan eloszlásban, ami megfelel a feladat követelményeinek. Tfh. az eredeti megoldásban 1-től n-ig generált 3db. véletlen egész számból választjuk ki min-t és max-ot. Ekkor ehelyett:
1. generáljunk véletlen egész számot 1 és (n+1)*n között
2. a fent generált számhoz keressük meg a legközelebbi négyzetszámot amit jelöljünk k-val
3. d := sqrt(k)-1
4. a := véletlenszám 1 és n-d között ([1;n-d] zárt.int.)
5. b := a+d
Ekkor "a"(minimum) és "b"(maximum) eloszlása tökéletesen olyan mintha azt 3 számból válogattuk volna! :)
tul. kép. 4., 5. lépés megtartásával, d-t ilyen eloszlás szerint generálva kapunk helyes megoldást:
P(d=x) = 6(n-x)(x+1)/n/(n+1)/(n+2)
Na ezt az eloszlást viszont már nem olyan egyszerű a beépített egyenletes eloszlásból generálni...
Szerintem először is kell egy Pascalban írt PostgreSQL library. Kapcsolódni kell egy adatbázishoz, egy táblába bele kell tenni a 3 számot, aztán egy SELECT-tel megvan a min és max. Ennél egyszerűbben nem is jó.
--
joco voltam szevasz
Ez kb. olyan nehez, mint a HUP-regisztracio.
Azt melyik forumon oldottak meg...?
Megoldottam
Köszy mindenkinek!