Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione Borderlands 4, tra divertimento e problemi tecnici
Recensione Borderlands 4, tra divertimento e problemi tecnici
Gearbox Software rilancia la saga con Borderlands 4, ora disponibile su PS5, Xbox Series X|S e PC. Tra le novità spiccano nuove abilità di movimento, un pianeta inedito da esplorare e una campagna che lascia al giocatore piena libertà di approccio
TCL NXTPAPER 60 Ultra: lo smartphone che trasforma la lettura da digitale a naturale
TCL NXTPAPER 60 Ultra: lo smartphone che trasforma la lettura da digitale a naturale
NXTPAPER 60 Ultra è il primo smartphone con tecnologia NXTPAPER 4.0 per il display, un ampio IPS da 7,2 pollici. Con finitura anti-riflesso, processore MediaTek Dimensity 7400, fotocamera periscopica e modalità Max Ink per il detox digitale, NXTPAPER 60 Ultra punta a essere il riferimento tra gli smartphone pensati per il benessere degli occhi.
Un fulmine sulla scrivania, Corsair Sabre v2 Pro ridefinisce la velocità nel gaming
Un fulmine sulla scrivania, Corsair Sabre v2 Pro ridefinisce la velocità nel gaming
Questo mouse ultraleggero, con soli 36 grammi di peso, è stato concepito per offrire un'esperienza di gioco di alto livello ai professionisti degli FPS, grazie al polling rate a 8.000 Hz e a un sensore ottico da 33.000 DPI. La recensione esplora ogni dettaglio di questo dispositivo di gioco, dalla sua agilità estrema alle specifiche tecniche che lo pongono un passo avanti
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 06-09-2006, 16: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, 16:28   #2
Marco Giunio Silano
Senior Member
 
L'Avatar di Marco Giunio Silano
 
Iscritto dal: Jun 2006
Città: Inverno: Novgorod. Estate: Haifa
Messaggi: 879
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 16:30.
Marco Giunio Silano è offline   Rispondi citando il messaggio o parte di esso
Old 06-09-2006, 16: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, 17: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, 17: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, 10: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, 12: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, 12: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, 12:57   #9
dierre
Senior Member
 
L'Avatar di dierre
 
Iscritto dal: Sep 2004
Città: Interamnia Urbs
Messaggi: 2125
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, 13: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, 13:32   #11
dierre
Senior Member
 
L'Avatar di dierre
 
Iscritto dal: Sep 2004
Città: Interamnia Urbs
Messaggi: 2125
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, 13: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, 14: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, 14: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, 04: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, 09: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 09:45.
DavidGT è offline   Rispondi citando il messaggio o parte di esso
Old 08-09-2006, 11: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, 13: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, 18:08   #19
DavidGT
Member
 
Iscritto dal: Jul 2005
Messaggi: 151
DavidGT è offline   Rispondi citando il messaggio o parte di esso
Old 08-09-2006, 18: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


Recensione Borderlands 4, tra divertimento e problemi tecnici Recensione Borderlands 4, tra divertimento e pro...
TCL NXTPAPER 60 Ultra: lo smartphone che trasforma la lettura da digitale a naturale TCL NXTPAPER 60 Ultra: lo smartphone che trasfor...
Un fulmine sulla scrivania, Corsair Sabre v2 Pro ridefinisce la velocità nel gaming Un fulmine sulla scrivania, Corsair Sabre v2 Pro...
Nokia Innovation Day 2025: l’Europa ha bisogno di campioni nelle telecomunicazioni Nokia Innovation Day 2025: l’Europa ha bisogno d...
Sottile, leggero e dall'autonomia WOW: OPPO Reno14 F conquista con stile e sostanza Sottile, leggero e dall'autonomia WOW: OPPO Reno...
Virtua Fighter, il nuovo combat system s...
Snapdragon X2 Elite Extreme, dettagli su...
Microsoft risponde alle accuse: bloccati...
ChatGPT Pulse trasforma l'assistente AI:...
Microsoft lancia il nuovo Marketplace pe...
HUMAIN Horizon Pro: il notebook enterpri...
Meta lancia Vibes: feed di video AI pers...
Raspberry Pi lancia il 500+: il computer...
City Hunter: il gioco del 1990 torna su ...
Vanguard 96 e Vanguard Pro 96: Corsair f...
Cisco Sovereign Critical Infrastructure:...
Flyoobe supporta anche Windows 11 25H2: ...
Roborock Saros 10 e 10R: i robot aspirap...
Assetto Corsa EVO 0.3 rilasciato: debutt...
Dongfeng si presenta all'Italia: tutti i...
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: 11:54.


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