- sh4d0w: Palpatine - A Terv
- bambano: Bambanő háza tája
- Luck Dragon: Asszociációs játék. :)
- sh4d0w: Árnyékos sarok
- sziku69: Fűzzük össze a szavakat :)
- weiss: Pant* rant
- eBay-es kütyük kis pénzért
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Klaus Duran: 2025 dude
Új hozzászólás Aktív témák
-
proci985
MODERÁTOR
válasz
7600 GS #1194 üzenetére
codeblocks, az valami compiler?
kb a következőt kéne csinálnod:
először bekéred a két számot (mondjuk int jó lesz, esetleg rárakhatsz egy ifet ellenőrizni a számokat). aztán megállapítod, melyik a nagyobb.
ha ez megvan, ciklusosan 1től a kisebb számig menj végig az összes számon. ha osztója az egyiknek (másképp: egyik mod iterátor == 0) és a másiknak is, akkor kiiratod, egyébként meg nem. ha eléred a kisebb számot, ott már több osztó nem lesz.
ez a naív implementáció, csúnya, de működik.
második implementáció: bekéred a két számot, megállapítod hogy szabványosak e (if (input >=10 && input < 100)), megtalálod melyik a kisebbik és nagyobbik, aztán nyomsz rájuk egy euklideszi algoritmust. ha nehezen érthető nézd a példát, vagy az angol oldalat.
miután euklides lefut, meglesz a legnagyobb közös osztó. azt lehet prímfelbontani amiből meg előállíthatók az osztók. ez lehet hogy gyorsabb lenne (tippre alacsonyabb lesz a lépésszám, de nem vagyok teljesen biztos), viszont a kód sokkal bonyolultabb lesz (pl 40 és 80ból lesz egy GCD 40, ami 2^3 * 5, amiből osztók 2, 4, 8, 5, 10,20,40).ha ez egy beadandó: sürgősen kezd el tanulmányozni a könyvet/jegyzetet, ez egy eléggé egyszerű procedurális feladat (értsd, amennyi idő alatt összeraktam a bejegyzést, ment volna a kód is), vizsgán pedig nem hinném, hogy egyszerűbbet fogsz kapni. ha tényleg nincs ötleted, akkor jobb megoldás nem nagyon van. ajánlott pl a madaras stroustrup könyv (programming practice and principle in c++), az remek, de az elején a bevezetőt ugord át és kezd a hello worldos fejezetnél. aztán ülj le, és csináld a feladatokat. magyar könyvek közül én a programozzunk c++ nyelvennel találkoztam (csapongó, száraz és előbb vezeti be a dynamic castet, mint a classokat), illetve az OO c++al, de az meg inkább classokra fókuszál, itt meg inkább procedurális tudás kéne.
-
Jester01
veterán
válasz
Brianiac #1198 üzenetére
7) lebegőpontos számításoknál a véges pontosság, a kettes számrendszer és a kerekítési hibák miatt általában nem fog egyenlőség szigorúan teljesülni ezért tipikusan valami tolerancián belüli közelséget szokás vizsgálni.
Például:
Kérem az kör középpontjának koordinátáit (Ox, Oy):
1.1 2.2
A koordináták: (1.1;2.2)
Kérem a Pont koordinátáit (Px, Py):
1.4 2.6
A koordináták: (1.4;2.6)
Kérem a kör sugarát (r):
0.5
A kör sugara: 0.5
A körön belül van a pontHacsak így fél négy tájban el nem számoltam, ez pedig rajta van a körön.
MOD: ja most látom, hogy neked van egy felesleges if feltételed is .. ha már tudjuk, hogy nem kisebb és nem egyenlő akkor csak nagyobb lehet (kivéve persze a NaN esetet de az most elvileg nem lesz és különben sem kezeled)
-
Brianiac
aktív tag
válasz
Jester01 #1197 üzenetére
Értem, köszi az észrevételeket, amit tudok javítok!
1. Ezért már korábban is "kaptam" fórumon, de azért ezt használom mert csak ezt ismerem, ezt tanultuk és órán is mindig ezt használjuk.
2. Erre is csak ugyanazt tudom írni mint az előzőre, a tanárral is mindig ezt használja
3. Ok
4. Javítani fogom
5. Hiba kezelést nem igazán tudom hogyan kellene
6. Javítom
7. Ezt nem teljesen értem
8. Először azt hittem kelleni fog és elfelejtettem kiszedni -
Jester01
veterán
válasz
Brianiac #1196 üzenetére
A lényegi kérdéshez nem tudok érdemben hozzászólni, de azért a kódhoz van észrevételem:
1) system("pause") ez a "kedvencünk" itt a fórumon, ezért azonnali főbelövés jár. Ráadásul te még a szükséges headert sem hívtad be, így le sem fordul.
2) setlocale (LC_ALL, "Hun"); ez nem tudom milyen rendszeren működik, de a szabályos locale nevek leginkább hu_HU és hasonlók. Persze visszatérési érték ellenőrzése nélkül ezt nem veszed észre. Egyébként is illik inkább a felhasználói beállításokat átvenni, továbbá célszerű akkor már wide karakteret használni.
3) Ha már iostream-et használsz, akkor a \n csúnya (persze azért működik). Helyette ajánlott az endl manipulátor.
4) A pont és kör középpont távolságnégyzetet illene kitenni egy változóba (ahogy a sugárnégyzetet is). A fordító persze úgyis kioptimalizálja, de ez így nem annyira olvasható.
5) hibakezelés nincs, a kiírt szöveg pedig megtévesztő az elvárt formátumot illetően
6) (ez nagyon halvány észrevétel) logikátlan a kör sugarát a végén bekérni, érdemesebb együtt tartani a kör jellemzőit
7) plusz pont lehetne, ha ráutaló magatartással jeleznéd, hogy ismered a lebegőpontos számítások veszélyét (egyenlőséget általában nem szabad ellenőrizni)
8) a cmath-t fölöslegesen hívod be, nem használsz belőle semmit.
9) formailag személy szerint hiányolok néhány szóközt innen-onnan, az olvashatóság jegyébenNégyzetre emelni leginkább úgy célszerű ahogy csináltad (azaz szorzással), legfeljebb csinálhatsz neki külön függvényt.
-
Brianiac
aktív tag
Hali!
Egy kis segítséget szeretnék kérni a prog. házim fejlesztői dokumentációjának az elkészítéséhez mivel még sosem csináltam ilyet.
A feladat: Kör és pont: Készítsen olyan programot, mely egy Descartes-koordináta rendszerben megadott kör és pont egymáshoz képesti helyzetét adja meg.
Ezzel már készen vagyok, de azért bemásolom a kódot és ha valaki átfutná, esetleg van valami észrevétele azt megköszönném. Illetve egy olyan kérdésem lenne is hogy miképp tudok négyzetre emelni egyéb módon mint ahogy én csináltam?#include<iostream>
#include<cmath>
using namespace std;
int main()
{
setlocale (LC_ALL, "Hun");
double Ox, Oy, Px, Py, r;
cout<<"Kérem az kör középpontjának koordinátáit (Ox, Oy): \n";
cin>>Ox>>Oy;
cout<<"\nA koordináták: ("<<Ox<<";"<<Oy<<")\n\n";
cout<<"Kérem a Pont koordinátáit (Px, Py): \n";
cin>>Px>>Py;
cout<<"\nA koordináták: ("<<Px<<";"<<Py<<")\n\n";
cout<<"Kérem a kör sugarát (r): \n\n";
cin>>r;
cout<<"\nA kör sugara: "<<r<<"\n\n";
if ((Px-Ox)*(Px-Ox)+(Py-Oy)*(Py-Oy)<r*r)
cout<<"A körön belül van a pont\n\n";
else
{
if ((Px-Ox)*(Px-Ox)+(Py-Oy)*(Py-Oy)==r*r)
cout<<"Rajta van a körön a pont\n\n";
else
if ((Px-Ox)*(Px-Ox)+(Py-Oy)*(Py-Oy)>r*r)
cout<<"A körön kívül van a pont\n\n";
}
system ("pause");
return 0;
}A fejlesztői dokumentációhoz pedig az alábbi instrukciókat kaptuk hogy mit kellene tartalmaznia.
A fejlesztői dokumentáció tartalmazza:
-a feladat pontos megfogalmazását, az algoritmus összes szintjének leírását
-a gépi és nyelvi igényeket
-a változótáblát (név, típus, hatókör, jelleg, kód)
-az egyes szintek részfeladatait, az egyes eljárások hierarchiáját megadó táblázatot
-a program fejlesztési lehetőségeit, a tesztelési tervet, a tesztelés eredményeit, a program logikai ellenőrzését, a szoftverfejlesztői tesztelést, a független személyek általi tesztet, az inspekciós tesztet, a felhasználói tesztet
-a program teljes listáját
-a program egy háttértáron őrzött listájátMaga a házi 16 pontos, ebből 8 pont a fejlesztői dokumentáció. Ennyire azért gondolom nem várja el részletesen a tanár mint ahogy feljebb van, viszont én pár sornál többet nem nagyon tudok írni erről a programról. A fentebbi pontok egy részében pedig nem is nagyon értem h mit kéne írjak.
-
Gyuri16
senior tag
válasz
7600 GS #1194 üzenetére
#include <iostream>
using namespace std;
#define w a,
#define y i =
#define gl 0
#define tr >>
#define olo a >>
#define hf 0;}
#define lo b;
#define bb ; return
#define x for (
#define f cin
#define gg < a+
#define hh b; i++
#define fw if (!(a%
#define qp << i
#define pl i||b%
#define t b;
#define uw i)) cout
#define o main() {
#define dl << " "
#define l int
l o l
w t f
tr olo lo
x l y 1;i gg hh ) fw pl uw qp dl
bb
gl&hf
(remelem erted a celzast) -
7600 GS
addikt
Sziasztok!
Lenne egy feladat amit megkéne valósitani Codeblocksban, és finoman szólva nemnagyon van ötletem hozzá.
A feladat a következő: Kérjünk be 2db kétjegyű számot, és irassuk ki az össze közös pozitiv osztóját. Nagyon hálás lennék ha valaki tudna segiteni.
Üdv.: Marci
-
kingabo
őstag
válasz
WonderCSabo #1191 üzenetére
Köszi!
Ezt nem tudom miért nem vettem észre.
Megnéztem a C-s változatot is abban is vannak szép dolgok... Mondjuk nem linker error, "csak" a memória foglalás meg felszabadítás. -
WonderCSabo
félisten
válasz
kingabo #1190 üzenetére
Miután láthatóvá tettem a privát adattagokat, a BSTNode(T data) konstruktorra dobott undefined referencet. Méghozzá azért, mert ezt a könyvtár írója ugyan deklarálta, de sehol sem implementálta. Ha az osztálydefinícióban a BSTNode(T data); sort átírod erre: BSTNode(T data_) : data(data_){} akkor fordul. LOL ez a könyvtár egyébként.
-
kingabo
őstag
Hali!
Pofám leszakad, de nem jövök rá miért kapok linker hibát. (engem is úgy kérdeztek meg) Ezt a bináris kereső fát használja: [link] (itt a leírása: [link]), main.cpp lásd lent. A következő hibákat kapom win ill linux alatt g++al (mintha nem generálna kódot a template-ből):
undefined reference to `BinarySearchTree<int>::insert(int)'
undefined reference to `BinarySearchTree<int>::search(int)'
A main.cpp:#include "bst.h"
typedef BinarySearchTree<int> IntBinaryTree;
typedef BSTNode<int> IntNode;
const int size = 5;
int main()
{
IntBinaryTree* tree = new IntBinaryTree();
for(int i = 0; i < size; i++)
{
tree->insert(1);
}
IntNode** node = tree->search(1);
return 0;
}Előre is köszi a segítséget!
-
szike21
csendes tag
Sziasztok! Az lenne a kérdésem, hogy egy saját osztályból örököltetett osztályhoz, hogyan lehet copy constructor-t írni. Próbálkoztam mindenhogy, de mindig kiabál a fordító, hogy nem hivatkoztam az ősosztályra. Előre is köszönöm a segítséget!
-
kingabo
őstag
Sok értelme volt az első hsz-be berakatni, hogy kódot mindenki a programkód gomb használatával szúrjon be, meg a topik nevébe beleíratni, hogy "[Olvasd el az #1 hozzászólást!]"... Elolvasni/megtenni ezt a minimális dolgot nem megy, de azért segítsünk.
-
pstomi
csendes tag
válasz
Sk8erPeter #1180 üzenetére
Köszi a linket
, amugy már tárgytalan a kérdésem, mert sikerült megoldanom. while helyett for ciklust alkalmaztam, meg volt egy kis kavarodás az n és az m-ekkel.
-
Sk8erPeter
nagyúr
Bár ez tényleg nem a mi dolgunk lenne, most találtam egy ilyen oldalt:
http://indentcode.net/
Elég faszán elvégzi a dolgát, ebből az előző említett kódból lett ez:
http://pastebin.com/Cf2riLNM -
pstomi
csendes tag
Négyzetes tömb(pl: n=4 és m=4) esetén megfelelő az eredmény. Viszont pl: n=2 és n=4 esetén már teljesen rossz eredmény jön ki. Mi lehet a probléma?
Feladat: A meteorológiai intézet az ország N településére adott M napos időjárás előrejelzést, az adott településen az adott napra várt legmagasabb hőmérsékletet. Készíts programot, amely megadja azokat a napokat, amikor minden településen nagyobb lesz a hőmérséklet, mint az előtte levő nap volt!
Segitséget előre is köszönöm!
Itt található a kód:#include <iostream>
using namespace std;
int main()
//Adatok beolvasása
{
int n,m;
do {
cout << "Telepulesek szama: ";
cin >> n;
} while (n <= 0);
do {
cout << "Napok szama: ";
cin >> m;
} while (m <= 0);
float homerseklet[n][m];
cout << endl << "Idojaras elorejezesek beolvasasa"<<endl;
cout<<endl;
for (int i=0; i<n; ++i)
{
for (int j=0; j<m; ++j)
{
do {
cout << "Kerem a " << i+1 << ". varosnak a(z) " << j+1 << ". napi legmagasabb homersekletet: ";
cin >> homerseklet[i][j];
} while (homerseklet[i][j] < -89.2 || homerseklet[i][j] > 58);
}
cout << endl;
}
//Eredmény kiszámoltatása
int db=0; int i=0; int napok[db];
for (int j=1; j<n; ++j)
{
while(homerseklet[i][j-1]<homerseklet[i][j] && i<m)
{
i=i+1;
}
if(i==n)
{
db=db+1;
napok[db-1]=j+1;
cout<<db<<endl;
}
i=0;
}
//Eredmény kiiratása
if (db>0)
{
cout<<"Eze(ke)n a nap(ok)on minden varosban nagyobb a homerseklet mint az elozo napon: ";
for (int i=0; i<db; ++i)
{
cout<<napok[i]<<".nap ";
}
}
else
{
cout<<"Nincs olyan nap amikor minden varosban nagyobb a homerseklet mint az elozo napon";
}
return 0;
} -
alapz@j
tag
Sziasztok! Van egy C++ -ban (mingw) írt kis programom, ahol megítéléséem szerint túl nagy lett (még strippelés után is) az exe mérete. Van valamilyen eszköz arra, hogy megtudjam, mi mekkora helyet foglal el benne?
-
peterszky
őstag
Probléma megoldva:
xmlXPathRegisterNs() a barátom, tetszőleges prefix a namespachez és már lehet is használni mindent, ahogy kell.
int ns_reg = xmlXPathRegisterNs(xpathCtx, (xmlChar*)"x",(xmlChar*)"urn:iso:std:iso:20022:tech:xsd:pacs.008.001.02");
if(ns_reg != 0)
{
cerr << "namespace register error" << endl;
}
string xpath("/x:Document/x:FIToFICstmrCdtTrf/x:GrpHdr");Szerk: Látom Jester megelőzött
-
Jester01
veterán
válasz
peterszky #1171 üzenetére
Egyébként igen, xmlXPathRegisterNs megoldja a problémát:
const char xml[] = "<r xmlns='http://tempuri.org/xyz'><n1><n2>x</n2></n1><n1></n1></r>";
...
xmlXPathRegisterNs(xpathCtx, (xmlChar*)"tmp", (xmlChar*)"http://tempuri.org/xyz");
xmlXPathObjectPtr xpathObj = xmlXPathEvalExpression((xmlChar*)"tmp:n1/tmp:n2", xpathCtx); -
peterszky
őstag
válasz
ArchElf #1166 üzenetére
Közben rátaláltam a problémám forrására, az XML namespace "zavar" be, annak a kezelését kell megoldani.
<Document xmlns="xyz" xmlns:xsi="<url>"> -> ezzel nem ment az XPath hivatkozás.
<Document> -> ha kiszedtem, akkor viszont működött prímán, azt hiszem, hogy a namespace regisztrálás felé kell kutakodni, ennek kell utánanéznem.És sorry, hogy nem tettem futtatható kódot, eddigi kereséseim alapján nem egy túl elterjedt dolog ez, nem gondoltam volna, hogy ilyen gyorsan segítség érkezik
-
Jester01
veterán
válasz
ArchElf #1166 üzenetére
Nem tudom miért kell külön kérvényezni, hogy lehetőleg futtatható kódot kapjunk.
Ha jól értettem mit akar a kolléga, az nekem működik:
#include <iostream>
using namespace std;
#include <libxml/xmlreader.h>
#include <libxml/tree.h>
#include <libxml/xpath.h>
int main()
{
const char xml[] = "<r><n1><n2>x</n2></n1><n1></n1></r>";
xmlParserInputBufferPtr input = xmlParserInputBufferCreateMem(xml, sizeof(xml) - 1, XML_CHAR_ENCODING_NONE);
xmlTextReaderPtr reader = xmlNewTextReader(input, NULL);
xmlTextReaderNext(reader);
xmlNodePtr subtree = xmlTextReaderExpand(reader);
xmlXPathContextPtr xpathCtx = xmlXPathNewContext(subtree->doc);
if(xpathCtx == NULL)
{
cerr << "xpath context create failed" << endl;
return 1;
}
xpathCtx->node = subtree;
xmlXPathObjectPtr xpathObj = xmlXPathEvalExpression((xmlChar*)"n1/n2", xpathCtx);
if(xpathObj == NULL)
{
cerr << "xpath eval failed" << endl;
return 2;
}
//printXPathNodes(xpathObj->nodesetval);
cout << xpathObj->nodesetval->nodeNr << endl;
return 0;
} -
peterszky
őstag
LibXML2 könyvtárral van tapasztalata valakinek? Belefutottam egy jelenelg számomra zsákutcát jelentő "érdekességbe", konkrétan az xmlXPathObject / xmlXPathContext / xmlXPathEvalExpression hármasnál.
Addig dióhéjban:
xmlXPathObjectPtr xpathObj;
xmlXPathContextPtr xpathCtx = xmlXPathNewContext(v_subtree->doc);
if(xpathCtx != NULL)
{
xpathCtx->node = v_subtree;
} else {
cerr << "xpath context create failed" << endl;
}
xpathObj = xmlXPathEvalExpression((xmlChar*)"*", xpathCtx);
if(xpathObj != NULL)
{
printXPathNodes(xpathObj->nodesetval);
//cout << xpathObj->nodesetval->nodeNr << endl;
} else {
cerr << "xpath eval failed" << endl;
}A v_subtree egy xmlTextReader olvasásnál az expand metódussal előállított részfa.
A gondom az, hogy az XPath-nál, ha *-gal ügyködöm, akkor szépen megtalál mindent, ami ott van a subtreeben. Viszont pont azért használnám ezt, hogy direktbe megtaláljak egy-egy nodeot. A gondom az, ha a * helyére egy helyes elérési útvonalat írok, akkor nem talál semmit a program.
-
Sk8erPeter
nagyúr
válasz
kingabo #1161 üzenetére
"system ("pause"); szintén nem szabványos"
Komolyan mondom, az összes olyan tanárt, aki ezt a system-es rendszerhívásos bohóckodást tanítja, sorba kéne állítani, és mindegyiket tarkónb@szni egy ordas nagy péklapáttal, hátha attól megjegyzik, hogy ezt soha többé ne használják, és ne is erőltessék rá másokra...vagy egyáltalán ne akarjanak programozást tanítani (vagy takarodjanak Alaszkába havat lapátolni).
-
WonderCSabo
félisten
válasz
Brianiac #1162 üzenetére
for (i=0; sor(i)!='0\'; i++)
if (sor(i)==x)A tömbök elemeire a [] operátorral lehet hivatkozni:
sor[i]
Az i változót meg sokkal szebb lenne a for-okban deklarálni, nem a main lokális változójaként.
Szerk.: Utólag jöttem rá, hogy Te is a [i]-t használtad, csak a RIOS alakította át (i)-é. Ha a programkád formázással küldöd be a kódodat, ez nem történik meg.
A toupper()-hez meg includeolni kell a <cctype> -ot, csak úgy tűnik itt a fordító megtette helyetted.
-
kingabo
őstag
válasz
Brianiac #1156 üzenetére
Most akkor C vagy C++? Ha utóbbi akkor a char tömb helyett simán string, aminek simán le tudod kérni a hosszát a length függvénnyel.
Valamint:
- a fflush(stdin) kerülendő, a szabványban nincs benne, ráadásul fölösleges
- system ("pause"); szintén nem szabványos, helyette:
char ch;
cin >> ch; -
Gyuri16
senior tag
válasz
Brianiac #1156 üzenetére
'\0' lesz az. ' jelek egy darab chart jelolnek, mig a " egy stringet.
a \ jel azert kell, hogy a 0-t escapeld, igy egy specialis jelet kapsz, nullbyteot, ami a karakterlanc veget jeloliArchElfnek valoszinuleg az nem tetszik, hogy olvashatatlan amit bemasoltal, legkozelebb hasznald a programkod gombot beszurasnal.
-
Brianiac
aktív tag
válasz
fair_play #1155 üzenetére
Sziasztok!
A segítségeteket szeretném kérni egy rövid progival kapcsolatban, mert nem tudok rájönni hogy mi a hiba.
#include<iostream>
using namespace std;
int main()
{
setlocale (LC_ALL, "Hun");
char m[]={"Emese elment Elekkel teniszezni."};
cout<<"Az eredeti mondat:\n"<<m<<endl;
int i, db=0 ;
for (i=0; i<strlen(m); i++)//az m tömb elemei egyesével a max. a tömbelem számig
if (toupper(m)=='E')//m tömb i-edik eleme nagybetűsen E karakter -e
db++;
cout<<"A mondat "<<strlen(m)<<"karakterből "<<db<<"db E vagy e van.\n";char x;
cout<<"Kérem a figyelendő karaktert: ";
fflush (stdin);
cin.get(x);//ugyanaz cin>>x;
db=0;
for (i=0; i<strlen(m); i++)
if (m(i)==x)//az m tömb i-edik elem egyezik-e az x tartalmával
db++;
cout<<"A figyelt "<<x<<"karakterből "<<db<<" db van.\n";char sor[60];
cout<<"Kérem a mondatot: ";
fflush (stdin);
cin>>sor;cout<<"Az eredeti mondat:\n"<<sor<<endl;
cout<<"Kérem a figyelendő karaktert: ";
fflush (stdin);
cin.getline(sor, 60);
db=0;
for (i=0; sor(i)!='0\'; i++)
if (sor(i)==x)
db++;
cout<<"A mondatában "<<db<<"db "<<x<<"karakter van.\n";system ("pause");
return 0;
}Kiemeltem félkövérrel ahol a hiba van (63. sor) ill. a 64.sorban is van valami gubanc, de arra már lehet rá tudnék én is jönni. Szóval a Visual studio 2010 az alábbi error-t dobja:
1>d:\egyéb\gamf\programozás\7. gyakorlat\karakter szamolas.cpp(63): error C2001: newline in constant
1>d:\egyéb\gamf\programozás\7. gyakorlat\karakter szamolas.cpp(63): error C2015: too many characters in constant
1>d:\egyéb\gamf\programozás\7. gyakorlat\karakter szamolas.cpp(64): error C2143: syntax error : missing ';' before 'if'
1>d:\egyéb\gamf\programozás\7. gyakorlat\karakter szamolas.cpp(64): error C2143: syntax error : missing ')' before 'if'Sajnos nem tudtam rájönni hogy mi a hiba, ill. azt sem értem hogy a 0 után mi az a \ jel és miért '0\' van miért nem "0\"?
-
fair_play
csendes tag
köszi
-
amargo
addikt
-
fair_play
csendes tag
Hello
Fordító: Dev C++
Kezdő vagyok ezért elnézést előre is.
Szeretnék egy olyan programot amit ha elindit a felhasználó akkor az egér magától kattingat adott koordinátákra.
A program egy játékhoz lenne a haszna pedig hogy megspórolna egy csomó kattintást nekem. A kérdésem az hogy mivel tudnám vezérelni az egeret milyen parancs vagy függvény.
Ha valaki kitudná egészíteni a progit úgy hogy a pozícionálás után az egér kattintson egyet mondjuk bal gombal azt megköszönném.// A megjegyzések csak magamnak vannak
// getchar(); // billentyű lenyomásra vár#include <windows.h> // winuser.h t is kapcsolja ami elérhetővé teszi a setcursor függvényt
#include <stdio.h> // printf stb
#include <conio.h>
#include <stdlib.h>int main () // fő függvény
{//**************************************
//deklarálás
int x,y; // #első ugrás!//értékadás
x=800;
y=600;//pozícionálás
SetCursorPos(x,y);
}//**************************************
{
Sleep(1000); //várakozik# 1!
} //sleep függvény véget ér//**************************************
int x1,y1; // #második ugrás!
x1 = 300;
y1 = 100;SetCursorPos(x1,y1);
//**************************************
{ // sleep függvény kezdődik
Sleep(1000); //várakozik# 2!
} //sleep függvény véget ér//**************************************
//**************************************
int x2,y2; // #második ugrás!
x2 = 400;
y2 = 200;SetCursorPos(x2,y2);
//**************************************
{ // sleep függvény kezdődik
Sleep(1000); //várakozik# 2!
} //sleep függvény véget ér//**************************************
return 0; //Egy függvény a return utasítással térhet vissza a hívójához
}
A válaszokat előre is köszi, remélem lesz aki tud segíteni.
-
Sk8erPeter
nagyúr
(megjegyezném, hogy van külön C-programozás topic. Ez itt a C++ topic.)
-
modder
aktív tag
Ez egy alapmű. Nem csak a nyelv szerkezetét írja le, szintaxist, hanem C-stílusú kódolásra is tanít. Eléggé olvasmányos amúgy.
http://www.friweb.hu/kr-c/ -
umek7
őstag
Szétnéztem már a keresőben, találtam is nem egy oldalt ami a C nyelvvel foglalkozik, viszont valahogy egyik sem foglalkozik annyira kellően az alap dolgokkal mint ahogy azt egy teljesen hozzá nem értő igényelné (persze tudom, ha a kacsa nem tud úszni nem a víz a hülye). Tudnátok e ajánlani olyan könyvet, olvasmányt, cikket, bármit ami szájbarágósan, részletesen kezdi el bemutatni a C-t?
-
modder
aktív tag
válasz
Blaise7 #1146 üzenetére
Helló, természetesen igen, de nem pontosan abban a formában, ahogy leírtad.
Heterogén kollekciónak hívják, és a lényeg, hogy bármilyen osztály objektumait beleteheted, amik a kollekció típusának leszármazottai.
Legyen
class Os {};
class Gyerek: public Os {};
Os* tomb[10];Ahogy látod Os* (azaz Os-re mutato pointer) típusokat tárolok a tombben, és ha hozzá akarok adni egy elemet, akkor a címét kell hozzáadni:
Os[0] = new Gyerek;
vagyGyerek gyerek;
Os[1] = &gyerek;Ez az egyetlen módja, hogy egy tömbben gyerek osztályokat is tudj tárolni. Az oka az, hogy a két osztály memóriatérképe eltérő. Amíg Os-ben lehet pl. 1db int, addig Gyerekben legyen 10db float, plusz az Os 1db intje.
Ha Os tipusu tombot inicializálsz, akkor a memóriában (a te esetedben) 10db Os osztály méretű hely foglalódna a memóriában, ami a fentiekből adódóan 10 * 1db int-et jelentene.
Erre a helyre nyilván nem férne bele a 10 * (10db float + 1db int), ami a gyerek osztály mérete.Az egyetlen módszer, hogy pointer tömböt inicializálsz, mert egy pointer egy int méretű, és bármilyen memóriacímre mutathat.
Remélem érthető voltam, keress rá a C++ heterogén kollekcióra.
-
Blaise7
tag
Sziasztok!
Most ismerkedem az OOP-al és a C++-al ezért lehet elég nagy hülyeséget kérdezek.
Van egy ŐsOsztályom és egy GyerekOsztályom. Csináltam egy ŐsOsztály típusú két dimenziós tömböt. Ebbe valamilyen módon beleerőszakolhatok egy GyerekOsztály objektumot? -
!wannabe
tag
válasz
haromegesz14 #1142 üzenetére
-
Jhonny06
veterán
válasz
haromegesz14 #1142 üzenetére
Mindenkinél más a kezdő, de szerintem ezek elég könnyűek (az eleje legalábbis mindenképp), a fokozatosság is megvan bennük. Ez ugyan egyetemi, de az alapfeladatok szerintem mindenhol egyforma nehézségűek. Nyilván ha a Hello World kiiratása sem megy, akkor hagyd, de ez elég alap tudást feltételez, a BME-re se úgy megy mindenki, hogy tud programozni, tehát nagyjából "elölről" kezdik az anyagot.
-
haromegesz14
aktív tag
Üdv!
Szabadidőmbe tanulgatom a nyelvet, még igen csak az elején járok, viszont nem tudom "tesztelni" a tudásom feladatok híján, így segítségeteket kérem. Tudtok nekem linkelni olyan oldalt, ahol találok a alacsony szintű, és folyamatosan növekvő nehézséggel rendelkező feladatokat? Angol/magyar minden jöhet. Találtam 1-2 fősulis feladatsort, de ott még nem tartok
-
Jhonny06
veterán
válasz
Barett 50cal #1138 üzenetére
"valaki megtudná nekem irni a progit?"
Legközelebb hogy fog menni?
-
modder
aktív tag
válasz
Barett 50cal #1138 üzenetére
int eldontfunkcio(int* t){
static int count = 0;
if( count >= 10 )
return 0;
if( *t > 50 )
std::cout << count << " ";
count++;
return 1;
} -
Barett 50cal
senior tag
Hali
Kaptam egy feladatot. Van 10 szám egy tömbben. ezekből pár darab 50nél NAGYOBB, tökm1 hány, a lényeg, hogy ki kell iratni sorszámukat.
ezzel az eljárással.
az a A gondolom egyértelmű, hogy a tömb, az I pedig a sorszám.int kivalasztas(int * A,int (*eldontofunkcio)(*int)){
int I =0;
while(!eldontofunkcio(&A[I++]);
return I;
}valaki megtudná nekem irni a progit?
-
modder
aktív tag
válasz
Barett 50cal #1135 üzenetére
nem int-ként, hanem szövegként kéred be (char[]), és utána átalakítod intté, miután leellenőrizted, hogy nem tartalmaz-e karaktert.
-
WonderCSabo
félisten
válasz
Barett 50cal #1135 üzenetére
-
Barett 50cal
senior tag
Hogy tudom megakadályozni, hogy ha a progimba csak számokat irhatok(számologép), de én pl beirok egy betűt vagy 'asd'-ot, akkor ne omoljon össze, neugráljon az egész megstb...
valami parancs.. vagy if(vmi==(szöveg)) akkor ujra kezdje.a szöveg mi C++? mia megfelelelője?
-
WonderCSabo
félisten
Üdv!
Használ vki itt Code::Blocks-ot? Hogy lehetne hozzáadni a GCC-hez a -werror flaget globálisan? Settings -> Compiler and debugger... -> Compiler settings -> Compiler flags alatt nincs.
-
acc200
tag
Köszi!
-
Jester01
veterán
Nem, arra ott a C programozás topik.
-
acc200
tag
Sziasztok!
Ide lehetne feltenni c-s kérdéseket? Eléggé még az alapoknál tartok és jó lenne valami olyan hely, ahol választ kapnék (akár a későbbiekben is) néhány kérdésre.
-
_adaml21_
őstag
HELP!
Egyetemen Visual Studio 2008-ban kezdtünk el c++ nyelven programozni, és a tudásom bőven a 0 alatt van, semmit nem értek. Valami könyvet tudnátok ajánlani, amiből önképzőszakkör során el tudnám sajátítani az alapokat? A félév végéig már csak 5 gyakorlatom lesz, és a végére meg kellene tudnom írni egy programot egy ZH ünnepélyes keretei közt...
Nagyon szívesen vennék minden segítséget, mert borzasztóan meg vagyok rémülve, hogy ezt hogyan fogom abszolválni. -
-
acc200
tag
Sziasztok!
Remélem jó helyre írok!
Kezdő mérnök infós vagyok, megvolt az első programozás I. óra..
Gondoltam jó lenne itthon is kicsit gyakorolni amit órán, átrágni magam a feladatokon, stb.. Rákerestem a Turbo C++ progira, le is szedtem, sikerült "felrakni" DOSBox-on keresztül le is tudom hívni, elindul.. Működik minden megfelelő karakter (<> () stb..) csak épp ez nem:;, és ez nélkül ugye lehetetlen dolgozni.. Nagy nehezen most kiötlöttem azt, hogy átállítom a bill-t angolra, de akkor meg ugye minden teljesen más helyen van, viszont legalább műxik a ;. Tehát az lenne a kérdésem, hogy ezt miképpen lehetne kiküszöbölni? Tudnátok valamiképpen segíteni ez ügyben?
Köszi előre is!Üdv!
-
Integra
titán
C++ programozót keresünk!
Ami szükséges:
- legalább 2 éves C++ fejlesztői tapasztalat
- OOP szemlélet
- MySQL
- szakmai angol nyelvA fejlesztés a Nokia Qt4 keretrendszerében történik, ennek ismerete előny, de nem feltétel.
A projekt heti 40 óra lekötöttséget jelent. Fontos, hogy tartsd a határidőket, mert ez alapján történik a kifizetés. A projekt távmunkában végezhető, de alkalmanként személyes konzultációt tartunk.
Érdeklődni nálam privben, thx
-
proof88
addikt
válasz
Gyuri16 #1122 üzenetére
az ncb fájlt letörölheted nyugodtan, az csak az intellisense-nek kell és a VS automatikusan újragenerálja majd ismerősödnél ... sőt egyébként van amikor megbolondul az intellisense és nem akar működni rendesen, olyankor is ajánlott letörölni azt a fájlt.
Valamint a VS által létrehozott debug ill release mappákat is törölheted, oda csak a fordítás eredményei kerülnek. -
Gyuri16
senior tag
hogyan lehet MS visual studiobol (2010 express) egy letezo projektet exportalni, hogy el tudjam kuldeni valakinek? egesz mappa kicsit nagy, es nem tudom melyik fajlok kellenek..
-
Jhonny06
veterán
Van olyan függvény, ami érzékeli, hogy futásidőben változik az idő és az alapján írja ki? Mert ezt így hiába késleltetem (2 másodperccel ebben a példában), a fordítás időben olvasott idő az output.
#include <iostream>
#include <time.h>
//#include <fstream>
using namespace std;
int main()
{
char time[9];
_strtime(time);
cout << "Started at: ";
std::printf(time);
cout << endl;
int seconds = 2;
clock_t endwait;
endwait = clock () + seconds * CLOCKS_PER_SEC ;
while (clock() < endwait) {}
std::printf(time);
return 0;
} -
Gyuri16
senior tag
válasz
Jhonny06 #1115 üzenetére
ha nativ kodot generalsz akkor a legjobb egy disassembler (pl ida pro - ennek van ingyenes valtozata is, ami megfelelo), vagy debugger (pl ollydbg). ezekben meg tudod nezni hogy milyen kodot gyartott a fordito.
szerintem alap szinten erdemes elfogadni, hogy a fordito bekapcsolt optimalizacio mellett jo kodot general, es kar itt keresni a bottlenecket. ha mar tenyleg minden tokeletesen van a kodban, akkor lehet nekialni ezzel foglalkozni, viszont nem art hozza az asm es a konkret processzor ismerete, enelkul ugyanis nem egyertelmu, mit miert csinal egy fordito (pl attol hogy valamit kevesebb asm paranccsal oldasz meg, nem feltetlen lesz gyorsabb).
szerintem fontosabb az, hogy a program olvashato legyen emberek szamara, a tobbi meg a fordito dolga.
egy osszehasonlito teszt engem is erdekelne, sok ilyen tema van, amin szeretnek vitatkozni az emberek, kivancsi vagyok van e ertelme.
-
Jhonny06
veterán
Felkeltette a figyelmemet ez a cikk, van valami forrás erre, ahol meg lehet tanulni kvázi olvasni a fordító által generált kódot? Ez most asszem pont C#, de gondolom annyiban lényegtelen, hogy C++ is hasonló lehet, engem az utóbbi érdekelne.
-
-
lamajoe
tag
válasz
Jhonny06 #1109 üzenetére
Ez igaz, nem lehet csak ebből tanulni. A C++ tanulásához ugyanúgy kell hozzáállni mint pl a PS tanulásához, interneten fórumokba írogatni, tutorialokat nézni, megoldási példákat. Ez a könyv nekem arra volt jó, hogy tudtam anno suliban olvasgatni, így legalább ott is tanultam vlmi értelmeset
-
Jhonny06
veterán
válasz
lamajoe #1108 üzenetére
Én is ebből tanultam anno, nem rossz, bár egy kicsit érdekesen van összeállítva. Memóriakezelés, láncolt listák, meg sablonok vannak benne, de egy sima I/O műveletet egy egyszerű fájllal még véletlenül se raktak volna bele. Pedig ez alap, főleg aki emelt érettségire akar felkészülni.
-
Benmartin
senior tag
válasz
broland #1106 üzenetére
Én is abból kezdtem neki 8.-os koromban, teljesen magamtól. Idén érettségiztem emelt szinten.
Egy biztos: a sikert nem úgy fogod elérni az érettségin, hogy könyveket olvasol (ne érts félre, nagyon is kellenek), hanem hogy gyakorolsz. Ne feledd el, hogy a könyvből az adott programozási nyelv elemeit tanulhatod meg, valamint néhány alapvető vezérlési szerkezetet, de nem algoritmizálni.
Az érettségi "programozás feladata" valójában algoritmizálás és adatmodellezés néven szerepel, így kell rá tekinteni.
Javaslom az http://uva.onlinejudge.org/ oldal felkeresését; itt vannak egyszerű feladatok, de nagyon komolyak is.
Jó gyakorlást!
-
broland
csendes tag
Sziasztok!
Szeretnék megtanulni programozni C++ nyelven(vagyis legalább emelt érettségi szintű programozói tudást
), és tanácsot kérni abban,hogy milyen könyvet tudnátok ajánlani egy teljesen kezdőnek.(Java-ban és C#-ban kb 5-5óra elmélyedéssel a hátam mögött
).
Programozzunk C++ nyelven! Tóth Bertalan-tól amit ajánlottak páran más helyekről,de szeretném itt is megkérdezni,hogy tényleg jó-e ez kezdésnek.Üdv
-
lamajoe
tag
válasz
WonderCSabo #1104 üzenetére
Köszöntem
-
lamajoe
tag
Lenne egy noob kérdésem
Eddig elvoltam a saját programjaimmal a béna msdos-os külsejükkel, de most már szeretnék egyik másiknak valami grafikát. Ezt mégis, hogy lehet elérni? Nem találtam róla semmit. -
lamajoe
tag
Köszi srácok
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- ASRock B550 PG Velocita + Ryzen 5 3600 + 32GB (4x8GB) DDR4 3600Mhz CL18
- Philips 58PUS8505 Smart LED Televízió,146 cm, 4K Ultra HD ,Android, Ambilight, HDR10+ KIJELZŐHIBÁSAN
- Canon EOS 250D kiegészítőkkel, táskával (CSAK 200 expoval !!! )
- Lenovo Legion Go 512GB + rengeteg extra!
- Bivaly erőmű Lenovo P1 G3 (Core I9 8mag/16 szál 32Gb DDR4 1Tb SSD 4Gb Nvidia) MAGYAR laptop eladó!
- Apple iPhone X, 256GB, Kártyafüggetlen
- ÁRGARANCIA! Épített KomPhone Ryzen 5 7600X 32/64GB RTX 5070 12GB GAMER PC termékbeszámítással
- Csere-Beszámítás! Prémium vizhűtéses számítógép! I9 11900K / RTX 3090 / 64GB DDR4 / 1TB SSD
- BESZÁMÍTÁS! NZXT Kraken Elite 360 RGB vízhűtés garanciával hibátlan működéssel
- ÁRGARANCIA!Épített KomPhone i5 10600KF 16/32/64GB RAM RTX 3060 12GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest