C/C++

mátrixos kötelező program

Fórumok

Szervusztok!

Egyetemi kötelező beadandó programról lenne szó. Akinek esetleg előítéletei lennének, azok ne is olvassák tovább ;~))

A feladat generikus programozás C++-ban template-ek segítségével, ami a mátrixműveleteket valósítja meg. (összeadás, skaláris szorzás, mátrix-szorzás). A műveletekkel tisztában vagyok, inkább a sablonok kreálásával vannak problémáim.

Addig már eljutottam, hogy két azonos méretű mátrixot össze tud adni, független attól, hogy ez előzőleg mátrix, vagy mátrixösszeg.
Ha csak C-ben lenne, akkor már régen kész is lennék, de itt az a cél, hogy operator overloading segítségével temporális mátrixok nélkül kell megoldani, ami egy erőteljes nehezítés, mert eddig ilyent nem csináltam.

A határidő 15-e, szóval lassan közeleg, és napok óta nem tudom megugrani a skaláris szorzást, pláne a mátrix-szorzást. Az a sejtésem, hogy az iterátorok táján kellene kutatni, de nem tudok elindulni.

A kód amivel eddig készen vagyok:

PASTEBIN

Egy hónapig lesz fenn, hiszen utána már nem fontos.

Eddig egy vektorösszeadásos példán kereszül jutottam el, de mosz kifogytam a támpontokból. ;~((

Tudom, nem teljesen elegáns mátrix esetén a Matrix(i,j) hivatkozás, szebb lenne a Matrix[i][j], de a []operátor overloading-ja helyett a kényelmesebb ()operátor overloading-ot választottam.

Előre is köszönöm a segítséget.
/mazursky

QProcess és VLC vezérlés

Fórumok

Hello!

Egy ideje már szenvedek a következő problémával, de nem tudom megoldani.

Egy olyan Qt-s programot írok, ami a VLC-vel kommunikál.

A probléma az, hogy QProcess-en keresztül nem tudom a vlc remote control interface-t elérni. Csak normál módban sikerült elindítani. Próbálkoztam sima QProcess-sel és Q3Process-sel is hasonló eredménnyel. Aztán megpróbáltam úgy is, hogy nem közvetlenül hívom meg, hanem először egy sh-t indítok interaktív módban és annak írok az stdin-jére egy parancsot, ami elindítja a vlc-t rc-ben de így sem ment, csak normál gui-s módban. Bash-sel és interaktív móddal hasonló eredmény. Aztán megpróbálkoztam egy xterm-es megoldással. Itt bár egy xterm -e vlc -I rc parancsot indítva qprocess-sel elindult az rc felület, de az xterm-nek nem tudok az stdin-jére írni. A parancs átadás után nem történik semmi. A cél az lenne, hogy qprocess-sel lehessen vlc-t remote control felületen vezérelni.

Tudtok valamit javasolni a probléma megoldására?

Előre is köszönöm a válaszokat!

program memóriahasználat

Fórumok

Üdv, lehet hogy nagyon alap kérdés, de szeretném tudni mivel lehet kideríteni, hogy ha lefuttatok egy exe-filet, mennyi időt vett igénybe, míg végetért, illetve mennyi volt a max memóriafelhasználása?

Most elsősorban windows, de linux alá is érdekelne...

A válaszokat előre is köszi....

[Megoldva] Stream átirányítása stringbe

Fórumok

Adott ez az egyszerű program:


#include <iostream>

using namespace std;

int main() {

  int number;

  cout << "Adj meg egy decimalis szamot: ";
  cin >> number;
  cout << "a szam hexadecimalis erteke = 0x"
       << hex << number << "\n";

  return 0;
}

Hogy lehetne a képernyőn megjelenő hexadecimális számot egy stringbe irányítani? Tehát azt szeretném, hogy az átváltás eredménye ne a képernyőn, hanem a strinben jelenjen meg.

Előre is köszönöm!

C# automatikus méretezés + layout managerek

Fórumok

Éppen ismerkedem a C#-pal (Linux, mono) és problémáim vannak az ablakok megjelenítésével. Az összes könyvben és az interneten is csak ilyen példákat látok:

private Label label = new Label();
...
label.Size = new System.Drawing.Size( 100, 20 );
label.Location = new System.Drawing.Point( 16, 40 );
label.Text = "Hello";

Ezektől a programoktól engem a hideg ráz ki, elvi okok miatt még begépelni sem merem.
Honnan tudja a program írója, hogy nem 3000x2000-es felbontású monitorom van, 25-ös betűmérettel? És mi van, ha átméretezem az ablakot?

Tudna valaki segíteni, hogyan lehet mindezt C# alatt kultúráltan megoldani (azaz egy darab számot nem akarok látni)? QT-ben számok nélkül megy minden a LayoutManager-ekkel, meg SizePolicy-kkal (hogyan reagáljon az átméretezésre: változatlan, növekszik/csökken). Az ablak méretét is automatikusan kiszámolja a rendszer.

Sajnos nekem az a tapasztalatom, hogy ahányszor eddig valamit fixre állítottam be, mindig volt, akinek a gépén nem jelent meg rendesen...

[Megoldva] Qt4 MySQL ErrorType

Fórumok

A QSqlError osztálynak van egy ErrorType enumja, ami megmondja, hogy milyen típusú volt a bekövetkezett hiba. Na ezt én most használnám a kódomban, de fura dolgot tapasztaltam.

Adatbázis kapcsolatom OK, meg van nyitva. Futtatok egy queryt, OK. Most leállítom az sql szervert, majd megint futtatok egy queryt. A lastError().text() jónak tűnik [mysql has gone away, cannot execute query...], de az ErrorType az nem ConnectionError, hanem StatementError. Amúgy nyilván nem szintaktikai a hiba, mert a query az OK (select 1), no meg hát ha nincs sql szerver a túloldalon, akkor ki validálta volna a querymet?

Valaki tapasztalt már ilyet?

segítség error:expected constructor, descructor, or type conversion before '*' token

Fórumok

Sziaztok!

Binkerfának akarom megírni a kereső függvényét, aminek a tipusa Elem*.
A cpp-be ezt írtam:

template 'kacsacsőr'class T 'kacsacsőr'
Elem* BKFa'kacsacsőr' T 'kacsacsőr'::keres()

És ezt a hibát dobja rá:

error: expected constructor, descructor, or type conversion before '*' token
error: expected ';' before '*' token

Mostan mit csináljak?
(itt jobban látható: http://hup.pastebin.com/m60156f38 )
Köszi:Koli

yacc YYSTYPE feluldefinialasa

Fórumok

Udvozletem!

A mai nap botlottam bele egy problemaba, es tobb ora szenvedes utan sem tudom, hogy mi lehetne a megoldas. Roviden annyi, hogy nem sikerul feluldefinialni az YYSTYPE-ot.Nekem double-re lett volna szuksegem. Eleinte az tunt fel, hogy hiaba van a lex fileban egy yylval=atof(yytext), valamiert mindig 0-t ad vissza. Szepen lassan eljutottam odaig, hogy kiderult az yylval csak 4 bajtos, es int-kent kiirva szepen mukodik.

A yacc fileban termeszetesen ott van a #define YYSTYPE double. Sot, azt is kiprobaltam, hogy az y.tab.c-ben a default int-re beallito reszre beirtam, hogy double, es ugy forditottam, de maradt int.

Olvastam valahol meg olyat, hogy van valami %define, es azzal kellene STYPE-ot allitani, de ez nem sikerult.

Ha valaki tudna segiteni, hogy mi lehet a gond, annak megkoszonnem. Regebben siman mukodott a dolog, bar strukturakkal volt gond, de most valamiert nem, es nem jovok ra az okara.

Ha ez netan segit:
flex 2.5.35
bison (GNU Bison) 2.3
gcc (GCC) 4.3.2

Qt4 Adatbázis kezelés

Fórumok

Üdv mindenkinek!

Qt4 adatbázis moduljával kapcsolatban lenne néhány kérdésem:

1, QSqlTableModel -ben az SQL hibákat, milyen módon tudom észrevenni és azokat lekezelni?

Kicsit bővebben: adva van az alábbi program részlet:

model = new QSqlTableModel(this);
model->setTable("CIM");
model->select();

ui.tvData->setModel(model);

a tvData QTableView típusú

Ez után szerkesztem a tvData-n keresztül a táblát (beszúrok új rekordot, törlök, módosítok, az ehhez kapcsolódó kód kész van)
A gond ott kezdődik hogyha pl egy új rekordot adok a táblához, de pl kulcs ütközés van arról nem kapok értesítést, de a tvData-ban látom mintha megtörtént volna a beszúrás, közben az adatbázis táblában nincs benne a rekord.
Hogyan lehet értesülni az adatbázis hibáról?

2, Hogyan tudom befolyásolni az oszlopok megjelenitési sorrendjét a QTableView osztályban ?
Kicsit bővebben: fenti kódrészletben a QTableView -ban a tábla oszlopok ugyan olyan sorrendben jellenek meg mint ahogy az adatbázisban táblában a mezők definiálva lettek, hogyan tudom más sorrendben megjeleníteni az oszlopokat.
pl.: Adatbázisban mezo1,mezo2,mezo3 ,mezo4-> megjeleníteni viszont így szeretném: mezo2,mezo4,mezo1,mező3

3. Hogyan tudom csak olvashatóvá tenni egy QsqlTableModel-t?
Szintén fenti kód részlet. Alap esetben QTableView keresztül tudom módosítani a tábla adatait ezt szeretném megtiltani, hogyan tehetem meg ?

4. QSqlTableModel, QSqlRelationalDelegate használva hogyan tudom szűkiteni a Delegate által felkínált lehetőségeket?
Konkrétabban:

model = new QSqlRelationalTableModel(this);
model->setTable("CIM");
model->setRelation(1, QSqlRelation("CIM_TIPUS", "KOD", "NEV"));
model->select();

ui.tvData->setModel(model);
ui.tvData->setItemDelegate(new QSqlRelationalDelegate(ui.tvData));

CIM táblábanak a TIPUS mezőjérre idegen kulcsként össze van rendelve a CIM_TIPUS tábla KÓD mezővel
A cél az lenne hogy amikor tvData-n keresztül szerkesztem a TIPUS mezőt akkor ne az CIM_TIPUS tábla összes elemét hozzá hanem csak egy részét (pl új címekhez valamilyen típust nem lehet felvinni). Valahogyan QSqlRelationalDelegate -be be kellene csempészni egy where feltételt. Ki hogyan oldja meg ezt a feladatott?

Előre is köszönöm a válaszokat!