Precedente :: Successivo |
Autore |
Messaggio |
er maximo Semidio
Registrato: 15/01/08 17:16 Messaggi: 268
|
Inviato: 19 Dic 2011 21:27 Oggetto: C++ - Non compare niente in CMD. |
|
|
Buona sera a tutti!
È un po' che non entro qui.. ma mi siete venuti subito in mente quando ho capito che da solo non avrei mai trovato soluzione a questo problema..
In pratica ho scritto un prog in c++ e all'avvio, preceduto dalla compilazione, mi esce solo "Premere un pulsante per continuare..." (insomma, il tipico messaggio di system("pause").
Tutto è nella stessa cartella, anche il txt. Tutto correttamente contentuo nel progetto.
puntoh.h
Codice: | #include <iostream>
#include <fstream>
using namespace std;
const int nmax=50;
typedef int vettore[nmax];
typedef vettore matrice[nmax];
struct dati{
float med;
int mag;
};
typedef dati strut_vet[nmax];
void leggi_mat(matrice matfile, int &rigfile, int& colfile);
float calcola_med(strut_vet VS, int colfile);
void crea_vet_struct(int rigfile, int colfile, matrice matfile, strut_vet VS, vettore Vet);
void stampa_mat(matrice matfile, int rigfile, int colfile);
void stampa_vet_struct (strut_vet VS, int rigfile);
|
funz.cpp
Codice: |
#include "puntoh.h"
void leggi_mat(matrice matfile, int& rigfile, int &colfile){
ifstream input;
input.open("Mat.txt");
if(!input.fail()){
cout<<"Errore apertura file, l'eseguibile verrà terminato.";
system("Pause");
exit(1);
}
input>>rigfile>>colfile;
while(!input.eof()){
for(int i=0; i<rigfile; i++)
for(int j=0; j<colfile; j++)
input>>matfile[i][j];
}
input.close();
}
float calcola_med(vettore Vet, int colfile){
int i, som;
float media;
for(int j=0; i<colfile; j++)
som+=Vet[j];
media=float(som)/colfile;
return media;
}
void crea_vet_struct(int rigfile, int colfile, matrice matfile, strut_vet VS, vettore Vet){
int i, j, k;
for(i=0; i<rigfile; i++){
for(j=0; j<colfile; j++)
Vet[j]=matfile[i][j];
float f=calcola_med(Vet, colfile);
VS[i].med=f;
k=0;
for (j=0; j<rigfile; j++){
if(Vet[j]>f)
k++;
}
VS[i].mag=k;
}
}
void stampa_mat(matrice matfile, int rigfile, int colfile){
int i, j;
cout<<"\nEcco la matrice d'interi:";
for (i=0; i<rigfile; i++){
cout<<endl;
for(j=0; j<colfile; j++)
cout<<"\t"<<matfile[i][j];
}
}
void stampa_vet_struct (strut_vet VS, int rigfile){
int i;
cout<<"\nQuesto è il vettore strutture.media con il relativo numero di elemeti del vet maggioni della media";
for (i=0; i<rigfile; i++)
cout<<"\n"<<VS[i].med<<"\t"<<VS[i].mag;
}
|
main.cpp
Codice: | #include "puntoh.h"
int main(){
strut_vet VS;
vettore Vet;
matrice matfile;
int rigfile, colfile;
void leggi_mat(matrice matfile, int rigfile, int colfile);
void crea_vet_struct(int rigfile, int colfile, matrice matfile,strut_vet VS, vettore Vet);
void stampa_mat(matrice matfile, int rigfile, int colfile);
void stampa_vet_struct (strut_vet VS, int rigfile);
system("pause");
}
|
Anche se non è molto importante ecco il testo.
Testo della prova
Sia data una matrice di interi M memorizzata in un file di testo (Mat.txt), che contiene nella prima riga il valore dei riempimenti di riga e di colonna (rig e col) e nelle successive gli elementi della matrice (come illustrato negli esempi che seguono).
Si progettino cinque funzioni:
- leggi_mat, che legge da file i riempimenti ed i valori di una matrice di interi;
- calcola_med che riceve in ingresso un vettore di interi e restituisce come valore di ritorno la media degli elementi del vettore;
- crea_vet_struct, che che riceve in ingresso rig, col ed M e restituisce come parametro di uscita un vettore VS di strutture (ciascuna composta da due campi, med e mag) avente tanti elementi quante sono le righe di M.
VS dovrà essere costruito in modo tale che il suo i-esimo elemento contenga nel campo med la media dei valori dell'i-esima riga di M (calcolata tramite la funzione calcola_med), e nel campo mag il numero di elementi dell'i-esima riga di M che sono maggiori di tale media;
- stampa_mat, che stampa a video una matrice di interi;
- stampa_vet_struct, che stampa a video un vettore di strutture aventi i due campi sopra descritti;
e si scriva un programma che, utilizzando queste funzioni, legga da file M, costruisca il vettore VS e stampi a video la matrice M ed il vettore VS.
Il programma dovrà essere suddiviso in moduli, uno contenente prototipi e dichiarazioni, uno contenente le funzioni leggi_mat, calcola_med, crea_vet_struct, stampa_mat e stampa_vet_struct ed un terzo contenente il main.
SPERO NELLA BONTÀ DI TUTTI VOI
DOMANI HO UN ESAMEEEEEEEE
Grazie in antipico.
P.S.
CONTENUTO DI MAT.TXT
Codice: | 4 5
2 6 6 4 3
6 18 4 2 2
2 2 12 6 6
2 4 5 4 8 |
|
|
Top |
|
|
SverX Supervisor Macchinisti
Registrato: 25/03/02 11:16 Messaggi: 11575 Residenza: Tokelau
|
Inviato: 20 Dic 2011 09:18 Oggetto: |
|
|
nel main devi chiamare le funzioni, non dichiararle...
cioè non devi fare
Codice: | void leggi_mat(matrice matfile, int rigfile, int colfile); |
ma evidentemente
Codice: | leggi_mat(matfile, rigfile, colfile); |
|
|
Top |
|
|
er maximo Semidio
Registrato: 15/01/08 17:16 Messaggi: 268
|
Inviato: 20 Dic 2011 09:45 Oggetto: |
|
|
L'ho appena modificato, per tutte le funz del main ma il risultato non cambia.
Per cercare l'origine del prob ho anche eliminato il "sys(pause)" che sta nel main e il risultato è che si aapre il cmd e non esce nemmeno una parola. VUOTO e poi si chiude.
come le funzioni non venissero proprio degnate di un bit..
Ho anche messo un scrittura su file in una della funz per vedere se almeno venivano calcolate e non ne uscito niente..
non so cosa dire |
|
Top |
|
|
SverX Supervisor Macchinisti
Registrato: 25/03/02 11:16 Messaggi: 11575 Residenza: Tokelau
|
Inviato: 20 Dic 2011 11:02 Oggetto: |
|
|
prova a togliere un attimo Mat.txt e vedere se almeno ti dà l'errore di lettura del file...
poi ti aiuti mettendo delle Codice: | cout<<"sono qui!"; | ogni tanto... |
|
Top |
|
|
er maximo Semidio
Registrato: 15/01/08 17:16 Messaggi: 268
|
Inviato: 21 Dic 2011 16:33 Oggetto: |
|
|
ho messo dei sono qui numerati prima e dopo ogni funzione (nel mail) e altri in OGNI funzione. Non ne è uscito nessuno.
se tolgo Mat.txt compila e poi finisce li.. non compare ne il cmd e ne posso compilare novamente.. devo prenmere il pulsante "RESETTA IL PROGRAMMA" nel dev.
Il fatto strano è che non fa comparire su schermo nemmeno il cout<<"sn qui1"; che ho messo nel main PRIMa di tutte le funzioni...
Provo a disinstallare e reinstallare il Dev.. XD
--------------------------------------------------------
appena disinstall e reinstallato... è la stessa cosa.. |
|
Top |
|
|
SverX Supervisor Macchinisti
Registrato: 25/03/02 11:16 Messaggi: 11575 Residenza: Tokelau
|
Inviato: 21 Dic 2011 17:07 Oggetto: |
|
|
ma se fai un programma tipo
Codice: | main { cout<<"Prova"; } |
neanche va?
che se non va neanche un programma come questo, il problema è che davvero l'ambiente non è settato in modo corretto... |
|
Top |
|
|
er maximo Semidio
Registrato: 15/01/08 17:16 Messaggi: 268
|
Inviato: 21 Dic 2011 22:50 Oggetto: |
|
|
Ho aperto il progetto e i file e ho provato a:
1) fare come dici: il risultato è uguale
2) aprire un nuovo progetto e infilarci i file all'interno ed è uguale
3) iniziare con una nuova pagina, senza progetto, senza compilazione separata, SOLO IO E IL MAIN.. e funziona (il cout<<"minchiata";).
4) ho provato ad un unire tutti file in un singola pagina e mi da lo stesso problema
con l'unica eccezion di un miglioramento: i cout "minchia" che ho lasciato prima e dopo ogni funzione stavolta escono tutti (solo quelli del main, quelli nelle funz no).
Deduzione:
il problema riguarda qualcosa nel programma... un errore che non vediamo.. magari una finezza IMPERCETTIBILE..
p.s.
Citazione: | il problema è che davvero l'ambiente, non è settato in modo corretto |
cosa intendi con "settato"?[/i] |
|
Top |
|
|
SverX Supervisor Macchinisti
Registrato: 25/03/02 11:16 Messaggi: 11575 Residenza: Tokelau
|
Inviato: 22 Dic 2011 10:44 Oggetto: |
|
|
intendo 'configurato'...
comunque se almeno i primi cout funzionano stiamo già facendo passi avanti...
prova a commentare il codice dentro le funzioni e a metterci invece anche lì un cout<<"qualcosa"; |
|
Top |
|
|
er maximo Semidio
Registrato: 15/01/08 17:16 Messaggi: 268
|
Inviato: 22 Dic 2011 10:59 Oggetto: |
|
|
sapevo che significava cofigurato XDD.. n sapevo che si facesse...
e, si.. come ho detto li ho già messi nelle funzoni e non vengono scritte quelli..
le funzioni vengono totalmente IGNORATE..
adesso vado a fare l'esame orale di info xD.. speriamo di prendere un buon voto..xD |
|
Top |
|
|
|
|
Non puoi inserire nuovi argomenti Non puoi rispondere a nessun argomento Non puoi modificare i tuoi messaggi Non puoi cancellare i tuoi messaggi Non puoi votare nei sondaggi
|
|