- Fórumok
- Szoftverfejlesztés
- Programozás topic
- (kiemelt téma)
- AMD Navi Radeon™ RX 9xxx sorozat
- Fokozatosan erősít majd a szerverpiacon az Intel
- Projektor topic
- Kiterjesztett valóság ASUS ROG és XREAL recept szerint
- A Linux megnégyszerezte magát a Steamen — a Microsoft ismét ígérget
- Apple MacBook
- Apple asztali gépek
- Azonnali informatikai kérdések órája
- Milyen monitort vegyek?
- HiFi műszaki szemmel - sztereó hangrendszerek
-
1900 - 1801
21056 - 20001 20000 - 18001 18000 - 16001 16000 - 14001 14000 - 12001 12000 - 10001 10000 - 8001 8000 - 6001 6000 - 4001 4000 - 3901 3900 - 3801 3800 - 3701 3700 - 3601 3600 - 3501 3500 - 3401 3400 - 3301 3300 - 3201 3200 - 3101 3100 - 3001 3000 - 2901 2900 - 2801 2800 - 2701 2700 - 2601 2600 - 2501 2500 - 2401 2400 - 2301 2300 - 2201 2200 - 2101 2100 - 2001 2000 - 1901 1900 - 1801 1800 - 1701 1700 - 1601 1600 - 1501 1500 - 1401 1400 - 1301 1300 - 1201 1200 - 1101 1100 - 1001 1000 - 901 900 - 801 800 - 701 700 - 601 600 - 501 500 - 401 400 - 301 300 - 201 200 - 101 100 - 1
-
Fórumok
PROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Tabletek, E-bookok Nyomtatók, szkennerek PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
-
Frissítve: 2023-12-13 06:18 Téma összefoglaló
Új hozzászólás Aktív témák
-
bdav
őstag
Nem nagyon akartam új topicot nyitni, ezért inkább ide irom:
Kb 2 éve tanulok programozni teljesen autodidakta módon, különböző tutorokból
könyvekből... Annak idején a választás VisualBasic6 ra esett. Azt mondták nem
egy nehéz nyelv... A 2 év alatt elég sokmindent megtapasztaltam, megtanultam.
Olvasgattam a különböző programozó fórumokat és beszélgettem hozzá és hozzáértőnek
látszó emberekkel, hogy melyik programnyelvnek(fejlesztőkörnyezetnek) mégis mi
az előnye hátránya.
Eddigi tapasztalataim alapján a MS-VB6 egy nem rossz fejlesztőkörnyezet, ami
igazán hiányzik belőle NEKEM az a bitműveletek.
Csak hát itt vagyunk a 64bit küszöbén! És ez csak 32bites kódot generál,
ami mondjuk önmagában nem gond, csak akkor ha 64 bites alkalmazásból van meghívva.
(ugyanúgy mint ha 32 bites alkalmazásból hívunk 16bitest akkor az átkapcsolások
igen sokáig tartanak)
Gondolkodtam, hogy haladni kellene a korral és meg kellene tanulni valami másik
nyelvet (+fejlesztőkörnyezetet; nekem a környezet megismerése is eltart addig mint
a programnyelv megismerése)
Böngészgetem a netet és ugye van most ez a .NET láz. Olvastam róla jót rosszat.
De megmondva nem igazán értem az egészet. Ez a .NET framework elvileg olyan
mint a java virtual machine?. És .NET-en belül is van Basic, C# és még???
(ado, asp)
Ahogy olvastam és amiket leszürtem a C/C++ a legvagányabb nyelv.
Ebben elvileg mindent lehet!?
És akkor ott van még a Delphi. Abból láttam haverom Borlandos fejlesztőkörnyezetét
és megkérdeztem tőle, hogy mi ez a sok bisz basz? De igazából nem tudom
hogy mennyivel tud többett mint egy Basic (ha jól tudom akkor delphibe
lehet asm kódot beszurni, vb-be nem, csak vmi api-n keresztül cifrázva )
A C szintaktikáját elnézve nyerő lenne ha valamerre tovább akar lépni az ember
php, javascript, java, symbian, opengl - is mind nagyon hasonló, és majdnem minden
mikrovezérlőre is van C compiler.
A hosszú monológ után arra a kérdésre szeretnék többek között választ kapni, hogy
mivel lehet (most/majd) 64 bites kódot generálni?
Kinek melyik IDE jön be a legjobban?
Tapasztalatok vélemények az egyes progrmanyelvekkel kapcsolatban.
üdv sonar.NET az az ''MS Javája'' valóban hasonló koncepció, és igen gondolom a C#, VB.net kódot a .net interpreter által végrehajthatóra fordítja. Jövő félév után már többet tudok róla mondani

ja c/c++ ben mindent lehet. de mindent lehet assemblyvel is csak kicsit nehezebb. el kell dönteni hogy a hatékonyság / könnyebb programozás közül mit akarsz.
Delphi manapság nem túl népszerű, nagyon kevesen fejlesztenek benne
igen, a modern nyelvek jó része a C-ből ''származik'', érdemes megtanulni kicsit. Symbian az egy oprendszer, opengl meg sztem függvénykönyvtár (de ebben nem vagyok biztos).
64bites kód sztem a fordítón múlik igazán.
Kedvenc ide: Eclipse javához, visual studio c++-hoz és majd gondolom .nethez is -
sonar
addikt
Nem nagyon akartam új topicot nyitni, ezért inkább ide irom:
Kb 2 éve tanulok programozni teljesen autodidakta módon, különböző tutorokból
könyvekből... Annak idején a választás VisualBasic6 ra esett. Azt mondták nem
egy nehéz nyelv... A 2 év alatt elég sokmindent megtapasztaltam, megtanultam.
Olvasgattam a különböző programozó fórumokat és beszélgettem hozzá és hozzáértőnek
látszó emberekkel, hogy melyik programnyelvnek(fejlesztőkörnyezetnek) mégis mi
az előnye hátránya.
Eddigi tapasztalataim alapján a MS-VB6 egy nem rossz fejlesztőkörnyezet, ami
igazán hiányzik belőle NEKEM az a bitműveletek.
Csak hát itt vagyunk a 64bit küszöbén! És ez csak 32bites kódot generál,
ami mondjuk önmagában nem gond, csak akkor ha 64 bites alkalmazásból van meghívva.
(ugyanúgy mint ha 32 bites alkalmazásból hívunk 16bitest akkor az átkapcsolások
igen sokáig tartanak)
Gondolkodtam, hogy haladni kellene a korral és meg kellene tanulni valami másik
nyelvet (+fejlesztőkörnyezetet; nekem a környezet megismerése is eltart addig mint
a programnyelv megismerése)
Böngészgetem a netet és ugye van most ez a .NET láz. Olvastam róla jót rosszat.
De megmondva nem igazán értem az egészet. Ez a .NET framework elvileg olyan
mint a java virtual machine?. És .NET-en belül is van Basic, C# és még???
(ado, asp)
Ahogy olvastam és amiket leszürtem a C/C++ a legvagányabb nyelv.
Ebben elvileg mindent lehet!?
És akkor ott van még a Delphi. Abból láttam haverom Borlandos fejlesztőkörnyezetét
és megkérdeztem tőle, hogy mi ez a sok bisz basz? De igazából nem tudom
hogy mennyivel tud többett mint egy Basic (ha jól tudom akkor delphibe
lehet asm kódot beszurni, vb-be nem, csak vmi api-n keresztül cifrázva )
A C szintaktikáját elnézve nyerő lenne ha valamerre tovább akar lépni az ember
php, javascript, java, symbian, opengl - is mind nagyon hasonló, és majdnem minden
mikrovezérlőre is van C compiler.
A hosszú monológ után arra a kérdésre szeretnék többek között választ kapni, hogy
mivel lehet (most/majd) 64 bites kódot generálni?
Kinek melyik IDE jön be a legjobban?
Tapasztalatok vélemények az egyes progrmanyelvekkel kapcsolatban.
üdv sonar -
bdav
őstag
ebben van valami, de én mondjuk pont azt bírom a c++ ban hogy a lehetőséged megvan a ''kiskapukhoz''
persze ennek lehetnek hátrányai is -
cucka
addikt
-
doc
nagyúr
-
cucka
addikt
-
bdav
őstag
sziasztok!
elég láma kérdésem van
a C++-ban ugye létezik String osztály. hogyan kell szépen és szabályosan másolni egy stringet egy másikba? ha azt mondom hogy s=s2 akkor az s-be bemásolódik az s2 értéke, nekem nem kell figyelnem pointerekre, lefoglalt memóriaméretre, stb, ugye?
[Szerkesztve]hát ha írtak rá egy korrekt = operátort akkor igen. bevallom a beéíptett string osztályt nem használtam sokat. Írj magadnak az a tuti, vagy ott a char*

-
doc
nagyúr
meg még egy (eddig sima C-t használtam, na
)
hogy tudok (szintén Dev-Cpp, wxWidgets) a formom egy elemére hivatkozni?
pl. a form neve lapperFrm
van rajta egy Edit (a neve Text), ennek a tartalmát (a benne levő szöveget) szeretném megváltoztatni
így próbáltam:
lapperFrm->Text->SetValue(s);
de ezt mondja:
expected primary-expression before '->' token
és már az első -> -nél elhasalrájöttem

megy ez nekem
[Szerkesztve] -
doc
nagyúr
sziasztok!
elég láma kérdésem van
a C++-ban ugye létezik String osztály. hogyan kell szépen és szabályosan másolni egy stringet egy másikba? ha azt mondom hogy s=s2 akkor az s-be bemásolódik az s2 értéke, nekem nem kell figyelnem pointerekre, lefoglalt memóriaméretre, stb, ugye?
[Szerkesztve]meg még egy (eddig sima C-t használtam, na
)
hogy tudok (szintén Dev-Cpp, wxWidgets) a formom egy elemére hivatkozni?
pl. a form neve lapperFrm
van rajta egy Edit (a neve Text), ennek a tartalmát (a benne levő szöveget) szeretném megváltoztatni
így próbáltam:
lapperFrm->Text->SetValue(s);
de ezt mondja:
expected primary-expression before '->' token
és már az első -> -nél elhasal -
doc
nagyúr
sziasztok!
elég láma kérdésem van
a C++-ban ugye létezik String osztály. hogyan kell szépen és szabályosan másolni egy stringet egy másikba? ha azt mondom hogy s=s2 akkor az s-be bemásolódik az s2 értéke, nekem nem kell figyelnem pointerekre, lefoglalt memóriaméretre, stb, ugye?
[Szerkesztve] -
Pelmar Jasra
csendes tag
Hello én moddelezni szeretnék a Jedy academy nevü játékhoz skint késziteni csak az a problemam hogy nem találok olyan moddellezőt ami .gml kiterjesztésbe menti le a cuccot tudnátok segiteni hogy mi a progi neve?? THX

-
Mr-Pamacs
senior tag
''a pascal szerintem a turbo pascal 5.5(1989) ota objektum orientalt''
Hi!
Úgy is mondhatjuk. Helyesebb viszont úgy, hogy ''belehekkeltek'' valamit, hogy legyen benne az is... Tudom, próbálkoztam vele és muitán megismertem, hogy hogyan is kéne objektumorientáltan programozni, utána tűnt fel, mekkora szar...
Gondolom a Delphiben már megoldották, azt egyáltalán nem ismerem.
Üdv,
Mikey.Elég furi embőcke vagy. Az objektum orientál programozás az egyik legjobb dolog. Én már 11 éve programozok pár nyelvben irogattam már szép dolgokat, de nekem nagyon tetszik az objektumorientált programozás.Ha még Delphit sem használtál akkor ismerkedj meg vele! Nagyon jó dolgokat lehet benne alkotni és legalább elsajátítod a programozási elméletet.
-
Jester01
veterán
Ja, hogy devcpp volt a tettes, akkor nem szóltam

Mindesetre a system parancs használatától lehetőleg tartózkodni kell ha platformfüggetlen programot akar írni az ember. Ha meg nem platformfüggetlen, akkor meg tessék használni a megfelelő függvényeket/apikat és ne egy külső progit indítani (tipikus példa a pause és a cls).
Jelen esetre ez nyilván nem vonatkozik, ez csak az én áltános meglátásom. -
cucka
addikt
1. using namespace
C++ban lehetőség van névterek használatára, hogy a névütközést el lehessen kerülni. (namespace akarmi { ... } )
Az alap könyvtár az ''std'' névteret használja. Using nélkül pl. ki kellene írni mindenhol, hogy std::cout. A using használatával az adott névtér elemeire közvetlenül lehet hivatkozni. Bizonyos (tipikusan régebbi) fordítók nem támogatják a névtereket vagy pedig az std névteret automatikusan úgy kezelik mintha lenne rá using.
2. a main paraméterei
A main függvény helyes prototítpusa az int main(int argc, char *argv[]), ahol argc a parancsori argumentumok száma és argv az argumentumok tömbje. A 0. indexű elem tipikusan a program neve. A függvény visszatérési értéke pedig egy int ami egy tetszőleges kód, tipikusan 0 a sikeres lefutás jelzésére.
A void main() forma véletlenül működik, mivel a C hívási konvenció ezt lehetővé teszi. Ilyenkor a parancssor nem érdekes és a visszatérési érték pedig valami véletlen szám lesz. Használata nem javasolt, visszatérési értéket mindig célszerű megadni, ha pedig nem akarod használni a parancssort, akkor egy int main(int, char**) sorral ez korrekten megtehető.
3. cstdlib
Igen, ebben a C stdlib függvényei érhetők el, többek között a system is. (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.)
4. EXIT_SUCCESS
Ez egy előredefinált konstans a sikeres lefutás jelzésére (0). Lásd 2. pont.
MOD: hú de nagyon lassú voltam
[Szerkesztve](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. -
Lortech
addikt
1. using namespace
C++ban lehetőség van névterek használatára, hogy a névütközést el lehessen kerülni. (namespace akarmi { ... } )
Az alap könyvtár az ''std'' névteret használja. Using nélkül pl. ki kellene írni mindenhol, hogy std::cout. A using használatával az adott névtér elemeire közvetlenül lehet hivatkozni. Bizonyos (tipikusan régebbi) fordítók nem támogatják a névtereket vagy pedig az std névteret automatikusan úgy kezelik mintha lenne rá using.
2. a main paraméterei
A main függvény helyes prototítpusa az int main(int argc, char *argv[]), ahol argc a parancsori argumentumok száma és argv az argumentumok tömbje. A 0. indexű elem tipikusan a program neve. A függvény visszatérési értéke pedig egy int ami egy tetszőleges kód, tipikusan 0 a sikeres lefutás jelzésére.
A void main() forma véletlenül működik, mivel a C hívási konvenció ezt lehetővé teszi. Ilyenkor a parancssor nem érdekes és a visszatérési érték pedig valami véletlen szám lesz. Használata nem javasolt, visszatérési értéket mindig célszerű megadni, ha pedig nem akarod használni a parancssort, akkor egy int main(int, char**) sorral ez korrekten megtehető.
3. cstdlib
Igen, ebben a C stdlib függvényei érhetők el, többek között a system is. (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.)
4. EXIT_SUCCESS
Ez egy előredefinált konstans a sikeres lefutás jelzésére (0). Lásd 2. pont.
MOD: hú de nagyon lassú voltam
[Szerkesztve](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.)
Mosom kezeimet, a devc++ console app. projecthez alapból beillesztette, én meg lusta programozó lévén kaptam az alkalmon.
-
Jester01
veterán
na ugy tünik nem én voltam a lámi, leszedtem mindent (borland, decpp...) és letöltöttem a devcpp régebbi verzióját (rev. 4) és qvára működik minden!!!!

nem tudom mi lehetett a baj de amig egy forditóprogi mükszik addig boldog vagyok....
már csak pár dologra válaszoljatok légyszi, hogy tisztában legyek önmagammal és azzal amit csinálok...
ez a program tökéletesen lefut:
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
cout<< ''hello world\n'';
system(''PAUSE'');
return EXIT_SUCCESS;
}
de kihagyva részeket, átalakítva is is:
#include <cstdlib>
#include <iostream>
void main()
{
cout<< ''hello world\n'';
system(''PAUSE'');
}
akkor légyszi világosítsatok fel a következő dolgokban:
using namespace std;
mire jó?
int main(int argc, char *argv[])
a main 'hasában' lévő cucc mit jelent és miért lehet elhagyni?
#include <cstdlib>
gondolom ez tartalmazza a system(''pause'') parancsot pl, ami a press any key-t okozza bezárás előtt?
return EXIT_SUCCESS;
ez mit jelent?miért megy nélküle is?
ezeket az apróságokat légyszi korrigáljátok tudásomban, és akkor boldogan tanulhatom tovább a könyvemet...
előre is kössz1. using namespace
C++ban lehetőség van névterek használatára, hogy a névütközést el lehessen kerülni. (namespace akarmi { ... } )
Az alap könyvtár az ''std'' névteret használja. Using nélkül pl. ki kellene írni mindenhol, hogy std::cout. A using használatával az adott névtér elemeire közvetlenül lehet hivatkozni. Bizonyos (tipikusan régebbi) fordítók nem támogatják a névtereket vagy pedig az std névteret automatikusan úgy kezelik mintha lenne rá using.
2. a main paraméterei
A main függvény helyes prototítpusa az int main(int argc, char *argv[]), ahol argc a parancsori argumentumok száma és argv az argumentumok tömbje. A 0. indexű elem tipikusan a program neve. A függvény visszatérési értéke pedig egy int ami egy tetszőleges kód, tipikusan 0 a sikeres lefutás jelzésére.
A void main() forma véletlenül működik, mivel a C hívási konvenció ezt lehetővé teszi. Ilyenkor a parancssor nem érdekes és a visszatérési érték pedig valami véletlen szám lesz. Használata nem javasolt, visszatérési értéket mindig célszerű megadni, ha pedig nem akarod használni a parancssort, akkor egy int main(int, char**) sorral ez korrekten megtehető.
3. cstdlib
Igen, ebben a C stdlib függvényei érhetők el, többek között a system is. (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.)
4. EXIT_SUCCESS
Ez egy előredefinált konstans a sikeres lefutás jelzésére (0). Lásd 2. pont.
MOD: hú de nagyon lassú voltam
[Szerkesztve] -
Balux
tag
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]köszi szépen!
bár a main argomentumához most sem lettem közelebb de ez azért van mert a 30, oldalnál tartok első programozós könyvemből...
-
cucka
addikt
na ugy tünik nem én voltam a lámi, leszedtem mindent (borland, decpp...) és letöltöttem a devcpp régebbi verzióját (rev. 4) és qvára működik minden!!!!

nem tudom mi lehetett a baj de amig egy forditóprogi mükszik addig boldog vagyok....
már csak pár dologra válaszoljatok légyszi, hogy tisztában legyek önmagammal és azzal amit csinálok...
ez a program tökéletesen lefut:
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
cout<< ''hello world\n'';
system(''PAUSE'');
return EXIT_SUCCESS;
}
de kihagyva részeket, átalakítva is is:
#include <cstdlib>
#include <iostream>
void main()
{
cout<< ''hello world\n'';
system(''PAUSE'');
}
akkor légyszi világosítsatok fel a következő dolgokban:
using namespace std;
mire jó?
int main(int argc, char *argv[])
a main 'hasában' lévő cucc mit jelent és miért lehet elhagyni?
#include <cstdlib>
gondolom ez tartalmazza a system(''pause'') parancsot pl, ami a press any key-t okozza bezárás előtt?
return EXIT_SUCCESS;
ez mit jelent?miért megy nélküle is?
ezeket az apróságokat légyszi korrigáljátok tudásomban, és akkor boldogan tanulhatom tovább a könyvemet...
előre is kösszusing 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] -
Balux
tag
Itt valami telepítési probléma lett ...
Egyébként mint már említettem Cucka progija helyes, a te verziód az sajnos nem:
t.cpp:3: error: '::main' must return 'int'
t.cpp: In function 'int main()':
t.cpp:5: error: 'cout' was not declared in this scope
A könyvet nem kell kidobni, csak a using-ot kell mindig beírni, illetve a main függvényből int-et kell visszaadni.na ugy tünik nem én voltam a lámi, leszedtem mindent (borland, decpp...) és letöltöttem a devcpp régebbi verzióját (rev. 4) és qvára működik minden!!!!

nem tudom mi lehetett a baj de amig egy forditóprogi mükszik addig boldog vagyok....
már csak pár dologra válaszoljatok légyszi, hogy tisztában legyek önmagammal és azzal amit csinálok...
ez a program tökéletesen lefut:
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
cout<< ''hello world\n'';
system(''PAUSE'');
return EXIT_SUCCESS;
}
de kihagyva részeket, átalakítva is is:
#include <cstdlib>
#include <iostream>
void main()
{
cout<< ''hello world\n'';
system(''PAUSE'');
}
akkor légyszi világosítsatok fel a következő dolgokban:
using namespace std;
mire jó?
int main(int argc, char *argv[])
a main 'hasában' lévő cucc mit jelent és miért lehet elhagyni?
#include <cstdlib>
gondolom ez tartalmazza a system(''pause'') parancsot pl, ami a press any key-t okozza bezárás előtt?
return EXIT_SUCCESS;
ez mit jelent?miért megy nélküle is?
ezeket az apróságokat légyszi korrigáljátok tudásomban, és akkor boldogan tanulhatom tovább a könyvemet...
előre is kössz -
Balux
tag
Itt valami telepítési probléma lett ...
Egyébként mint már említettem Cucka progija helyes, a te verziód az sajnos nem:
t.cpp:3: error: '::main' must return 'int'
t.cpp: In function 'int main()':
t.cpp:5: error: 'cout' was not declared in this scope
A könyvet nem kell kidobni, csak a using-ot kell mindig beírni, illetve a main függvényből int-et kell visszaadni.mármint ez nem helyes?
#include <iostream>
void main(void)
{
cout <<''Hello World!'';
}
hát ez a gondom nekem is csak ez van a könyvben...
amugy most már semmilyen progit sem tudok lefordítani, tutorialokat olvasgatok neten
a borland is azt mondja linker error minden programra...
amúgy ha ennyi a megoldás
A könyvet nem kell kidobni, csak a using-ot kell mindig beírni, illetve a main függvényből int-et kell visszaadni.
akkor annak örülök, csak ne legyen több ilyen rész a könyvben ahol dolgokat másképp kell csinálni mert az ember magától nehezen jön rá
mindenesetre köszi a segítséget
de még ugyis leszek hisz még mindig nem szuperál a stuff...
-
Jester01
veterán
egy tutorial alpján sem sikerült lefordíttattnom a progit ([link])
ugyhogy nyomtam egy reinstallt, de sajna semmi sem változott
a Lortech féle progit sem sikerült lefordítani a köv. üzenet:
A megadott nevet (C:\DOCUME~1\n) a rendszer nem ismeri fel
bels‹ vagy kls‹ parancsk‚nt, futtathat˘ programk‚nt vagy k”tegf jlk‚nt.
A rendszer nem tal lja a megadott el‚r‚si utat.
make.exe: *** [main.obj] Error 1
Feladat befejezve
egyre jobban el vagyok keseredve
van egy kib. könyvem de abból nem lehet megtanulni a c++ alapjait
még linux alatt sem működne olyan formában mint amit legutóbb írtam
akkor kidobhatom a kukába a könyvet?
ráadásul a Lortech féle program felét nem is értem...
mondjatok nekem légyszi valami okosat, valahogy mindenki elkezdi!?Itt valami telepítési probléma lett ...
Egyébként mint már említettem Cucka progija helyes, a te verziód az sajnos nem:
t.cpp:3: error: '::main' must return 'int'
t.cpp: In function 'int main()':
t.cpp:5: error: 'cout' was not declared in this scope
A könyvet nem kell kidobni, csak a using-ot kell mindig beírni, illetve a main függvényből int-et kell visszaadni. -
Balux
tag
Csak a szokásos probléma: a fórummotor cseréli az idézőjelet két aposztrófra.
Vagyis Cucka példája jó, csak idézőjel kell. (gondolom copy&paste volt).
Ez linux alatt is ugyanez lenne (főleg mivel a devcpp gcc alapú ha jól tudom.)
MOD: Ha nem vagy linuxos, akkor miért Tux az avatarod? Mert aranyos?
Engem nem zavar, nyugodtan hagyhatod, csak mást sugall...
[Szerkesztve]igen télleg kopipészt volt

de sajna rendes idézőjelekkel sem megy...
a legelszomorítóbb az hogy akkor a chris jamsa könyvből tuti nem fok
megtanulni programozni mert egyszerűen nem úgy kell mint ami le van írva!!!
amugy kiskoromban egyszer a Bálu nevet a Scorched Earth-be (überállesz)
szarul ütöttem be él balux lett belőle, azóta ezen a néven kockulok, de még
sosem jutott eszembe a linux-fan csengése... -
Balux
tag
egy tutorial alpján sem sikerült lefordíttattnom a progit ([link])
ugyhogy nyomtam egy reinstallt, de sajna semmi sem változott
a Lortech féle progit sem sikerült lefordítani a köv. üzenet:
A megadott nevet (C:\DOCUME~1\n) a rendszer nem ismeri fel
bels‹ vagy kls‹ parancsk‚nt, futtathat˘ programk‚nt vagy k”tegf jlk‚nt.
A rendszer nem tal lja a megadott el‚r‚si utat.
make.exe: *** [main.obj] Error 1
Feladat befejezve
egyre jobban el vagyok keseredve
van egy kib. könyvem de abból nem lehet megtanulni a c++ alapjait
még linux alatt sem működne olyan formában mint amit legutóbb írtam
akkor kidobhatom a kukába a könyvet?
ráadásul a Lortech féle program felét nem is értem...
mondjatok nekem légyszi valami okosat, valahogy mindenki elkezdi!? -
Lortech
addikt
nem eszi meg!
arról nem is beszélve, hogy egy szót sem értek az újjonan beírt részekből!
ezek a bajai:
C:\Documents and Settings\n&b\Asztal\hello.cpp:5:8: empty character constant
C:\Documents and Settings\n&b\Asztal\hello.cpp: In function `int main(int, char**)':
C:\Documents and Settings\n&b\Asztal\hello.cpp:5: error: expected `;' before ''Hello''
C:\Documents and Settings\n&b\Asztal\hello.cpp:5:22: empty character constant
cout és std::cout-tal is!
Könyörgöm valaki mentsen meg!
honnan lehet megtanulni a win alatti c++ programozást!???
itt van elöttem egy könyv (témavezetőm adta, aszonta olvassam végig...)
: Chris Jamsa: c++
és még egy hello world-öt sem lehet belőle megírni mert a win-alatti
fordítóprogramok nem értik meg

Szerintetek mit csináljak?
Van olyan fordítóprogram ami szopakodás nélkül lefordít egy H.W-öt ilyen formában:
#include <iostream>
void main(void)
{
cout <<''Hello World!'';
}
ugyanis ez van a könyvben amiből tanulok, az lenne a legegyszerűbb
ha nem kéne átirogatni semmit, mert akkor ahogy haladok tovább a
tanulmányaimban sorra fognak jönni az újabb nem működő parancsok stb.
tegyek fel egy linuxot?
ott a fenti zokszó nélkül lefutna??
(ettől csak azért óckodom mert nincs perpill linux telepítőm, életemben nem raktam fel linuxot és használni is csak ritkán használtam....)M ost töltöttem le a legújabb dev c++-t.
új projekt, console application, és megy minden probléma nélkül:
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
cout<< ''hello world\n'';
system(''PAUSE'');
return EXIT_SUCCESS;
} -
Jester01
veterán
nem eszi meg!
arról nem is beszélve, hogy egy szót sem értek az újjonan beírt részekből!
ezek a bajai:
C:\Documents and Settings\n&b\Asztal\hello.cpp:5:8: empty character constant
C:\Documents and Settings\n&b\Asztal\hello.cpp: In function `int main(int, char**)':
C:\Documents and Settings\n&b\Asztal\hello.cpp:5: error: expected `;' before ''Hello''
C:\Documents and Settings\n&b\Asztal\hello.cpp:5:22: empty character constant
cout és std::cout-tal is!
Könyörgöm valaki mentsen meg!
honnan lehet megtanulni a win alatti c++ programozást!???
itt van elöttem egy könyv (témavezetőm adta, aszonta olvassam végig...)
: Chris Jamsa: c++
és még egy hello world-öt sem lehet belőle megírni mert a win-alatti
fordítóprogramok nem értik meg

Szerintetek mit csináljak?
Van olyan fordítóprogram ami szopakodás nélkül lefordít egy H.W-öt ilyen formában:
#include <iostream>
void main(void)
{
cout <<''Hello World!'';
}
ugyanis ez van a könyvben amiből tanulok, az lenne a legegyszerűbb
ha nem kéne átirogatni semmit, mert akkor ahogy haladok tovább a
tanulmányaimban sorra fognak jönni az újabb nem működő parancsok stb.
tegyek fel egy linuxot?
ott a fenti zokszó nélkül lefutna??
(ettől csak azért óckodom mert nincs perpill linux telepítőm, életemben nem raktam fel linuxot és használni is csak ritkán használtam....)Csak a szokásos probléma: a fórummotor cseréli az idézőjelet két aposztrófra.
Vagyis Cucka példája jó, csak idézőjel kell. (gondolom copy&paste volt).
Ez linux alatt is ugyanez lenne (főleg mivel a devcpp gcc alapú ha jól tudom.)
MOD: Ha nem vagy linuxos, akkor miért Tux az avatarod? Mert aranyos?
Engem nem zavar, nyugodtan hagyhatod, csak mást sugall...
[Szerkesztve] -
Balux
tag
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]nem eszi meg!
arról nem is beszélve, hogy egy szót sem értek az újjonan beírt részekből!
ezek a bajai:
C:\Documents and Settings\n&b\Asztal\hello.cpp:5:8: empty character constant
C:\Documents and Settings\n&b\Asztal\hello.cpp: In function `int main(int, char**)':
C:\Documents and Settings\n&b\Asztal\hello.cpp:5: error: expected `;' before ''Hello''
C:\Documents and Settings\n&b\Asztal\hello.cpp:5:22: empty character constant
cout és std::cout-tal is!
Könyörgöm valaki mentsen meg!
honnan lehet megtanulni a win alatti c++ programozást!???
itt van elöttem egy könyv (témavezetőm adta, aszonta olvassam végig...)
: Chris Jamsa: c++
és még egy hello world-öt sem lehet belőle megírni mert a win-alatti
fordítóprogramok nem értik meg

Szerintetek mit csináljak?
Van olyan fordítóprogram ami szopakodás nélkül lefordít egy H.W-öt ilyen formában:
#include <iostream>
void main(void)
{
cout <<''Hello World!'';
}
ugyanis ez van a könyvben amiből tanulok, az lenne a legegyszerűbb
ha nem kéne átirogatni semmit, mert akkor ahogy haladok tovább a
tanulmányaimban sorra fognak jönni az újabb nem működő parancsok stb.
tegyek fel egy linuxot?
ott a fenti zokszó nélkül lefutna??
(ettől csak azért óckodom mert nincs perpill linux telepítőm, életemben nem raktam fel linuxot és használni is csak ritkán használtam....) -
cucka
addikt
segítsetek légyszi c++ -t fordítani!
mega kezdő vagyok, és win-alatt elkezdtem (elkezdeném) tanulni a c++ -t
de egy hello world-öt se tuttam még megcsinálni
linuxban fordítottam már le progit, halál egyszerű volt, zsirul ment
de nem akarok itthonra linuxot felrakni...
na eddig egy lerakat fordítóprogramot kipróbáltam, egyikkel sem jutottam düllőre
de leirom a gondjaim azokkal kapcsolatban amiket fennhagytam a gépen:
devcpp:
#include <iostream.h>
void main(void)
{
cout << ''Hello World!'';
}
ezt képtelen volt lefordítani, a következő problémái voltak
-void main() must be int----->ezt áthidaltam azzal hogy
int main() majd a végén return 0
ez eddig rendben, de nem értem mért nem volt jó neki void main-nel...
-másik gondja az volt hogy nem akarta betölteni az iostreamet
azt irta ki hogy a .h-t el kell hagyni a végéről, igy sem ment aztán
egy külföldi forumon ugy értettem hogy nagybetűvel kell irni az include
fileokat, megtettem de ez is csak akkor működött ha .H-t kitettem a végére...
bár kinok közt de orvosoltam a problémákat, amik elég szőrszálhasogató
dolgok voltak, és nem is voltak egyértelműek, de mindegy, megoldottam
az így keletkezett programot:
#include <IOSTREAM.H>
int main(void)
{
cout << ''Hello World!\n'';
return 0;
}
már lefordította, éjjen, de az alkalmazást futtatva
fekete 'dosos' képernyő jött csak fel, semmit helló world kiirás
borland
az előző szőrőzésekkel, és anélkül is sikerült lefordítani vele
de ugyanúgy fekete képernyő jelenik meg az exe-filet futtatva...
cygwin, digital mars
ezeket egyszerűen képtelen vagyok használni, de ez nem is lenne ba csak
pont ezek az egyszerűbb programok lennének jók a kezdő embereknek...
visual c++
hát ezt fél óra szenvedés után olyan gyorsan letöröltem ahoogy tudtam
mindent egybevetve szeretnék továbblépni programozás ügyben de nem
tudok addig amig egy értelmesen lefutó hello world-öt sem vagyok képes készíteni
légyszi segítsetek
köszi előre isdevcpp í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] -
Balux
tag
segítsetek légyszi c++ -t fordítani!
mega kezdő vagyok, és win-alatt elkezdtem (elkezdeném) tanulni a c++ -t
de egy hello world-öt se tuttam még megcsinálni
linuxban fordítottam már le progit, halál egyszerű volt, zsirul ment
de nem akarok itthonra linuxot felrakni...
na eddig egy lerakat fordítóprogramot kipróbáltam, egyikkel sem jutottam düllőre
de leirom a gondjaim azokkal kapcsolatban amiket fennhagytam a gépen:
devcpp:
#include <iostream.h>
void main(void)
{
cout << ''Hello World!'';
}
ezt képtelen volt lefordítani, a következő problémái voltak
-void main() must be int----->ezt áthidaltam azzal hogy
int main() majd a végén return 0
ez eddig rendben, de nem értem mért nem volt jó neki void main-nel...
-másik gondja az volt hogy nem akarta betölteni az iostreamet
azt irta ki hogy a .h-t el kell hagyni a végéről, igy sem ment aztán
egy külföldi forumon ugy értettem hogy nagybetűvel kell irni az include
fileokat, megtettem de ez is csak akkor működött ha .H-t kitettem a végére...
bár kinok közt de orvosoltam a problémákat, amik elég szőrszálhasogató
dolgok voltak, és nem is voltak egyértelműek, de mindegy, megoldottam
az így keletkezett programot:
#include <IOSTREAM.H>
int main(void)
{
cout << ''Hello World!\n'';
return 0;
}
már lefordította, éjjen, de az alkalmazást futtatva
fekete 'dosos' képernyő jött csak fel, semmit helló world kiirás
borland
az előző szőrőzésekkel, és anélkül is sikerült lefordítani vele
de ugyanúgy fekete képernyő jelenik meg az exe-filet futtatva...
cygwin, digital mars
ezeket egyszerűen képtelen vagyok használni, de ez nem is lenne ba csak
pont ezek az egyszerűbb programok lennének jók a kezdő embereknek...
visual c++
hát ezt fél óra szenvedés után olyan gyorsan letöröltem ahoogy tudtam
mindent egybevetve szeretnék továbblépni programozás ügyben de nem
tudok addig amig egy értelmesen lefutó hello world-öt sem vagyok képes készíteni
légyszi segítsetek
köszi előre is -
bdav
őstag
-
Norbo03
őstag
Hali!
Nem tudnátok olyan oldalt mondani ahol pascal-hoz vannak gyakorló feladatok külön minden részhez? Előre is köszike mindenkinek!
-
orbano
félisten
megint én!
nem tudok 2147483647 -nél nagyobb változót létrehozni.
forrás:
#include <stdio.h>
#include <limits.h>
/*#include <math.h>*/
int main(){
long int a;
printf(''long int max.: %11d\n'', LONG_MAX);
printf(''long long int max.: %11d\n'', LLONG_MAX);
a = 2147483647;
}
fordítás:
forest@forest-gep:~/prohardver$ gcc kerdes.c -std=c99
forest@forest-gep:~/prohardver$ ./a.out
long int max.: 2147483647
long long int max.: -1
forest@forest-gep:~/prohardver$
ha az 'a' értékét növelem átugrik negatívba, vagy hibás értékeket ad ki vagy le se lehet fordítani.
Persze ha az 'a'-t long long int -re változtatom az se segít.
Hogy tudok nagyobb változót létrehozni/használni/lefordítani ?
Előre is köszi minden segítséget!használj double-t, egész jó

-
orbano
félisten
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]mondjuk prímszámok keresése?
valahol a tízezer számjegyes nagyságrendben mozognak az eddigi legnagyobbak azt hiszem. ráadásul ha ezzel még kódolni is akarsz... 
de nagyon sok tudományos számításhoz is jól jönnek az extra nagy/pontos számok. ide pedig a string elég marharépe dolog, mert pazarolja a helyet és lassú vele számolni
-
bdav
őstag
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).javaban van BigInteger osztály, onnan lehet lopni az ötleteket
amugy ezzel az osztállyal már relative könnyen lehetne rsa-t implementálni (ha gyors a modpow amit csináltak benne), ha lesz időm meg kedvem meg is csinálom
(persze h. használható cucc legyen belőle az lényegesen több meló)
ugyanakkor c++ ban sokkal kényelmesebb, ha egyszer megvan a bigintegered, az operator overload miatt (ez hiányzik nekem igazán a javaból)
[Szerkesztve] -
cucka
addikt
uh, ezt a long long típust csúnyán benéztem..

