Torna indietro   Hardware Upgrade Forum > Software > Programmazione

MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB per far girare in locale anche i modelli più grandi
MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB per far girare in locale anche i modelli più grandi
Abbiamo provato MSI PRO MAX EDGE AI+, un mini-PC professionale progettato per eseguire modelli di intelligenza artificiale in locale, senza dipendere dal cloud. Il sistema abbina il processore AMD Ryzen AI Max+ 395, 128 GB di memoria unificata e un telaio in alluminio da appena 4 litri, con l'obiettivo di offrire capacità di elaborazione elevate in un formato compatto.
Recensione vivo X500 Pro Max: la fotografia mobile ha un nuovo protagonista
Recensione vivo X500 Pro Max: la fotografia mobile ha un nuovo protagonista
Il nuovo top di gamma vivo punta su un comparto fotografico particolarmente articolato, con un teleobiettivo da 200 megapixel e teleconvertitori esterni capaci di arrivare a 400 mm equivalenti. Lo abbiamo provato a Tenerife, mettendo alla prova fotocamere, prestazioni, autonomia e accessori. Ecco come si è comportato.
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà
Un mondo affollato e vivo, personaggi destinati a sparire a fine test e nessuno a inseguire l'oggetto giusto. Beta e stress test di World of Warcraft: Forever hanno fatto emergere un roleplay spontaneo, tra danze a Goldshire e code ordinate ai PNG
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 06-09-2006, 17:24   #1
DavidGT
Member
 
Iscritto dal: Jul 2005
Messaggi: 151
[C] Potete darmi una mano?

Ho l'esame di fondamenti di informatica la prossim settimana, e mi sto esercitando un po', soprattutto sulla ricorsione.

Potreste dirmi se la parte di programma che ho fatto per esercizio ieri può funzionare e che errori ho commesso.

Ho allegato il file, ci sono scritte le descrizioni delle funzioni da implementare.

Se qualcuno ha la cortesia di dargli un occhio gliene sarei molto grato



Grazie, Davide.
Allegati
File Type: txt scacchiera.txt (7.1 KB, 49 visite)
DavidGT è offline   Rispondi citando il messaggio o parte di esso
Old 06-09-2006, 17:28   #2
Marco Giunio Silano
Senior Member
 
L'Avatar di Marco Giunio Silano
 
Iscritto dal: Jun 2006
Città: Inverno: Novgorod. Estate: Haifa
Messaggi: 908
non hai provato a compilare vero?

edit

non ho capito perché vedo due volte la funzione2 e la dichiarazione di scacchiera
__________________
Hosti non solum dandam esse viam ad fugiendum, sed etiam muniendam / Ceterum censeo Carthaginem esse delendam / Et facere et pati fortia romanum est / Nemo Romanorum pacis mentionem habere dignatus est / Roma locuta, causa finita
Milla

Ultima modifica di Marco Giunio Silano : 06-09-2006 alle 17:30.
Marco Giunio Silano è offline   Rispondi citando il messaggio o parte di esso
Old 06-09-2006, 17:30   #3
DavidGT
Member
 
Iscritto dal: Jul 2005
Messaggi: 151
Non compila perchè non ha un main, non è un programma che deve girare. Devo solo implementare delle funzioni, e vorrei sapere se l'ho fatto bene....

Praticamente è una parte dell'esame, da fare senza compilatore

----------------------------------

perchè la seconda volta ho provato a rifarla ricorsiva
DavidGT è offline   Rispondi citando il messaggio o parte di esso
Old 06-09-2006, 18:22   #4
GoldenAxe79
Senior Member
 
L'Avatar di GoldenAxe79
 
Iscritto dal: Jun 2005
Messaggi: 659
sei iscritto ad informatica , dove ?
GoldenAxe79 è offline   Rispondi citando il messaggio o parte di esso
Old 06-09-2006, 18:22   #5
DavidGT
Member
 
Iscritto dal: Jul 2005
Messaggi: 151
Quote:
Originariamente inviato da GoldenAxe79
sei iscritto ad informatica , dove ?

No Ing. Aerospaziale a Milano....

Nessuno mi aiuta?
DavidGT è offline   Rispondi citando il messaggio o parte di esso
Old 07-09-2006, 11:29   #6
DavidGT
Member
 
Iscritto dal: Jul 2005
Messaggi: 151
up

Nessuno che ne sa ha 5 minuti da perdere? Per voi sono delle cavolate..
DavidGT è offline   Rispondi citando il messaggio o parte di esso
Old 07-09-2006, 13:48   #7
GoldenAxe79
Senior Member
 
L'Avatar di GoldenAxe79
 
Iscritto dal: Jun 2005
Messaggi: 659
studiate la meccanica del volo ?
GoldenAxe79 è offline   Rispondi citando il messaggio o parte di esso
Old 07-09-2006, 13:51   #8
DavidGT
Member
 
Iscritto dal: Jul 2005
Messaggi: 151
Quote:
Originariamente inviato da GoldenAxe79
studiate la meccanica del volo ?
certo
DavidGT è offline   Rispondi citando il messaggio o parte di esso
Old 07-09-2006, 13:57   #9
dierre
Senior Member
 
L'Avatar di dierre
 
Iscritto dal: Sep 2004
Città: Interamnia Urbs
Messaggi: 2126
scusa eh, ma mettici un main e provala. Neanche due minuti ci metti.
__________________
Un wormhole (buco di tarlo, in italiano), detto anche Ponte di Einstein-Rosen, è una ipotetica caratteristica topologica dello spaziotempo che è essenzialmente una "scorciatoia" da un punto dell'universo a un altro, che permetterebbe di viaggiare tra di essi più velocemente di quanto impiegherebbe la luce a percorrere la distanza attraverso lo spazio normale.
Go to a Wormhole
dierre è offline   Rispondi citando il messaggio o parte di esso
Old 07-09-2006, 14:31   #10
BountyKiller
Utente sospeso
 
Iscritto dal: Oct 2002
Messaggi: 2156
veramente una bella facoltà aerospaziale.... purtropo qui da me non c'è e ho dovuto ripiegare su ingegneria informatica.
Ma le prospettive di lavoro in italia ci sono?
__________________
sign editata dallo staff
BountyKiller è offline   Rispondi citando il messaggio o parte di esso
Old 07-09-2006, 14:32   #11
dierre
Senior Member
 
L'Avatar di dierre
 
Iscritto dal: Sep 2004
Città: Interamnia Urbs
Messaggi: 2126
Quote:
Originariamente inviato da BountyKiller
veramente una bella facoltà aerospaziale.... purtropo qui da me non c'è e ho dovuto ripiegare su ingegneria informatica.
Ma le prospettive di lavoro in italia ci sono?
per ripiegare suppongo fosse più indicata meccanica.
__________________
Un wormhole (buco di tarlo, in italiano), detto anche Ponte di Einstein-Rosen, è una ipotetica caratteristica topologica dello spaziotempo che è essenzialmente una "scorciatoia" da un punto dell'universo a un altro, che permetterebbe di viaggiare tra di essi più velocemente di quanto impiegherebbe la luce a percorrere la distanza attraverso lo spazio normale.
Go to a Wormhole
dierre è offline   Rispondi citando il messaggio o parte di esso
Old 07-09-2006, 14:46   #12
DavidGT
Member
 
Iscritto dal: Jul 2005
Messaggi: 151
Certo che ci sono prospettive di lavoro, innanzitutto sei un Ingegnere Industriale, alla fine non pensare che perchè sei Aerospaziale potrai solo lavorare in aziende basate sulla progettazzione di aerei o affini.

Cmq sopratutto nella mia zona (tra Milano e Torino) il settore è molto sviluppato, vedi Aermacchi, Alenia Spazio, Agusta
DavidGT è offline   Rispondi citando il messaggio o parte di esso
Old 07-09-2006, 15:35   #13
BountyKiller
Utente sospeso
 
Iscritto dal: Oct 2002
Messaggi: 2156
si si anch'io ufficialmente sono uno ingegnere dell'industria, anche se pare che possa firmare per progetti anche nell'ambito dell'edilizia.... di sicuro posso firmare la messa a norma di impianti elettrici, ma se poi succede qualcosa vengono a cercarmi quindi...

