- Motorola Edge 40 - jó bőr
- Okosóra és okoskiegészítő topik
- Xiaomi 11 Lite 5G NE (lisa)
- Telekom mobilszolgáltatások
- Eredeti dizájnnal tér vissza idén a Nokia 225 4G
- Google Pixel 6/7/8 topik
- Apple iPhone 13 Pro Max - őnagysága
- Ezek a OnePlus 12 és 12R európai árai
- MG4 menetpróba
- Samsung Galaxy S23 Ultra - non plus ultra
Hirdetés
-
A TikTokon marakodik Trump és Biden
it Trump szerint ha betiltják a TikTokot, annak a felelőse Biden lesz. A betiltás Trump szerint csak a Metát tenné még gazdagabbá.
-
Nyár közepén jön az AOC 540 Hz-es gaming monitora
ph Az Agon Pro szériás, kellemes felszereltségű újdonság lényegesen olcsóbb lesz a jelenleg kapható ellenlábasánál.
-
Május 7-én lesz az új iPadek bemutatója
ma Online termékbemutatót tart az Apple május 7-én, a közvetítésen iPadek és hozzájuk tartozó kiegészítők lesznek a téma.
-
Mobilarena
Új hozzászólás Aktív témák
-
Cathfaern
nagyúr
Szerintem beírom az egész feladatot, aztán akkor tisztább lesz minden
Számkitalálós játék inputként megadott korláttal: számgenerálás 1-től n-ig, ahol az n input (pl. 1<n<65536), a kiértékelést ''normalizálni'' kell (azaz pl. n=5000 esetén 13 tipp a ''felezgetős'' eredmény és az 5 tipp még nagyon jó, ugyanakkor 15 számnál az 5 tipp már rossz eredmény).
Na most a feladat első része megvan, már csak ezt a ''normalizálást'' kéne tető alá hozni.
Eddig azért nem írtam be, mert szándékosan nem akartam azt, hogy valaki fogja s leírja a jó megoldást. -
VladimirR
nagyúr
válasz Cathfaern #351 üzenetére
ha jol ertem, akkor neked valami olyasmi kell, hogy nezed a minimalisan szukseges lepesek szamat (log2n) es a tenyleges tippeket es a ketto hanyadosabol hatarozod meg, hogy az illeto ''ugyes'' volt-e
mondjuk ha a hanyados nagyobb, mint egy (vagyis <log2n tippel eltalalta), akkor ugyes, ha a hanyados egyenlo eggyel, akkor elfogadhato (mert ugye kovette az algoritmust, de semmi extrat - pl mazli - nem mutatott fel), ha pedig a hanyados kisbb mint egy, akkor (leven tobb tippje volt, mint ami a megoldashoz szukseges) ejnye-bejnye, mert csak vaktaban lovoldozott (s nagy szamoknal ez eleg gaz lehet, mert pl mig az algoritmust hasznalva ~1 000 000 szambol 20 lepesben megtalalhato a keresett, addig totozva ez igen hosszadalmas es az 1e6 nem is olyan nagy szam) -
Cathfaern
nagyúr
Közbe rájöttem, hogy még se jó ha az algoritmust írom meg...mivel akkor más és más szám értékekre (ugyanazon itervallumon) más és más eredmény fog kijönni (vagy legalábbis nálam így van ). Nekem viszont a legroszabb eset kell. Szóval akkor mégiscsak a logaritmus kéne nekem...na de azt majd holnap
-
VladimirR
nagyúr
olyan nincs, hogy log2 - csak termeszetes es tizes alapu logaritmus van
log2(max) kiszamitasahoz hasznald a kovetkezot: log(max)/log(2) -
Cathfaern
nagyúr
ÁÁÁ!! Elegem van ebből a VIsual-ból Újabban (2-3 napja) állandóan azt csinálja, hogy compiling közben megáll. A fordítást leállítani nem tudom (hiába nyomkodom a gombot), bezárni se hagyja magát, s csak ctrl+alt+del-el lehet nagy nehezen lelőni
Közben eszembe jutott még valami: az opt értékét valahogy kerekíteni kéne egész számra, mivel így nem tudom összehozni azt a lehetőséget, hogy pont annyi próbálkozással eltalálni, mint amennyivel a gép végzett volna. -
-
VladimirR
nagyúr
biztos vagy benne, hogy ez kerekit?
mert 2.1-re 2<2.1 a feltetel, es 2.9-re 2<2.9 - igy mindket esetben felfele kerekit
a te megoldasodban az int() hol kerekit (feltetelben), hol pedig floor-kent mukodik (2 masik eset)
en erre egy makrot hasznalok:
#define round(A) ( floor(A)+.5 < A ? floor(A) : ceil(A) )
a floor a lefele, a ceil pedig a felfele kerekites
[Szerkesztve] -
Miracle
senior tag
válasz VladimirR #368 üzenetére
úgy az int(double), mint a static_cast<int>(double) alsó egész-részt vesz. a kód működik.
én g++-t és borland compilert szoktam használni, mind a kettő így csinálja, és bár nem néztem, de a VS is biztosan.
az előbbi (ha másért nem is) azért kerekít felelé, mert egyszerűen eldobja a mantisszát. utóbbi implementációfüggő, de csak az van garantálva, hogy nem csinál hülyeséget, de az kerekíthet bármely irányba.
Ha negatív számokra is számítanánk, akkor lehet, hogy nem működne a kód, de itt nem ez a helyzet. a makrókkal meg vigyázni kell, mert egy ilyen egyszerű kifejezés, mint a round(++b) is megfingatja.értelmező késziszótár :: rekurzió --> lásd : rekurzió
-
VladimirR
nagyúr
lehet rosszul ertek valamit, de ha az int(double) also egeszt vesz, akkor a double(int(opt)) < opt minden olyan esetben, mikor opt nem egesz, 1-e ad eredmenyul
es a ++b a makromnak valoban nem tesz jot neki, most neztem ()
de a te megoldasod nalam folyamatosan felfele kerekit
[Szerkesztve] -
Miracle
senior tag
válasz VladimirR #370 üzenetére
de egy ?: operátor van mögötte. ez egy feltétel. a bool visszatérési értékét használom. amúgy igen, lehetne így is:
int leptetes = int(opt) + (double(int(opt)) < opt);
ez is tökéletesen működne, de kevéssé magátó értetődő, és ez inkávv egy ,,c''-s megoldás, nem szép dolog c++ban ilyet hagyni. nem szeretik a c++ programozók. és én sem, mert nem szép.
''es a ++b a makromnak valoban nem tesz jot neki, most neztem ()
de a te megoldasod nalam folyamatosan felfele kerekit''
óh, jháh, doktor zwack, das ist eine Uniqum, az volt a feladat, hogy felfelé kerekítsem, mert nyilván nem kell magyaráznom, hogy a log_2(n) nem mindíg egész, és amikor tört, akkor a keresett érték a felső-egészrész.
[Szerkesztve]értelmező késziszótár :: rekurzió --> lásd : rekurzió
-
Cathfaern
nagyúr
A VladimirR-féle kerekítést könyebben megértettem, így inkább azt használtam
ja, de most látom, hogy az meg nem jó Na akkor meg kéne értenem a Miracle félét is -
VladimirR
nagyúr
igen, tudom, hogy mi van mogotte, ezert is irtam, hogy mindig 1-et ad vissza ----> mindig az int(opt)+1 lesz a fuggveny eredmeny, amennyiben az opt nem egesz szam ---- tehat 2.1 eseten is 3-at ad vissza es 2.9 eseten is (legalabbis nalam)
int lepes = (double(int(opt)) < opt) ? int(opt)+1 : int(opt) ;
2.1:
lepes = ( 2 < 2.1 ) ? 2+1 : 2; ----> lepes = 1 ? 3 : 2; ----> lepes = 3;
2.9:
lepes = ( 2 < 2.9 ) ? 2+1 : 2; ----> lepes = 1 ? 3 : 2; ----> lepes = 3; -
Miracle
senior tag
válasz VladimirR #374 üzenetére
''igen, tudom, hogy mi van mogotte, ezert is irtam, hogy mindig 1-et ad vissza ----> mindig az int(opt)+1 lesz a fuggveny eredmeny, amennyiben az opt nem egesz szam ---- tehat 2.1 eseten is 3-at ad vissza es 2.9 eseten is (legalabbis nalam)''
IIIIGEN, EZT JELENTI A FELSŐ EGÉSZRÉSZ, ERRE VAN MOST SZÜKSÉGÜNK.
[Szerkesztve]értelmező késziszótár :: rekurzió --> lásd : rekurzió
-
VladimirR
nagyúr
jah, hogy a feladat nem tokeletes kerekites, hanem felfele kerekites?
akkor #include <math.h> es ceil(opt);
ceil and ceill round up
floor and floorl round down
Declaration:
double ceil(double x);
double floor(double x);
long double ceill(long double (x));
long double floorl(long double (x));
es elnezest a feltreeresert
es nem kell kiabalni, bazdmeg, hanem meg kellene tanulni egyertelmuen irni
ezt irtad a #366-ban:
''kerekítés:
int lepes = (double(int(opt)) < opt) ? int(opt)+1 : int(opt) ;''
en erre mondtam, hogy ez nem kerekites
[Szerkesztve]
[Szerkesztve] -
RéNyBoY
csendes tag
Hy all!
Lenne 1 problémám egy progival!Pascalban kell megírni és linux alatt kell futnia.
A progi 2 permutációt szoroz össze majd ezt transzpozíciókra bontja,nekem ez az utóbbi nem megy.
Az adatokat fileból kell beolvasni és fileba is kell kiírni.Ha valaki tudna segíteni az szóljon és elküldöm neki a forrást.
[Szerkesztve] -
Orc
senior tag
Scriptet kell írnom. Hogyan lehetne megoldani, hogy a script vizsgálja meg a paraméterként megadott számról, hogy osztható-e 2-vel 3-mal vagy 5-el és ha bármelyikkel osztható, akkor írjon ki valamit? Köszönöm előre is.
Kinyomom a szemed, eltöröm a lábad... aztán mehetsz amerre látsz!
-
corm
senior tag
Huh, ha jól emléxek akkor úgy lehet leggyorsabban megállapítani, hogy valami prímszám-e , hogy elkezded egyesével nézni a számokat egy ciklusban, ahol a ciklusváltozó lehet maga a szám amivel osztod a keresett számot. egészen gyök n-ig kell ezt csinálni (n az amiről megakarod álalpítani). és ha valamelyikkel osztható, akkor ugye nem prím-> vége a ciklusnak. Ha peig a ciklus végig fut, és az utolsó elem sem osztója n-nek, akkor prímet adtál meg.
unixban lekódolni pedig nem nehéz, itt egy példa(azért unixban énis kezdő vok, nem szidni a kódért )
a=$1
i=2
l=0 -- egy logikai változó, ami azt mondja, meg hogy osztója-e vagy sem
gyoka=(gyök a - nem tudom a gyök parancsot... )
while [ i -le gyoka ]
do
if [ `expr a % i` -eq 0 ]
then
l=1
fi
i=`expr i+1`
done
if [ l -eq 1 ]
then
echo ''Prím!''
else
echo ''Nem prím!''
fi
Na kb ennyi, de gondolom az okosabbak találnak majd benne ezer hibátY N W A
-
Orc
senior tag
Akkor márcsak arra lennék kiváncsi, hogy hogyan tudom kifejezni a gyök ''a''-t.Előre is köszönöm.
Kinyomom a szemed, eltöröm a lábad... aztán mehetsz amerre látsz!
-
Orc
senior tag
if [ $1 != ''-p'' ]; Ez mit tesz? Mi az a -p opció?
Kinyomom a szemed, eltöröm a lábad... aztán mehetsz amerre látsz!
-
T_bee
aktív tag
Itt is felteszem a kérdést, hátha itt többan olvassák:
Ha Visual Basiccel csinálok egy dhtml oldalt, akkor azt el lehet menteni .html oldalnak, és feltölteni valahová és honlapként fog nekem funkcionálni?
meg?: Visual Basiccel lehet-e regisztrációt meg beléptetést csinálni: tehát az user akkor tud csak belépni, ha megadta a felhasználói nevét meg a jelszavát. ezeket hogyan lehet tárolni külön fájlban?''Az erőszak a gyengék végső menedéke'' /Isaac Asimov : Alapítvány/
-
corm
senior tag
ez annyit tesz, hogy ha az elsőként megadott paraméter nem -p, akkor fog belemenni az elágazásba. Meglehjetősen gyanús ez a sor nekem. egy Elte-n feladott unix beadandó feladathoz hasonlít... Ha így van, és tényleg oda kell, akkor spec itt azt jelentia -p, hogy pünkösdöt kell-e kiszámolni. Tehát akkor fog belemenni az elágazásba, ha húsvétot kell.
Y N W A
-
-
corm
senior tag
./unix1: line 2: `n ='expr $1 - 19*($1/19),'
Van benne néhány
először is: az expr -nek úgy kell megadni hogy az operandusok és az opertáor közt kell hagyni szünetet
aztán szerintem a ()-t nem kezeli le, szóval ezzel is baja lehet(ebben nem vagyok biztos nem próbáltam), csinálhatod ehelyett azt, hogy a $1 / 19-et beteszed egy segéd változóba, vagy ami logikusabb, mivel a szorzás kommutatív: $1 / 19 \* $19 - bár ennek így megnézve semmi ételme, nyílván $1et kapsz vissza...
aztán hiba még, hogy a *-ot nem tudod így használni, le kell védened egy \-el s mindig amikor szorzást akarsz írni ezt irod: \*
aztán végül nemtom miaz a , a legvégén, szerintem az nem kell oda
ui. jól állhatsz, ha egy sorban ennyi hibád van - de azért csak kérdezz nyugodtan, ha tudok segítekY N W A
-
Sianis
addikt
Sziasztok!
Hatalmas bajom van. Hétfőn be kell adnom ezt a programot. Tegnap tökéletesen ment TP7 alatt, ma változatlan formában kiakad Free Pascal alatt és ez alatt kell beadni.
A gond a Keresés és a Módosítás pont alatt van. Néha lazán elmegy TP7 alatt, néha meg módosítás alatt disk read hibát ad.
A két fájl:
Alap.pas Bővebben: link
Magellan.pas-ez a unit Bővebben: link
Légyszives teszteljétek le mindkettő alatt, mert lehet az én gépemmel van a baj, és feleslegesen félek. Ha lehet akkor javítsátok amit lehet. Előre is köszönöm...
UI: CRT unit nincs benne, mert Linux alatt nem szereti. Szóval ne lepődetek, meg, hogy fapados.
Hálásan köszönök bármifajta segítséget! -
Sianis
addikt
SÜRGŐS UP!
-
corm
senior tag
n =`expr $1 - 19 \* $1 / 19` , de nem teljese értem, hogy ez miért van így. Szerintem elnéztél valamit, mert ez így nagyon 0-t fog visszaadni
Esetleg ha ez vmi maradékképzés akar lenni, akkor arra ottvan a %, a maradékos osztás
hazsnálata: pl. p=6 % 4 és ez 2-t fog visszadni
[Szerkesztve]Y N W A
-
Orc
senior tag
Nemirtam a levéllistára, neked írtam, de már megoldottam és müködik! Viszont még arra lennék kiváncsi, hogy hogyan lehet ezt megcsinálni: Van 3 válozó
a= évszám
b= hónap
c= nap
Hogyan lehet egy változóval azt megcsinálni, hogy közvetlen egymás után írja ki az abc értékét(mintha dátum lenne)
Pl: a=2004 b= 04 c=12
a d ezt írja ki: 20040412
Előre is köszi.
[Szerkesztve]Kinyomom a szemed, eltöröm a lábad... aztán mehetsz amerre látsz!
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- Azonnali informatikai kérdések órája
- Vezeték nélküli fülhallgatók
- Motorola Edge 40 - jó bőr
- Kerékpársportok
- Canon MILC: EOS R és M topik
- A fociról könnyedén, egy baráti társaságban
- Anime filmek és sorozatok
- Projektor topic
- AMD Ryzen 9 / 7 / 5 7***(X) "Zen 4" (AM5)
- Assetto Corsa Competizione
- További aktív témák...
- XBOX ONE/PS4/PS5/XBOX SERIES/NINTENDO SWITCH konzolt vásárolnék!
- XBOX SERIES/PS4/PS5/XBOX ONE/NINTENDO SWITCH konzolt vásárolnék!
- PS5/PS4/XBOX ONE/XBOX SERIES/NINTENDO SWITCH konzolt vásárolnék!
- Új Dobozos Lenovo Ideapad Flex 5 x360 Érintős Ultrabook Óriás Tab 16" -40% Ryzen 5 5500U 16/512 QHD
- PS4/PS5/XBOX ONE/XBOX SERIES/NINTENDO SWITCH konzolt vásárolnék!