Torna indietro   Hardware Upgrade Forum > Software > Programmazione

DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker
DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker
Analizziamo nel dettaglio DJI RS 5, l'ultimo arrivato della famiglia Ronin progettato per videomaker solisti e piccoli studi. Tra tracciamento intelligente migliorato e ricarica ultra rapida, scopriamo come questo gimbal eleva la qualità delle produzioni.
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming
AMD Ryzen 7 9850X3D è la nuova CPU gaming di riferimento grazie alla 3D V-Cache di seconda generazione e frequenze fino a 5,6 GHz. Nei test offre prestazioni superiori a 9800X3D e 7800X3D, confermando la leadership AMD nel gaming su PC.
Le soluzioni FSP per il 2026: potenza e IA al centro
Le soluzioni FSP per il 2026: potenza e IA al centro
In occasione del Tech Tour 2025 della European Hardware Association abbiamo incontrato a Taiwan FSP, azienda impegnata nella produzione di alimentatori, chassis e soluzioni di raffreddamento tanto per clienti OEM come a proprio marchio. Potenze sempre più elevate negli alimentatori per far fronte alle necessità delle elaborazioni di intelligenza artificiale.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 25-08-2005, 00:35   #1
biggestopolino
Member
 
L'Avatar di biggestopolino
 
Iscritto dal: Jul 2005
Città: Cagliari
Messaggi: 113
ARRAY E STRUCT IN C

non riesco a trovare su internet buone guide per gli array e struct (e loro applicazione, quindi esercizi vari).
dove posso trovarne??
__________________
quando tutti falliscono.. non provate a chiedere il mio parere!
biggestopolino è offline   Rispondi citando il messaggio o parte di esso
Old 25-08-2005, 08:32   #2
GioVesas
Member
 
Iscritto dal: Jun 2004
Città: Pecetto
Messaggi: 73
Per le struct
http://www.phim.unibe.ch/comp_doc/c_...AX/struct.html

In C (non C++), le array sono il termine inglese di matrici es.
a[20]
b[10][10]
__________________
Gianni
GioVesas è offline   Rispondi citando il messaggio o parte di esso
Old 25-08-2005, 08:52   #3
biggestopolino
Member
 
L'Avatar di biggestopolino
 
Iscritto dal: Jul 2005
Città: Cagliari
Messaggi: 113
sisi, ma per gli array volevo sapere se si trovano guide spiegate in modo semplice, perchè io sto usando il deitel & deitel e il capitolo occupa un 25 pagine e non è spiegato alla meraviglia
__________________
quando tutti falliscono.. non provate a chiedere il mio parere!
biggestopolino è offline   Rispondi citando il messaggio o parte di esso
Old 25-08-2005, 15:31   #4
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
Uhm,il deitel & deitel secondo me invece lo spiega in maniera molto particolareggiata,almeno per me è stato abbastanza chiaro nello spiegare gli array.

Provo a fare una spiegazione sintetica di cosa sia un array(matrice):

Quando tu dichiari una variabile,prenoti uno spazio nella memoria adatto a contenere esattamente la dimensione della variabile stessa,con la particolarità che sebbene la dimensione venga "prenotata" in maniera precisa,l'indirizzo di memoria al quale questa variabile viene assegnata non è prevedibile; es:


int var ;

Saranno allocati 4 byte(su altri sistemi potrebbero essere anche 2) per questa variabile "var" all'indirizzo di memoria 1000(per esempio).Questa variabile quindi occuperà la memoria a partire dall'indirizzo 1000 fino all'indirizzo 1003.

Immagina quindi di voler calcolare le spese mensili e di fare un totale annuo:

float spese_gennaio;
float spese_febbraio;
float spese_marzo;

etc....etc...


In questo caso,sarebbe meglio "raggruppare" tutte le variabili float in un "unico contenitore" adatto a contenere esattamente la dimensione delle nostre variabili:

float spese[12] ;

In questo caso,abbiamo appunto dichiarato un array "spese" di tipo float composto da 12 elementi di tipo float che sono numerati da 0 a N-1,o più semplicemente, nel nostro caso da 0 a 12-1 quindi da 0 a 11 e questo perchè l'indice più basso di un array è sempre 0.

In questo semplice esempio,non trova posto però il totale della somma dei 12 mesi perchè sarebbe il 13 elemento,quindi,si potrebbe dichiarare un array più grande adatto a contenerlo anzichè un'altra variabile: float totale;
In modo da avere:

float spese[13];

Per usare delle parole molto semplici,io immagino un array come un casellario in cui gli elementi singoli(ma sempre dello stesso tipo)vengono contenuti in un semplice ordine numerico.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 25-08-2005, 17:10   #5
biggestopolino
Member
 
L'Avatar di biggestopolino
 
Iscritto dal: Jul 2005
Città: Cagliari
Messaggi: 113
---------------------
#include <stdio.h>

main () {
int n[10]={32,27,64,18,95,14,90,70,60,37};
int i;

for(i=0;i<=9;i++)
n[i]=0;

printf("%s%13s\n","Elemento","Valore");
for(i=0;i<=9;i++)
printf("%7d%13d\n",i,n[i]);

system("pause");
return 0;
}

-------------------------
questo è un programma copiato dal deitel, che dovrebbe visualizzare due colonne, una con il titolo "elemento", l'altra "valore".
stando al libro nella prima colonna dovrebbero essere presenti i valori da 0 a 9 (i valori di "i").
nella seconda dovrebbero comparire i valori 32,27,64,18,95 ecc.
torna tutto tranne che nella seconda colonna compaiono solo degli zeri.
dove sta il problema?
un'altra cosa:
nella stringa
printf("%7d%13d\n",i,n[i]);
compare n[i]
come lo devo interpretare? cosa viene interpretato dal programma questo comando?
__________________
quando tutti falliscono.. non provate a chiedere il mio parere!
biggestopolino è offline   Rispondi citando il messaggio o parte di esso
Old 25-08-2005, 17:23   #6
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
Quote:
Originariamente inviato da biggestopolino
---------------------
#include <stdio.h>

main () {
int n[10]={32,27,64,18,95,14,90,70,60,37};
int i;

for(i=0;i<=9;i++)
n[i]=0;

printf("%s%13s\n","Elemento","Valore");
for(i=0;i<=9;i++)
printf("%7d%13d\n",i,n[i]);

system("pause");
return 0;
}

-------------------------
questo è un programma copiato dal deitel, che dovrebbe visualizzare due colonne, una con il titolo "elemento", l'altra "valore".
stando al libro nella prima colonna dovrebbero essere presenti i valori da 0 a 9 (i valori di "i").
nella seconda dovrebbero comparire i valori 32,27,64,18,95 ecc.
torna tutto tranne che nella seconda colonna compaiono solo degli zeri.
dove sta il problema?
un'altra cosa:
nella stringa
printf("%7d%13d\n",i,n[i]);
compare n[i]
come lo devo interpretare? cosa viene interpretato dal programma questo comando?

Il comportamento che ti da i valori della seconda colonna a zero è normale in quanto sono stati tutti inizializzati a zero da:

for (i = 0; i < 9; i++)
n[i] = 0; /*tutti gli indici dell'array qui vengono messi a zero*/

per la printf, quel n[i] dice appunto di stampare ogni singolo indice dell'array "n".

Per ottenere questo:
Codice:
./fo
Elemento       Valore
      0           32
      1           27
      2           64
      3           18
      4           95
      5           14
      6           90
      7           70
      8           60
      9           37
devi solo ragionare un pochettino sul codice da te postato

Altra cosa:
benchè in molti libri e guide troverai una notazione della main() così:

main()
etc....etc...

sappi che lo standard attuale vuole che la main ritorni sempre un int,quindi tu scrivila sempre:

int main()
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek

Ultima modifica di RaouL_BennetH : 25-08-2005 alle 17:33.
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 25-08-2005, 18:18   #7
biggestopolino
Member
 
L'Avatar di biggestopolino
 
Iscritto dal: Jul 2005
Città: Cagliari
Messaggi: 113
soluzione?

si ho notato che inizializzando n[i]=0 infatti porta tutto a zero, quindi provando con n[i]=10 ovviamente portava tutto a 10, poi provando ad eliminare l'inizializzazione va a scrivere 10 volte "elemento" e "valore", allora ho pensato di inizializzare n[i] dicendo che n[i]=n[i], e quindi deve essere uguale ai valori che avevo inserito in precedenza.
e in effetti così il programma ha girato, sono andato vicino alla soluzione del problema?
__________________
quando tutti falliscono.. non provate a chiedere il mio parere!

Ultima modifica di biggestopolino : 25-08-2005 alle 18:19. Motivo: mi sono scordato un pezzo di codice
biggestopolino è offline   Rispondi citando il messaggio o parte di esso
Old 25-08-2005, 18:23   #8
GioVesas
Member
 
Iscritto dal: Jun 2004
Città: Pecetto
Messaggi: 73
fuochino
__________________
Gianni
GioVesas è offline   Rispondi citando il messaggio o parte di esso
Old 25-08-2005, 18:43   #9
biggestopolino
Member
 
L'Avatar di biggestopolino
 
Iscritto dal: Jul 2005
Città: Cagliari
Messaggi: 113
__________________
quando tutti falliscono.. non provate a chiedere il mio parere!

Ultima modifica di biggestopolino : 25-08-2005 alle 18:48.
biggestopolino è offline   Rispondi citando il messaggio o parte di esso
Old 26-08-2005, 11:02   #10
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Quote:
Originariamente inviato da RaouL_BennetH
Altra cosa:
benchè in molti libri e guide troverai una notazione della main() così:

main()
etc....etc...

sappi che lo standard attuale vuole che la main ritorni sempre un int,quindi tu scrivila sempre:

int main()
Sicuro? Se la memoria non m'inganna, il tipo di default è l'int, e non è necessario specificarlo come valore di ritorno di una funzione.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 26-08-2005, 13:11   #11
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
Quote:
Originariamente inviato da cdimauro
Sicuro? Se la memoria non m'inganna, il tipo di default è l'int, e non è necessario specificarlo come valore di ritorno di una funzione.
Per la main dev'essere sempre un int per lo standard C.

questi sono due esempi dichiarando la main void e poi int:

Codice:
#include <stdio.h>

void main() {
       
        printf("sono pippo\n");
       
}
Compilando con gcc e l'opzione -Wall per i warning mi dice:

Codice:
 
gcc -Wall pippo.c
pippo.c:3: warning: return type of 'main' is not 'int'
se provo a non specificare niente:

Codice:
#include <stdio.h>
main() {
      printf("sono sempre pippo\n");
}
al solito, il compilatore come warning mi restituisce:

Codice:
gcc -Wall pippo.c
pippo.c:3: warning: return type defaults to 'int'
pippo.c: In function 'main':
pippo.c:6: warning: control reaches end of non-void function
Ovviamente, se ci piazzo int main, nessun messaggio di warning e gcc è contento
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 26-08-2005, 15:33   #12
biggestopolino
Member
 
L'Avatar di biggestopolino
 
Iscritto dal: Jul 2005
Città: Cagliari
Messaggi: 113
eii

Quote:
Originariamente inviato da GioVesas
fuochino
non mi avete ancora detto come era il comando esatto
__________________
quando tutti falliscono.. non provate a chiedere il mio parere!
biggestopolino è offline   Rispondi citando il messaggio o parte di esso
Old 26-08-2005, 15:46   #13
GioVesas
Member
 
Iscritto dal: Jun 2004
Città: Pecetto
Messaggi: 73
Quello che hai fatto non é sbagliato, ma semplicemente inutele: hai ricopiato un pezzo di memoria su se stessa.
La cosa corretta è semplicemente non fare quel ciclo for.

main () {
int n[10]={32,27,64,18,95,14,90,70,60,37};
int i;
/*
for(i=0;i<=9;i++)
n[i]=m[i];
*/

printf("%s%13s\n","Elemento","Valore");
for(i=0;i<=9;i++)
printf("%7d%13d\n",i,n[i]);

system("pause");
return 0;
}

In alternativa:

main () {
int m[10]={32,27,64,18,95,14,90,70,60,37};
int n[10];
int i;

for(i=0;i<=9;i++)
n[i]=m[i];

printf("%s%13s\n","Elemento","Valore");
for(i=0;i<=9;i++)
printf("%7d%13d\n",i,n[i]);

system("pause");
return 0;
}

cioè copi una matrice su un'altra.
__________________
Gianni
GioVesas è offline   Rispondi citando il messaggio o parte di esso
Old 27-08-2005, 14:44   #14
biggestopolino
Member
 
L'Avatar di biggestopolino
 
Iscritto dal: Jul 2005
Città: Cagliari
Messaggi: 113
ti ringrazio, anche perchè io stesso non capivo perchè dovessi riscrivere 2 volte il for..
infatti quell'esercizio, copiato dal libro, non funzionava
__________________
quando tutti falliscono.. non provate a chiedere il mio parere!
biggestopolino è offline   Rispondi citando il messaggio o parte di esso
Old 27-08-2005, 21:19   #15
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Quote:
Originariamente inviato da RaouL_BennetH
Per la main dev'essere sempre un int per lo standard C.
E' un int in generale, se non lo specifichi...
Quote:
questi sono due esempi dichiarando la main void e poi int:

Codice:
#include <stdio.h>

void main() {
       
        printf("sono pippo\n");
       
}
Compilando con gcc e l'opzione -Wall per i warning mi dice:

Codice:
 
gcc -Wall pippo.c
pippo.c:3: warning: return type of 'main' is not 'int'
E' chiaro, perché per convenzione main deve tornare un int.
Quote:
se provo a non specificare niente:

Codice:
#include <stdio.h>
main() {
      printf("sono sempre pippo\n");
}
al solito, il compilatore come warning mi restituisce:

Codice:
gcc -Wall pippo.c
pippo.c:3: warning: return type defaults to 'int'
pippo.c: In function 'main':
pippo.c:6: warning: control reaches end of non-void function
OK, ma il warning dice una cosa giusta: non essendoci il tipo, di default assume che sia int.
Quote:
Ovviamente, se ci piazzo int main, nessun messaggio di warning e gcc è contento
Sì, ma tu prova a compilare senza warning, sennò non vale...
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 27-08-2005, 22:46   #16
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
Quote:
Originariamente inviato da cdimauro

Sì, ma tu prova a compilare senza warning, sennò non vale...

lol
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker DJI RS 5: stabilizzazione e tracking intelligent...
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequen...
Le soluzioni FSP per il 2026: potenza e IA al centro Le soluzioni FSP per il 2026: potenza e IA al ce...
AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa AWS annuncia European Sovereign Cloud, il cloud ...
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto Redmi Note 15 Pro+ 5G: autonomia monstre e displ...
Rocket Lab prosegue l'assemblaggio del n...
Il Wet Dress Rehearsal della missione Ar...
31,4 Tbps: Aisuru sfonda il suo stesso r...
Giocattoli AI, una falla espone oltre 50...
OPPO Reno15 in viaggio con Gaia Gozzi: i...
Nuove revisioni per Abarth 600e: arrivan...
Intelligenza artificiale, re-training e ...
LG presenta a ISE 2026 la nuova serie di...
Alienware: disponibile in Italia il nuov...
Arrivano le bodycam sui treni di Ferrovi...
Nike taglia 775 posti negli USA: l'autom...
Crimson Desert si mostra in un nuovo gam...
Addio transistor? Questo dispositivo usa...
Jensen Huang: le fabbriche negli Stati U...
Sam Altman ammette l'errore: GPT-5.2 &eg...
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: 21:22.


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