- Xiaomi AX3600 WiFi 6 AIoT Router
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Kodi és kiegészítői magyar nyelvű online tartalmakhoz (Linux, Windows)
- Milyen switch-et vegyek?
- Linux kezdőknek
- Hálózati / IP kamera
- Sweet.tv - internetes TV
- A Microsoft feltalálta az olcsó AI-t
- Musk szerint már jövőre itt vannak a Tesla Optimus humanoid robotok
- Otthoni hálózat és internet megosztás
-
IT café
Új hozzászólás Aktív témák
-
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] -
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 elhasal -
doc
nagyúr
válasz Forest_roby #2010 üzenetére
a galde glade akar lenni? ha jól tudom, az gtk-s felülettervező, ugye?
maga a dialógus nem menti el a szöveget, nézd meg hogy a gtk-ban milyen osztályok/függvények vannak a szöveges file-ok kezeléséhez, és azzal te magad tudod kimenteni a dialógus által visszaadott nevű file-ba -
doc
nagyúr
válasz Forest_roby #2022 üzenetére
gtk-hoz nem ertek, de wxWidgets-ben ugy mukodik, hogy az esemenytablaban letre kell hozni egy EVT_CLOSE esemenyt, es atadni neki a fuggveny cimet amit meg akarsz hivni
ha gtk-ban is van ilyesmi, akkor errefele nezelodj -
doc
nagyúr
válasz Yeti910331 #2071 üzenetére
ez azért nem így megy, egyrészt valószínűleg az egész játékot újra kell írni, másrészt az eredeti játék adatainak (pl. grafikák, hangok) felhasználása már jogi terület...
azt azért lehet tudni hogy melyik game-ről van szó? -
doc
nagyúr
na ja, egy ilyen engine-en egész programozócsapat dolgozik hónapokon vagy akár éveken át, ezt senki nem fogja haverságból bevállalni...
esetleg az lehet járható út hogy egy meglévő, nyílt forrású motorra valahogy megpróbálja az ember ráhúzni a cumót, de ahhoz meg ugye teljesen kell ismerni a program által használt file-ok szerkezetét, ami nem tudom mennyire nyilvános
de még így is rengeteg meló -
doc
nagyúr
'reggelt
szeretnék soros portot programozni C++-ban
ehhez keresek valamilyen FREE libet. sajna vindóz alá kéne, így a legegyszerűbb megoldás (/dev/tty kezelése) kiesett... -
doc
nagyúr
na akkor egy kicsit tegyük tisztába a dolgokat:
1. az opengl tökéletesen működik Linux alatt (is) (legalábbis nekem még sosem volt gondom vele)
2. az opengl NEM programozási nyelv
3. pontosan mi is kell neked? ha fizikai jelenségeket akarsz modellezni, akkor fogj egy 3d modellező programot ami tud ilyet (pl. Blender - Linux és windows alá is elérhető) -
doc
nagyúr
válasz Forest_roby #2504 üzenetére
esetleg még egy ötlet: ingyenes fizikai könyvtár pl. az ODE [link]
-
doc
nagyúr
válasz Forest_roby #2511 üzenetére
szerintem arra amit leírtál, érdemes megnézni a Blendert. bár ezt a részét nem használtam, elég komplex dolgokat tud modellezni, pl. nagyon jó a folyadékfizikája
az opengl nagyon más, az megjelenítésért felel, magyarul ha kiszámolod hogy pontosan hol a golyó, az opengl-el ki tudod rajzolni
az előbb linkelt ODE egy c-hez készült függvénykönyvtár, ami fizikai folyamatokat modellez, a segítségével egyszerűen lehet pl. autószimulátort csinálni anélkül, hogy neked kéne számolgatni hogy egy ütközésnél vagy kanyarodásnál mivel mi történik -
doc
nagyúr
válasz Tybee21 #2524 üzenetére
MOD:
bocs, stornó, a hsz-ed végét nem vettem észre
ilyesmit pl. Mesterséges intelligencia tárgyból tanítottak nekünk (gráfbejárások, stb)
van otthon 3 tankönyvem (minden félévben adtak egy ugyanolyat ) bár szerintem ez neked nem sokat segít
a gugli a barátod, nekem pl. adott egy ilyet: [link]
[Szerkesztve] -
doc
nagyúr
csak azt áruld el nekem, hogy akkor mi az amit tanultatok? mert ha csak átugrod a forrásban a neked ismeretlen részeket, már akkor is megkapod a választ...
na jó, most utoljára:
FUNCTION Hex2Dec(Hex:STRING):LongInt;
VAR T1,T2,Dec : LongInt;
Error : Boolean;
BEGIN
Error:=False;
T1:=0;T2:=0;DEC:=0;
FOR T1:=1 TO LENGTH(Hex) DO
BEGIN
T2:=Length(Hex)-T1;
CASE Hex[T1] OF
'0' : DEC:=DEC+0;
'1' : DEC:=DEC+Power(16,T2);
'2' : DEC:=DEC+2*Power(16,T2);
'3' : DEC:=DEC+3*Power(16,T2);
'4' : DEC:=DEC+4*Power(16,T2);
'5' : DEC:=DEC+5*Power(16,T2);
'6' : DEC:=DEC+6*Power(16,T2);
'7' : DEC:=DEC+7*Power(16,T2);
'8' : DEC:=DEC+8*Power(16,T2);
'9' : DEC:=DEC+9*Power(16,T2);
'A','a' : DEC:=DEC+10*Power(16,T2);
'B','b' : DEC:=DEC+11*Power(16,T2);
'C','c' : DEC:=DEC+12*Power(16,T2);
'D','d' : DEC:=DEC+13*Power(16,T2);
'E','e' : DEC:=DEC+14*Power(16,T2);
'F','f' : DEC:=DEC+15*Power(16,T2);
ELSE Error:=True;
END;
END;
Hex2Dec:=Dec;
IF Error THEN Hex2Dec:=0;
END; { Hex2Dec }
amúgy ebben mi olyan van amit nem tanultatok? -
doc
nagyúr
válasz CPT.Pirk #2602 üzenetére
assemblerből mindenképp azt használd, ami a suliban van, mert nagyon eltérnek egymástól, az egyikhez írt proggit a másik valószínűleg csak erős átalakítgatások után fogja megenni. én személy szerint a nasm-ot használtam anno (ingyenes, jó)
pascalbol meg ha elindulni szeretnel, erdemes a ''programozzunk pascal nyelven'' konyvet beszerezni, alapnak nagyon jo -
doc
nagyúr
válasz CPT.Pirk #2606 üzenetére
úgy is lehet, anno csináltam én is, de azért ez elég erős önszopatás...
kérdés persze hogy mennyire kell komoly proggit csinálni, nálunk pl. assembly vizsgán egy sakktáblát kellett kirajzolni, aztán pluszpontért a begépelt koordinátákra bábukat kirakni, ha jól emléXem (szövegesen persze)
na ezt már necces pascal/asm-ben...
meg ha jól emléXem, a cimkeket sem kezelte normalisan a BP
[Szerkesztve] -
doc
nagyúr
nekem is van kérdésem:
hogy tudom kitalálni hogy vindóz alatt mi a user home könyvtára?
(tehát pl. c:\Documents and settins\userneve)
c/c++ -
doc
nagyúr
válasz sghc_toma #2631 üzenetére
csak tipp: nincs a forditasi opciok kozott vmi. word/dword- hatarra igazitas?
mondjuk logikat akkor sem sokat latok benne...
amugy nagyon raerhetsz ha azt debugolod hogy hany byte-ot foglal egy 5 elemu tomb
vagy vmi gond volt a programmal (mondjuk sok ramot eszik) es azt keresed? -
-
doc
nagyúr
válasz hustler #2648 üzenetére
azt írtad hogy backtrack algoritmussal kell megoldanod, ezesetben ezt ne felejtsd el (eszperente nyelven tettem ezt neked )
vagyis ''visszalépéses'' megoldás kell! ajánlom tanulmányozásra pl. a nyolc királynő problémát, az nagyon sok helyen le van vezetve magyarázatokkal -
doc
nagyúr
válasz lajafix #2695 üzenetére
ha viszont nem írja oda, és nem is mondja, milyen jogon köt bele a használt módszerbe?
nálunk pl. programozás szigorlaton eleve úgy szólt a feladatkiiras, hogy ''oldja meg X feladatot Y módszer használatával'' - ez elég egyértelmű.
szegény haveromat meg is rántották párszor, pedig 10 éve programoz abban a nyelvben, tudott is mindent a programja, csak nem úgy -
doc
nagyúr
válasz V.Stryker #2709 üzenetére
nyugi már, ne várd hogy kora hajnalban 2 perc alatt választ kapsz...
amúgy ha tanulni akarsz: internet
én jópár évet eltöltöttem informatikai suliban (gimi és fősuli) de amit ott tanultam, az minimális volt, inkább arra jó hogy betekintést adjon ebbe-abba, így később el tudod dönteni hogy mi az ami érdekel.
mivel neked már elég konkrét elképzeléseid vannak (Java, PHP, SQL), szerintem ezt kihagyhatod...
vegyél egy-két jó könyvet, nézz körül a neten, és írj rengeteg programot (egyrészt tapasztalatszerzésnek, másrészt ha jól sikerül, később jó referencia lesz)
persze ha papírt is akarsz, akkor vmi vizsgát nem árt tenni, de szerintem néhány komoly referencia sokkal többet számít (ha meg csak az önéletrajzoddal törődnek, akkor olyan helyre ne is menj...) -
doc
nagyúr
na igen, az ellenőrzött input jó kis játék
ebben a formában nem jó, ugyanis bármit írsz be, az int-be teszi, ami nyilván csak számra lesz jó...
ha jelezni akarod a hibás inputot, akkor stringbe kérd be, és azt alakítsd számmá az atoi() fv-nyel
a scanf után minek a '{'? ugyanannyi nyitó zárójel legyen mint záró!
MOD: próbálkozz, ha nem megy szólj. de a lényeg hogy próbálkozz, abból sokkal többet tanulsz mint ha mi megírjuk a kódot!
[Szerkesztve] -
doc
nagyúr
ezzel a kóddal több gond is van. de először a kérdéseid:
ha c++-t használsz, akkor bárhol a kódban tudsz tömböt deklarálni, vagyis meg tudod csinálni amit szeretnél. pl:
#include <iostream>
using namespace std;
int main()
{
int x;
cout << ''Hány elemű legyen:'' << endl;
cin >> x;
int a[x];
cout << ''A tömb mérete (byte): '' << sizeof(a) << '' A tömb mérete (elemszám): '' << x << endl;
}
sima C-ben bonyolultabb a dolog, ott annyit tudsz csinálni, hogy van egy pointered, és annak foglalsz annyi memóriát, amennyi kell, a program végén pedig felszabadítod:
int main()
{
int x,*a;
cout << ''Hány elemű legyen:'' << endl;
cin >> x;
a=(int*)malloc(sizeof(int)*x);
free(a);
}
mindkét esetben használhatod a megszokott a[n] formát a tömbelemek eléréséhez
másik kérdés:
ha maradékos osztásra gondolsz, a megoldás: %
pl. 7%3=1 (mivel 7-et osztva 3-mal a maradék 1)
a forráskódod elég sok sebből vérzik...
1.)
int x;
int tomb[x];
itt mekkora x? vagy 0 (ekkor 0 elemű lesz a tömböd - sokat nem érsz vele) vagy véletlenszerű értéket kap (fordítótól függően)
2.)
a for ciklus magját { } zárójelek közé kell tenni, mert így csak a printf-et hajtja végre x-szer (bár ha a programot kipróbálnál, rájöhetnél könnyen...)
3.)
a 'Kérem a(z) {0}.szamot' gondolom ez akar lenni: ''Kerem a(z) %d. szamot'', ugye?
4.)
scanf(''%d'',&tomb)
ezzel meg az a gaz, hogy a tombre mutato pointert irod, vagyis a tomb cimet -> akkora General Protection Fault mint egy haz
helyesen: scanf(''%d'',tomb+i)
amugy meg feleslegesen bonyolitod, gyorsan csinaltam egy egyszerubb megoldast:
#include <stdio.h>
int main()
{
int n,i,temp;
long sum=0;
printf(''Elemszam: '');
scanf(''%d'',&n);
for (i=0; i<n; ++i)
{
printf(''\n%d. szam: '',i+1);
scanf(''%d'',&temp);
sum+=temp;
}
printf(''\nAtlag: %d\n'',sum/n);
} -
doc
nagyúr
azért ez elég messze van a maradéktól
C-rol azt kell tudni, hogy ha egesz szamot osztasz egesszel, akkor a vegeredmeny is egesz lesz
ha azt akarod hogy tizedestort legyen a vege (tehat lebegopontos szam) akkor azzal kell osztani, tehat:
5/2=2
de:
5/2.0=2.5
probald ki:
printf(''%f'',5/2.0); -
-
doc
nagyúr
válasz Speeedfire #2753 üzenetére
megeloztek, de akkor mar leirom ha elkezdtem
Dev-C++, Code:locks
mindketto ingyenesen letoltheto
Dev-C++-bol letezik egy wxDev-C++ nevu valtozat, ha wcWidgets-et hasznalsz, erdemes ezt kiprobalni! -
doc
nagyúr
válasz Speeedfire #2758 üzenetére
azért ne te döntsd el hogy mit kellene és mit nem
hogyan kezdted az uj projectet? -
doc
nagyúr
válasz Speeedfire #2760 üzenetére
ha vizsgara keszulsz, mindenkepp olyan ide-t hasznalj, amilyet vizsgan fogsz, kulonben csak sz*psz vele mint a torkos borz...
-
doc
nagyúr
válasz Speeedfire #2765 üzenetére
a turboc nagyon szar, de ha vizsgan az van, akkor otthon is azzal gyakorolj!
rengeteget lehet szopni azzal, hogy a turboc mindent mashogy csinal, mint ahogy azt kellene... -
doc
nagyúr
válasz Speeedfire #2767 üzenetére
az ertelme az, hogy ''osszefogja'' a valtozokat
pl. van egy teglalapod, ehhez ugye a ket szemkozti sarkanak koordinatait szokas tarolni.
az egyik megoldas az, hogy csinalsz negy valtozot: x1,y1,x2,y1
de ha van mondjuk 10 teglalapod, akkor csinalhatsz mindegyikbol 10 elemu tombot, az meg azert eleg hulyen nez ki: int x1[10],y1[10],x2[10],y2[10]
struktúrával viszont sokkal szebb a megoldás.
pl:
struct teglalap
{
int x1,y1,x2,y2;
};
definialod a valtozot: pl.: teglalap t;
es hivatkozhatsz a koordinatakra: t.x1, t.y1, stb
ha van 10 teglalapod, akkor a definicio: teglalap t[10] (ugye sokkal szebb mint a fenti 4x10 elemu tomb)
hasznalata pedig:
t[5].x1, t[5].y1, stb -
doc
nagyúr
ízlés dolga...
én a Visual Basictől hülyét tudok kapni, idegtépő nyelv, átláthatatlan, hányás kinézetű forráskóddal
más meg pont emiatt utálja a C++ -t
kérdés hogy mire kell, ha pl. szeretnéd hogy több platformon (pl. Linux, Apple) is fusson, akkor egyértelműen C++
amúgy meg amihez értesz
vagy ha csak az a kérdés, hogy mit tanulj, akkor visztont egyértelműen C++. gyak. minden modern/divatos nyelv a C-n alapul (pl. Java, stb), C++ tudással sokfelé léphetsz, a VB-ről azért ez nem igazán mondható el....
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!