|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
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. |
![]() |
![]() |
![]() |
#2 |
Senior Member
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. |
![]() |
![]() |
![]() |
#3 |
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 |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Jun 2005
Messaggi: 659
|
sei iscritto ad informatica , dove ?
|
![]() |
![]() |
![]() |
#5 | |
Member
Iscritto dal: Jul 2005
Messaggi: 151
|
Quote:
No Ing. Aerospaziale a Milano.... Nessuno mi aiuta? |
|
![]() |
![]() |
![]() |
#6 |
Member
Iscritto dal: Jul 2005
Messaggi: 151
|
up
Nessuno che ne sa ha 5 minuti da perdere? Per voi sono delle cavolate.. |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Jun 2005
Messaggi: 659
|
studiate la meccanica del volo ?
|
![]() |
![]() |
![]() |
#8 | |
Member
Iscritto dal: Jul 2005
Messaggi: 151
|
Quote:
|
|
![]() |
![]() |
![]() |
#9 |
Senior Member
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 |
![]() |
![]() |
![]() |
#10 |
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 |
![]() |
![]() |
![]() |
#11 | |
Senior Member
Iscritto dal: Sep 2004
Città: Interamnia Urbs
Messaggi: 2125
|
Quote:
__________________
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 |
|
![]() |
![]() |
![]() |
#12 |
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 |
![]() |
![]() |
![]() |
#13 |
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 |
![]() |
![]() |
![]() |
#14 |
Member
Iscritto dal: Jul 2005
Messaggi: 151
|
Non divaghiamo troppo dal tema.....
![]() Il programma non riesco a farlo funzionare!!!! Please ![]() |
![]() |
![]() |
![]() |
#15 | |
Senior Member
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
|
Quote:
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 |
|
![]() |
![]() |
![]() |
#16 | |||||
Member
Iscritto dal: Jul 2005
Messaggi: 151
|
Quote:
Quote:
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:
Quote:
Quote:
Grazie mille per i suggerimenti, ora provo a metterlo a posto!! Ultima modifica di DavidGT : 08-09-2006 alle 09:45. |
|||||
![]() |
![]() |
![]() |
#17 |
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; } } |
![]() |
![]() |
![]() |
#18 |
Member
Iscritto dal: Jul 2005
Messaggi: 151
|
UP
|
![]() |
![]() |
![]() |
#19 |
Member
Iscritto dal: Jul 2005
Messaggi: 151
|
![]() |
![]() |
![]() |
![]() |
#20 |
Registered User
Iscritto dal: Aug 2006
Messaggi: 305
|
Ma new non è una parola riservata?
Cmq devi mettere l'operatore & nella scanf dell'anno |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 11:54.