IL PROGRAMMA NON MI Dà ERRORE MA POI MI COMPARE LA SCHERMATA

di il
32 risposte

32 Risposte - Pagina 2

  • Re: IL PROGRAMMA NON MI Dà ERRORE MA POI MI COMPARE LA SCHERMATA

    CON CHE ERRORE?
    metti questo sotto cin >> opzione
    
    __asm("int 3");
    
  • Re: IL PROGRAMMA NON MI Dà ERRORE MA POI MI COMPARE LA SCHERMATA

    Adesso con char opzione va però una volta che ho scritto la matrice non mi fa andare all'opzione b
  • Re: IL PROGRAMMA NON MI Dà ERRORE MA POI MI COMPARE LA SCHERMATA

    Per forza il programma dopo l'inserimento della matrice esce. E' così che l'hai concepito.
  • Re: IL PROGRAMMA NON MI Dà ERRORE MA POI MI COMPARE LA SCHERMATA

    Quando faccio compile non me lo dice l'errore, il programma adesso va ma una volta fatto a non mi fa andare a b
  • Re: IL PROGRAMMA NON MI Dà ERRORE MA POI MI COMPARE LA SCHERMATA

    Come devo fare per farlo continuare?grazie per i consigli dati finora comunque
  • Re: IL PROGRAMMA NON MI Dà ERRORE MA POI MI COMPARE LA SCHERMATA

    Ti posto il programma completo se no quì facciamo notte. Così studi tutti gli errori.
    
    #include <iostream>
    using namespace std;
    char r;
    int M[10][10];
    int v[10];
    int d;
    
    void leggi_matrice(int d, int M[][10])
    {
    	cout<<" inserisci i valori della matrice";
    	for ( int i = 0; i < d; i++)
    	{
    		for (int j = 0; j < d; j++)
    		{
    			cout << "M["<< i <<"]["<< j <<"]=";
    			cin >> M [i] [j];
    		}
    	}
    }
    
    void somma_colonna(int d, int M[][10], int v[])
    {
    	int somma = 0;
    	for ( int i = 0; i < d ; i++)
    	{
    		for ( int j = 0; j < d; j++)
    		{
    			somma += M [j][i];
    		}
    		v[i] = somma;
    		somma = 0;
    	}
    }
    
    int main(void)
    {
    	char opzione = 0;
    	do
    	{
    		cout << "MENU'" << endl;
    		cout << " Scegliere una lettera corrispondente all'operazione da svolgere :" << endl;
    		cout <<"a) costruisci la matrice quadrata" << endl;
    		cout<< "b) calcola la somma di ogni colonna della matrice :" << endl;
    		cin >> opzione;
    	
    		switch(opzione)
    		{
    			case 'a':
    				{
    					cout << endl << " scegli la dimensione della matrice quadrata (max 10):" <<endl;
    					cin >> d;
    					if (( d >= 2) && ( d<= 10))
    						cout << d;
    					else 
    						cout << "errore" << endl;
    					cout << "inserisci gli elementi della matrice :" <<endl;
    					leggi_matrice(d, M);
    				}
    			break;
    			case 'b':
    				{
    					cout << " questa opzione somma i valori delle colonne" << endl;
    					somma_colonna(d, M, v);
    					for(int i = 0; i < d; i++)
    					{
    						cout << v[i] << endl;
    					}
    				}
    			break;
    		}
    	}while(opzione != 'e');
    }
    
  • Re: IL PROGRAMMA NON MI Dà ERRORE MA POI MI COMPARE LA SCHERMATA

    Ok grazie tante, adesso va, è tipo una settimana che programmo qualcosa, quindi non ho ancora le idee chiare, ho solo l'ausilio del libro
  • Re: IL PROGRAMMA NON MI Dà ERRORE MA POI MI COMPARE LA SCHERMATA

    Ok grazie tante, adesso va, è tipo una settimana che programmo qualcosa, quindi non ho ancora le idee chiare, ho solo l'ausilio del libro
  • Re: IL PROGRAMMA NON MI Dà ERRORE MA POI MI COMPARE LA SCHERMATA

    OK ci siamo passati tutti ma bisogna capire quello che si fa. Dire non funziona oppure adesso funziona secondo me sei al punto di partenza. Adesso che va ci sono delle cose che non ti sono chiare? Il perche abbiamo dovuto cambiare opzione da int a char oppure perche è stato messo il do-while con l'opzione 'e' alla fine ecc.
  • Re: IL PROGRAMMA NON MI Dà ERRORE MA POI MI COMPARE LA SCHERMATA

    Char perchè opzione è un carattere? il do while è perchè mi scrive il menù ogni volta
  • Re: IL PROGRAMMA NON MI Dà ERRORE MA POI MI COMPARE LA SCHERMATA

    OK il do-while l'hai capita. la funzione cin (tramite l'operatore >> ) convalida se cio che tu metti sia un intero nel caso di "int opzione". Siccome tu inserisci 'a' lui non può convertirlo nel range dei numeri da 0 a 9 e quindi siamo costretti a dichiarare opzione come char. se tu fossi in C puro e usassi la funzione scanf lui se ne frega e lo fa funzionare in quanto char è definito come unsigned int e tutto andrebbe bene ma in C++ la funzione cin è un pò + sveglia e non te lo fa fare.
  • Re: IL PROGRAMMA NON MI Dà ERRORE MA POI MI COMPARE LA SCHERMATA

    Ah ok, quindi è perchè lo uso col cin, altrimenti avrei potuto mettere anche int, invece quando ho cin per i numeri devo mettere int e per le parole char
  • Re: IL PROGRAMMA NON MI Dà ERRORE MA POI MI COMPARE LA SCHERMATA

    Si giusto. cin è la ""funzione" che trasferisce ciò che tu metti dalla tastiera nella varibile scelta. Fai sta prova:
    togli cin e cambia da char opzione a int opzione.
    
    int opzione = 0;
    scanf("%d",&opzione);
    
    il resto lascialo uguale. Vedrai che funzionerà.
  • Re: IL PROGRAMMA NON MI Dà ERRORE MA POI MI COMPARE LA SCHERMATA

    Ok, grazie per la disponibilità, mi sei stato molto utile
  • Re: IL PROGRAMMA NON MI Dà ERRORE MA POI MI COMPARE LA SCHERMATA

    Una cosa, noi nel programma abbiamo utilizzato d per la dimensione, ho visto che nel programma fatto dal professore vi è l'utilizzo di r,che è una lettera che ci dice quando vogliamo smettere, praticamente scrive:
    for(int j = 0; j<r; j++), ed indica con n la dimensione;non poteva anche lui utilizzare la dimensione per dire fino a quando for deve durare?
Devi accedere o registrarti per scrivere nel forum
32 risposte