-
Forest_roby
őstag
Bocs a sok egymás utáni hozászólások miatt, de már egyiknél se tudtam módosítani a régit!
Javítanom kell!
#1860 #1863 #1864 --->
mindenhol a bit helyet bájt-ot kellett volna írnom!
8 bájt-ot vagy 64 bit-et
tiszta égés!

-
Forest_roby
őstag
-
Forest_roby
őstag
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]szerintem van olyan, hogy 'long long int'!
#include <stdio.h>
#include <limits.h>
#include <stdlib.h>
int main(){
printf(''long long int %d bit\n'', sizeof(long long int) );
}
fordítás:
forest@forest-gep:~/prohardver$ ./a.out
long long int 8 bit
forest@forest-gep:~/prohardver$
próbáld ki! -
Forest_roby
őstag
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]egyébként meg milyen feladat az, amelyiknek nem elég a long?
Végre volt időm és megcsináltam azt a progit, amelyik príményezőire bontja a számokat. A gond az, hogy a ''23 jegyű rettenetes kolbász'' tul nagy neki. Persz beérném 8 bittel is. -
Jester01
veterán
megint én!
nem tudok 2147483647 -nél nagyobb változót létrehozni.
forrás:
#include <stdio.h>
#include <limits.h>
/*#include <math.h>*/
int main(){
long int a;
printf(''long int max.: %11d\n'', LONG_MAX);
printf(''long long int max.: %11d\n'', LLONG_MAX);
a = 2147483647;
}
fordítás:
forest@forest-gep:~/prohardver$ gcc kerdes.c -std=c99
forest@forest-gep:~/prohardver$ ./a.out
long int max.: 2147483647
long long int max.: -1
forest@forest-gep:~/prohardver$
ha az 'a' értékét növelem átugrik negatívba, vagy hibás értékeket ad ki vagy le se lehet fordítani.
Persze ha az 'a'-t long long int -re változtatom az se segít.
Hogy tudok nagyobb változót létrehozni/használni/lefordítani ?
Előre is köszi minden segítséget!Veszel egy 64 bites procit

MOD: hopp, tévedésben vagyok. A (nem létezõ
) long long int mûködik 32 bites gépen is. Neked csak annyi baj volt, hogy a kiírásban nem %lld formátumot használtál.
[Szerkesztve] -
cucka
addikt
Először is köszi a segítséget!
-------------------------------------------
további kérdések:
A long long int ( 8 bit ) már jó lenne, de nem tudom használni. Miért?
ill.
Ha nem lehet, hát jó! Hol tudok erről: ''(string-ben tárolod a számokat, megírod rá a műveleteket vagy operátorokat (c++), satöbbi)'' többet olvasni, tájékozódni?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] -
Forest_roby
őstag
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).Először is köszi a segítséget!
-------------------------------------------
további kérdések:
A long long int ( 8 bit ) már jó lenne, de nem tudom használni. Miért?
ill.
Ha nem lehet, hát jó! Hol tudok erről: ''(string-ben tárolod a számokat, megírod rá a műveleteket vagy operátorokat (c++), satöbbi)'' többet olvasni, tájékozódni? -
cucka
addikt
megint én!
nem tudok 2147483647 -nél nagyobb változót létrehozni.
forrás:
#include <stdio.h>
#include <limits.h>
/*#include <math.h>*/
int main(){
long int a;
printf(''long int max.: %11d\n'', LONG_MAX);
printf(''long long int max.: %11d\n'', LLONG_MAX);
a = 2147483647;
}
fordítás:
forest@forest-gep:~/prohardver$ gcc kerdes.c -std=c99
forest@forest-gep:~/prohardver$ ./a.out
long int max.: 2147483647
long long int max.: -1
forest@forest-gep:~/prohardver$
ha az 'a' értékét növelem átugrik negatívba, vagy hibás értékeket ad ki vagy le se lehet fordítani.
Persze ha az 'a'-t long long int -re változtatom az se segít.
Hogy tudok nagyobb változót létrehozni/használni/lefordítani ?
Előre is köszi minden segítséget!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). -
Forest_roby
őstag
megint én!
nem tudok 2147483647 -nél nagyobb változót létrehozni.
forrás:
#include <stdio.h>
#include <limits.h>
/*#include <math.h>*/
int main(){
long int a;
printf(''long int max.: %11d\n'', LONG_MAX);
printf(''long long int max.: %11d\n'', LLONG_MAX);
a = 2147483647;
}
fordítás:
forest@forest-gep:~/prohardver$ gcc kerdes.c -std=c99
forest@forest-gep:~/prohardver$ ./a.out
long int max.: 2147483647
long long int max.: -1
forest@forest-gep:~/prohardver$
ha az 'a' értékét növelem átugrik negatívba, vagy hibás értékeket ad ki vagy le se lehet fordítani.
Persze ha az 'a'-t long long int -re változtatom az se segít.
Hogy tudok nagyobb változót létrehozni/használni/lefordítani ?
Előre is köszi minden segítséget! -
Forest_roby
őstag
Hi!
A fentiekben írt prímes progit most próbáltam lefordítani Linux alatt és ezt a hibaüzenetet írta ki:
forest@forest-gep:~/Desktop/programok_modositott/prim$ gcc prim.c
/tmp/ccobEY1w.o: In function `main':
prim.c
.text+0x63): undefined reference to `sqrt'
collect2: ld returned 1 exit status
Nem tudjátok mi lehet a baj? A math.h include -olva van.okay
hülye vagyok! : (
fordítás: gcc -lm prog.c -
Forest_roby
őstag
Hi!
A fentiekben írt prímes progit most próbáltam lefordítani Linux alatt és ezt a hibaüzenetet írta ki:
forest@forest-gep:~/Desktop/programok_modositott/prim$ gcc prim.c
/tmp/ccobEY1w.o: In function `main':
prim.c
.text+0x63): undefined reference to `sqrt'
collect2: ld returned 1 exit status
Nem tudjátok mi lehet a baj? A math.h include -olva van. -
L_ajos
őstag
Sziasztok!
Olyan kérdésem lenne (leszögezem nem vagyok programozó szal ne fikázzatok
) hogy SMF (simple machines forum) alá lehetne-e rakni egy OFF gombot. Ugy mint pölö itt a PH!-n is van. Valami ilyat tudtam meg hogy azt kell kideríteni hogy az OFF támogatja e a CCS-t. De sajna hülye vagyok hozzá. A lényeg hogy egy elválasztó színt takarjon ha valaki posta offot akar írni (szürke) és esetleg egy ''dobozban'' jelenjen meg (mint a quote).
Ha valaki érti a halandzsámat és tudna segíteni az a adataimnál megtalálja az MSN címem, talán az az egyszerübb
Köszönöm előreis!
-
cucka
addikt
-
shev7
veterán
telleg kiszamolja, csak binarissa nem tudja atalakitani

-
Forest_roby
őstag
még mindig nagyon elmarad az 1024 bit-től!
-
cucka
addikt
kezel nagyobbat is, kipróbáltam (2^90-et kiszámolja). gondolom szövegként kezeli a túl hosszú számokat, és úgy gyakorlatilag bármekkora számmal lehet dolgozni.
egyébként a Forest_roby által írt szám 76 biten ábrázolható. (ha jól számoltam)
[Szerkesztve] -
shev7
veterán
Az 1024-2048 bit egy kicsit tul nagy. Kitüztem magam elé egy kisebb célt. Megpróbálom a primtényezőire felbontani ezt a számot:
62484751362947029755811 (23bit
)
--\ de majd otthon \--
--\\ valszeg nem fog sikerülni, ha nem feltételezem, hogy nem prím \\--ez nem 23 bites szam

A legnagyobb szam a windows szamologepe kezel az 64 bites. Erteke: 18446744073709551615 -
Forest_roby
őstag
jovanna, tom!
valamiért azt hittem tizes számrendszerről beszélünk -
cucka
addikt
23 biten lehet ábrázolni 10-es számrendszerben, 2-ben nyilván sokkal több.
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] -
Forest_roby
őstag
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]23 biten lehet ábrázolni 10-es számrendszerben, 2-ben nyilván sokkal több.
-
cucka
addikt
Lehet, hogy én is hülyeséget írok ide, de innen a prímtényezős felbontás már csak 1 lépés.
1245234634567453451 ---> megnézed, hogy prím -e, ha nem megkeresed az első osztóját, elosztod és vissza az elejére....
megnézed, hogy prím -e, ha nem megkeresed az második osz.........
....
....
és a végére megvan a prímtényezős felbontás. ( meg is csinálom )
\bár ezt csak a gyökös módszerrel lehet csinálni, a szita nem erre jó\
Sztem az RSA nak az a titka, hogy gigantikusan nagy prímeket használnak ( és vagy azok szorzatát ). Persze ezt úgy kell elképzelni, hogy a számjegyek száma milliós nagyságrendű. A long long int elbújhat mellette. : )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] -
Forest_roby
őstag
Az 1024-2048 bit egy kicsit tul nagy. Kitüztem magam elé egy kisebb célt. Megpróbálom a primtényezőire felbontani ezt a számot:
62484751362947029755811 (23bit
)
--\ de majd otthon \--
--\\ valszeg nem fog sikerülni, ha nem feltételezem, hogy nem prím \\-- -
shev7
veterán
biztos igazad van, nem kételkedek!
Nem nekem van igazam, hanem azoknak, akik az RSA-t kitalaltak

