-
Mobilarena
Új hozzászólás Aktív témák
-
Miért, egy nem-diplomás kezdőre rábíznál bármit? Ez természetes, hogy ha valaki frissen kerül ki egy egyetemről, még a tapasztalat hiánya miatt nem tud olyan önálló lenni, mint pár év múlva. De ha elvégez egy egyetemet, szerintem már eleve egy indikátor, hogy van benne kitartás és végig tud csinálni egy kemény projektet.
-
Én fizikusként végeztem, azon belül tanították a programozást (C, C++, aztán Matlab, hasonlók), így nyilván el sem tudom képzelni matek nélkül az egészet. Nálunk pont arról szólt, hogy algoritmusokat programozzunk le.
Weblapfejlesztés meg segédprogramok meg hasonlókhoz biztos nem kell matek, de szerintem egy programozónak nem lehet hasznosabb tudása a programozáson kívül a mateknél. Gazdaságin is. Mondjuk írni akarsz egy kereskedő progit devizára (HFT), modellezni akarsz valami folyamatot stb, ez mind-mind matek. A mi szakunkról rengetegen mennek olyan cégekhez, mnit pl. a Morgan Stanley, ahol programoznak és pont a matematikai-fizikai ismereteik miatt tudják a modellalkotási feladatokat megcsinálni. -
válasz
tboy93 #13239 üzenetére
Nekem konkrétan rémlik régről, de mikor én ezt tanultam egyetemen az már kb. 10 éve volt. Aztán a munkám során sem igazán kell használni sajnos, pedig a programozás olyan dolog, amit folyamatos gyakorlással tud elsajátítani, fejleszteni az ember. Én meg kb. 2 évente veszem elő a Visual Studio-t, hogy valami egyszerűbb algoritmust lekódoljak. Aztán el is szokott tartani vagy egy hétig, hogy összedobjak valamit, ami egy gyakorlatban lévő programozónak lenne talán 2-3 óra. Néha full alap dolgoknak utána kell néznem, úgy kimegy a fejemből.
-
Megoldás:
fájlba kiíratás elé betettem egyoutput.precision(10);
parancsot. Ha a MATRIX static double, a nonzer_val pedig double, akkor tökéletes minden.
Kíváncsiságból próbálgattam floattal is, de olyan dolgokat produkált, amit nem tudtam hova tenni... Bár ez már szigorúan véve nem a probléma része, mert a double megoldja (és nem kell a halálba optimalizálnom), de miért csinálja azt, hogy float esetén kiegészíti a számot még random, kisebb helyi értékű számjegyekkel, hogy meglegyen a 10 számjegy? Biztos hogy nem véletlenszerűen, mert kerekítés után az eredeti számot mindig visszaadja. És a forrás fájlban nincs több számjegy, nincs több információ, csak ami a fentebb linkeltben is látszik. Csak nézek és nem értem, hogy wtf? Valakinek valami tipp?
Ilyen, ha jó:
2 2 2686.361
2 3 1943.819
2 4 119.4358
2 5 119.4358
3 2 0.723588
3 3 2685.947
3 17 119.4358
3 18 119.4358
4 2 0.04446005És a float ilyet csinál belőle precision(10)-el:
2 2 2686.361084
2 3 1943.81897
2 4 119.4357986
2 5 119.4357986
3 2 0.7235879898
3 3 2685.947021
3 17 119.4357986
3 18 119.4357986
4 2 0.04446005076 -
Ja, sejtettem, hogy a mérettel lesz baja, de azt hittem, hogy ezt ki tudja rakni RAM-ba és ez nem gond.
(#13226) kovisoft
1. Megpróbálom ezt.
2. Igen(#13228) MATEO6600
Azt is átírtam, de már előtte jelentkezett a probléma. Csináltam kiíratást és a float MATRIX-ban már a kerekített számok voltak.Köszi mindenkinek
-
Sziasztok!
Lenne egy kérdésem. Írtam egy rövid programot C++ -ban, amivel .txt-ből beolvasok egy ritka mátrixot (sparse matrix), majd Matrix Market formátumban kiíratom. A probléma, hogy az output formátumban már kerekített értékek vannak. Feltételezem azért, mert a float adattípusnak túl hosszúak a számok (bár sztem abban is el kéne férniük...). Ezért a MATRIX elnevezésű DIM*DIM méretű tömböt, amibe beolvasom a mátrixot, double típusúra vettem, ebben az esetben azonban, bár gond nélkül lefordul a forráskód, futtatásnál egyszerűen nem történik semmi. Hibaüzenet sincs. Próbáltam feltárni, hogy hol hasal el, de olyan, mint ha a main függvénybe sem lépne be. Fogalmam sincs, hogy mi a baj. A forráskód alább - ha itt a MATRIX[DIM*DIM] előtt a float-ot double-re cserélem, akkor történik az anomália. Van tipp, hogy mi a gond?
#include <iostream>
#include <fstream>
#include <vector>using namespace std;
const int DIM = 385;
int main()
{
ifstream input("solveInput.txt");
ofstream output("Input_MM_precise.mtx");
float MATRIX[DIM*DIM];
unsigned int nonzeros = 0;
vector<int> nonzero_loc_row, nonzero_loc_col; //a nonzero element helye, sor és oszlop
vector<float> nonzero_val; //a nonzero element értéke
if (input.is_open())
{
for (int i = 0; i < DIM; i++)
{
for (int j = 0; j < DIM; j++)
{
input >> MATRIX[i*DIM + j];
if (MATRIX[i*DIM + j] != 0)
{
nonzeros++;
nonzero_loc_row.push_back(i);
nonzero_loc_col.push_back(j);
nonzero_val.push_back(MATRIX[i*DIM + j]);
}
}
}
}
else cout << "Nem talalhato a fajl\n";output << DIM << " " << DIM << " " << nonzeros << endl;
for (unsigned int i = 0; i < nonzeros; i++) output << nonzero_loc_row[i]+1 << " " << nonzero_loc_col[i]+1 << " " << nonzero_val[i] << endl; // +1 az 1-es alapú indexelés miattoutput.close();
cout << "\n" << "Vege" << endl;
}Példa az input mátrixból - csak egy random kimásolás, hogy látszódjon pár szám:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 2686.361 1943.819 119.4358 119.4358 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0.723588 2685.947 0 0 0 0 0 0 0 0 0 0 0 0 0 119.4358 119.4358 0
0 0.04446005 0 1325.068 583.3548 119.4358 119.4358 0 0 0 0 0 0 0
0 0.04446005 0 0.4402452 1679.329 0 0 0 0 0 0 0 0 0 0 0 0 0 172.5
0 0 0 0.09013559 0 1324.239 583.3548 119.4358 119.4358 0 0 0 0 0
0 0 0 0.09013559 0 0.4405208 1678.5 0 0 0 0 0 0 0 0 0 0 0 0 0 172
0 0 0 0 0 0.09019202 0 1323.41 583.3548 119.4358 119.4358 0 0 0 0
0 0 0 0 0 0.09019202 0 0.4407968 1677.672 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0.09024853 0 1322.581 583.3548 119.4358 119.4358 0
0 0 0 0 0 0 0 0.09024853 0 0.4410731 1676.844 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0.0903051 0 1321.752 583.3548 119.4358 119.4358
0 0 0 0 0 0 0 0 0 0.0903051 0 0.4413498 1676.016 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0.09036174 0 2681.386 583.3548 550.4225 0 0 stb.Végeredményben pedig ilyenek lesznek:
2 2 2686.36
2 3 1943.82
2 4 119.436
2 5 119.436
3 2 0.723588
3 3 2685.95
3 17 119.436
3 18 119.436
4 2 0.0444601
4 4 1325.07
4 5 583.355
4 6 119.436
4 7 119.436
5 2 0.0444601
stb. -
válasz
DrojDtroll #13169 üzenetére
Hát ennyi munkát már csak bele tudsz tenni, hogy a forráskódban a kiírandó szöveget átírod
-
válasz
dabadab #12966 üzenetére
És azt hol találom? Itt már meg van nyitva a project, csak nem kattintottam rá egyik fájlra sem, azért üres a képernyő. A jobb felső ablakban lévő project fájlra kattintottam jobb-al és úgy hoztam ezt elő. De ugyanez jön elő, ha bal felül a project ->properties-re kattintok.
-
Üdv!
Command line argument-tel szeretnék egy kódot debug-olni Visual Studio-ban és azt találtam mindenhol, hogy a solution explorer-ben kell a project fájlra kattintani, majd properties és ott lesz egy debug tab. Én viszont akárhogy meresztem a szemem nem találok ilyet. Hol lehet a hiba?
Remélem, hogy érthető, hogy mi a kínom
Ha nem, szóljatok, próbálok pontosítani -
Sziasztok!
Remélem nem túl off, csak azt szeretném megtudni, hogy ha van egy MS Visual Studio 2013 kulcsom, de én a 2012-t akarom telepíteni, akkor azt is be tudom aktiválni vele? Úgy tudtam, hogy igen, de nem akarja elfogadni.
Új hozzászólás Aktív témák
Hirdetés
● olvasd el a téma összefoglalót!
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- Poco F6 5G - Turbó Rudi
- Cisco vizsgák (CCNA, CCNP, CCIE)
- Megjelent a Poco F7, eurós ára is van már
- Tálaljuk a februári hardverlevest
- Beszántaná a marketingért felelős részlegét az Intel
- Kecskemét és környéke adok-veszek-beszélgetek
- vrob: Az IBM PC és a játékok a 80-as években
- Anglia - élmények, tapasztalatok
- Norvégia átmenetileg betiltja az áramigényes kriptobányászatot
- További aktív témák...
- Easun iSolar SMW 11kW Twin Hibrid inverter // Dupla MPPT // BMS // WiFi
- GAMER PC : RYZEN 7 5700G/// 32 GB DDR4 /// RX 6700 XT 12 GB /// 512 GB NVME
- GAMER MSI LAPTOP : 15,6" 144 HZ /// i5 12450H /// 16GB DDR4/// RTX 4050 6GB/// 1TB NVME
- Manfrotto 055 magnézium fotó-videófej Q5 gyorskioldóval
- Sony ECM-W2BT
- Telefon felvásárlás!! iPhone 13 Mini/iPhone 13/iPhone 13 Pro/iPhone 13 Pro Max
- Apple iPhone 13 128GB, Kártyafüggetlen, 1 Év Garanciával
- Samsung Galaxy S23, 8/128 GB, Kártyafüggetlen
- BESZÁMÍTÁS! 6TB Seagate SkyHawk SATA HDD meghajtó garanciával hibátlan működéssel
- Menő retró konfig: Q9550, Gigabyte P43, 4GB RAM, ASUS GT730,
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged