- Milyen TV-t vegyek?
- Milyen SSD-t vegyek?
- Hővezető paszták
- Házimozi belépő szinten
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- Nvidia GPU-k jövője - amit tudni vélünk
- Egy nap a TCL-nél: érkeznek az új tévék!
- Sony MILC fényképezőgépcsalád
- Projektor topic
- Milyen asztali (teljes vagy fél-) gépet vegyek?
Új hozzászólás Aktív témák
-
martonx
veterán
válasz
Capricornus #498 üzenetére
Szia!
Én a helyedben inkább hook-olnám a keyboardot, egy dll hívással. Már ha jól értettem a problémádat, és billentyűzettel vezéreled a felületet.
-
Capricornus
aktív tag
Sziasztok!
A probléma a következő: egy graf. felületű progit kell win xp alatt vezérelni automatikusan, ezt megoldottam virtuális billentyű lenyomásokkal (keybd_event), viszont ez csak akkor működik, ha aktív a kérdéses ablak.
Most próbálok a progiba beépíteni egy olyan megoldást, hogy PID alapján mindig előtérbe hozza és aktívvá tegye az ablakot, arra az esetre, ha valami miatt lekerülne róla a fókusz.
Egy ismerősöm küldött egy forrást amit próbálok beépíteni a progimba, de ez csak félig jó, mert előtérbe hozza az ablakot, de utána nem aktiválja
Ha valakinek van valami ötlete, vagy javaslta azt szivesen fogadom. a Forrás:#include <windows.h>
#include <stdio.h>
#include <iostream>using namespace std;
int procId;
HWND windowHandle;
BOOL CALLBACK MyEnumProc(HWND hWnd, LPARAM lParam)
{
DWORD processId;
GetWindowThreadProcessId(hWnd,&processId);
int id = processId;
if(procId == id)
{
windowHandle = hWnd;
return FALSE;
}
return TRUE;
}int main(int argc, char **argv) {
if (argc < 2) {
cout << "Használat: filenév processId" << endl;
} else {
procId = atoi(argv[1]);
EnumWindows(MyEnumProc,0);
if (windowHandle != NULL) {
SetForegroundWindow(windowHandle);
SetActiveWindow(windowHandle);
}
}
} -
Jester01
veterán
válasz
icespeak #494 üzenetére
1. hiányzik az using namespace std; (fordítófüggő, de ez a helyes)
2. a Megszamol függvénynek felesleges a c paraméter, a t viszont lehet referencia, ha már úgyis const.
3. a Megszamol függvény hívásakor a t vektort viszont illene átadni
4. a Megszamol függvényben a vektor elemeit kellene hasonlítani. Gondolom a hegycsúcs akkor hegycsúcs ha magasabb a tőle jobbra és a tőle balra lévő értéknél is. Tehát feltehetőleg || helyett && feltétel kell, és a szélső elemek nem lehetnek csúcsok.
5. a ReadFromKeyboard függvényben int változóba olvasol be, azt nem lehet összehasonlítani a "quit" stringgel. Vagy olvass stringbe mint a Read12 függvényben, vagy használj más kilépési feltételt. Az én verziómban negatív szám beírásával lehet kilépni.--- t.cpp.orig 2009-03-11 15:04:31.000000000 +0100
+++ t.cpp 2009-03-11 15:18:08.000000000 +0100
@@ -3,7 +3,9 @@
#include <sstream>
#include <vector>
-int Megszamol(const vector<int> t, int &c);
+using namespace std;
+
+int Megszamol(const vector<int> &t);
bool ReadFromFile(const string &fname, vector<int> &t);
void ReadFromKeyboard(vector<int> &t);
int Read12(const string &msg, const string &errormsg);
@@ -52,7 +54,8 @@
// Kiíratás
if(file_ok)
{
- if(Megszamol(c)) cout << "Hegycsúcsok száma:" << c << endl;
+ int c = Megszamol(t);
+ if(c > 0) cout << "Hegycsúcsok száma:" << c << endl;
else cout << "Nincs hegycsúcs"<< endl;
cout << endl << "Futtassam újra? (I/N) "; cin >> ch;
@@ -92,12 +95,9 @@
{
int meres;
cin >> meres;
- while(meres!="quit"){
+ while(meres > 0){
t.push_back(meres);
cin >> meres;
- if (meres < 0){
- meres = 0;
- }
}
}
@@ -128,10 +128,10 @@
return true;
}
-int Megszamol(const vector<int> t, int &c){
+int Megszamol(const vector<int> &t){
int c=0;
- for(int i=0; i<(int)t.size(); i++){
- if(i<i+1 || i+1>i+2){
+ for(int i=0; i<(int)t.size()-1; i++){
+ if(t[i]<t[i+1] && t[i+1]>t[i+2]){
c=c+1;
}
} -
icespeak
csendes tag
Hi mindenki. Szerintetek mi lehet az alábbi kóddal a probléma?
/*
10. A Föld felszínének egy vonala mentén egyenlő távolságonként megmértük a terep tengerszint
feletti magasságát, és a mért értékeket egy vektorban tároljuk. Hány darab hegycsúcs van a
mérési sorozatban?
*/
#include <iostream>
#include <fstream>
#include <sstream>
#include <vector>
int Megszamol(const vector<int> t, int &c);
bool ReadFromFile(const string &fname, vector<int> &t);
void ReadFromKeyboard(vector<int> &t);
int Read12(const string &msg, const string &errormsg);
int main(int argc, char *argv[])
{
char ch;
do{
// Adatok beolvasása
vector<int> t;
bool file_ok = true;
// Adatbevitel módja
int v;
if(argc>1) v = 1;
else{
cout << "Az adatbeolvasás módja:"<< endl
<< " SZÖVEGES FÁJL(1)"<< endl
<< " BILLENTYŰZET (2)"<< endl;
v = Read12("Válasszon: ","Csak 1 vagy 2 közül választhat!");
}
// Beolvasás fájlból
string fname;
switch(v)
{
case 1 :
if(argc<=1){
cout << "Adja meg a szöveges fájl nevét: ";
cin >> fname;
}
else fname = argv[1];
file_ok = ReadFromFile(fname, t);
if(!file_ok && argc>1) {
char ch; cin >> ch;
exit(1);
}
break;
case 2 :
cout << "Adjon meg mérési értékeket! Kilépés: quit \n";
ReadFromKeyboard(t);
break;
}
// Kiíratás
if(file_ok)
{
if(Megszamol(c)) cout << "Hegycsúcsok száma:" << c << endl;
else cout << "Nincs hegycsúcs"<< endl;
cout << endl << "Futtassam újra? (I/N) "; cin >> ch;
}
}while(ch!='n' && ch!='N');
return 0;
}
//Feladat: 1-es vagy 2-es beolvasása
//Tevékenység: Billentyűzetről kizárólag két szám, az 1-es vagy a 2-es valamelyikét fogadja el
// más adatot nem
//Bemenő adat: string msg - a beolvasás előtt megjelenítendő üzenet
// string error - hibás adat beírásakor megjelenítendő üzenet
//Kimenő adat: int v - 1-es vagy 2-es szám (visszatérési értékként)
int Read12(const string &msg, const string &errormsg)
{
int n;
bool hiba = true;
do{
cout << msg;
string str;
cin >> str;
n = atoi(str.c_str());
hiba = (n==0 && str!="0") || n<1 || n>2;
if(hiba) cout << errormsg << endl;
}while(hiba);
return n;
}
//Feladat: Integereket tartalmazó tömb (vector) feltöltése billentyűzetről
//Tevékenység: Billentyűzetről olvas be egymás után integereket és helyezi el őket egy vektorban
// addig, amíg a "quit" szót nem írjuk.
//Bemenő adat: -
//Kimenő adat: vector<int> t
void ReadFromKeyboard(vector<int> &t)
{
int meres;
cin >> meres;
while(meres!="quit"){
t.push_back(meres);
cin >> meres;
if (meres < 0){
meres = 0;
}
}
}
//Feladat: Integereket tartalmazó vektor feltöltése szöveges állományból
//Tevékenység: Megnyitja a megadott szöveges állományt (sikertelen kísérlet esetén hibát jelez)
// majd a fájlból egymás után beolvassa az összes elválasztójelekkel határolt számot
// és elhelyezi azokat egy vektor-ban
//Bemenő adat: string fname - szöveges állomány neve
//Kimenő adat: vector <int> t
// bool ok - sikerült-e az állomány megnyitása (visszatérési értékként)
bool ReadFromFile(const string &fname, vector<int> &t)
{
ifstream x(fname.c_str());
if(x.fail()){
cout << "Hibás fájlnév!"<< endl;
return false;
}
int meres;
x >> meres;
while(!x.eof()){
t.push_back(meres);
x >> meres;
if (meres<0){
meres = 0;
}
}
return true;
}
int Megszamol(const vector<int> t, int &c){
int c=0;
for(int i=0; i<(int)t.size(); i++){
if(i<i+1 || i+1>i+2){
c=c+1;
}
}
return c;
} -
Psych0
őstag
Sziasztok!
Hogy kéne visual c++ alatt fullscreenbe váltani?
Desktop resolution kell, tehát nincs changedisplaysettings.gondoltam nyitok egy ablakot, aminek a style-ja WS_POPUP
DE, ha visszaváltok windowed módra(eddig is az volt csak desktop felbontású keretnélküli magasprioritású), akkor oda az aero. viszont ha nem 1680*1050-es ablakot csinálok, akkor nem bántja az aerot.ha WS_POPUPWINDOW a style. akkor minden ok, csak van egy egy pixel széles fehér keretem, ami gáz. ha megpróbálom az adjustwindowrect-tel eltávolítani a keretet, akkor csak az alsó és a jobb tűnik el.
hogy lehetne ezt megoldani?
nem vagyok hivatásos programozó, ezért elnézést, ha hülyeség. -
PazsitZ
addikt
Miért szükséges ehhez mindenképp bool típus
?
Jó, jó elvileg úgy szebb, de egy sima integer is megteszi...#include <iostream.h>
#include <stdlib.h>
#include <conio.h>
char nr;
int x;
int main()
{
clrscr();
do{
do{
cout<<"FIU(1) v LANY(2) vagy ? [ird be a szamod] \n";
cin >> nr;
}while( (0<nr) && (nr<3) );
x=0;
switch(nr)
{
case '1':
cout << "Te a jelek szerint FIU vagy! \n";
break;
case '2':
cout << "Te a jelek szerint LANY vagy! \n";
break;
default:
cout << "Nem irtal be se 1-est, se 2-est \n";
x=1;
break;
}
}while(x!=0);
system("PAUSE");
return 0;
}Mondjuk még új változó sem szükséges jelen esetben szvsz:
#include <iostream.h>
#include <stdlib.h>
#include <conio.h>
char nr;
int main()
{
clrscr();
do{
do{
cout<<"FIU(1) v LANY(2) vagy ? [ird be a szamod] \n";
cin >> nr;
}while( (0<nr) && (nr<3) );
switch(nr)
{
case '1':
cout << "Te a jelek szerint FIU vagy! \n";
break;
case '2':
cout << "Te a jelek szerint LANY vagy! \n";
break;
default:
cout << "Nem irtal be se 1-est, se 2-est \n";
break;
}
}while(nr!='1' && nr!='2');
system("PAUSE");
return 0;
} -
-
#82189568
törölt tag
Köszönöm szépen a segítségedet, nagyon királyul működik, de valahogy Nekem a Borland C fekszik a legjobban ott tudom , hogy mit hova merre meddig, de biztos amit ajánlottál is jó, csak nem tudtam megfelelően használni, most 5.02es Borlandot tettem fel, ez már grafikus felületű.
Megmutattam ma ugyan ezt a kérdést a tanáromnak, de hirtelen Ő sem jött rá, hogy a régi Borlandba , hogy lehetne megoldani.
Ilyen úton próbáltunk elindulni :
#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <string.h>int main()
{
clrscr();
char nr;do {
cout<<"FIU(1) v LANY(2) vagy ? [ird be a szamod] \n";
cin >> nr;
}while( (0<nr) && (nr<3) );switch(nr){
case '1':
cout << "Te a jelek szerint FIU vagy! \n";
break;
case '2':
cout << "Te a jelek szerint LANY vagy! \n";
break;
default:
cout << "Nem irtal be se 1-est, se 2-est \n";
}
system("PAUSE");
return 0;
} -
skoda12
aktív tag
válasz
#82189568 #487 üzenetére
Ez a borland környezet már nagyon régi, bool típust nem ismeri fel a compiler. Használj helyette codeblocks környezetet. Conio már nem támogatott, include-nál meg nem használjuk a .h kiterjesztést ha alap könyvtárakat használunk. Mivel iostreamet használsz felesleges a stdio. Itt a működő kód:
#include <iostream>
using namespace std;
int main()
{
int nr=0;
bool ujra;
do {
ujra = false;
cout<<"FIU(1) v LANY(2) vagy ? [ird be a szamod] n";
cin >> nr;
switch(nr)
{
case 1:
cout << "Te a jelek szerint FIU vagy! n";
break;
case 2:
cout << "Te a jelek szerint LANY vagy! n";
break;
default:
cout << "Nem irtal be se 1-est, se 2-est n";
ujra = true;
break;
}
}while(ujra);
system("PAUSE");
return 0;
} -
skoda12
aktív tag
válasz
#82189568 #485 üzenetére
www.freeprogrammingresources.com oldalról kiindulva találhatsz rengeteg cpp példakódot. Könyvnek Bjarne Stroustrup féle A C++ programozási nyelv című könyv az, ami mindent tartalmaz. Ebből nem egyszerű dolog tanulni, nem is kezdőknek írták, de ha keresel mellette példakódokat, akkor menni fog.
#include <stdio.h>
#include <stdlib.h>
#include <iostream.h>
#include <conio.h>
int main()
{
clrscr();
int nr=0;
bool ujra;
do {
ujra = false;
cout<<"FIU(1) v LANY(2) vagy ? [ird be a szamod] n";
cin >> nr;
switch(nr)
{
case 1:
cout << "Te a jelek szerint FIU vagy! n";
break;
case 2:
cout << "Te a jelek szerint LANY vagy! n";
break;
default:
cout << "Nem irtal be se 1-est, se 2-est n";
ujra = true;
break;
}
}while(ujra);
system("PAUSE");
return 0;
} -
#82189568
törölt tag
Sziasztok! Most kezdtem el C++ t tanulni eddig Pascalt tanultam, de fel kell zárkóznom, mert a 2. félévtől új suliba járok.
Tippek, trükkök , hogy hol , miből , lehetőleg sok példával végigvezetve lehet hatékonyan megtanulni a nyelvet ??#include <stdio.h>
#include <stdlib.h>
#include <iostream.h>
#include <conio.h>int main()
{
clrscr();
int nr=0;cout<<"FIU(1) v LANY(2) vagy ? [ird be a szamod] n";
cin >> nr;switch(nr)
{
case 1:
cout << "Te a jelek szerint FIU vagy! n";
break;
case 2:
cout << "Te a jelek szerint LANY vagy! n";
break;
default:
cout << "Nem irtal be se 1-est, se 2-est n";
break;
}
system("PAUSE");
return 0;
}Annyi lenne a kérdésem még, hogy hogyan lehetne megoldani, hogyha helytelen értéket kap a program akkor újra kérdezze és ne lépjen ki a programból ??
Köszönöm !
-
amargo
addikt
Egy lehetséges megoldást, azért beteszek. De örülök, hogy rájöttél. Ha csak beraktam volna a megoldást, nehezebben értenéd meg. De lehet tévedek.
struct matrix
{
int** pData;
int dom;
};
//---------------------------------------------------------------------
bool GetMatrix(matrix &pMatrix)
{
if( pMatrix.dom == 0 && pMatrix.dom == INT_MAX) //hiba a mátrix létrehozásánál, elég az alapokhoz.
{
return false;
}
pMatrix.pData = new int*[ pMatrix.dom ];
for(int i = 0; i < pMatrix.dom; i++)
{
pMatrix.pData[ i ] = new int[ pMatrix.dom ];
}
return true;
}//bool GetMatrix(matrix &pMatrix) -
amargo
addikt
int **n =new int * [max1];
Itt létrehoztál egy mutatókból álló tömböt egy mutatóra.
Azaz, a benne lévő mutatók területét még nem foglaltad le, hanem csak a mutatókból álló tömb méretét.Ami hiányzik, hogy lefoglald a benne lévő mutatóknak is a helyét.
Tovább nem néztem, de ez mindenképpen szükséges, hogy ne csak a vakvilágnak próbálj meg értéket adniTovábbá egy hasznos tanács ha a mélységével együtt struktúrába rendeled.
Egyszerűbb lesz kezelned. -
D@ni88
addikt
hali, kicsit tanácstalan vagyok, annyi gondom lenne hogy egy egységmátrixot kéne létrehozni, dinamikus tömbbel.
erre jutottam. esetleg valaki?#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int max1 =20;
setlocale(LC_ALL,"hun");
cout << "Adja meg az egységmátrix szélességét: ";
cin >> max1;
if (max1<2||max1>20)
{
cerr<<"Megadott paraméterek nem felelnek meg!"<<endl;
exit(1);
}
else
{
int **n =new int * [max1];
int k=1;
for (int i=0; i<max1; ++i)
{
for (int j=0; j<max1; j++)
{
if(i==j)
{
n[i][j]=1;
}
else
{n[i][j]=0;}
}
k++;
}
for (int i=0; i<max1; ++i)
{
for (int j=0; j<max1; j++)
{
cout.width(3);
cout << n[i][j];
}
cout << endl<<endl;
}
}
}tudom hogy a végére még kell a tömb helyének a felszabadítása, de ez lényegtelen... mert nem csinál semmit, ki akar lépni...
-
vampire_girl
csendes tag
bocs h segitseget mertem kerni , ugylatom tul nagyfej vagy ahhoz hogy segits, nha azert kosz h nem kommentaltad
-
martonx
veterán
válasz
vampire_girl #477 üzenetére
Megszóltak, hogy túl sokat fikázom a kérdéseket, úgyhogy ezt a kérdést inkább nem kommentálom...
-
vampire_girl
csendes tag
Sziasztok, nagyon nagy szuksegem lenne c++ segitsegre egy iskolai feladathoz, sok mulik rajta.
Tehat egy "teszt" c++ programot kell megirjak , ami abbol all hogy minden kerdes utan van egy a,b,c valasz. A kerdesem az lenne, hogy milyen utasitassal irhatnam fel azt hogy ha pl az a-t valasztjuk akkor 3-al nojjon az osszeg szama, ha b-t valasszuk akkor 2-vel es ha c-t akkor 1-el.Nagyon fontos lenne, elore is halas vagyok ha esetleg vki segiteni tunda
-
martonx
veterán
válasz
!wannabe #473 üzenetére
Ez egy C++ topik, ahol mint a címe is mutatja nyelv specifikus kérdésekkel kellene foglalkozni (pl. miért nem fordul le ez vagy az, hogy kellene C++-ban megoldani ilyen vagy olyan problémát sb...
A sorbarendezés az egyik legtriviálisabb algoritmus, és te azt kérted, hogy magyarázzuk el, hogy működik. Egy egyszerű algoritmus magyarázatának SZVSZ semmi köze a C++-hoz, még ha éppen C++-ban is kell alkalmaznod az adott algoritmust. -
doc
nagyúr
válasz
!wannabe #470 üzenetére
nem igazan a hagyomanyos megoldas, es foleg nem attekintheto...
szoval:
parameterkent atadod ugye a tomb elemeinek szamat, es egy mutatot a tombredouble* legkisebb=tomb; -> a 'legkisebb' egy double tipusra mutato mutato, indulaskor a tomb cimere mutat, ami a tomb legelso eleme
utana egy ciklusban vegigjarja a tomb osszes elemet a masodiktol (1. index) kezdve
a tomb valtozo a tomb legelejere mutat, ha hozzaadsz egy szamot, akkor az annyiadik elemet kapod meg, tehat a tomb+5 az 5. indexu (sorban a hatodik) elemre mutat
ha a (tomb+i) cimen levo ertek kisebb mint amire a legkisebb mutat, akkor a 'legkisebb' valtozo a megfelelo elemre fog mutatni (tomb+i)a vegen meg visszaadja azt az erteket, amire a 'legkisebb' nevu mutato mutat
azert igy lenyegesen olvashatobb:
double min(int elemszam, double tomb[])
{
double legkisebb=tomb[0];
for(int i=1; i<elemszam; i++)
if(tomb[i]<legkisebb) legkisebb=tomb[i];
return legkisebb;
} -
!wannabe
tag
-
vgergo
aktív tag
Olyan problémám van, hogy az alábbi kódot lefordítom és
test.exe ertek futtatom
, akkor az output a következő:
ertek
YYYYYY#include <iostream>
int main (int argc, char *argv[]) {
cout <<argv[1]<<"\n";
if (argv[1]=="ertek"){cout<<"XXXXXX";}else{cout<<"YYYYYY";}
}Azt nem értem, hogy mikor kiíratom az argv[1]-t ertek-t kapom, de mikor ellenőrzöm akkor nem egyenlő ertek-kel.
Gondolom ezzel is ugyanaz a probléma, mint az előzővel.
switch (argv[1])
{
case "ertek0" :cout <<"X";break;
case "ertek1" :cout <<"C";break;
case "ertek2" :cout <<"V";break;
default :cout <<"Egyeb";break;}
} -
amargo
addikt
válasz
!wannabe #463 üzenetére
eclipse c/c++ 80M nem kell telepíteni.
Semmit nem konfiguráltam és simán lefordult egy helloworld.Pendrive-ra is kirakhatod, talán kicsit lassabb lesz(vagy, amíg használod felmásolod a gépre), de legalább hordozható.
-
!wannabe
tag
Bizony ez is benne van, hogy előttünk van egy csoport és nyomkodnak észnélkül
Nem az eclipse-hez hasonlítom a DEVC-t. Látom a különbséget, martonx kérdezte, hogy kipróbáltam-e már a DEVC-t. Arra válaszoltam, hogy igen és CB-t is használtam.
A notimon van eclipse az előző progit is abban írtam. Néha itt is fagy bár most úgytűnik jó napja van.
Egyébként miért baj, ha konzolbol fordítok? -
amargo
addikt
válasz
!wannabe #459 üzenetére
eclipse fagyogat?
Gondolom a hozzáértők beállítgatnak mindenfélét, és amire Te oda kerülsz a gépelé, egy romhalmaz fogad.
Ha a CodeBlocks vagy DEV C++ hozzá hasonlítod, az számomra elég erős. Pedig nem orvérzésig használom, de szoktam használni több könyvtárral, az elején, amíg nem tudtam felkonfigurálni, nekem is gondjaim voltak (ez tény)..Inkább tedd ki pendrive-ra és onnan fejlesz (ha nincs laptop).
-
!wannabe
tag
válasz
Fire/SOUL/CD #458 üzenetére
martonx
Eclipse-nél van ez a helyzet. Pont azt írom, hogy ez a bajom az eclipse-el. DevC-t használtam régen. Viszont azóta rákaptam a codeblocks-ra. Itt a suliba eclipse-t erőltetik, azonban kis programokat kell még írni ebben a félévben, olyanokat amiben az előbb segítettetek. Ehhez gedit-et használok és terminal-ban fordítok. Ma volt az első gyakorlat és eclipse ott is jobbra-balra fagyott. Nem fogom a kisZH-mat abban írni egészen biztos vagyok benne. Ha egy nagyobb projectet kell összehozni biztos hasznos meg kódkiegészítő stb....de éppen írtam aggregátornak is, hogy eclipse-ben kisZH-t írni olyan mint ágyúval hangyára lőni!Fire
Köszi a segítséget, még annyit kellett, hogy a külső ciklust ne '1' től hanem '0'-tól indítsam mivel így a tömb 0. elemét mindig úgyhagyta. A lényeg, hogy most működik -
-
!wannabe
tag
pl amikor azt irom h:
std::cout
akkor a '::' utan megáll és nem csinál semmit. Elszürkül és tölt kb 4 masodpercig, aztan lehet folytatni a munkat. Neha '<<' utan csinalja. Kaptam egy olyan tippet, hogy a project --> properties-ben kapcsoljam ki az indexelest. Ez megtortent, de a dolgon nem valtoztatott.
Ha mar ennyire belejottem, akkor kerdezek vmi mast is.
#include <iostream>
using namespace std;
void beker(int& elemszam)
{
cout << "Kerem a tömb elemszámát: ";
cin >> elemszam;
}
void feltolt(int elemszam, int * tomb)
{
for(int i=0; i<elemszam; i++)
{
cout << "Kerem adja meg a tömb " << i <<". elemét: ";
cin >> tomb[i];
}
}
void kiir(int elemszam, int * tomb)
{
for(int i=0; i<elemszam; i++)
{
cout << tomb[i];
}
}
void csere(int elemszam, int * tomb)
{
for(int i=0; i<elemszam-1; i++)
{
for(int j=i+1; i<elemszam; i++)
{
if(tomb[i]>tomb[j])
{
int tmp = tomb[i];
tomb[i] = tomb[j];
tomb[j] = tmp;
}
}
}
}
int main()
{
int x;
int * A;
beker(x);
A = new int [x];
feltolt(x,A);
kiir(x,A);
csere(x,A);
delete [] A;
return 0;
}Ez egy egyszeru cseres rendezes akar lenni. Igazabol ki kellene mostmar csak iratni, de mivel 'tomb[i]'-t iratok ki ezert ugyanugy irja ki az ertekeket ahogy a bemenetre adom. Szoval hogy kellene kiirni a cserevel elrendezett elemeket?
-
!wannabe
tag
Hi!
Eclipse-t hasznalok illetve probálnék. C++-ban mondjuk "hello world"-t futtatni de allandoan kifagy amikor a 'cout'-hoz erek. Hallottam, hogy be lehet állítani valamit, hogy ez ne legyen problem. Vmit be pipálni vagy vmit nem be 'x'-elni már nem tudom. Hátha itt tud vki segiteni.
-
Dolby
senior tag
Sziasztok!
Egy ismerősöm Borland C-t használ (3as verzió) és az új gépén (intel 2mag) ha futtatja a programot egyszerűen kilép
lehet h kell valamit telepíteni h a két magot tudja kezelni?
-
Zefír
őstag
Sziasztok!
Remélem nem fogtok kinevetni.Megszeretném tanulni ezt a programot használni.De smmitt nemtudok róla...
Pár mondatban leírnátok alényeget? -
Jester01
veterán
Jó az, csak az a lépés maradt ki, hogy a max változóba a ciklus előtt beletedd a maximum értéket.
void szamok::normalizalas()
{
double max = maximum(); // <---- EZ ITT NI
vector<double>::iterator it;
for(it=szam.begin();it!=szam.end();it++)
{
cout<<*it/max<<" ";
}
cout<<endl;
}MOD: Úgy sejtem erre egy
lesz a válasz
-
cafat
aktív tag
Sziasztok! Az lenne a kérdésem hogyha egy függvény visszatérési értékét egy másik függvényben felszeretném használni azt hogy tehetem meg? Jelen esetben van egy maximum függvény ami a maximális értéket adja vissza, és lenne egy normalizálás függvény ahol minden értéket a a miximum értékkel kell elosztani.
double szamok::maximum()
{
double max=0;
vector<double>::iterator it;
for(it=szam.begin();it!=szam.end();it++)
{
if(*it>max) max=*it;
}
return max;
}
void szamok::normalizalas()
{
vector<double>::iterator it;
for(it=szam.begin();it!=szam.end();it++)
{
cout<<*it/max<<" ";
}
cout<<endl;
}Így próbálkoztam, de így nem működik. Ha valaki tudna segíteni azt megköszönném!
-
Orc
senior tag
Segítsetek légyszíves:
Milyen láncba tudok osztály-objektumokat menteni?struct Node {
int value;
Node *next;
Node(int i=0, Node *q=NULL) :value(i), next(q){}
};itt az "int value" helyett mit kellene írnom? "osztálynév value"?
(alma osztályból származtatott körte osztály objektumait akarom elmenteni, int típusú elemei vannak az osztályoknak)
-
cellpeti
nagyúr
Sziasztok!
Nekem van egy ilyen feladatom:1.) Kérjen be a program 10db rendszámot,autó sebességét
utánna:
max sebesség bekérése: 70Km\h
írja ki:
- mennyi volt a 10 kocsi átlag seb.
- leggyorsabban közlekedő autó sebességét
- adja meg mennyire büntetik meg,ha 1km\1000ftOlyan kérdésem lenne,hogy a rendszámot milyen változóba kérjem be,mert ugye van benne szám is és betű is.
-
Davey7
senior tag
nekem az lenne a kérdésem,hogy a dev c++ az rendesen fut vista alatt?
mert én felraktam és ki is próbáltam a "hello world" programmal(lefordította,elindult),de csak felvillant a program képernyője aztán el is tűnt...és a hivatalos oldalon,nincs megjelölve a vista...ha ez igaz akkor tudnátok ajánlani egy jó programot ami rendesen fut vista alatt?
-
raczger
őstag
válasz
icespeak #436 üzenetére
for ciklusba beraksz egy másik változót, pl legyen j, ami azt számolja, hogy hanyadik napnál tartasz, 1-től kezded, és ciklus végén növeled eggyel, ha eléri a hetet a j szám, kiírod az eddigi összeget, utána nullázod a j változó, és az osszeg változót is, ja és természetesen az osszeg változóhoz adod hozzá a mindig aktuális összeget
-
icespeak
csendes tag
Hogyan lehet elérni egy for ciklusnál, hogy az elemeket hetesével összeadja majd kiírja egymás után ezeket majd képezze ezeknek a hetesével összeadottaknak a különbségeit és azt is kiírja?
-
icespeak
csendes tag
válasz
Jester01 #416 üzenetére
Köszi a választ.
Most az érdekelne, hogy ugyanebben a feladatban hogy tudnám megoldani hogy hetente legyenek a megadott összegek tehát első hét nap összege az 1. hét a második hét nap összege a 2. hét stb. és még ezt bonyolítva azzal, hogy a hetek közötti különbséget meg kell adni tehát 1. és 2. hét különbsége és a többi. Bármilyen ötletet szívesen fogadok. -
Jester01
veterán
Az összegzés megvalósítása hibás, túlcímez a lefoglalt területen. Eleve, ha két darab x jegyű számot összeadok, az eredmény már x+1 jegyű is lehet, de te ráadásul x-1 jegynek foglalsz csak helyet.
MOD: ja majd ha már működik, akkor esetleg érdemes lenne fel is szabadítani a lefoglalt területeket
-
Orc
senior tag
Megint kellene egy kis segítség.
Van egy dinamikusan lefoglalt tömböm. Amit adott esetben "felül kellene írni".
Az összes elmét ki kellene törölni és újra megtölteni a tömböt.Hogyan lehetne ezt?Itt száll el néha,amikor próbálom átméretezni az új feltöltéshez.
n=szam.size();a=new int[n]; -
Orc
senior tag
válasz
sghc_toma #420 üzenetére
2 számot akarok beolvasni, tehát vagy ketté kell szednem a Beolvas műveletet és a visszatérési értékkel dolgozni, ugye? Mi van akkor, ha nem akkarom szétválasztani és a visszatérési értékre sincs szükségem? Miként lehetne ez esetben kijavítani a hibát?
(fordító nem rinyált) -
Orc
senior tag
A segítségeteket kérném. Adott egy osztály, aminek van két string változója, amibe be akarok olvasni, számokat, betűket, stb...A gond az, hogy ahogy beolvasta a két számot a
progi, lefut a destruktor és elszáll, sigterm hibával. Szerintem olyan területre írok, ami nem a programé, hogyan lehetne kijavítani ezt a hibát?alma.h
csak a lényeg)
class alma{
public:
alma();
~alma(){};
string Beolvas();
private:
string szam;
string szam2;};alma.cpp
csak a lényeg)
string Nagyszam:eolvas()
{ cout << "Add meg az "a" számot! a=";
cin >> szam;
cout << "Add meg a "b" számot! b=";
cin >> szam2;}
main.cppcsak a lényeg)
alma z;
z.Beolvas(); -
Jester01
veterán
válasz
icespeak #415 üzenetére
Mivel a P tömbben a napi nyereség/veszteség van, ezért az aktuális napi pénzünk az aznapi és az összes megelőző nap P értékének valamint persze a kezdeti pénzmagnak az összege. Amíg ez pozitív vagy nulla, addig nem kell kölcsönkérni. A függvény egyébként hibás, mivel az X értékét nem veszi figyelembe.
-
icespeak
csendes tag
Hello mindenki, a következő programban érdekelne, hogy mit csinál a void kölcsönkérésben mert nem igazán tudom értelmezni.
#include <iostream>using namespace std;
const int maxN=100;
void beolvasas(int &N,int P[],int &X);
void kolcsonkeres(const int N,const int P[],const int X,bool &Van,int &Nap);
void kiiras(const int N,const int P[],const int X,const bool Van, const int Nap );int main()
{ int N,X,Nap; //N napig jártunk lóversenyre, X pénzünk van kezdetben, Nap-on kell kölcsönkérni
int P[maxN]; // naponként nyereségek, vagy veszteségek
bool Van; //Van olyan nap, amikor kölcsön kell kérni
cout<<"Loversenyezes.Mikor kell eloszor kolcsonkerni?"<<endl<<endl;
beolvasas(N,P,X);
kolcsonkeres(N,P,X,Van,Nap);
kiiras(N,P,X,Van,Nap);
return 0;
}
void beolvasas(int &N,int P[],int &X){
do{
cout<<"Hany napig loversenyezunk? (0.."<<maxN<<")";
cin>>N;
}while (!((N>=0)&&(N<=maxN))); //napok szama csak nem negativ lehet
cout<<"Mennyi volt az indulo osszeg? "; //az előfeltétel nem írja elő, hogy csak pozitív adatot használhatunk
cin>>X;for (int i=0;i<N;++i){
cout<<i<<". napi nyereseg vagy veszteseg osszege FT-ban ";
cin>>P[i];
}
}
void kolcsonkeres(const int N,const int P[],const int X,bool &Van,int &Nap){
int S=0;
int i=0;
while ((i<N)&&((S+P[i])>=0)){
S+=P[i];
++i;
}
Van=(i<N);
if (Van){
Nap=i;
}}
void kiiras(const int N,const int P[],const int X,const bool Van, const int Nap ){
cout<<X<<" FT-unk volt kezdetben."<<endl;
cout<<"A verseny napjainak nyeresege es vesztesege..."<<endl;
for (int i=0;i<N;++i){
cout<<P[i]<<", ";
}
if (Van){
cout<<endl<<" Az elso nap, amikor kolcson kellett kerni a(z) " <<Nap<<"."<<endl;
}
else {
cout<<endl<<" Nem volt olyan nap, amikor kolcson kellett kerni..."<<endl;
}}
-
Benmartin
senior tag
válasz
nickwearby #411 üzenetére
Nem lehet, hogy INDEX egy makró, ami valahol definiálva van? Csak tippelek, mert a kódodat egyik helyről sem tudtam letölteni.
szerk: mondjuk akkor le sem fordulna, úgyhogy nem szóltam.
Üdv.
-
nickwearby
tag
Ezt a problémát sikerült kiküszöbölni,
most már fut (mondjuk nem épp jól, ..). -
nickwearby
tag
Nem,
azt hiszem, hiba volt csak egy részletet belinkelniA hiba ott van, hogy egy egy dimenziós tömböm van,
abból ki akarom választani,
hogy melyik értéke a legalacsonyabb (ami lehet negatív is),és ennek a sorszámát, tehát, hogy hányadik ez az elem a tömbben,
azt a számot akarom betenni az INDEX nevű változóba.De pont ott jelzi a debugger a hibát,
abban a sorban,
amikor a tömb i-edik eleméből azt az adatot,
hogy hányadik,
be akarom tenni az INDEX-be.
-->
INDEX=i;És nem tudom, hogy hol hibás a gondolatmenetem
-
amargo
addikt
Huhhh, bocsánat én vagyok a ...béna. Megint csak nem látok.
int N;
cin >> N;
int t[N];Biztos nem jó és fordítási hibát, kapsz, hogy nincs deklarálva a tömb mérete, hiszen ez nem dinamikus tömb.
A helyes:
int *t;
int N;
cin >> N;
t = new int[N];Még 1x elnézést, benéztem és csak a cin-ig jutottam..
-
nickwearby
tag
Bocsánat,
egy lényeges infót kihagytam....A program lefordul,
a futtatásnál viszont leáll.És amit feljebb beírtam hibát,
azt a debuggerrel találtam.Viszont a fájl tényleg nem tölthető le,
ezért ide raktam inkább.
Még egyszer teljes kód txtben. -
skoda12
aktív tag
-
martonx
veterán
Az a baj, hogy a felvetett két sor hibás, és addig el sem indul a program amíg a fordító ezt hibának látja.
int N;
int h[N][7];a h tömböt dinamikusan kellene használnod, nem pedig statikusan. Így ez soha nem fog lefordulni.
Ezen kívül lehet, hogy más hiba is van benne, de amíg ezt meg nem oldod, még debuggolni sem tudod, mivel nem fordul le a kód. -
skoda12
aktív tag
válasz
nickwearby #403 üzenetére
Most nincs előttem fordító, szóval nem tudom kipróbálni, de:
van egy ilyen rész a kódodban:int N;
int h[N][7];Ez sztem azért rossz, mert az N nem kapott még értéket (talán 0-t kap automatikusan), és ilyen méretű tömböt hoz létre. Csak ezután a kód után kérted be N értékét, de N-t az int h[N][7]; rész előtt kérd be, különben hibás indexelés miatt későbbi kódrészletben el fog szállni. A másik, hogy néhány helyen függvénynek adtál paraméterként olyan változókat, amiknek az értékét függvényen belül módosítottad, majd a függvényen kívül használni szeretnéd az új értéket, de nem referencia szerint adtad át a változókat a függvényeknek.
-
nickwearby
tag
Sziasztok,
egy házit írok,
és már kész is van a kód, de el sem indul....A debugger segmentation fault hibaüzenetet dob ki,
de nem tudok rájönni, mit kellene másképp írni,
mert még csak két hónapja kezdtem, annyira nem vagyok mélyen a témában.Ez a debugger log:
Starting debugger:
done
Registered new type: wxString
Registered new type: STL String
Registered new type: STL Vector
Setting breakpoints
Debugger name and version: GNU gdb 6.7.50.20071127
Child process PID: 1240
Program received signal SIGSEGV, Segmentation fault.
At D:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/iostream:77Ez a backtrace ablakban jelenik meg:
#0 0040D4C7 probe() (D:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/iostream:77)
#1 0040CFA4 std::__timepunct<char>::_M_initialize_timepunct() (D:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/iostream:77)
#2 0040124B __mingw_CRTStartup()
#3 00401298 mainCRTStartup()És a hibás programrész:
[B]void minimum (int tombketto[] , int N , int MIN, int INDEX){
for (int i=0; i<N ; ++i){
if(tombketto[i]<MIN){
INDEX=i;
MIN=tombketto[i];}
}return;
}[/B]Elvileg ennek azt kéne csinálnia, hogy a tömb adatait egyenként megvizsgálja és a legkisebb értéket beteszi a MIN változóba,
és annak indexét az INDEX változóba.A hibát abban a sorban jelzi,
ahol az INDEX=i;
található.Ha ez a részlet nem elég az értelmezéshez,
ide feltettem az egész kódot.Előre is kösz a segítséget.
-
Galacska
csendes tag
Szia Martonx!
Köszönöm,építőjellegű hozzászólásodat.
Azért ITT tettem fel ezt a kérdést mert gondoltam,már más is járt így (konkrétan ezzel a programmal), és talán megosztotta volna velem is,mi a probléma a gépemen,mert eddig én is eljutottam,ennél fogva,nem... nem segítettél... se sokat se keveset,de örülök,hogy ez ekkora () örömöt okozott Neked.
Köszönettel
Gala
Új hozzászólás Aktív témák
Hirdetés
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Nintendo Switch 2
- Milyen TV-t vegyek?
- Google Pixel topik
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Kazy Computers - Fehérvár - Megbízható?
- Luck Dragon: Asszociációs játék. :)
- Kertészet, mezőgazdaság topik
- sziku69: Fűzzük össze a szavakat :)
- Milyen SSD-t vegyek?
- Elder Scrolls IV - Oblivion - Olvasd el az összefoglalót, mielőtt írsz!
- További aktív témák...
- Gombászkönyvek egyben
- 100.000 ft -tól Országosan a legjobb BANKMENTES részletfizetési konstrukció! ASUS ROG Strix G18
- Csere-Beszámítás! RTX Számítógép PC Játékra! I3 10100F / RTX 2060 12GB / 32GB DDR4 / 500GB SSD
- Telefon felvásárlás!! Samsung Galaxy A13/Samsung Galaxy A33/Samsung Galaxy A53
- Azonnal elérhető, raktáron lévő HPE Aruba switch-ek
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: CAMERA-PRO Hungary Kft
Város: Budapest