-
VladimirR
nagyúr
elege zavaro, mikor a [i] tombindexek a ph motor miatt eltunnek, ugyhogy csinaltam egy aprosagot, ami ezt kikuszoboli
lustasagom miatt egyelore csak ie ala irtam meg es csak a [i] tag-eket csereli, de ha van ra igeny megcsinalom bugroka es opera ala esetleg mas kodokkal is
telepitesehez csak le kell tolteni, kicsomagolni, es elinditani az install.bat-ot
hasznalatahoz a mar megirt hozzaszolasablakon jobbklikk es ph kodatalakito menupont
Bovebben: [link] -
Forest_roby
őstag
Meg ahogy azt moricka elkepzeli

Utananeztem, jol emlekeztem. Valasztasz ket nagy prim szamot. A ket prim szorzata lesz a nyilvanos kulcs egyik fele. Ha ezt felbontani primtenyezokre olyan egyszeru lenne, akkor torheto lenne az RSA. Csakhogy: ''No polynomial-time method for factoring large integers on a classical computer has yet been found'' Ha a programodat nekiereszted egy altalam valasztott ket ~100 jegyu prim szorzatanak, es megmondod a primtenyezosfelbontasat, akkor mar jo uton haladsz
Egy erdekes adat a wikipediarol: ''As of 2005, the largest number factored by general-purpose methods was 663 bits long, using state-of-the-art distributed methods. RSA keys are typically 1024–2048 bits long.''
[Szerkesztve]biztos igazad van, nem kételkedek!
-
shev7
veterán
Lehet, hogy én is hülyeséget írok ide, de innen a prímtényezős felbontás már csak 1 lépés.
1245234634567453451 ---> megnézed, hogy prím -e, ha nem megkeresed az első osztóját, elosztod és vissza az elejére....
megnézed, hogy prím -e, ha nem megkeresed az második osz.........
....
....
és a végére megvan a prímtényezős felbontás. ( meg is csinálom )
\bár ezt csak a gyökös módszerrel lehet csinálni, a szita nem erre jó\
Sztem az RSA nak az a titka, hogy gigantikusan nagy prímeket használnak ( és vagy azok szorzatát ). Persze ezt úgy kell elképzelni, hogy a számjegyek száma milliós nagyságrendű. A long long int elbújhat mellette. : )Meg ahogy azt moricka elkepzeli

Utananeztem, jol emlekeztem. Valasztasz ket nagy prim szamot. A ket prim szorzata lesz a nyilvanos kulcs egyik fele. Ha ezt felbontani primtenyezokre olyan egyszeru lenne, akkor torheto lenne az RSA. Csakhogy: ''No polynomial-time method for factoring large integers on a classical computer has yet been found'' Ha a programodat nekiereszted egy altalam valasztott ket ~100 jegyu prim szorzatanak, es megmondod a primtenyezosfelbontasat, akkor mar jo uton haladsz
Egy erdekes adat a wikipediarol: ''As of 2005, the largest number factored by general-purpose methods was 663 bits long, using state-of-the-art distributed methods. RSA keys are typically 1024–2048 bits long.''
[Szerkesztve] -
Forest_roby
őstag
nem. Arra, hogy adott szam prim-e. Eleg gyorsan nagy valoszinuseggel (99%) valaszt tudunk mondani. Az RSAnak szerintem az az alapja, hogy ha van egy szamod, ami ''nagy'' primszamok szorzata, akkor a szorzotenyezok eloallitasa nehez feladat.
(egyebkent most lehet, hogy total hulyeseget mondtam, de majd utananezek, vagy megcafolja valaki
)Lehet, hogy én is hülyeséget írok ide, de innen a prímtényezős felbontás már csak 1 lépés.
1245234634567453451 ---> megnézed, hogy prím -e, ha nem megkeresed az első osztóját, elosztod és vissza az elejére....
megnézed, hogy prím -e, ha nem megkeresed az második osz.........
....
....
és a végére megvan a prímtényezős felbontás. ( meg is csinálom )
\bár ezt csak a gyökös módszerrel lehet csinálni, a szita nem erre jó\
Sztem az RSA nak az a titka, hogy gigantikusan nagy prímeket használnak ( és vagy azok szorzatát ). Persze ezt úgy kell elképzelni, hogy a számjegyek száma milliós nagyságrendű. A long long int elbújhat mellette. : ) -
Coyot
őstag
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]hát meggyűlik az ember baja a fórummotorral
,de látom azért érthető volt. -
Forest_roby
őstag
Naszóval, az Eratoszthenész szita. lényege h egy K korlátig előállítja az összes prímszámot, mégpedig ugy h kilövi az összes prímszám többszöröseit, előről haladva K-ig.
Nem garantálom, h műxik majd, már nem kell tudnom C-be progzani
, javaslom értsd meg inkább és progizd le, a működése nagyon egyszerű.
for(i=2;i<=k;i++)
{
a=1;
}
p=2;
/*szita*/
while(p<=k)
{
if(a[p])
{
i=2*p;
while(i<=k)
{
a=0;
i=i+p;
}
p=p+1;
}
/*kiirás*/
for(i=2;i<=k;i++){
if(a) printf(''%d'',i);
}
mod.: kicsit rondábban rakta be mint ahogy vártam, remélem azért érthető.
[Szerkesztve]Bár már nekem is megvan, azért köszi! Tényleg jó ötlet volt.
ui.: a szitában feleslegesen sokszor nullázol ki számokat ( már ha jól értem a progidat ). Elég a tomb feléig keresni a primeket és a többszörökűket kinullázni mert akkor már biztos, hogy a megmaradt számok a tombben primek. -
Forest_roby
őstag
Látom lassú volta.

Én is megcsináltam, ma fél 1 -kor fejeztem be.
forrás:
#include <stdio.h>
/*#include <stdlib.h>*/
/*#include <math.h>*/
main(){
int n;
int k;
int lepteto;
int tomb[ 100000 ];
for(n=0;n<(sizeof(tomb)/sizeof(int));n++){
tomb[ n ] = n + 2;
}/* Tomb feltoltese! */
for(n=0;n<((sizeof(tomb)/sizeof(int))/2);n++){
lepteto = tomb[ n ];
k=n;
for(k; tomb[ n ] != 0 & (k+lepteto)<=(sizeof(tomb)/sizeof(int)); k=k+lepteto){
tomb[ k+lepteto ] = 0;
}
}/* kinullazas! Elég a tomb feleig. */
for(n=0;n<(sizeof(tomb)/sizeof(int));n++){
if( tomb[ n ] != 0 ){
printf(''%d\n'',tomb[ n ]);
}
}/* kiiratas! */
getchar();
} -
shev7
veterán
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]nem. Arra, hogy adott szam prim-e. Eleg gyorsan nagy valoszinuseggel (99%) valaszt tudunk mondani. Az RSAnak szerintem az az alapja, hogy ha van egy szamod, ami ''nagy'' primszamok szorzata, akkor a szorzotenyezok eloallitasa nehez feladat.
(egyebkent most lehet, hogy total hulyeseget mondtam, de majd utananezek, vagy megcafolja valaki
) -
cucka
addikt
Naszóval, az Eratoszthenész szita. lényege h egy K korlátig előállítja az összes prímszámot, mégpedig ugy h kilövi az összes prímszám többszöröseit, előről haladva K-ig.
Nem garantálom, h műxik majd, már nem kell tudnom C-be progzani
, javaslom értsd meg inkább és progizd le, a működése nagyon egyszerű.
for(i=2;i<=k;i++)
{
a=1;
}
p=2;
/*szita*/
while(p<=k)
{
if(a[p])
{
i=2*p;
while(i<=k)
{
a=0;
i=i+p;
}
p=p+1;
}
/*kiirás*/
for(i=2;i<=k;i++){
if(a) printf(''%d'',i);
}
mod.: kicsit rondábban rakta be mint ahogy vártam, remélem azért érthető.
[Szerkesztve]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] -
Coyot
őstag
Érdekel!

Xpod:
egy számot a gyökéig kell vizsgálni, egy szám legnagyobb 'prím' osztója nem lehet nagyobb mint a szám gyöke, ha a gyökéig nem találsz osztót, akkor prím!
pl: 35. gyöke 5.91. Bár 5,91-nél is van nagyobb prím osztója, 7, de már előtte el tudtuk osztani 5-el. ---> köv.: 35 nem prím
pl2: 37. gyöke: 6,08. 6,08-nál kisebb prímek: 2,3,5 --> egyikkel se osztható, tehát prím!
( azért fontos, hogy az osztó prím legyen, mert ha nem prím, akkor felbontható prímekre és találunk kisebb osztót is! )
[Szerkesztve]Naszóval, az Eratoszthenész szita. lényege h egy K korlátig előállítja az összes prímszámot, mégpedig ugy h kilövi az összes prímszám többszöröseit, előről haladva K-ig.
Nem garantálom, h műxik majd, már nem kell tudnom C-be progzani
, javaslom értsd meg inkább és progizd le, a működése nagyon egyszerű.
for(i=2;i<=k;i++)
{
a=1;
}
p=2;
/*szita*/
while(p<=k)
{
if(a[p])
{
i=2*p;
while(i<=k)
{
a=0;
i=i+p;
}
p=p+1;
}
/*kiirás*/
for(i=2;i<=k;i++){
if(a) printf(''%d'',i);
}
mod.: kicsit rondábban rakta be mint ahogy vártam, remélem azért érthető.
[Szerkesztve] -
cucka
addikt
Jut eszembe a kérdés. Hogy célszerű a futási időt mérni?
(stopperrel nem a legjobb)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] -
Forest_roby
őstag
Én ezt ajánlom kezdőknek:
Unix - GNU/Linux Programozás C nyelven ( Pere László)
[link] -
Asmarat
csendes tag
Sziasztok!
Volna-e valami ötletetek, hogy hol tudnék hozzájutni az 1978-ban megjelent Kernigham és Ritchie által írt ''The C Programming language'' c. könyvhöz. Vagy tudnátok-e ajánlani mást a C nyelvvel kapcsolatban?
-
Xpod
addikt
Érdekel!

Xpod:
egy számot a gyökéig kell vizsgálni, egy szám legnagyobb 'prím' osztója nem lehet nagyobb mint a szám gyöke, ha a gyökéig nem találsz osztót, akkor prím!
pl: 35. gyöke 5.91. Bár 5,91-nél is van nagyobb prím osztója, 7, de már előtte el tudtuk osztani 5-el. ---> köv.: 35 nem prím
pl2: 37. gyöke: 6,08. 6,08-nál kisebb prímek: 2,3,5 --> egyikkel se osztható, tehát prím!
( azért fontos, hogy az osztó prím legyen, mert ha nem prím, akkor felbontható prímekre és találunk kisebb osztót is! )
[Szerkesztve]Igaz, erről el is felejtkeztem.

-
cucka
addikt
Jut eszembe a kérdés. Hogy célszerű a futási időt mérni?
(stopperrel nem a legjobb)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. -
Forest_roby
őstag
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.Jut eszembe a kérdés. Hogy célszerű a futási időt mérni?
(stopperrel nem a legjobb) -
cucka
addikt
Teljes mértékben igazad van!
Így sokkal gyorsabb. ( csomo cikluslefutást megsporol )
Azt hiszem erre gondoltál:
#include <stdio.h>
/*#include <stdlib.h>*/
#include <math.h>
main(){
int a,b;
a = 2;
b = 2;
for(a=2; a <= 1000000; a++){
float x = a;
float xgyok = sqrt(x);
for(b=2; a>=b; b++){
if( (a%b) > 0 ){
if( b >= xgyok & b < (xgyok+1) ){
printf(''%d\n'', a);
break;
}
}else break;
}
}
getchar();
}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. -
shev7
veterán
Teljes mértékben igazad van!
Így sokkal gyorsabb. ( csomo cikluslefutást megsporol )
Azt hiszem erre gondoltál:
#include <stdio.h>
/*#include <stdlib.h>*/
#include <math.h>
main(){
int a,b;
a = 2;
b = 2;
for(a=2; a <= 1000000; a++){
float x = a;
float xgyok = sqrt(x);
for(b=2; a>=b; b++){
if( (a%b) > 0 ){
if( b >= xgyok & b < (xgyok+1) ){
printf(''%d\n'', a);
break;
}
}else break;
}
}
getchar();
}pontosan erre gondoltam

-
Forest_roby
őstag
if( (a%b) > 0 ){
if( b >= sqrt(x) & b < (sqrt(x)+1) ) printf(''%d\n'', a);
}else break;
en ezt itt nem teljesen ertem. Megnezed, hogy a maradek nagyobb-e mint nulla. Ha nem akkor break, ez vilagos. De ha nem nulla, akkor hogy gyoknel nagyobb-e. Ez is ok. De itt nem kene kilepni a kiiratas utan? Es akkor a for-ciklusban mindegy, hogy meddig szamolsz b-vel...Teljes mértékben igazad van!
Így sokkal gyorsabb. ( csomo cikluslefutást megsporol )
Azt hiszem erre gondoltál:
#include <stdio.h>
/*#include <stdlib.h>*/
#include <math.h>
main(){
int a,b;
a = 2;
b = 2;
for(a=2; a <= 1000000; a++){
float x = a;
float xgyok = sqrt(x);
for(b=2; a>=b; b++){
if( (a%b) > 0 ){
if( b >= xgyok & b < (xgyok+1) ){
printf(''%d\n'', a);
break;
}
}else break;
}
}
getchar();
} -
shev7
veterán
''.... egy szám legnagyobb 'prím' osztója nem lehet nagyobb mint....''
javítás:
''.... egy szám legelső 'prím' osztója nem lehet nagyobb mint....''if( (a%b) > 0 ){
if( b >= sqrt(x) & b < (sqrt(x)+1) ) printf(''%d\n'', a);
}else break;
en ezt itt nem teljesen ertem. Megnezed, hogy a maradek nagyobb-e mint nulla. Ha nem akkor break, ez vilagos. De ha nem nulla, akkor hogy gyoknel nagyobb-e. Ez is ok. De itt nem kene kilepni a kiiratas utan? Es akkor a for-ciklusban mindegy, hogy meddig szamolsz b-vel... -
Forest_roby
őstag
Érdekel!

Xpod:
egy számot a gyökéig kell vizsgálni, egy szám legnagyobb 'prím' osztója nem lehet nagyobb mint a szám gyöke, ha a gyökéig nem találsz osztót, akkor prím!
pl: 35. gyöke 5.91. Bár 5,91-nél is van nagyobb prím osztója, 7, de már előtte el tudtuk osztani 5-el. ---> köv.: 35 nem prím
pl2: 37. gyöke: 6,08. 6,08-nál kisebb prímek: 2,3,5 --> egyikkel se osztható, tehát prím!
( azért fontos, hogy az osztó prím legyen, mert ha nem prím, akkor felbontható prímekre és találunk kisebb osztót is! )
[Szerkesztve]''.... egy szám legnagyobb 'prím' osztója nem lehet nagyobb mint....''
javítás:
''.... egy szám legelső 'prím' osztója nem lehet nagyobb mint....'' -
Forest_roby
őstag
Érdekel!

Xpod:
egy számot a gyökéig kell vizsgálni, egy szám legnagyobb 'prím' osztója nem lehet nagyobb mint a szám gyöke, ha a gyökéig nem találsz osztót, akkor prím!
pl: 35. gyöke 5.91. Bár 5,91-nél is van nagyobb prím osztója, 7, de már előtte el tudtuk osztani 5-el. ---> köv.: 35 nem prím
pl2: 37. gyöke: 6,08. 6,08-nál kisebb prímek: 2,3,5 --> egyikkel se osztható, tehát prím!
( azért fontos, hogy az osztó prím legyen, mert ha nem prím, akkor felbontható prímekre és találunk kisebb osztót is! )
[Szerkesztve] -
Coyot
őstag
hi!
Van egy nem tul kifinomult, de működő progim primek kiszámolására. Gondoltam gyorsítok rajta egy kicsit, de ellenkező hatást értem el. Minnél nagyobb a prim annál több ciklust spórol meg az uj progi, de mégis egyre lasabb lesz. Mi ennek az oka?
első változat:
#include <stdio.h>
main(){
int a,b;
a = 2;
b = 2;
for(a=2; a <= 100000; a++){
for(b=2; a>=b;b++){
if ( (a%b) > 0) {
if (b==(a/2)) printf(''%d\n'',a);
}
else break;
}
}
getchar();
}
második változat:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
main(){
int a,b;
a = 2;
b = 2;
for(a=2; a <= 1000; a++){
float x = a;
for(b=2; a>=b; b++){
if( (a%b) > 0 ){
if( b >= sqrt(x) & b < (sqrt(x)+1) ) printf(''%d\n'', a);
}else break;
}
}
getchar();
}
ui.: biztos sok helyen máshogy is meglehetett volna írni a progit és még sokat is fogok rajta változtatni, de akkor se értem mért lett olyan lassú!Esetleg próbáld meg az Eratosztenész szitáját, az elég gyors módszer, ha érdekel bepötyögöm neked.
-
shev7
veterán
Nem elég, mert attól, hogy nem lehet gyököt vonni egy számból attól az még nem prím.
pl.: 24 nem prím, de nincs is gyöke az egész számok halmazán.
Úgy értettem amit írtam, hogy, a felnti példát alapul véve, 24/3=8 tehát elég 8-ig menni a for ciklusnak, addigra minden szóbajöhető osztó kiderül, a többi csak ezeknek a többszörösei.
[Szerkesztve]nem azt mondtam, hogy eleg a gyoket nezni, hanem eleg a gyokeig elmenni. Tehat a te peldadbol kiindulva: 24 gyoke ~ 4.8 tehat eleg 4ig nezni. Addig kiderul minden szobajoheto osztopar.
-
Xpod
addikt
Nem elég, mert attól, hogy nem lehet gyököt vonni egy számból attól az még nem prím.
pl.: 24 nem prím, de nincs is gyöke az egész számok halmazán.
Úgy értettem amit írtam, hogy, a felnti példát alapul véve, 24/3=8 tehát elég 8-ig menni a for ciklusnak, addigra minden szóbajöhető osztó kiderül, a többi csak ezeknek a többszörösei.
[Szerkesztve] -
shev7
veterán
-
Xpod
addikt
-
Xpod
addikt
ok, észrevettem egy nagy hibát!
a belső ciklusban számolja ki az x gyökét, feleslegesen sokszor, mikor elég lenne egyszer is.
ez lényegesen lassít a dolgon.
ui.: hülye vagyok
Ja még egy rövidítési lehetőség, csak a prímszám feléig ossz, 10ezres szám esetén elég 5-6ezerrel osztani, fölötte nincs értelme.
-
Forest_roby
őstag
Az rendben is van, de egy 10ezres nagyságrendű prímnél már több száz ciklust spórol meg.
Ez ennyire nem számít semmit?ok, észrevettem egy nagy hibát!
a belső ciklusban számolja ki az x gyökét, feleslegesen sokszor, mikor elég lenne egyszer is.
ez lényegesen lassít a dolgon.
ui.: hülye vagyok
-
Forest_roby
őstag
-
Xpod
addikt
hi!
Van egy nem tul kifinomult, de működő progim primek kiszámolására. Gondoltam gyorsítok rajta egy kicsit, de ellenkező hatást értem el. Minnél nagyobb a prim annál több ciklust spórol meg az uj progi, de mégis egyre lasabb lesz. Mi ennek az oka?
első változat:
#include <stdio.h>
main(){
int a,b;
a = 2;
b = 2;
for(a=2; a <= 100000; a++){
for(b=2; a>=b;b++){
if ( (a%b) > 0) {
if (b==(a/2)) printf(''%d\n'',a);
}
else break;
}
}
getchar();
}
második változat:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
main(){
int a,b;
a = 2;
b = 2;
for(a=2; a <= 1000; a++){
float x = a;
for(b=2; a>=b; b++){
if( (a%b) > 0 ){
if( b >= sqrt(x) & b < (sqrt(x)+1) ) printf(''%d\n'', a);
}else break;
}
}
getchar();
}
ui.: biztos sok helyen máshogy is meglehetett volna írni a progit és még sokat is fogok rajta változtatni, de akkor se értem mért lett olyan lassú!Úgy tudom, gyököt lasabban tud vonni, mint összehasonlítani.
-
Forest_roby
őstag
hi!
Van egy nem tul kifinomult, de működő progim primek kiszámolására. Gondoltam gyorsítok rajta egy kicsit, de ellenkező hatást értem el. Minnél nagyobb a prim annál több ciklust spórol meg az uj progi, de mégis egyre lasabb lesz. Mi ennek az oka?
első változat:
#include <stdio.h>
main(){
int a,b;
a = 2;
b = 2;
for(a=2; a <= 100000; a++){
for(b=2; a>=b;b++){
if ( (a%b) > 0) {
if (b==(a/2)) printf(''%d\n'',a);
}
else break;
}
}
getchar();
}
második változat:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
main(){
int a,b;
a = 2;
b = 2;
for(a=2; a <= 1000; a++){
float x = a;
for(b=2; a>=b; b++){
if( (a%b) > 0 ){
if( b >= sqrt(x) & b < (sqrt(x)+1) ) printf(''%d\n'', a);
}else break;
}
}
getchar();
}
ui.: biztos sok helyen máshogy is meglehetett volna írni a progit és még sokat is fogok rajta változtatni, de akkor se értem mért lett olyan lassú! -
shev7
veterán
igen, a mesteri szinten jelzo tenyleg ''tulzas''. De egy eleg eros alapot ad ahhoz, hogy tovabb tudj haladni...
-
cucka
addikt
elég gyanúsak ezek a ''mesteri szinten 21 nap alatt'' típusú könyvek, mert ugye a címben szereplő 2 feltételből csak az egyik valósulhat meg. említett könyvet még nem láttam, de hasonló, perl és php könyvek teljesen alapszintről indítottak, szóval valószínüleg ez is.
-
shev7
veterán
En alapos java es C tudassal a hatam mogott alltam neki. De mivel nehany alapkoncepcion is valtoztattak, nem talaltam unalmasnak az elejet. (Bar az igaz, hogy a vegre kicsit meguntam)
-
Drizzt
nagyúr
Igen, láttam azt is, C# mesteri szinten 21 nap alatt a pontos címe asszem, de gondolom az teljesen az alapokról kezd úgy, hogy nem tételez fel semmilyen más alapvető programozói tudást\tapasztalatot, vagy nem? Sok egyébként az újdonság c++hoz, vagy javahoz képest c#ban?
-
shev7
veterán
-
Drizzt
nagyúr
Sziasztok, elég rég nem írtam ide, de most szeretnék nyáron tanulni, programozásban szeretném magamat továbbképezni. Na lássuk miből élek eddig: Kezdtem Pascallal magamtól, meg egy picit C-t is, aztán BME-n C++, C, Java, Prolog, SML volt eddig. Igazából Windows alatti dolgok érdekelnének a közeljövőben főleg. Van egy elég vaskos könyv C# alatti adatbáziskezelés, vagy valami hasonló címmel ''mesteri szinten''. Namost: ez a könyv milyen? Ha C#-ot még soha nem tanultam, akadhat vele valami gondom, vagy az alapokról épít?
Esetleg logikai és funkcionális programozással milyen irányba lehetne keresgélni, hogyha magasabb szinten érdekelne, vagy modern felhasználhatósága(ebből voltam eddig még csak 4-es életemben a Bme-n, minden más 2,3
)?
Vagy akármi ötlet? Mondjuk lehet egyszerűbb lenne azokat a dolgokat tanulnom, amiből megbuktam...
áááp!!!
-
Drizzt
nagyúr
Sziasztok, elég rég nem írtam ide, de most szeretnék nyáron tanulni, programozásban szeretném magamat továbbképezni. Na lássuk miből élek eddig: Kezdtem Pascallal magamtól, meg egy picit C-t is, aztán BME-n C++, C, Java, Prolog, SML volt eddig. Igazából Windows alatti dolgok érdekelnének a közeljövőben főleg. Van egy elég vaskos könyv C# alatti adatbáziskezelés, vagy valami hasonló címmel ''mesteri szinten''. Namost: ez a könyv milyen? Ha C#-ot még soha nem tanultam, akadhat vele valami gondom, vagy az alapokról épít?
Esetleg logikai és funkcionális programozással milyen irányba lehetne keresgélni, hogyha magasabb szinten érdekelne, vagy modern felhasználhatósága(ebből voltam eddig még csak 4-es életemben a Bme-n, minden más 2,3
)?
Vagy akármi ötlet? Mondjuk lehet egyszerűbb lenne azokat a dolgokat tanulnom, amiből megbuktam...
-
guardian24
csendes tag
Kéne nekem egy help!
Ha pl.: C-ben akartok csinálni egy fallabda-progit, akkor:
Hogy lehet megcsinálni, hogy a user cselekvésétől függetlenül menjen a labda, azaz ne kelljen mindig mozdítanio a platformot, hogy a labda is menjen?
A gondom: nem tudom azt megoldani, hogy valami menjen időzítve, s eközben lehessen billentyűlenyomásra egyidejűleg más parancsokat is véghezvinni...Készíts egy folyamatosan futó főciklust, ami periodikusan meghívja a rajzoló-rutint, megvizsgálja a billentyűk, gombok állapotát, stb.
Remélem nem közvetlenül akarod az időzítő-chipet programozni, mint az ősidőkben?
-
cucka
addikt
Azt el lehet vhogy érni hogy támogassa az ékezetes betűket?
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.
Új hozzászólás Aktív témák
-
1900 - 1801
21056 - 20001 20000 - 18001 18000 - 16001 16000 - 14001 14000 - 12001 12000 - 10001 10000 - 8001 8000 - 6001 6000 - 4001 4000 - 3901 3900 - 3801 3800 - 3701 3700 - 3601 3600 - 3501 3500 - 3401 3400 - 3301 3300 - 3201 3200 - 3101 3100 - 3001 3000 - 2901 2900 - 2801 2800 - 2701 2700 - 2601 2600 - 2501 2500 - 2401 2400 - 2301 2300 - 2201 2200 - 2101 2100 - 2001 2000 - 1901 1900 - 1801 1800 - 1701 1700 - 1601 1600 - 1501 1500 - 1401 1400 - 1301 1300 - 1201 1200 - 1101 1100 - 1001 1000 - 901 900 - 801 800 - 701 700 - 601 600 - 501 500 - 401 400 - 301 300 - 201 200 - 101 100 - 1
-
Fórumok
PROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Tabletek, E-bookok Nyomtatók, szkennerek PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
- Fórumok
- Szoftverfejlesztés
- Programozás topic
- (kiemelt téma)
● olvasd el a téma összefoglalót!
- HP Omen 16" FHD+ IPS Ryzen 9 8940HX RTX 5070 32GB 1TB NVMe gar
- GoPro HERO11 Black Creator Edition KOMPLETT, eredeti doboz, alig használt
- Bomba ár! Lenovo TP Yoga 370 - i5-7G I 8GB I 512SSD I 13,3" FHD Touch I Cam I W11 I Gari
- Bomba ár! Lenovo ThinkPad X390 - i7-8G I 16GB I 256SSD I 13,3" FHD I HDMI I Cam I W11 I Gari!
- playseat evolution black actifit
- White STRIX Gaming PC! 7800X3D / RTX 4080 Super / 48GB DDR5 / 1TB NVMe / 1000W Gold! BeszámítOK!
- Dell OptiPlex GX520 SFF,Pentium D 820,512 MB DDR2 félkonfig
- Telefon felvásárlás!! iPhone 14/iPhone 14 Plus/iPhone 14 Pro/iPhone 14 Pro Max
- szinteÚJ Dell Pro 14 Ultra 7 255U 16GB DDR5 512GB AI PC FHD+ 1 év garancia
- BESZÁMÍTÁS! ASUS ROG Ally X 24GB/1TB kézikonzol garanciával, hibátlan működéssel
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest













) long long int mûködik 32 bites gépen is. Neked csak annyi baj volt, hogy a kiírásban nem %lld formátumot használtál.


