Hirdetés
-
Ilyen lesz a SteamWorld Heist II
gp A folytatás a tervek szerint a nyár folyamán, pontosabban augusztus elején érkezik.
-
AMD Radeon undervolt/overclock
lo Minden egy hideg, téli estén kezdődött, mikor rájöttem, hogy már kicsit kevés az RTX2060...
-
Letartóztatták a bitcoin-Jézust
it Amerikai adókerülés vádjával, Spanyolországban tartóztatták le a bitcoin-Jézusként ismert Roger Vert.
Új hozzászólás Aktív témák
-
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/[ Szerkesztve ]
-
Sk8erPeter
nagyúr
(megjegyezném, hogy van külön C-programozás topic. Ez itt a C++ topic.)
Sk8erPeter
-
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.
-
fair_play
csendes tag
köszi
-
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\"?
Lumia 520
-
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.
Nem vagyok egoista, csak uborkagyalu!
-
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;[ Szerkesztve ]
-
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.
[ Szerkesztve ]
-
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 ).Sk8erPeter
-
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.
What else you gonna do on a Saturday?
-
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;
}Jester
-
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
[ Szerkesztve ]
What else you gonna do on a Saturday?
-
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);Jester
-
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
[ Szerkesztve ]
What else you gonna do on a Saturday?
-
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?
-
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;
} -
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/Cf2riLNMSk8erPeter
-
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.
-
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.
[ Szerkesztve ]
-
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
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!
[ Szerkesztve ]
-
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.
[ Szerkesztve ]
-
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. -
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
-
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)Nem vagyok egoista, csak uborkagyalu!
-
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.
[ Szerkesztve ]
Lumia 520
-
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.
[ Szerkesztve ]
Jester
-
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[ Szerkesztve ]
Lumia 520
-
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)
[ Szerkesztve ]
Jester
-
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.
[ Szerkesztve ]
Don't dream it, be it. // Lagom amount.
Ú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!
- Ryzen 9 5950X
- AirPods Max - Silver (Hibátlan és tökéletes állapot, tulajdonképpen új, pár napot volt használva)
- LEGJOBB ÁR! GAMER PC - RTX 3070 - Ryzen 5500 - 16GB DDR4 - 500GB Nvme SSD
- ÚJ Playstation 5 CFW képes (feltörhető), lemezes
- ÚJ Dell Vostro 3520 - 15.6" IPS 120Hz / i5-1235U / 8-16Gb DDR4 / 512Gb / HUN backlit / 3 ÉV GAR.
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: Ozeki Kft.
Város: Debrecen