Repository 32bit  Forum
Repository 64bit  Wiki

Tema esame

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.

Tema esame

Messaggioda Fili » mar set 08, 2009 10:36

Codice: Seleziona tutto
#include<stdio.h>
#include<string.h>

struct Media{
char matricola[7];
int esami;
int media;
};
struct Verbalizzazione{
int voto;
char mat[7];
}

void Scrittura_uscita(char nome_file_i[],char nome_file_ii[],
                      char nome_file_iii[]);
 
int main()
{
 struct Media fine;
 char nome_file_i[]="1";
 char nome_file_ii[]="2";
 char nome_file_iii[]="3";
 Scrittura_uscita("1","2","3");
 printf("Matricola: %s\n Numero esami: %d\n Media %.2f",fine.matricola,
         fine.esami,fine.media);
return 0;
}

void Scrittura_uscita(char nome_file_i [],char nome_file_ii [],
                      char nome_file_iii[])
{
 struct Media inizio,fine;
 struct Verbalizzazione a;
 float nuova_media;
 int nuovi_esami;
 char c[7],

 FILE *fpi;
 FILE *fpii;
 FILE *fpiii;
 
 fpi=fopen(nome_file_i,"r");
 while(fscanf(fpi,"%s%d%.2f",inizio.matricola,&inizio.esami,inizio.media)!=EOF)
  ;
 fpii=fopen(nome_file_i,"r");
 while(fscanf(fpii,"%*s%*d%*c%*d%*c%*d%d%s",&a.voto,&a.mat)!=EOF){
  fpiii=fopen(nome_file_i,"w");
  if(strcmp(a.mat,inizio.matricola)==0){
   nuovi_esami=inizio.esami;
   nuovi_esami++;
   nuova_media=(inizio.media+a.voto)/nuovi_esami;
   fine.matricola=a.mat;
   fine.esami=nuovi_esami;
   fine.matricola=nuova_media;
   }
  else{
    inizio.matricola=a.mat;
    inizio.media=a.voto;
    inizio.esami=1; 
  fclose(fpiii);
  }
 }
fclose(fpii);
fclose(fpi);
}

Mi da questi errori:
Codice: Seleziona tutto
15: error: two or more data types in declaration of 'Scrittura_Uscita'
In Function 'Scrittura_uscita'
52: error: incompatible types in assignmet
54: error: incompatible types in assignmet
57: error: incompatible types in assignmet


Non riesco a farlo partire cosa devo fare?

Inoltre anche questo non funziona:
Codice: Seleziona tutto
#include<stdio.h>
#include<math.h>

int velocita_superata(char nome_file[],int velocita_soglia);

int main()
{
 int v;
 char nome_file[]="4";
 printf("inserisci la velocita di soglia: ");
 scanf("%d",&v);
 printf("%f",velocita_superata("4",v);
 return 0;
}
 
int velocita_superata(char nome_file[],int velocita_soglia)
{
 float a[1000],b[1000];
 float c[50][50];
 int x=0,y=0,i,j;
 FILE *fp;
 fp=fopen(nome_file,"r");
 while(fscanf(fp,"%f%f",&a,&b)!=EOF){
   ;}
 for(i=0;i<a[x];i++)
  for(j=0;j<b[y];j++){
    if(velocita_soglia=(sqrt(pow((a[x]-a[x-1]),2)+pow((b[y]-b[y-1]),2))*3.6){
     fclose(fp);
     return c[x][y];}
    else{
     fclose(fp);
     return 0;}
  }
}


E mi dice:
Codice: Seleziona tutto
In function 'main':
In function 'velocita_superata'
27: error: parse error before ' { ' token
30: error: parse error before "else"
At top level
33: error: parse error before ' } ' token


Vi prego aiutatemi
Ultima modifica di Fili il mar set 08, 2009 11:18, modificato 6 volte in totale.
Fili
Linux 1.0
Linux 1.0
 
Messaggi: 10
Iscritto il: mar set 08, 2009 10:17

Re: Tema esame

Messaggioda absinthe » mar set 08, 2009 10:46

non sono sicuro che sia accettata la sintassi char un_vettore []. dipende se è c/c++ e dal compilatore. e comunque nel main chiami Scrittura_uscita senza argomenti! tra l'altro: perchè il compilatore da errore in "Scrittura_Uscita" e non in "Scrittura_uscita"??? dove è l'errore!? quale è la funzione giusta?!

nel secondo caso manca una parentesi al printf segnalato alla riga 12 e mi sa che hai fatto casino con le parentesi graffe nella funzione sottostante il main (ma è un giudizio a colpo d'occhio: prima fissa il baco del printf! e ricontrolla)


M
Avatar utente
absinthe
Iper Master
Iper Master
 
Messaggi: 2354
Iscritto il: sab mag 14, 2005 23:00
Località: Prato
Nome Cognome: Matteo Nunziati
Slackware: 12.1 - defunct
Kernel: 2.6.32-5-amd64
Desktop: gnome
Distribuzione: debian squeeze

Re: Tema esame

Messaggioda Fili » mar set 08, 2009 11:21

Ho controllato e cambiato quelle cose che mi hai detto però mostra ancora errori..(vedi quelli aggiornati sopra)
Fili
Linux 1.0
Linux 1.0
 
Messaggi: 10
Iscritto il: mar set 08, 2009 10:17

Re: Tema esame

Messaggioda ccts2002 » mar set 08, 2009 12:03

per il primo programma, nella riga 52 e 54 assegni un intero ad una stringa, e non è concesso (usa sprintf) nella riga 57 vuoi copiare, penso, una stringa in un'altra...devi usare la libreria <string.h> e la funzione strcpy().
per il secondo programma mancano 2 parentesi tonde di chiusura, una nel printf e una nell'if che ti da errore.

ciao
Avatar utente
ccts2002
Linux 2.0
Linux 2.0
 
Messaggi: 155
Iscritto il: gio nov 09, 2006 23:20
Località: milano - trieste - catania

Re: Tema esame

Messaggioda Blallo » mar set 08, 2009 12:05

allora...non capisco questo:
Codice: Seleziona tutto
fscanf(fpii,"%*s%*d%*c%*d%*c%*d%d%s",&a.voto,&a.mat)!=EOF

innanzitutto quando ricavi da fscanf una stringa char non si mette '&', poichè è già un puntatore a quell'indirizzo di memoria.
Non capisco tutti gli argomenti che ci hai messo dentro francamente poi...
qui
Codice: Seleziona tutto
while(fscanf(fpi,"%s%d%.2f",inizio.matricola,&inizio.esami,inizio.media)!=EOF)

a inzio.media dovresti mettercelo invece '&'
qui
Codice: Seleziona tutto
fine.matricola=a.mat;

devi usare la strcpy (le stringhe non si copiano con '=' )
e poi se non ci dici a che serve il programma non capiamo granchè...
Io sono il detective Arsenio Magret, e porto sempre la camicia TATUATA!
Avatar utente
Blallo
Packager
Packager
 
Messaggi: 3226
Iscritto il: ven ott 12, 2007 10:37
Località: Torino / Torremaggiore (FG)
Nome Cognome: Savino Liguori
Slackware: 14.1 / 12.2
Kernel: 3.12.2-ck
Desktop: Openbox

Re: Tema esame

Messaggioda Fili » mar set 08, 2009 14:55

Grazie 1000 per il secondo esercizio, ora funziona.
Riguardo al primo, mi vengono dati 3 file: nel primo ho delle informazioni, la matricola il numero esami e la media,il seonco ho delle robe che non servono e poi il voto dell'esame e la matricola inerente al voto, in fine il terzo file lo devo aprire in scrittura per in modo che risulti essere alla fine il primo file però aggiornato.
Esempio:
1°file:
A-456373 8 27.87
2° file:
nome esame 12/12/2009 25 A-456373
Fili
Linux 1.0
Linux 1.0
 
Messaggi: 10
Iscritto il: mar set 08, 2009 10:17

Re: Tema esame

Messaggioda Fili » mar set 08, 2009 15:04

Ora è quasi tutto ok, ho utilizzato lo strcpy e quindi sistemato gli errori 52,54,57 purtroppo alla riga 15 dice:
15: error: two or more data types in declaration of 'Scrittura_uscita'
Fili
Linux 1.0
Linux 1.0
 
Messaggi: 10
Iscritto il: mar set 08, 2009 10:17

Re: Tema esame

Messaggioda Blallo » mar set 08, 2009 23:29

non puoi definire i char di Scrittura_uscita on [], devono poter avere una lunghezza massima, tipo char xxx[30]
Io sono il detective Arsenio Magret, e porto sempre la camicia TATUATA!
Avatar utente
Blallo
Packager
Packager
 
Messaggi: 3226
Iscritto il: ven ott 12, 2007 10:37
Località: Torino / Torremaggiore (FG)
Nome Cognome: Savino Liguori
Slackware: 14.1 / 12.2
Kernel: 3.12.2-ck
Desktop: Openbox

Re: Tema esame

Messaggioda absinthe » mer set 09, 2009 8:00

nel secondo esercizio leggo:
Codice: Seleziona tutto
while(fscanf(fp,"%f%f",&a,&b)!=EOF){
   ;}

non ha senso. a parte il fatto che un ciclo while senza iente dentro non ha senso e potresti commentarlo, quello che non torna è che tu inserisca un punto e virgola dentro le graffe!

M
Avatar utente
absinthe
Iper Master
Iper Master
 
Messaggi: 2354
Iscritto il: sab mag 14, 2005 23:00
Località: Prato
Nome Cognome: Matteo Nunziati
Slackware: 12.1 - defunct
Kernel: 2.6.32-5-amd64
Desktop: gnome
Distribuzione: debian squeeze

Re: Tema esame

Messaggioda Fili » mer set 09, 2009 8:13

Finalmente ora funziona tutto.
Un grazie 1000 a tutti quelli che mi hanno aiutato!!!
Fili
Linux 1.0
Linux 1.0
 
Messaggi: 10
Iscritto il: mar set 08, 2009 10:17

Messaggioda Fili » ven set 18, 2009 11:06

Funzia
Ultima modifica di Fili il mar set 22, 2009 16:05, modificato 4 volte in totale.
Fili
Linux 1.0
Linux 1.0
 
Messaggi: 10
Iscritto il: mar set 08, 2009 10:17

Re: Tema esame

Messaggioda kreen » ven set 18, 2009 12:24

Ciao,
non voglio darti l'impressione di essere duro, ma i l piu' prezioso aiuto che ti posso dare è quello di consigliarti di studiare.
Non so che scuola tu stia facendo, beh, se è una università informatica la cosa e' preoccupante.

Tralasciando cose meno gravi, ma preoccupanti come l'apertura di un file e l'utilizzo del puntatore senza nemmeno controllare se lo hai aperto, se esiste....
vedo, ad esempio, il fatto che allochi una matrice a livello locale

char m[10][5][8];

poi la riempi e ritorni m, significa che di linguaggi di programmazione non hai ancora imparato (e forse capito) nulla e hai un mare di lavoro da fare.
Se vuoi continuare a farti del male, domanda ad altri di aiutarti. Se vuoi imparare, studia.
Avatar utente
kreen
Linux 2.4
Linux 2.4
 
Messaggi: 228
Iscritto il: mer feb 01, 2006 18:32
Località: Verona
Slackware: 12.0
Kernel: 2.6.21.5-smp
Desktop: KDE

Re: Tema esame

Messaggioda conraid » ven set 18, 2009 12:42

tra l'altro è la seconda volta che apri un topic con lo stesso titolo e senza usare i tag code
Te lo sposto nell'altra discussione
Se hai dubbi su qualcosa puoi trovare qualcuno disposto ad aiutarti, ma le soluzioni già pronte come dice Kreen non sono la "soluzione"
Avatar utente
conraid
Staff
Staff
 
Messaggi: 12019
Iscritto il: mer lug 13, 2005 23:00
Località: Livorno
Nome Cognome: Corrado Franco
Slackware: current

Re: Tema esame

Messaggioda Fili » ven set 18, 2009 15:11

Bè meglio adesso che l'ho modificato?
Fili
Linux 1.0
Linux 1.0
 
Messaggi: 10
Iscritto il: mar set 08, 2009 10:17

Re: Tema esame

Messaggioda conraid » ven set 18, 2009 15:15

Fili ha scritto:Bè meglio adesso che l'ho modificato?


se parli del codice in quanto tale non so aiutarti
se parli di come hai postato, no, non va meglio e ti chiedo di usare i tag code
Avatar utente
conraid
Staff
Staff
 
Messaggi: 12019
Iscritto il: mer lug 13, 2005 23:00
Località: Livorno
Nome Cognome: Corrado Franco
Slackware: current

Prossimo

Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite