-
Fototrend
Új hozzászólás Aktív témák
-
cucka
addikt
[link]
itt van olyan program amit kerestél, resolution changer, console verzió
mondjuk így tudod lekérdezni vele a képernyő felbontását, elmenteni egy fileba, és ha nem 1024x768, akkor arra váltani:@echo off
for /f ''skip=1 tokens=2,3 delims=^)x usebackq'' %%a in (`reschangecon -listmonitors`)do (set ize=%%a & set magassag=%%b)
set szelesseg=%ize:~1,4%
echo %szelesseg% %magassag%>temp.tmp
rem echo %magassag%>>temp.tmp
if %szelesseg:~0,3%%magassag%==102768 goto vege
reschangecon -width=1024 -height=768 -refresh=max -depth=max -force
:vege
set ize=
set szelesseg=
set magassag=
@echo on
nyilván van ennél elegánsabb megoldás is. ez létrehoz egy temp.tmp filet, oda menti a felbontást.
következővel a fileba mentett felbontást állítod vissza:@echo off
for /f ''tokens=1,2'' %%a in (temp.tmp) do (set szelesseg=%%a & set magassag=%%b)
reschangecon -width=%szelesseg% -height=%magassag% -depth=max -refresh=max -force
set szelesseg=
set magassag=
@echo on
nálam működött -
cucka
addikt
válasz Miracle #1246 üzenetére
a jelszavak lopása szerintem ma már jellemzően a user oldaláról lehetséges: különféle keyloggerek, hálózati lehallgatók, spyware-ek, satöbbi
jelszópróbálgatós megoldás nem hinném, hogy életképes. egy jelszó feltöréséhez a próbálkozások átlagos száma nagyon magas, szerveroldalról pedig le lehet lassítani a folyamatot. webes felületen a szükséges idő nyilván még magasabb. -
cucka
addikt
válasz szijartg #1263 üzenetére
ha a tantárgy strukturált programozási ismereteket feltételez, akkor valószínűleg oop lesz a tananyag.
ezért szerintem célszerű egyből c++al kezdeni, ehhez pedig beszerezni egy c++ könyvet. (vannak olyan c++ könyvek, amelyek nem feltételeznek semmilyen programozói tudást az olvasótól) -
cucka
addikt
válasz emitter #1269 üzenetére
esetleg megpróbálhatod értelmezni a hibaüzeneteket.
pl rengeteg helyen van ilyen hiba:
main.c:61: error: ‘HANDLE’ undeclared (first use in this function)
azaz nincs deklarálva HANDLE nevű változó/függvény, mégis használni szeretnéd
nem találja a windows.h és wincon.h fileokat, meg kéne nézni, hogy ott vannak-e egyáltalán
többi hibaüzenetről forráskód nélkül nehéz bármit is mondani -
cucka
addikt
válasz Forest_roby #1792 üzenetére
ezt egyszerűbben is meg lehet írni némi gondolkozás után. az elgondolás, hogy nem írjuk le ugyanazt 13-szor, ha elég egyszer megtenni. (lehet becsúszott itt-ott szintaktikai hiba a kódba, nem próbáltam ki).
void main(){
//beolvasás billentyűzetről a 'be' változóba
int i;
int szamok[]={1000,900,500,400,100,90,50,40,10,9,5,4,1};
string jelek[]={''M'',''CM'',''D'',''CD'',''C'',''XC'',''L'',''XL'',''X'',''IX'',''V'',''IV'',''I''};
for (i=0;i<13;i++){
while (be>szamok){
printf(''%s'',jelek);
be=be-szamok;
}
}
}
[Szerkesztve] -
cucka
addikt
válasz Forest_roby #1794 üzenetére
még elegánsabb (szerintem), ha a for (i=0;i<13;i++) sorban i<13 helyett i<(sizeof(szamok)/sizeof(int)) szerepel.
-
cucka
addikt
válasz Forest_roby #1796 üzenetére
próbáld így
char* jelek[]={ ... }
és ne foglalj le 250 elemű tömböket. mivel megadod a tömb változóit, ezért a fordító majd kitalálja, mennyi helyet kell neki foglalni. ezt jelenti az a [] . -
cucka
addikt
válasz Forest_roby #1798 üzenetére
hm tényleg >=. éjjel fél 3-kor írtam azt a kódot, mondtam, hogy lehet becsúszik 1-2 hiba
-
cucka
addikt
válasz Forest_roby #1800 üzenetére
elvileg igen, eltérő karakter kódolások miatt lehetnek problémák. oprendszer/fejlesztőkörnyezet/fordító függő a dolog. sokat nem foglalkoztam a témával, parancssoros programnál úgyis mindegy, gui-s alkalmazásnál meg szoktak működni az ékezetes betűk.
-
cucka
addikt
-
cucka
addikt
válasz Forest_roby #1823 üzenetére
ide tényleg gyorsabb lenne az erasztotenész szitája nevű módszer. a probléma az, hogy keresed az x-nél kisebb prímeket. felírod 2-től x-ig a számokat. ezután megkeresed az első olyan számot, ami nincs áthúzva, és még nem foglalkoztál vele. (ez első körben a kettes lesz). áthúzod minden második számot a 2-es után (vagyis a 4-est, 6-ost, stb.). ha vége, kezded az elejéről. a következő szám a 3-as, áthúzod minden harmadik számot(6,9,stb). a következő szám az 5-ös (a 4-es már át van húzva, így azzal nem foglalkozunk), és így tovább.
viszonylag egyszerű leprogramozni, szóval hajrá. a végén össze lehet hasonlítani a futási időket, kíváncsi vagyok. -
cucka
addikt
válasz Forest_roby #1826 üzenetére
linux alatt time paranccsal szoktam, windows alatt elvileg tudom, gyakorlatilag nem.
általában egy algoritmusnál nem a futási időt nézik, hanem a műveletigényt, ez független a megvalósítástól, azt ''méri'', hogy n számosságú bemeneti adathalmazra hány iterációt végez az algoritmus. -
cucka
addikt
válasz Forest_roby #1826 üzenetére
találtam win alá is valami hasonlót, mint a linuxos time. úgy hívják, hogy timeit.exe és a Windows Server 2003 Resource Kit Tools nevű csoda része. sok sikert hozzá, nekem nem sikerült használnom, bár nem is próbálkoztam vele túl sokat. [link]
[Szerkesztve] -
cucka
addikt
jó ez, ha hozzáképzeljük azokat az [ i ] indexeket, amelyeket a fórum engine átalakított
egyébként az előző megoldásnak és ennek is n^2 a műveletigénye, de ez gyorsabbnak tűnik, tekintve hogy a gyökvonás elég lassú művelet.
másrészt emlékeim szerint arra a problémára, hogy adott szám prím-e, nem igazán van villámgyors megoldás. általában a kódolások ezért törhetők annyira nehezen (rsa legalábbis)
[Szerkesztve] -
cucka
addikt
válasz Forest_roby #1839 üzenetére
shev7 - #1835-ben valóban igazad van
Forest_roby - igen, pont a te általad leírt módszer az, ami túl sok időt vesz igénybe. utánanéztem, arra, hogy megállapítsd, egy n számjegyű szám prím-e, van log(n)^12 körüli műveletigényű algoritmus, ez mondjuk majdnem polinomiálisnak tekinthető. a gond az, hogy prímtényezőkre való bontásnál az összes lehetséges osztót végig kell nézni, ami n számjegy esetén 10^n nagyságrend, tehát exponenciális az algoritmusod.
ja, és az általad leírt 62484751362947029755811 sokkal több, mint 23 bit. nem keverni a bitet a számjeggyel. tessék utánanézni a kettes számrendszernek
[Szerkesztve] -
cucka
addikt
válasz Forest_roby #1846 üzenetére
nem véletlenül mondtam, hogy nézz utána a kettes számrendszernek, számábrázolásnak, satöbbi
10es számrendszerben 23 számjegyen ábrázolod.
2es számrendszerben x ''számjegyen'', amit más néven bitnek hívunk. tehát a bit az egy bináris szám számjegye.
[Szerkesztve] -
-
cucka
addikt
válasz Forest_roby #1858 üzenetére
long-ba ekkora érték fér bele. ugye (nálad) 4 byte-on ábrázolja, az ~4 milliárdig jó, de mivel előjeles, ezért az előjel-bitnek is kell hely, ezért ~2milliárd a vége. unsigned long-al tehát ~4 milliárdig tudsz értéket tárolni.
ha még nagyobb számot szeretnél, akkor kénytelen leszel kézzel megírni (string-ben tárolod a számokat, megírod rá a műveleteket vagy operátorokat (c++), satöbbi). -
cucka
addikt
válasz Forest_roby #1860 üzenetére
egy: nincs olyan, hogy long long int.
kettő: semmilyen különleges tudás nem szükséges hozzá. van 2 számod string-ben, számjegyenként kell velük műveleteket végezni (összeadás, szorzás, amire szükség van). ezeket neked kell kézzel megírni. az egész úgy működik, mint ahogyan elemi iskolában megtanítottak papíron összeadni/szorozni.
c++ - ban elegánsabb dolog nagyszámok osztályt írni, és átírni a használt operátorokat (+,*,<<, satöbbi).
egyébként meg milyen feladat az, amelyiknek nem elég a long?
[Szerkesztve] -
cucka
addikt
uh, ezt a long long típust csúnyán benéztem..
-
cucka
addikt
devcpp így kéne tudja futtatni, legalábbis nálam.
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
cout<<''Hello World!'';
}
iostream.h elvileg deprecated, ezért nem ajánlja használni
cout-ot pedig akkor találja meg, ha megmondod neki, hogy a standard namespace-ben van, vagy std::cout formában használod. (hű ez a mondat elég pongyolán volt megfogalmazva)
[Szerkesztve] -
cucka
addikt
using namespace std;
azt jelenti, hogy a standard névteret használod. itt jól le van írva: [link] (egyszerű példák, utolsó paragrafus szól az std-ről)
int main(int argc, char *argv[])
a main paraméterei a program argumentumait jelentik, vagyis ezekből olvasható ki, hogy pl. milyen paraméterekkel indítottad el parancssorból a programodat. argc a paraméterek számát jelöli (arg. count) másik meg egy argc elemszámú tömb amiben maguk az argumentumok vannak (arg. value).
#include <cstdlib>
gondolom ez tartalmazza a system(''pause'') parancsot pl, ami a press any key-t okozza bezárás előtt?
igen. a system paranccsal külső parancsokat/programokat tudsz futtatni. a pause (beépített) parancs dos/win alatt, próbáld ki parancssorban. [link]
return EXIT_SUCCESS;
ez azt jelenti, hogy a main függvény EXIT_SUCCESS értéket ad vissza kilépéskor. ez az érték a 0. [link]
[Szerkesztve] -
cucka
addikt
válasz Jester01 #1885 üzenetére
(Ez a példa szerintem nem volt szerencsés a kollega úr részéről, bár tény, hogy nem egyszerű billentyű lenyomásra várni C++ban.)
ez a system(''pause'') sor a dev c++-ból származik, ami új (konzolos) projektnél odarakja a generált ''üres'' main függvénybe. (innen van a return EXIT_SUCCESS; sor is, szerintem a return 0 sokkal egyszerűbb, még ha nem is teljesen korrekt).
mondjuk egy system(''dir'') példa sokkal szebb lett volna. -
cucka
addikt
válasz Forest_roby #1910 üzenetére
fordításhoz általában a fejlesztői csomagok is szükségesek, ezek végén szerepel, hogy -dev. ha hiányzik neki csomag, de az mégis fel van telepítve, akkor legtöbb esetben a dev. csomag hiányzik, ez az első amit le szoktam csekkolni. az ubuntuban jó grafikus csomagkezelő (synaptic vagy adept), ott 1 perc alatt megoldhatóak az ilyen gondok.
-
cucka
addikt
előbb megtanulod az alapokat. ehhez ajánlott nyelv mondjuk a c, később c++. utána lehet foglalkozni gui-s programokkal, többszálúsággal, stb.
tanulásra kiváló ingyenes fejlesztőkörnyezet a dev c++. ha jól emlékszem, szintén ingyenes a visual studio express edition, de inkább ne azzal kezdd, túl sok mindent tud . -
cucka
addikt
válasz Forest_roby #1945 üzenetére
például [link]
-
cucka
addikt
a for ciklusod magjában semmi nem függ az i ciklusváltozótól. gyakorlatilag csak akkor fog kicserélni bármit is a függvény, ha az illető string egyetlen ékezetes betűből áll.
a ciklusban az a string helyett az a[ i ]-t nézegesd inkább.
megj: a replaceEkezet(''áőéóü'') sem működik, csak mivel nem tárolod el a visszatérési értékét, ezt nincs honnan tudd. meg egyáltalán semmi értelme ezt a függvényt meghívni így. (megcsináltatsz vele valamit, az eredményt meg kidobod.. király )
[Szerkesztve] -
cucka
addikt
válasz Jester01 #2308 üzenetére
Azt nézi, csak a fórummotor benyelte. (dõlt betûs lett utána minden)
ahh, ez nem tűnt fel, bocsánat
Most látom, hogy a fõ probléma a replaceEkezet fvben a default: break; sor lehet.
Emiatt az elsõ nem ékezetes betûnél abbahagyja a konverziót.
az a break nem a switch-re vonatkozik? akkor meg ugye nem hagyja abba a konverziót (mert nem a for ciklust break-elem), vagyis csak egy fölösleges case.
egyébként kipróbáltam és érdekes módon nálam műxik a program (ékezetes, ékezetmentes és vegyes inputra is).
[Szerkesztve] -
cucka
addikt
-
cucka
addikt
c-ben gondolkozva:
a 10ezer csúcs miatt célszerű éllistával ábrázolni, ott pedig nem probléma a memórialimit.
csúcsoknak lefoglalod előre a memóriát, akkor ugye tömbként kezeled, és a tömb indexe fogja megmutatni az illető csúcs ''nevét''. minden csúcsból kiindul egy lista, ami tartalmazza az éleket. egy élnek van végpontja, ami egy int és rákövetkező csúcsa, ami egy csúcsra mutató pointer, vagyis egy csúcs mérete nagyjából 12byte, össszes csúcs így 240kbyte-ot foglal. ha nagyon szorít az időlimit, akkor eltárolhatod minden csúcsnál az utolsó élre mutató pointert, így a beszúrás n idő helyett 1 idő alatt megtörténik.
az élmátrix az egyébként micsoda? én csak a csúcsmátrixot és az éllistát ismerem/használtam.
listákról minden könyvben olvashatsz, de a gúgle is sok hasznos találatot dob, főleg ha angolul keresel. ennek fényében nem értem, mi a probléma a file-ból való lista felépítéssel. (kulcsszó: linked list). -
-
cucka
addikt
például conv.c:17: error: parse error before ')' token azt mondja, hogy a conv.c 17. sorában valamit nem tud értelmezni. mivel senki nem tudja, hogy mi lehet abban a 17. sorban (vagy valamelyik előtte lévőben) ezért kicsi rá az esély, hogy választ kapj. valószínüleg elírtál valamit.
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- Asus ROG Phone 6 - Limited Batman Edition / BONTATLAN - 3 év gari
- Huawei Matebook D14 i5-11.gen/16GB DDR4/512GB PCIe SSD/14" Full HD IPS/Gar.:2025.10
- Rog 4070 Ti //KERESEM!!//
- Binepad BN006, programozható, mechanikus macropad, low profile Kailh Choc v1 Red switchek
- CoolerMaster ControlPad, programozható, mechanikus macropad, Gateron Red switchek