Torna indietro   Hardware Upgrade Forum > Software > Programmazione

BOOX Picco: l'ebook reader minuscolo è una genialata, e si può attaccare allo smartphone
BOOX Picco: l'ebook reader minuscolo è una genialata, e si può attaccare allo smartphone
BOOX ha portato sul mercato Picco, un e-reader da 3,97 pollici che pesa 58 grammi e si aggancia al retro dello smartphone con un anello magnetico. Lo abbiamo usato con Pixel 11 Pro XL e iPhone 18 Pro per capire se un formato così ridotto regga la prova della lettura quotidiana
AMD EPYC Venice: dentro Zen 6, i SoC a 256 core e la sfida al costo della memoria
AMD EPYC Venice: dentro Zen 6, i SoC a 256 core e la sfida al costo della memoria
A Las Vegas AMD ha svelato i dettagli architetturali delle CPU EPYC di sesta generazione, note con il nome in codice Venice. Nuovi core Zen 6 e Zen 6c costruiti a 2 nanometri, fino a 256 core per socket, 16 canali di memoria, interfaccia PCI Express 6.0 e un'intera famiglia di proposte che va da Venice SP7 a Verano. Senza dimenticare la memoria, oggi la voce di costo più pesante in un server: AMD risponde con CXL 3.1 e con la tecnologia software MEXT, che porta la memoria flash dentro la gerarchia della DRAM.
HONOR Pad X9 Max recensione, schermo ultra large a meno di 400 euro
HONOR Pad X9 Max recensione, schermo ultra large a meno di 400 euro
HONOR Pad X9 Max mette un pannello IPS da 13 pollici con risoluzione 2,5K e refresh a 120 Hz davanti a una batteria da 10.100 mAh e a quattro altoparlanti. Il listino parte da 399,90 euro, per un progetto molto chiaro e ambizioso: schermo ampio, buon audio e giornate lontano dalla presa, a un prezzo che non pesa sul portafoglio
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 08-03-2010, 15:48   #1
Etchelon
Bannato
 
Iscritto dal: May 2004
Messaggi: 2343
[C++] namespace, vettori e matrici

Ciao a tutti,
ho appena cominciato a convertire un programma da FORTRAN a C++ (serve a fare i conti, sono un ingegnere chimico ). Ho cercato un pochettino in internet informazioni riguardo alle variabili globali, visto che il programma è pieno di COMMON condivisi tra le molte subroutine, ed ho realizzato che "namespace" è la esatta controparte C++ del COMMON. Ho quindi provato a utilizzarlo per condividere dei vettori e delle matrici tra due funzioni che utilizzano lo stesso namespace, ma ho un problema:
il vettore viene dimensionato nel main, ma tale dimensione varia ad ogni loop. La dichiarazione del vettore nel namespace però avviene senza dimensionamento, e sembra che dentro al main io non possa cambiare la dimensione. Scritto in codice:
*PREMESSA: uso delle librerie di calcolo numerico create da un mio professore. Nel seguente codice BzzVector è semplicemente una classe creata per gestire vettori. Scrivere BzzVector f0(int i) equivale a scrivere double f0[i], niente di che*
Codice:
namespace tsteep
{ BzzVector f0; }
void main(void)
{ using namespace tsteep; for(i = 3; i <= 16; i++)
{ BzzVector f0(i); }
}
La compilazione avviene senza errori ma l'exe dà errore: class BzzVector: index out of range, come se non potessi dire a f0, solo dichiarato fino a quel momento, di aumentare di dimensione. Riesco ad aggirare il problema semplicemente definendo nel main un altro vettore, e poi uguagliando f0 a questo vettore "ausiliario":

Codice:
namespace tsteep
{ BzzVector f0; }
void main(void)
{ using namespace tsteep; for(i = 3; i <= 16; i++)
{ BzzVector aus(i); f0 = aus; }
}
allora sì che f0 ad ogni loop cambia ed aumenta di dimensione.

Il problema è che vorrei capire se si può andare a manipolare direttamente f0 senza dover dimensionare un vettore extra, per risparmiare memoria (che in questo caso è niente, ma nel programma principale che si trova a maneggiare più vettori di 5000 elementi penso inizi a pesare...).

Grazie!
Etchelon è offline   Rispondi citando il messaggio o parte di esso
Old 08-03-2010, 18:15   #2
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Senza sapere cosa sia BuzzVector è impossibile risponderti.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 08-03-2010, 19:40   #3
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Secondo me stai sbagliando nel senso che nel primo main ridichiari una variabile f0 di tipo BzzVector ad ogni iterazione, se ti capita di riutilizzarla fuori dal for la variabile f0 di tsteep è vuota, mentre nel secondo caso correttamente modifichi la f0 globale in quanto l'assegni ad ogni for.
Il fatto che tu ottenga out_of_range mi fa pensare ad una implementazione tramite vector o altri container standard, in tal caso potresti usare qualche metodo tipo resize, ma senza conoscere la definizione di BzzVector è impossibile consigliarti strade alternative.
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 09-03-2010, 01:28   #4
Etchelon
Bannato
 
Iscritto dal: May 2004
Messaggi: 2343
Hmm grazie delle risposte, chiederò direttamente al professore se può implementare un'opzione tipo resize visto che ora manca!
Etchelon è offline   Rispondi citando il messaggio o parte di esso
Old 09-03-2010, 01:43   #5
Etchelon
Bannato
 
Iscritto dal: May 2004
Messaggi: 2343
E invece no! Ho trovato un tutorial che m'era sfuggito...
ChangeDimensions(nuova dimensione,&f0) funziona! Yeah
Grazie ancora!
Etchelon è offline   Rispondi citando il messaggio o parte di esso
Old 09-03-2010, 08:38   #6
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Io mi domando perché i professori si facciano spesso le loro inutili e stupide librerie invece di insegnare la libreria standard.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 10-03-2010, 12:08   #7
fero86
Senior Member
 
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
Quote:
Originariamente inviato da cionci Guarda i messaggi
Io mi domando perché i professori si facciano spesso le loro inutili e stupide librerie invece di insegnare la libreria standard.
quotone. questo thread é una pena...
fero86 è offline   Rispondi citando il messaggio o parte di esso
Old 10-03-2010, 13:15   #8
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da fero86 Guarda i messaggi
quotone. questo thread é una pena...
Oltretutto è tutto molto C è decisamente poco C++
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 10-03-2010, 17:22   #9
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da cionci Guarda i messaggi
Io mi domando perché i professori si facciano spesso le loro inutili e stupide librerie invece di insegnare la libreria standard.
Perchè così fa figo , vuoi mettere a far vedere agli studenti che le cose te le fai da te, piuttosto che appoggiarti alla libreria standard? tzè, la libreria standard... roba da pivelli!
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 11-03-2010, 00:38   #10
fero86
Senior Member
 
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
Quote:
Originariamente inviato da banryu79 Guarda i messaggi
Perchè così fa figo , vuoi mettere a far vedere agli studenti che le cose te le fai da te, piuttosto che appoggiarti alla libreria standard? tzè, la libreria standard... roba da pivelli!
si ma é fighetteria da quattro soldi, perché poi non é che vanno ad usare il livello di API sottostante per fare le cose, semplicemente creano uno strato totalmente inutile e ridondante.

a Roma Tre c'é un professore che spiega Java (non faccio nomi altrimenti il pupazzo rosso di Striscia si offende ) facendo usare agli studenti un package di classi penosissime scritto da lui, il package fiji, che é perfettamente inutile: reimplementa System.out al di sopra di System.out e cose del genere dandogli nomi diversi (e nomi italiani per giunta, una cosa che giá da sola fa incazzare a morte), é un pianto, é una pena vedere quante minchiate inutili e ridondanti abbia scritto quell'individuo
ed é ancor peggio vedere quei poveracci ignoranti* di studenti che imparano a programmare cosi!!

*ignoranti non in senso dispregiativo ma nel senso che mi pare giusto che uno che arriva li dapprima non sia tenuto a saperne una mazza di quella roba.
fero86 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


BOOX Picco: l'ebook reader minuscolo è una genialata, e si può attaccare allo smartphone BOOX Picco: l'ebook reader minuscolo è un...
AMD EPYC Venice: dentro Zen 6, i SoC a 256 core e la sfida al costo della memoria AMD EPYC Venice: dentro Zen 6, i SoC a 256 core ...
HONOR Pad X9 Max recensione, schermo ultra large a meno di 400 euro HONOR Pad X9 Max recensione, schermo ultra large...
Lenovo ThinkPad X1 Carbon Gen 14: il business ultraleggero si rinnova dall’interno Lenovo ThinkPad X1 Carbon Gen 14: il business ul...
Jabra Evolve3 85: le cuffie sia per l'intrattenimento che per il lavoro Jabra Evolve3 85: le cuffie sia per l'intratteni...
Apple corregge 9 vulnerabilità su iPhone...
Microsoft inaugura il Pavilion a Roma, c...
Black Friday, l'errore che può co...
Lotus avrà un V8 ibrido da 670 CV...
IBM: solo il 26% delle imprese dimostra ...
Hacker contro hacker e danni per 740.000...
Xiaomi SkyNomad, boom da 27.147 auto in ...
Logitech concede un giorno di ferie ai s...
Amazon, questi mini PC hanno un display ...
BYD prepara una rivale di smart #2? Il b...
Amazon, 3 robot tagliaerba ECOVACS GOAT ...
La cifratura di WhatsApp e Signal funzio...
Motori elettrici cinesi contro quelli oc...
Windows e macOS sono già vecchi? ...
Sony WH-1000XM5 a 168€ su Amazon: costan...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 18:01.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v