comunque ribadisco che aerospaziale è un bel corso di laurea.
__________________
sign editata dallo staff
BountyKiller è offline   Rispondi citando il messaggio o parte di esso
Old 07-09-2006, 15:37   #14
DavidGT
Member
 
Iscritto dal: Jul 2005
Messaggi: 151
Non divaghiamo troppo dal tema.....

Il programma non riesco a farlo funzionare!!!!

Please
DavidGT è offline   Rispondi citando il messaggio o parte di esso
Old 08-09-2006, 05:45   #15
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Quote:
Originariamente inviato da DavidGT
Non divaghiamo troppo dal tema.....

Il programma non riesco a farlo funzionare!!!!

Please
Hai ragione.
Mi permetto di dare alcuni suggerimenti (non ho analizzato a fondo il tutto).

- linea 47 (funzione funzione1()) si legge:
else if {
che non ha senso. Immagino non volessi aggiungere l'if.

- linea 49, 52, 55, 58, 61 (stessa funzione). Fail il confronto fra stringhe. Il confronto scritto non e' valido poiche' andra' a valutare solo degli indirizzi.
Il confronto fra queste scritte si esegue con la funzione strcmp().
Nel tuo caso:

if (!strcmp (head->pedina.tipopezzo, "PedoneBianco"))
...
Ti prego di notare che le stringhe devono essere racchiuse da apici doppi (") e non semplici ('). Userai gli apici semplici quando devi racchiudere un singolo carattere (il quale sara' di tipo char. Se ovviamente vuoi racchiudere una stringa composta da un solo carattere, userai ovviamente gli apici doppi).

- Linea 94: esegui una allocazione dinamica mediante l'uso della malloc(). So benissimo che si tratta di un programma didattico, ma per favore ricordati sempre che la malloc() puo' fallire, non allocando memoria e riportandoti un puntatore a NULL. Controlla sempre poiche' nel caso di programmi veri, questo tipo di dimenticanze sono veramente costose (potresti avere un programma che saltuariamente si incarta e potresti perdere settimane a capire cosa succede).
Piuttosto che niente puoi scrivere:
nuovo=(elemento *)malloc(sizeof(elemento));
if (!nuovo)
{
printf ("Errore allocazione memoria!!!");
exit (0);
}
Non e' il massimo ma almeno sai esattamente cosa succede.

- Linea 95: stesse considerazioni. L'assegnamento pero' non lo puoi fare in questo modo ma devi usare la funzione strcpy(). Nel tuo caso:
strcpy (nuovo->pedina.tipopezzo, "PedoneBianco");
Fai attenzione che la strcpy NON fa alcun controllo sul fatto che nuovo->pedina.tipopezzo sia sufficientemente grande per contenere la stringa che vuoi inserire. Se non fosse sufficientemente grande, potresti avere dei malfunzionamenti del tutto strani e, purtroppo, anche saltuari. E' tua responsabilita' controllare sempre.

- Linea 107, 119, 131, 143, 155, 167, 179, 191, 203 - Stessa cosa relativa agli assegnamenti. Suggerimento: Si tratta di codice di cui hai fatto copy&paste e poi modificato.
Secondo i modernissimi studi sull'ingegneria del software condotti dal sottoscritto, la tecnica piu' usata per il riuso del software e' appunto il copy & paste
Sembrera' strano, parlano tutti (o quasi) dei massimi sistemi e poi il software che mi trovo a spulciare (mi pagano per far funzionare le cose quando l'autore si arrende) e' pieno di tecniche simili. Anche se si tratta di un programma didattico, il mio consiglio e' di spendere 10 minuti in piu' a pensare ad una soluzione diversa e piu' compatta. Ti troveresti a correggere un solo errore invece di una pletora, con il rischio di dimenticarsene qualcuno.

Come hai visto, mi sono limitato a semplici considerazioni sintattiche. Nel caso serva, possiamo andare piu' in dettaglio ma il consiglio e' quello di farlo girare. Ci vuole davvero poco, hai gia' scritto quasi tutto.

High Flying
Sottovento
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 08-09-2006, 10:23   #16
DavidGT
Member
 
Iscritto dal: Jul 2005
Messaggi: 151
Quote:
Originariamente inviato da sottovento
Hai ragione.
Mi permetto di dare alcuni suggerimenti (non ho analizzato a fondo il tutto).

- linea 47 (funzione funzione1()) si legge:
else if {
che non ha senso. Immagino non volessi aggiungere l'if.
A noi hanno fatto usare anche else if quando ci sono più relazioni, posso mettere tutti if il risultato non dovrebbe cambiare.

Quote:
- linea 49, 52, 55, 58, 61 (stessa funzione). Fail il confronto fra stringhe. Il confronto scritto non e' valido poiche' andra' a valutare solo degli indirizzi.
Il confronto fra queste scritte si esegue con la funzione strcmp().
Nel tuo caso:

if (!strcmp (head->pedina.tipopezzo, "PedoneBianco"))
...
Non ho capito bene questo passaggio...
Qui non va bene il confronto perchè ho passato la lista per puntatore giusto?
Altrimenti in un passaggio per copia la sintassi sarebbe giusta?

Quote:
Ti prego di notare che le stringhe devono essere racchiuse da apici doppi (") e non semplici ('). Userai gli apici semplici quando devi racchiudere un singolo carattere (il quale sara' di tipo char. Se ovviamente vuoi racchiudere una stringa composta da un solo carattere, userai ovviamente gli apici doppi).

- Linea 94: esegui una allocazione dinamica mediante l'uso della malloc(). So benissimo che si tratta di un programma didattico, ma per favore ricordati sempre che la malloc() puo' fallire, non allocando memoria e riportandoti un puntatore a NULL. Controlla sempre poiche' nel caso di programmi veri, questo tipo di dimenticanze sono veramente costose (potresti avere un programma che saltuariamente si incarta e potresti perdere settimane a capire cosa succede).
Piuttosto che niente puoi scrivere:
nuovo=(elemento *)malloc(sizeof(elemento));
if (!nuovo)
{
printf ("Errore allocazione memoria!!!");
exit (0);
}
Non e' il massimo ma almeno sai esattamente cosa succede.
Questo della Malloc() proprio non lo sapevo...

Quote:
- Linea 95: stesse considerazioni. L'assegnamento pero' non lo puoi fare in questo modo ma devi usare la funzione strcpy(). Nel tuo caso:
strcpy (nuovo->pedina.tipopezzo, "PedoneBianco");
Fai attenzione che la strcpy NON fa alcun controllo sul fatto che nuovo->pedina.tipopezzo sia sufficientemente grande per contenere la stringa che vuoi inserire. Se non fosse sufficientemente grande, potresti avere dei malfunzionamenti del tutto strani e, purtroppo, anche saltuari. E' tua responsabilita' controllare sempre.
Grazie mille, non le ho usate perchè non ho molta dimestichezza con queste funzioni che gestiscono stringhe, in effetti però mi sono reso conto che passare i caratteri in quel modo sarebbe sbagliato!!

Quote:
- Linea 107, 119, 131, 143, 155, 167, 179, 191, 203 - Stessa cosa relativa agli assegnamenti. Suggerimento: Si tratta di codice di cui hai fatto copy&paste e poi modificato.
Secondo i modernissimi studi sull'ingegneria del software condotti dal sottoscritto, la tecnica piu' usata per il riuso del software e' appunto il copy & paste
Sembrera' strano, parlano tutti (o quasi) dei massimi sistemi e poi il software che mi trovo a spulciare (mi pagano per far funzionare le cose quando l'autore si arrende) e' pieno di tecniche simili. Anche se si tratta di un programma didattico, il mio consiglio e' di spendere 10 minuti in piu' a pensare ad una soluzione diversa e piu' compatta. Ti troveresti a correggere un solo errore invece di una pletora, con il rischio di dimenticarsene qualcuno.

Come hai visto, mi sono limitato a semplici considerazioni sintattiche. Nel caso serva, possiamo andare piu' in dettaglio ma il consiglio e' quello di farlo girare. Ci vuole davvero poco, hai gia' scritto quasi tutto.

High Flying
Sottovento

Grazie mille per i suggerimenti, ora provo a metterlo a posto!!

Ultima modifica di DavidGT : 08-09-2006 alle 10:45.
DavidGT è offline   Rispondi citando il messaggio o parte di esso
Old 08-09-2006, 12:39   #17
DavidGT
Member
 
Iscritto dal: Jul 2005
Messaggi: 151
Altro esercizietto

guardate un secondo questo...

perchè non mi prende in modo corretto l'anno??

Grazie!!

Codice:
#include <stdio.h>
#include <stdlib.h>

//Creare un programma che permetta di creare una lista di
//nominativi che contenga una anagrafica con i seguenti dati: nome cognome e data di
//nascita. Le funzionalità richieste sono l’inserimento di nuovi nominativi e la stampa di tutto
//l’archivio.

typedef struct el {
	int anno;
	char nome[10];
	char cognome[10];
	struct el *next;
} elemento;


elemento * inseriscitesta (elemento *head);
void stampa (elemento *head);


void main () {


	int scelta=5;
	elemento *lista;

	lista=NULL;

	while (scelta != 9) {
	printf("Se vuoi inserire un nominativo premi 1 altrimenti premi 0 per stampare la lista || per uscire 9\n\n");
	scanf("%d",&scelta);

	if (scelta == 1) {

		lista=inseriscitesta(lista);
	}

	if (scelta == 2) {

		stampa (lista);

	}
}
}




elemento * inseriscitesta (elemento *head) {

	elemento *new;

	new=(elemento *)malloc(sizeof(elemento));
	new->next=head;

		printf("Inserire il nome\n");
		scanf("%s", new->nome);
		printf("Inserire il cognome\n");
		scanf("%s", new->cognome);
		printf("Inserire anno di nascita\n");
		scanf("%d", new->anno);

	return new;
}

void stampa (elemento *head) {

	while (head != NULL) {

		printf("%s - %s - %d\n", head->nome, head->cognome, head->anno);
		head=head->next;
	}
}
DavidGT è offline   Rispondi citando il messaggio o parte di esso
Old 08-09-2006, 14:06   #18
DavidGT
Member
 
Iscritto dal: Jul 2005
Messaggi: 151
UP
DavidGT è offline   Rispondi citando il messaggio o parte di esso
Old 08-09-2006, 19:08   #19
DavidGT
Member
 
Iscritto dal: Jul 2005
Messaggi: 151
DavidGT è offline   Rispondi citando il messaggio o parte di esso
Old 08-09-2006, 19:57   #20
Barbalbero
Registered User
 
Iscritto dal: Aug 2006
Messaggi: 305
Ma new non è una parola riservata?

Cmq devi mettere l'operatore & nella scanf dell'anno
Barbalbero è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB per far girare in locale anche i modelli più grandi MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB...
Recensione vivo X500 Pro Max: la fotografia mobile ha un nuovo protagonista Recensione vivo X500 Pro Max: la fotografia mobi...
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà WoW Forever: la beta è stato uno dei mome...
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA Oracle AI World 2026: in Europa prima la sovrani...
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort DS N°7 E-Tense: il SUV premium made in Melfi...
Windows 11, 8 GB di RAM non sono pi&ugra...
Octopus Energy ritira la tariffa Flex Mu...
Disegnare la superconduttività co...
Il razzo spaziale NASA SLS per la missio...
Il drone NASA Dragonfly ha volato per la...
GTA 6, preload dal 10 novembre: servono ...
The Elder Scrolls VI: Sentinel, Bethesda...
Un doppio disco di detriti attorno a una...
Windows 11: risolta la disattivazione fo...
42AI, l'intelligenza artificiale anticip...
Windows 11 26H2 gira con appena 128 MB d...
GPT-6.2 Astra compare in Codex, Claude F...
Record assoluto per Linux 7.4: quasi mez...
Datacenter “standard” esonerato dalla va...
Occhio ai consumi: nuovi limiti condivis...
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: 01:07.


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