PDA

View Full Version : [C] aiuto per testare i programmi in C


g.harrison90
30-10-2009, 11:14
salve a tutti..ho fatto dei programmini come esercizi scolastici..qualcuno è così gentile da vedere se sono fatti bene? dovrebbero funzionare, solo che al momento non posso testarli perchè non ho linux e devono girare su linux, su windows (con dev c++) li apro e appena premo invio mi si chiude il programma (dovrei mettere system("pause"); ma lo stesso non funzionano benissimo)...vi lascio la mia email, se qualcuno è così gentile, mi contatta e gli invio i programmini e li testa..grazie!

ndakota
30-10-2009, 12:06
Sono così lunghi? Postandoli qui avresti più possibilità.

g.harrison90
30-10-2009, 12:11
no..non sono affatto lunghi..il fatto è che essendo compiti universitari ho paura che postandoli altre matricole potrebbero copiarli e la professoressa poi annulla l'esonero perchè sono identici..ecco tutto..

cionci
30-10-2009, 14:41
Ho rimosso l'email.
Se li vuoi provare scarichi VirtualBox e ci installi sopra una qualsiasi distribuzione di Linux.

g.harrison90
30-10-2009, 17:11
ok..cionci ho fatto come dicevi tu..ho installato l'ultimo ubuntu in virtualbox..ma non capisco proprio come far partire i programmi..ho messo i programmini esercizio1.c ecc nell'home, quando li apro mi si apre con gedit..e non so come far partire l'eseguibile..qualcuno sa aiutarmi?? grazie

cionci
30-10-2009, 17:16
Prima di tutto devi installare GCC:

sudo apt-get install build-essential

Come editor va bene gedit.
Per compilare:

gcc nomefile.c -o nomeeseguibile

Per eseguire il programma:

./nomeeseguibile

g.harrison90
30-10-2009, 17:19
Prima di tutto devi installare GCC:

sudo apt-get install build-essential

Come editor va bene gedit.
Per compilare:

gcc nomefile.c -o nomeeseguibile

Per eseguire il programma:

./nomeeseguibile

ho installato build essential (cè un modo per vedere se è andato a buon fine??) ma quando nel terminale scrivo gcc esercizio1.c mi dice:
gcc: esercizio1.c nessun files o directory
gcc: no input files
che vuol dire?

cionci
30-10-2009, 17:20
Che evidentemente il file non sia chiama così, gcc è installato.

g.harrison90
30-10-2009, 17:22
ho spostato il file esercizio1.c nella cartella home..tramite il comando cd mi sono spostato in home..digito: gcc esercizio1.c
ma non va proprio..è mezz'ora che ci provo..hai qualche soluzione?

g.harrison90
30-10-2009, 17:25
se invece scrivo:
>gcc esercizio1.c mi dice:
bash: permesso negato

cionci
30-10-2009, 17:34
Dammi l'output di

ls -la esercizio1.c

Cos'è quel ">" che hai messo davanti a gcc ?
Dammi anche l'output di

gcc esercizio1.c -o esercizio1

g.harrison90
30-10-2009, 17:42
Dammi l'output di

ls -la esercizio1.c

Cos'è quel ">" che hai messo davanti a gcc ?
Dammi anche l'output di

gcc esercizio1.c -o esercizio1

gli output sono rispetivamente:
ls: impossibile accedere a esercizio1.c nessun file o directory
e
gcc: esercizio1.c: nessun file o directory
gcc: no input files

cionci
30-10-2009, 17:43
Ribadisco che il file che si chiama esercizio1.c non esiste oppure non si chiama così. Guarda che contano anche le maiuscole.

g.harrison90
30-10-2009, 17:46
ok..puoi farmi un favore? ti scrivo 5 programmini (da circa 10/20) righe ognuno, puoi dirmi se sono corretti almeno nella forma? visto che non riesco a vedere se funzionano mi dici se sono corretti almeno sintatticamente..puoi?!

cionci
30-10-2009, 17:51
ok..puoi farmi un favore? ti scrivo 5 programmini (da circa 10/20) righe ognuno, puoi dirmi se sono corretti almeno nella forma? visto che non riesco a vedere se funzionano mi dici se sono corretti almeno sintatticamente..puoi?!
Ma che ti ci vuole. Devi solo scrivere correttamente quel nome del file.
Vai su Risorse -> Home. Cerchi il file nella lista, tasto dx sul file e poi usi copia e incolla per mettere il nome esatto del file nella console dopo gcc.

g.harrison90
30-10-2009, 17:53
già fatto..è vero sono abbastanza nabbo..ma a questo ci arrivo :D l'ho fatto e mi dice la stessa cosa..non capisco proprio quale sia l'errore..

g.harrison90
30-10-2009, 17:57
asp..cè una novità..ho chiuso e riaperto il terminale..ora quando digito: gcc esercizio1.c il terminale va a capo (senza darmi alcun errore) e mi si è creato un file chiamato: a.out..come faccio ad aprirlo?? perchè se clicco su apri non succede niente..grazie per la pazienza :D

g.harrison90
30-10-2009, 18:09
yeaaaahh..ci sono riuscito..scusa ma seguivo una guida stupida che mi diceva di scrivere: a.out anzichè ./a.out

cionci
30-10-2009, 18:19
Probabilmente avevi cambiato directory col terminale precedente.
Comunque usa quello che ti ho detto io, almeno hai ogni eseguibile distinto.

g.harrison90
30-10-2009, 18:28
sisi ora va perfettamente...ultima domanda..come posso modificare questo programma? dovrebbe leggere una data tipo: 12/01/90 e dirmi 12 gennaio 90..solo che non capisco dove ho sbagliato e in input legge solo date tipo 12 01 90 (ovvero senza gli slash "/") anzikè 12/01/90..questo è il codice:

#include <stdio.h>
int main()

{
int gg;
int mm;
int aa;

printf("Inserisci una data qualsiasi nel formato gg mm aa\n");
scanf("%d%d%d",&gg, &mm, &aa);

printf("%d", gg);
if (mm==1)
printf("gennaio");

else if (mm==2)
printf("febbraio");

else if (mm==3)
printf("febbraio");

else if (mm==4)
printf("marzo");

else if (mm==5)
printf("maggio");

else if (mm==6)
printf("giugno");

else if (mm==7)
printf("luglio");

else if (mm==8)
printf("agosto");

else if (mm==9)
printf("settembre");

else if (mm==10)
printf("ottobre");

else if (mm==11)
printf("novembre");

else if(mm==12)
printf("dicembre");

printf("%d", aa);

return 0;
}

g.harrison90
30-10-2009, 18:41
edit

cionci
30-10-2009, 18:43
Aggiungi un \n in fondo alla printf.

Per il problema precedente...è normale. Purtroppo dovresti leggere la stringa carattere per carattere o per intero per poter prendere in input la data con gli slash.

g.harrison90
30-10-2009, 18:47
quello dello \n alla fine ci sono arrivato da solo..riguardo l'altro problema cioè di mettere gli slash in input non ho capito cosa vuoi dire..

g.harrison90
30-10-2009, 18:48
cioè..il testo dell'esercizio mi dice:
Scrivere un programma che legge una data nel formato gg/mm/aa e la stampa nel formato gg nome_mese aa. Ad esempio, se l'input è 12/5/2009 allora l'ouput è 12 maggio 2009.
quindi devo metterlo con gli slash in input..ma se metto gli slash in input mi da tanti numeri a ca**o di cane..

cionci
30-10-2009, 18:50
Hai studiato l'input e la gestione delle stringhe ?

g.harrison90
30-10-2009, 18:52
mmh..no ancora no..o forse mi sono perso quella spiegazione..