- iPhone topik
- Google Pixel topik
- Megérkezett a Google Pixel 7 és 7 Pro
- Honor Magic7 Pro - kifinomult, költséges képalkotás
- Egy szenzor, két zoomkamera: újraírta a Huawei a mobilfotózás történetét
- Poco M3 - felújított állomás
- Térerő gondok, tapasztalatok
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Milyen okostelefont vegyek?
- Honor Magic6 Pro - kör közepén számok
Új hozzászólás Aktív témák
-
doc
nagyúr
válasz
WonderCSabo #1296 üzenetére
azert, mert a 4 byte-os pointerek helyett sok-sok byte meretu objektumokat kell ide-oda pakolaszni
pl. ha fv parameterkent vagy visszateresi ertekkent hasznalod a listat, akkor akar hatalmas mennyisegu adatot kell a verembe rakni/kivenni, ami eleve nagyon lassu muvelet
raadasul mikor a container (jelen esetben a vector) nekiall dolgozni az adatokon (pl. ha a meretnoveles miatt kenytelen az osszes elemet mashova rakni), akkor nem mindegy hogy siman atmasol egy negybyte-os pointert, vagy egy komplett osztalyt rakosgat (raadasul gyanitom, hogy olyankor az osztalyt megsemmisiti, es ugy peldanyt hoz letre a default copy construktorral, de ez csak tipp) -
-
Jhonny06
veterán
Egy átlagos vektort tudok kezelni, ami sima elemeket tartalmaz, azzal nem szokott gond lenni. Itt viszont már bekavarnak az osztályok is.
Szerintem itt valami más lesz a rossz, mert most kikommenteltem az elérő függvényeket és áttettem public-ba a listát próbaként és így sem éri el a Hallgato osztály elemeit.
pl:
peldany.lista[0].valami
Tehát egy Hallgato példányokból álló tömb kéne az Adatbazis osztályban.
proci985: Mondjuk az is érdekes lenne, ha még ezzel is küzdök.
-
proci985
MODERÁTOR
válasz
Jhonny06 #1293 üzenetére
tényleg írj segédfüggvényeket szvsz manipulálni a listát.
a c++ ugyan nem dobál mindenféle fura hibaüzeneteket ha az ember megsérti az encapsulationt (ellentétben pl a netbeanssel), ugyanakkor a segédfüggvények sokkal de sokkal egyszerűbbé tudják tenni az ember életét.
vector access element
vector.at(i)
vector referencevannak példák is, azokat másolva el tudsz valahova indulni. csak pl vector<int> helyett vector<Hallgato*> kell (lehetne Hallgato is, de az lassabb).
-
-
proci985
MODERÁTOR
válasz
Jhonny06 #1288 üzenetére
jaja, használd a függvényeket listát manipulálni.
próbálj valami ilyet listázni
std::vector<Hallgato*>::iterator i = lista.begin();
for(; i !=lista.end(); i++){
Hallgato *hallgato = *i;
cout << lista->getAzonosito() << endl;
}(rem nem írtam el semmit)
esetleg ha tolsz egy
typedef std::vector<Hallgato*> Hallgatok;
sort, azzal későbbiekben egy csomó kódot megspórolhatsz. pl elég a
Hallgatok::iterator i
is.(azért néha örülök neki, hogy a 7.5kredites c++ programkomponenteknek lassan vége, köv negyedévben meg megint javazunk)
-
Jhonny06
veterán
Ezzel a vektorral el lehet érni az objektumom adattagjait? Igazából két osztályom van, egy Hallgato meg egy Adatbazis, most az Adatbazis osztályon belül csináltam egy Hallgato objektumtömböt és ezen osztály elemeit szeretném egy Adatbazis példányon belül elérni, mármint a példánytömb segítségével. Tehát valahogy így:
Adatbazis peldany;
peldany.lista[0].erdemjegy; //ez már hibás -
doc
nagyúr
válasz
Jhonny06 #1285 üzenetére
na azert ugy latom vannak itt eleg alapveto hianyossagok
szoval
az adatszerkezet (akar tomb, akar vector, akar valami mas) puszta adatszerkezet, ha ugy tetszik, egy darab a memoriaban, ami pont akkora meretu, amiben elfer az altalad megjelolt szamu es tipusu adat (osztaly, valtozo, stb)
ha te deklaralsz egy tombot pl. int tomb[10] akkor a memoriaban egy akkora darabot, amiben 10 int tipusu ertek elfer, lefoglal a program. de arrol, hogy ott azon a memoriateruleten mi van, semmit nem tudsz (illetve annyit, hogy 'hasznalhatatlan szemet'). neked kell azzal az adattal feltoltened, amit utana ki akarsz majd olvasni belole
ebbol adodoan a vector<Adatbazis> lista valtozod annyit mond, hogy ez egy olyan vector, amiben Adatbazis tipusu objektumok vannak, semmi tobbet. nyilvan neked kell belepakolnod az abban tarolni kivant objektumokat, maga az adatszerkezet nem fogja helyetted kitalalni hogy mit akarsz belerakni...
raadasul teljes objektumpeldanyt (nalad Adatbazis) nem tarolunk sem tombben, sem mas adatszerkezetben, helyette az arra mutato pointert szokas (tehat vector<Adatbazis*> lista)
a feltoltesnel meg nyilvan neked kell minden elemet hozzaadnod, a pointer eseteben a new-val letrehozva
a vector eseteben a resize() csak annyit mond, hogy szerinted mi a maximalis darabszam, amit bele fogsz rakni, ennek megfeleloen optimalizal, ettol fuggetlenul akar kevesebb, akar tobb elem is lehet benne
tehat ha te akarsz egy vectort amiben 10 darab Adatbazis objektum van, akkor csinalsz egy ilyet:
for (int i=0; i<10; ++i)
lista [i]= new Adatbazis();es amikor mar nem kellenek, pl. a destruktorban meg is szunteted az ojjektumokat (ez nem C#, nincs garbage collector!)
for (int i=0; i<10; ++i)
delete lista[i];ez utobbi persze szebb egy olyan megoldassal, amiben nem tarolod elore az elemek darabszamat, hanem vegigmegy a teljes listan annak meretetol fuggetlenul es kitorli mindegyik elemet
kerdezni meg mindenki szokott az elejen, sot a kozepen is
ezen ne aggodj, ha normalis hangnemben kerdezel (mint ahogy eddig is tetted) szivesen segitunk
MOD: ha a listat visszaado metodust csinalsz, figyelj arra hogy ne magat a listat, hanem arra mutato referenciat adj vissza, hogy ne kelljen feleslegesen egy csomo adatot a verembe pakolni/kivenni
tehat nem vector<Adatbazis*> addide() {return lista;} hanem const vector<Adatbazis*>& addide() const {return lista;}
a const ne zavarjon meg, nem feltetlenul muszaj, de erdemes raszokni a hasznalatara
-
Jhonny06
veterán
(Ilyenkor jövök rá, hogy mennyire nem tudok semmit.)
Szóval, most megpróbálom vectorral:
Osztálydeklarációnál, privát adattagként:
vector<Adatbazis> lista;
Ennek kéne elérő és módosító függvény, mert privát. Ez viszont nem megy, simán a "lista"-t nem engedi visszaadni.Mégis sikerült.A konstruktorban pedig lista.resize(random)-oltam, ez oké. És ezzel meg is van, vagy még for ciklusban inicializálni kéne, mint C#-ban a new taggal, minden egyes indexű elemet, vagy ez így ennyi? Ezt a részét nem értem C#-ban sem, hogy miért kell. Mármint a memóriafoglalásnak ezen része. Ezt csak akkor kell, ha deklarációnál nem adom meg rögtön a méretét, mert itt dől el, hogy mégis mekkora méretű lesz, nem? Így már van értelme. Bár gondolom vector-nál ezt nem kell, mert dinamikusan kezeli a memóriafoglalást.
(Ti is ennyit kérdeztetek kezdőként?
Nyugtasson már meg valaki.)
-
doc
nagyúr
válasz
Jhonny06 #1283 üzenetére
a tomb merete az, amit veletlenszerunek szeretnel? tehat csak a konstruktorban dol el, hogy hany eleme lesz a tombnek? mert akkor ne tombot hasznalj, hanem az STL-es adatstrukturakat, pl. vectort, annak a merete dinamikusan valtoztathato
a sima C-s tomb meretet meg kell adnod, nincs mese. illetve ugy meg megoldhato, hogy a konstruktorban lefoglalod a tomb meretenek megfelelo tarteruletet mondjuk igy:
tomb = malloc(sizeof(Osztalynev*) * meret)
amit aztan a destruktorbol free-vel felszabaditasz
de ilyet ugyebar nem csinalunk, C++ -ban C++-szul beszelunk, tehat vector, esetleg listMOD: akkor ugy tunik, megintcsak nem ertettelek
tehat te Osztalynev tomb[10] modon deklaraltad?
mert akkor a new Osztalynev() tenyleg nem fog belemenni, tekintve hogy az egy pointer, de meg a teljes osztalyt tartalmazo tombot csinaltal (ez utobbit NE!) -
Jhonny06
veterán
Na, még egy (bocs, utálok kérdezni, de sehol nem találok rá megoldást). Objektumtömb létrehozása privát adattagként(Osztalynev tomb[]) megvan, ezután konstruktorban random mérettel kéne feltölteni. Ilyen C#-osan próbáltam, hogy random értéktől függően for ciklus, majd tomb[i] = new Osztalynev();. Random érték nélkül, simán main()-ben létrehozva, azonnali méretadással nem nagy kaland, így viszont nem megy.
Szerk.: Mutatóval megy:
Hallgato *tomb[]
-
proci985
MODERÁTOR
válasz
Jhonny06 #1277 üzenetére
szerk, módosítás utánra: konstruktor megkaphajta pluszban inputnak a számot. azt viszont valamilyen módon követned kell, hogy hány darab cucc lett már létrehozva (létrehozó osztályba esetleg egy variáns amit megkap a konstruktor?), nem lenne egyszerűbb azt a változót használni létrehozni az új objektumokat?
ha pedig az aktuális számuk az objektumoknak is fontos, akkor a destruktorban még mindig meg lehet rakni egy hívást a container class felé.
ha meg akarod az objektumokat számozni, és mindegyiknek akarsz egy sorszámot, akkor legegyszerűbb és leggyorsabb megoldás még mindig egy container class szerintem egy globális változóval. ha törölni is akarod őket akkor a dolog bonyolultabbá válik, főleg ha a korábban foglalt de már szabad számokat is újból ki akarod tudni adni.
-
Jhonny06
veterán
Egy változó kell, ami minden példány létrehozásakor növekedik 1-el, ami oké, mert beleírom a konstruktorba, csak a legkisebb érték 100 lehet, azaz mondjuk 99-től indul. Az értem, amit írtál, de hova írjam a kezdőértéket? Az osztálydeklarációba nyilván nem lehet, a konstruktorba meg azért nem jó, mert minden példány létrehozásánál a kezdőértéket fogja megkapni.
-
doc
nagyúr
válasz
Jhonny06 #1277 üzenetére
nem egeszen ertem a kerdest...
kezdoerteket meg tudsz adni neki siman, ha erre gondoltal
pl. osztaly.h:
class osztaly
{
int x;
};osztaly.cpp:
#include "osztaly.h"
int osztaly::x = 100;illetve ha arra gondoltal, hogy egy kozos valtozot az osztaly osszes peldanyanak, akkor a deklaracional ele kell irni egy static modositot
-
Jhonny06
veterán
Sziasztok!
Ha az osztálydeklaráción belül nem tudok definiálni egy változót, akkor hogy tudom megoldani azt, hogy egy bizonyos értéktől kell indulnia (mondjuk 100) egy egész típusú változónak? Mert oké, hogy rakok a konstruktorba egy szam++-ot, de az 0-tól fog számolni, amikor létrehozok egy példányt. C#-ba simán meg lehetett adni neki a 100-as kezdőértéket.
Köszönöm.
-
amargo
addikt
válasz
WonderCSabo #1274 üzenetére
Nem kell izgulni, embert nem ismertem eddig, aki így használja, bár szerintem CPT - Command Post Terminal.
A cmd-t szerintem mindenki megérti vagy terminál. -
proci985
MODERÁTOR
válasz
WonderCSabo #1270 üzenetére
cpt: command prompt, másképp parancssor.
elsőre kicsit minimál (bár a négy párhuzamos parancssor+csomó segítség miatt meglepően gyors), de pl puttyolva egész használható (úgy már lehet másolni is róla).
-
proci985
MODERÁTOR
válasz
WonderCSabo #1268 üzenetére
hm, CPTből futtatás megoldható/nem túl macera?
-
WonderCSabo
félisten
válasz
Jhonny06 #1266 üzenetére
Én Code::Blocks-ot használok. Ha a Run-ra kattintok, nem érdekli volt-e változás, az utolsó fordított binárist futtatja (már ha van, ha még nincs, akkor fordíttat veled). Ezért mindig Build and Run parancsot adok ki. Persze ez a Build parancs csak a megváltozott fordítási egységeket fordítja újra, és linkeli a programot. A teljes újrafordítás a Rebuild. Olyan még nem fordult elő, hogy a Build nem vette észre, hogy volt változás.
Más:
Ha meg kell akadályoznom a programom automatikus bezárását, mindig cin.get()-et, vagy getchar()-t használok. Legalábbis Windowson. Most valgrind miatt Linuxon forgattam, és meglepően tapasztaltam, hogy legújabb GCC-vel Ubuntuval az előbbi hívásokat simán ignorálja és terminál a program. Tapasztalt ilyet vki? Ha igen, milyen alternatívák vannak, amik Linuxon is műxenek?
-
proci985
MODERÁTOR
válasz
Jhonny06 #1266 üzenetére
elvileg fel kéne ajánlania a compilernek, hogy ha lát változást, akkor újra kell építenie.
ez az elmélet. a gyakorlat az, hogy unix környezetben (minix 3.1) már láttam olyat, hogy órákat szívtunk, mire észrevettük, hogy a C compiler nem lát egy változtatást és ezért még mindig a két órával előtti kernellel szívunk.
rebuild kell, ha azt nem csinálod, akkor nem fog fordítani. esetleg ha nagyon nem megy, akkor lehet rá nyomni egy clear+rebuildet, de azzal projekt méretének függvényében nagyon óvatosnak kell lenni.
én debug módban szoktam (jelenlegi beadásnál csináltam automatizált tesztet assert is, azt meg release módban elvileg nem is futtatja), rebuildelni meg akkor, ha outdatednek írja. ill néha clear+rebuild, ha valami nagyon nem stimmel.
-
Jhonny06
veterán
Amikor ilyen apró pepecselős módosításokat kell végezni egy programon és fél percenként futtatni kell, hogy jó-e az eredmény, akkor ti mindig újrabuildelitek és debuggal futtatjátok? Én build és debug nélkül szoktam, de most észrevettem, hogy mintha nem mindig jegyezné meg a módosításokat, hanem az előző állapottal futtatja, én meg csodálkozok, hogy miért hibás még mindig, miután a 10. átnézésre is mindent rendben találtam.
-
proci985
MODERÁTOR
igen, arra.
asuspc96: wikipedia cikkeket érdemes elolvasni, a foglalkozó magyar oldalak jórésze elte/bme jegyzetekkel elég nagy hasonlóságot mutat (említett könyvet mindkét intézményben használják). a gyakorlatban pedig néha a wikis oldalak néha lényegesen érthetőbbek, mint maguk a jegyzetek.
angol wikis oldalakat szintén érdemes átnézni, általában relevánsak és használhatóak, implementációt is találni.
nevezett könyv egyébként eléggé száraz és inkább elméletre megy rá, cserébe meg lehet belőle érteni és eléggé tömören fogalmaz.
-
Peppy89
csendes tag
Üdv mindenkinek!
Egy olyan kérdésem lenne, hogy miként tudom azt megoldani, hogy egy bizonyos oldalt többször megnyisson a program az alapértelmezett böngészőben, lehetőleg háttérben dolgozva úgy, hogy az oldalt ne a chache-ből tőltse le, hanem mindig a szerverről töltse le az oldalt.
Itt van az eddig készített forráskód:
#include <windows.h>
#include <iostream>
#include <stdio.h>
#include <time.h>
#include <conio.h>using std::cout;
void wait ( int seconds )
{
clock_t endwait;
endwait = clock () + seconds * CLOCKS_PER_SEC ;
while (clock() < endwait) {}
}int main()
{
int z = 1;
int y = 0;
cout << "Hanyszor nyissam meg?" << std::endl;
y; std::cin >> y;
for(int x = 0; x < y; ++x){
std::cout << " " << z << std::endl;
z=z+1;
ShellExecute(NULL, "open", "http://www.logout.hu",
NULL, NULL, SW_SHOWNORMAL);
Sleep(100);wait(1);
}
system("PAUSE");
}Persze ez már mást is tartalmaz, de aki ért hozzá tudja mit nézzen
A segítséget előre is köszönöm.
Üdv: P
-
amiklos
csendes tag
Sziasztok!
Úgy látom itt hozzáértő emberek vannak. Mérnők Info-ra járok. Most kezdtem és eddig nem foglalkoztam a programozás témakörrel és sajnos levelezőn tudom csak, mert mellette dolgoznom kell. Tudtok-e valami jó tanácsot, könyvet, vagy valami ötletet adni, hogy hogyan tudnám megtanulni úgy 1. A programozást, 2. A C nyelvet, hogy azt értsem is és használni is tudjam. Mivel érdekelni érdekel a dolog. Csak nem tudom honnan elkezdeni...
Eddig odáig jutottam el, hogy adatot be tudok kérni, kiíratni és az egyszerű matematikai műveleteket vele. Segítségeteket előre is köszönöm!!!
Üdvözlettel: Mikey
-
peterszky
őstag
-
asuspc96
senior tag
Igazából még nem tervezek vele semmit... Jó lenne csinálni belőle egy ingyenes kis progit. (még tervezek bele egy két érdekes dolgot abból se szeretnék kihagyni benneteket)
Érdekel a matematikája ezt eltaláltad !
Hogyan lehet ezzel hozzájárulni valamilyen feltöréshez ?"pl a Katona/Recski/Szabó féle Számítástudomány alapjai ír gyorsabbat. bme info/elte mat ismerősnek biztos meglesz a könyv. eléggé elméletre fókuszál, de a lényeg benne van: polinomidőben prímtesztelés megy, ugyanakkor felbontást az ember nem kap."
Megkérdezhetem, hogy ennek a könyvnek mi a címe ?Üdv, asuspc96
-
doc
nagyúr
-
proci985
MODERÁTOR
válasz
asuspc96 #1253 üzenetére
két tipp:
egyik: ha tényleg nagy számok kellenek, akkor lehet definiálni saját számábrázolási módszert, pl több long long összefűzésével. az elv hasonló, mint amikor az ember összeköt két 4bites összeadót carry bittel... csak kicsit bonyolultabb, de kb ez a lényeg. memóriaigény elszállhat.
másik: a naiv, végigpróbálom gyökXig és ha nem osztja semmi, akkor megyek következőre megoldás minden Xre gyökXet lép, tehát X*gyökX a futásideje. másképp exponenciális. gyorsabb prímtesztelési módszer van, pl a Katona/Recski/Szabó féle Számítástudomány alapjai ír gyorsabbat. bme info/elte mat ismerősnek biztos meglesz a könyv. eléggé elméletre fókuszál, de a lényeg benne van: polinomidőben prímtesztelés megy, ugyanakkor felbontást az ember nem kap.
namost, a másik probléma, hogy C++ban a szálkezelés fél éve jött be, itt meg lehet lehetne vele nyerni (prímkeresni több szálon nem próbáltam még, szóval nem biztos). ha csak egy szálon megy, akkor marad a kb 14%os max terhelés a procidon.
-
doc
nagyúr
válasz
asuspc96 #1253 üzenetére
persze, mindent lehet gyorsitani
a primszamkereses meg foleg olyan dolog, amit okosan vegiggondolva rengeteg prociidot lehet sporolni, van erre tobb modszer az agyatlan 'vegigmegyek es megnezem oszthato-e' megoldason kivul, kezdve az egyszeru Eratoszthenesz szitajatol a mindenfele trukkozesekiglehet sajat megoldast irni a szamabrazolasra is, de valoszinuleg nem lesz gyorsabb mint a masok altal mar megirt megvalositas
mindenesetre egy 64 bites uint maximuma 18446744073709551615 , ekkora szam gyors primbontasahoz mar ugyis tul kicsi lesz az otthoni PC, szoval nem az abrazolt szam merete a szuk keresztmetszet
-
asuspc96
senior tag
rendben leadom a rendelést a picérlánynak
"barmekkora szammal kepes dolgozni (mint pl. Perl-ben a BigNum es tarsai) akkor baromi lassu"
Fel lehet gyorsítani ? említettél erre valamit...
HTML-ből (JavaScript) átírni C++-ba lehetséges ? Egyáltalán a megírt program mivel használható ?
-
doc
nagyúr
válasz
asuspc96 #1251 üzenetére
sor johet
igen, a szamitasi igeny exponencialisan no a szam meretevel, nem veletlenul ez az alapja komoly titkositasi eljarasoknak
a szamambrazolas meg eleg erdekes kerdes, altalanos programnyelvekben vagy ott van a limit (elvi maximum nincs, de gyakorlati az nyilvan igen), vagy ha barmekkora szammal kepes dolgozni (mint pl. Perl-ben a BigNum es tarsai) akkor baromi lassu
-
asuspc96
senior tag
Jó fátylat rá...majd ha szilveszterkor összefutunk (nem tudom hogyan) elhívlak sörözni
Most dobtam be neki egy hatalmas számot valami 999999999191919191919-et
(hasra ütésszerűen)
Szegény azóta is számol.....ha jol latom, ez Delphi? megírhatom(juk) másban is (pl. C++) csak működjön very very big
számokra is.
"lehet 'javitani' rajta: az in helyett long-ot kell hasznalni. sot, unsigned long long-ot, ez a szabvany szerint legalabb 2^64-1-ig tud szamot abrazolni, a te gepeden/forditoddal ervenyes maximum a ULLONG_MAX konstansban van"
Mennyi az elvi max ameddig számot tudna ábrázolni ?
Üdv, asuspc96
-
doc
nagyúr
válasz
asuspc96 #1249 üzenetére
hat, a torkomnak ugras szerintem tobb mint kijelentes, de hagyjuk, maradjunk abban hogy felreertes tortent...
az ELTE által készítettnél sokkal tovább tudja mint "2 147 483 647".
az a hatar a wikipediaban egyebkent nem feltetlenul igaz, de nagyon egyszeruen lehet 'javitani' rajta: az in helyett long-ot kell hasznalni. sot, unsigned long long-ot, ez a szabvany szerint legalabb 2^64-1-ig tud szamot abrazolni, a te gepeden/forditoddal ervenyes maximum a ULLONG_MAX konstansban vande tul nagy szamokra baromi lassu lesz, szoval ott mar neki lehet allni trukkozni, az jo mokas
kész kezelőfelület (nálam) = pl. mint a számológép....
értem ezalatt, hogy szépen begépelgetem nyomok neki egy "O.K." és erre neki áll számolgatni...igen, ezt hivjak ugy hogy standalone program
ha jol latom, ez Delphi? olyat vagy 15 eve lattam utoljara, szoval abban nem fogok tudni segiteni (plane hogy ez egy C++ topic...)
De szerintem mindketten tudjuk az igazat
ugy latom csak az egyikunk, es te meg vagy rola gyozodve hogy te vagy az, de mondom, hagyjuk... -
asuspc96
senior tag
nem "hisztiztem" csak mint megállapítás kijelentettem
Ami a Wikipédiában volt... és amit az amit az ELTE nyújt összehasonlíthatatlanul jobb az utolsó.... az ELTE által készítettnél sokkal tovább tudja mint "2 147 483 647".
kész kezelőfelület (nálam) = pl. mint a számológép....
értem ezalatt, hogy szépen begépelgetem nyomok neki egy "O.K." és erre neki áll számolgatni....type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
const primek:array[1..jó sok prím mennyisége] of integer=(JÓ SOK PRÍM);
var
Form1: TForm1;
implementation
{$R *.DFM}
function prime(szam:integer):boolean;
var i:integer;
begin
i:=1;
while (i<=25) and (szam<>primek[i]) do i:=i+1;
prime:=(i<=25);
end;
procedure bontas(szam,i:integer);
begin
if not prime(szam) then
begin
if szam mod primek[i]=0 then
begin
szam:=szam div primek[i];
bontas(szam,1);
form1.memo1.Lines.Add(inttostr(primek[i]));
end else bontas(szam,i+1);
end else form1.memo1.Lines.Add(inttostr(szam));
end;
procedure TForm1.Button1Click(Sender: TObject);
var szam:integer;
begin
szam:=strtoint(edit1.text);
bontas(szam,1);
end;
end.eddig erre jutottam....és én egy ehhez vagy olyanhoz hasonlót képzeltem el mint az ELTE-n található. És ehhez kellene egy csini kis kezelőfelület...ennyi.
A gúnyolásra én erős irónia és cinikus szagot éreztem a hozzászólásodba de ha ez nem így van hát elnézést. De szerintem mindketten tudjuk az igazat
-
doc
nagyúr
válasz
asuspc96 #1247 üzenetére
??
aruld mar el, hogy hol gunyoltalak...Valami hasonló kellene csak egy kész kezelőfelülettel ha megoldható
a 'kesz kezelofelulet'et en ugy ertelmeztem hogy standalone program kell (ha nem, akkor definiald hogy nalad mit jelent a 'kesz felulet')a mukodesi elvrol te magad linkelted a Wikipediat, szoval azt gondolom nem tolunk kered
kertel viszont kodot. maga az algoritmus C forraskod formajaban ott van az altalad is linkelt oldalon, szoval ezek szerint akkor a hozza tartozo feluletet vartad valakitol
innentol vegkepp nem ertem hogy mit hisztizel...
-
asuspc96
senior tag
"na jo, de o standalone programot szeretne
(bar szerintem abbol is tizezres nagysagrend elerheto a neten )"Nem nem ilyet szeretnék én egy normális választ szerettem volna hogy igen le lehet szedni, vagy sem...nem kigúnyolást meg azt amit TE művelsz...!
Nem kértem egy szóval se hogy kompletten írja meg helyettem azt mondtam hogy örülök a kódoknak is és ezt előre megköszöntem....
Ezért tart ez az ország ott ahol mert olyan emberekkel van tele mint Te...lehúzza a másikat és ki is gúnyolja ahelyett, hogy segítene és esetlegesen valamire használható választ adna....
Mr. doc a "PH! kedvence"... ha ennyit nyújtasz tálcán akkor köszönöm nem kérem..!
És ez a fele részemről OFF !Üdv, asuspc96
-
asuspc96
senior tag
Jó reggelt Mindenkinek !
Tanulmányoztam ezeket az oldalakat:
Wkipédia -számelmélet , Wikipédia-prímszámfelbontásValami hasonló kellene csak egy kész kezelőfelülettel ha megoldható
Gondolom ez "alól" nem lehet lekoppintani a működési elvét...vagy igen ?
Előre is köszönöm a kódokat illetve ötleteket !
Üdv, asuspc96
-
Peppy89
csendes tag
Üdv mindenkinek!
Egy olyan kérdésem lenne, hogy miként tudom azt megoldani, hogy egy bizonyos oldalt többször megnyisson a program az alapértelmezett böngészőben, lehetőleg háttérben dolgozva úgy, hogy az oldalt ne a chache-ből tőltse le, hanem mindig a szerverről töltse le az oldalt.
Itt van az eddig készített forráskód:
#include <windows.h>
#include <iostream>
#include <stdio.h>
#include <time.h>
#include <conio.h>using std::cout;
void wait ( int seconds )
{
clock_t endwait;
endwait = clock () + seconds * CLOCKS_PER_SEC ;
while (clock() < endwait) {}
}int main()
{
int z = 1;
int y = 0;
cout << "Hanyszor nyissam meg?" << std::endl;
y; std::cin >> y;
for(int x = 0; x < y; ++x){
std::cout << " " << z << std::endl;
z=z+1;
ShellExecute(NULL, "open", "http://www.logout.hu",
NULL, NULL, SW_SHOWNORMAL);
Sleep(100);wait(1);
}
system("PAUSE");
}Persze ez már mást is tartalmaz, de aki ért hozzá tudja mit nézzen
A segítséget előre is köszönöm.
Üdv: P
-
amargo
addikt
válasz
Brown ügynök #1237 üzenetére
A QT Creator már egy egész jól használható IDE lett.
Maga az SDK pedig több mint elégnek kell lennie. -
kingabo
őstag
válasz
Brown ügynök #1235 üzenetére
Google első találat?
QT
Multiplatform, elég sokat tud, bár hozzá kell szokni, Eclipse-el és Visual Studio-val is használhatam már, biztos más ide-vel is összehozható. Ezen felül elég jól dokumentált, ami kezdéskor sokat számít. -
amargo
addikt
válasz
Brown ügynök #1216 üzenetére
Most komolyan, a QT-t megnézted?
-
Brianiac
aktív tag
Köszönöm, mst már legalább eddig működik!
-
Brianiac
aktív tag
válasz
Jester01 #1228 üzenetére
Úgy látszik ez mst nagyon nem megy, így nem tudom lefuttatni mert a család név bekérésnél hibát kapok.
#include<iostream>
#include<fstream>
using namespace std;
struct ember
{
char nev[10];
int ev;
};
int main ()
{
setlocale (LC_ALL, "Hun");
ember csalad [3];
int i;
for(i=0; i<3; i++)
{
cout<<i+1<<". nev: ";
fflush (stdin);
cin.getline(csalad.nev, 10);
}
for(i=0; i<3; i++)
{
cout<<i+1<<". ev: ";
fflush (stdin);
cin>>csalad.ev;
}
cout<<"\nA nevek:\n\n";
for(i=0;i<3;i++)
cout<<csalad.nev[i]<<csalad.ev[i]<<endl;
for (i=0;i<3;i++)
system ("pause");
return 0;
} -
proci985
MODERÁTOR
válasz
Brianiac #1227 üzenetére
elvileg cin.get int bekérésre jó
.
írsz egy forciklust 1től nig. előtte kell egy int buff varians, ami ev[0] erteket kell megkapja meg a ciklus elott. aztan az ev erteket kell hasonlitani a buffall: ha buff a kisebb vagy egyelo, buffot megtartani, egyebkent ev(i) vel uppdatelni a buffot. amint lement a ciklus, buff erteke egyelo a legkisebb evvel ami az ev[]ben van, innentol a legidosebbet letarolja. ha nem csak az evszam kell, akkor az iteratort is le lehet a buffba tarolni, es az alapjan lekerdezni a cuccokat. egyébként mivel egy harom elemu elegge rondan definialt structrol van szo, szerintem hardcode megoldas is megoldható (mire kapsz pontot megnezni azert!).* szerintem csaladtag objectekkel kéne ezt csinálni, aztán akkor nem fordulhat elő, hogy a név meg az évszám elcsúszik egymáshoz képest. szerk: látom más már írta közben, hogy lenne normálisabb.
-
Jester01
veterán
-
Brianiac
aktív tag
válasz
Jester01 #1224 üzenetére
Hát igazából már a legelejébe, tovább így még nem is jutottam. A 3 nevet bevittem egy két dimenziós tömbbe billentyűzetről, viszont a születési éveket sehogy sem tudom bevinni hogy jó legyen, próbáltam azokat is ugyanúgy egy két dimenziós tömbbe ahogy a neveket de akkor mindig valami hiba volt. A változóban pedig csak egy születési dátumot tudok tárolni és 3 kellene, tehát egy mindegyik névhez.
#include<iostream>
#include<fstream>
using namespace std;
struct csalad
{
char nev [3][10];
int ev;
};
int main ()
{
setlocale (LC_ALL, "Hun");
csalad sz;
int i;
for(i=0; i<3; i++)
{
cout<<i+1<<". nev: ";
fflush (stdin);
cin.getline(sz.nev[i], 10);
}
cout<<"\nA nevek:\n\n";
for(i=0;i<3;i++)
cout<<sz.nev[i]<<endl;
system ("pause");
return 0;
} -
Brianiac
aktív tag
Sziasztok!
Valaki tudna segíteni az alábbi feladatban?
Hozzon létre egy család nevű, 3 tagból álló struktúra tömböt, melyben van egy karakter típusú, a nevek eltárolásához létrehozott tömb, egy évszámok tárolására alkalmas változó. Töltse fel a tömböt a saját családja adataival, a nevük, a születési évük megadásával. Mondja meg ki a legidősebb. Egy külső függvény segítségével számolja ki az átlagéletkort, és a főfüggvényben számoltassa ki, hogy a legidősebb családtag mennyivel idősebb ennél.. A legidősebb családtag adatait írja ki egy külső fájlba.Ezzel szenvedek már egy ideje, de teljesen belezavarodtam és nem nagyon boldogulok, pedig ez a holnapi zh-hoz minta feladat.
-
WonderCSabo
félisten
válasz
Brown ügynök #1220 üzenetére
Nem tudom, sosem csináltam még wxWidgets-es cuccot. Ezt találtam.
-
WonderCSabo
félisten
1. programkód formázással posztold már könyörgöm.
2. ez nem C++ kód, hanem C, aminek ez a topikja.int vizsgal(char s1[], char d1[])
{
int i, j;
for(i=0; i<strlen(s1); i++)
{
if (s1[i]==d1[0]) //itt Te lehagytad a [i]-t
{
for(j=1; j<strlen(d1) && i+j < strlen(s1); j++) // inkább itt vizsgáljuk mert nem lesz overflow
{
if (s1[i+j] != d1[j])
break;
if (j==strlen(d1)-1)
return i;
}
if (strlen(d1)==1)
return i;
}
}
return strlen(s1); //általában így szoktak működni ezek
}Meg ha jól láttam, a mainben is az s -nél ()-t használtál [] helyett.
-
Brown ügynök
senior tag
válasz
WonderCSabo #1218 üzenetére
Ahogy nézem, ez nem is lesz olyan egyszerű mint Basic-ben vagy pascalban. Pontosabban el kell sajátítani ezt a programozási stílust is.
Azt nem tudod, ezt miért írja ki buildnél? Ez a MinGW bin könyvtárának egy fájlja. Biztos valami elérési utat rosszul / nem adtam meg.
ld.exe||cannot find -lwxmswd_core|
ld.exe||cannot find -lwxbased|
ld.exe||cannot find -lwxpngd|
ld.exe||cannot find -lwxzlibd| -
vanek
tag
sziasztok..a feladatom, sztring keresése sztringben..a program megvan..de beadva, némelyik eredmény hibás.. de sajnos a bíró, nem mondja meg, hogy melyik..valami ötlet, hogy milyen esetkre futtassam le még a programot?
-forrásztring megegyezik a célsztringgel, elején végén közepén van a keresett szó..
valami még?
btw a program..
köszi előre is!
-
WonderCSabo
félisten
válasz
Brown ügynök #1217 üzenetére
Én magam is a Code::Blocks-ot ajánlottam volna (integrált MinGW-vel), csak azért maradtam csöndben, mert normális GUIs alkalmazást még nem nagyon fejlesztettem.
-
Brown ügynök
senior tag
válasz
Brown ügynök #1216 üzenetére
Ezt hoztam össze:
IDE: CodeBlocks
Compiler: MinGW
GUI: wxWidget-2.8.12 -
Brown ügynök
senior tag
Üdv!
Borland 7-ben íródott vállalatirányítási rendszert szeretném átírni erre a nyelvre, úgy, hogy több op. rendszeren is elérhető (fordítható?) legyen. Milyen fejlesztői környezetet, fordítót ajánlanátok?
-
proci985
MODERÁTOR
válasz
WonderCSabo #1213 üzenetére
20-30 részfeladatos vizsgán simán lehet egy ilyen az egyszerűbb példák között, ha a tanár a tantárgyi követelményekre reflektáló (pl egyszerű procedurális kódot tud írni részre) vizsgát akar. ettől függetlenül nálunk is kb az első héten volt ez az anyag.
viszont mindkettőt csak használva lehet megtanulni, mindkettőhöz nagyon masszív betanult háttértudás kell ha az ember jól akarja csinálni, mindkettőhöz (logikusan) gondolkodni kell, mindkettőhöz szükséges pattern matching/szituációfüggő használat, és mindkettőhöz eszméletlen kitartás kell, mert több (tíz)ezer óra jól csinálni. mindkettőt aktívan kell használni (felejtés), mindkettő folyamatosan változik, és nagyon hasonló a betanulási görbe. minél több nyelvet beszél az ember, annál könnyebb a következő. és azáltal, hogy az emberi mondatok átkonvertálhatóak logikai kijelentésekké (és fordítva), és a logikai kijelentések megfeleltethetőek kódnak (és fordítva), megvan az átjárás.
svédet gyakorlatilag egy sor programozásban működő ötletet felhasználva tanultam meg. működött, mind. beállítottság érdekes dolog, én szeretem mindkettőt.dabadab igaz, Turing tényleg matematikus volt csak. másik dologgal kapcsolatban valszeg igazad van, összemosódik a terminológia.
-
proci985
MODERÁTOR
válasz
WonderCSabo #1201 üzenetére
hát, első beadandó szerintem lehet. vagy egy egyszerűbb vizsgafeladat, bár szerintem jobb akkor már külön tesztelni, hogy a diák ismeri-e a cin, for, if utasításokat.
nyelv vs programozás: szerintem nagyon is közel állnak egymáshoz. még tétel is van rá, hogy az emberi nyelvek Turing nehezek. Turing pedig nyelvész volt. svédnél konkrétan ki is használtam ezt a fajta gondolkodást: időm nyelvi automatizmusokra nem volt, ellenben logikából és memóriából alapfokig eljutottam, kb procedurális módon (ha kérdőmondat, első output megfelelő állítmány). formális nyelveket nem véletlenül hívják így. felépítésben is van hasonlóság, mind program-, mind élő nyelveknél megfigyelhető, hogy minél feljebb haladunk, annál kevésbé lesz hangsúlyos a szintaxis és annál inkább a struktúra/stílus. ahogy egy fogalmazásnál sem már a nyelvtanon van a lényeg (mennie kell, ugyanakkor összefüggőnek is kell lennie), ugynígy design patterneknél sem az a kérdés, hogy lefordul e, hanem hogy tényleg megoldást kínál e az adott magasabb szintű problémára. élő nyelveknél ugyan nagyobb a hibatűrés, viszont másik részről sokkal de sokkal nagyobb a variancia is.
-
Gyuri16
senior tag
válasz
WonderCSabo #1207 üzenetére
koszonom, mindjart jobban erzem magam
Jester01: gondoltam arra is, par percig kerestem ingyenes c++ kodot obfuszkalo programot, de nem talaltam
erdekes viszont, hogy van par fizetos, de nem igazan ertem mire jo ez. gondolom a visszafejtest akarja neheziteni, de akkor miert nem a leforditott binaris szintjen csinalja az obfuszkalast, mi elonye van a koddal kinlodni? -
Jester01
veterán
válasz
WonderCSabo #1207 üzenetére
Meg azt sem tudja, hogyan kell preprocesszort futtatni
-
Gyuri16
senior tag
válasz
7600 GS #1202 üzenetére
az en megoldasom nem tetszik? lefordul es mukodik, azt csinalja amit irtal
egy smileyt vartam legalabb, hisz benne van majd 10 perc munkam
amugy ez tenyleg trivialis feladat, ezeket legegyszerubb leirni papirra, te hogyan oldanad meg. szisztematikusan, lepesrol lepesre. aztan megnezed mit lehet benne automatizalni, mik ismetlodnek stb. legalabb egy kicsit probald meg
-
7600 GS
addikt
válasz
WonderCSabo #1203 üzenetére
Igen magam jelentkeztem, de csak azért, mert nem volt más lehetőségem. Angolra akartam menni, az az én "szakterületem" de sajnos hátul voltam a sorban.
-
WonderCSabo
félisten
válasz
7600 GS #1202 üzenetére
A bonyolultat ironikusan értettem. Ez egy mérhetetlenül egyszerű feladat, és nem lehet sokkal egyszerűbben csinálni, mint ahogy a fórumtárs megírta. Egyébként mit vársz még? Gyak az egész program felépítését leírta, ha még ez sem megy, euklideszi algoritmusnak még a pszeudokódja is fenn van wikipédián.
Te magad jelentkeztél, nem?
-
7600 GS
addikt
válasz
WonderCSabo #1201 üzenetére
Nem ennyire bonyolult, mint amennyire a fórumtárs leírta, azért ennyire még nem vagyunk profik (főleg én nem, istenem, hogy mit keresek én infon?)
Ú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!
- ÁRGARANCIA!Épített KomPhone i3 10105F 16/32/64GB RAM RX 6600 8GB GAMER PC termékbeszámítással
- BESZÁMÍTÁS! Apple MacBook Pro 14 M4 MAX 36GB RAM 1TB SSD garanciával hibátlan működéssel
- Bomba ár! Fujitsu LifeBook U7310 - i5-10GEN I 16GB I 256SSD I 13,3" FHD I HDMI I Cam I W11 I Gari!
- Samsung Galaxy S23 Ultra 256GB, Kártyafüggetlen, 1 Év Garanciával
- LG OLED Televíziók: FRISS SZÁLLÍTMÁNY -30%
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged