PROF la ringrazio moltissimo lei si che è e può essere chiamato PROFESSORE !!! dovrebbe insegnare a tanti sui colleghi la sua professionalità e la sua cordialità garzie grazie grazie !!!
Grazie mille, ho capito, per cui void CaricaMatrice(int Matrice[][Colonne],int righe,int colonne)... eccetera eccetera... bene, complimenti per il video!
La funzione può essere lasciata così. E dove serve il nome usare il valore restituito come indice per il vettore con le stringhe dei nomi delle città: cout
Nell'esempio attorno a 37:00 c'è scritto "int conta=0; dentro un FOR, quindi ad ogni ciclo la variabile conta viene sempre ridichiarata ad intero. si può fare questa cosa?
Qualche suggerimento su come modificare la funzione "CittaConPiuFiumi" per fargli stampare Cremona al posto di 2? la funzione ora è int, ma visto che devo fargli stampare una stringa essa diviene string? per come ho ragionato io ora in max_posizione dovremmo avere Citta[citta] cioè la stringa presente in posizione citta oppure legare int posizione_max al vettore delle citta ma come?mi sfugge qualcosa..
Nota: per vettori GRANDI si può ottimizzare creando un vettore di puntatori a carattere (vedi lezioni più avanti) ed invece di scambiare le stringhe (operazione pesante) si scambiano di posto i puntatori lasciando inalterato il vettore di stringhe; la lettura in ordine avviene scorrendo poi non il vettore di stringhe ma quello di puntatori.
domanda sull'esercizio: ho provato a mettere i dati nella matrice 3x2 con le parentesi graffe: {(1,1),(0,1),(1,0)} per esempio.. provo a stampare la matrice e non mi da i valori. li inserisco manualmente e invece me li da.. ho provato a inserire uno a uno i dati per ogni posizione della matrice ma me li accetta solo se li metto nel main. e invece nel main non mi accetta la forma con le graffe. mi sono spaccato la testa ma non ci arrivo. ciao
dopo grande spaccamento mentale.. l'errore era che ho messo le tonde al posto delle graffe all'interno delle graffe della matrice... dal video non si vedeva bene ed ero convinto fossero tonde.. quindi: {{1,1},{0,1},{0,1}} e voilat
Guardando il video mi è venuto un dubbio. Se invece di mettere le costanti avessi messo le direttive #define? che differenza esiste tra i due metodi di assegnamento?
Con const il compilatore può fare tutti controlli sul tipo e raggio di visibilità tipici delle variabili. #define è una sostituzione 'cieca', una comodità per la scrittura del codice non gestita dal compilatore (ma da un precompilatore che 'non si pone tante domande').
Buongiorno, saprebbe consigliare un testo didattico indicato per chi vuole imparare c++? I video sono molto istruttivi ma ho bisogno di un supporto cartaceo. Grazie per il suo lavoro eccezionale.
fcamuso Professore,avrei una domanda: Quando creo una funzione che sia in grado di leggere da un file di testo una matrice,come posso fare in modo che sia il programma a calcolarne la dimensione?(in modo tale da avere una funzione assolutamente generale) Mi spiego meglio:ecco il mio codice: void CaricaMatrice(char NomeFile[],int Matrice[][Max_colonne],int n_riga,int n_colonna) {ifstream leggi; leggi.open(NomeFile); for (unsigned int riga = 0; riga < n_riga; riga++) { for (unsigned int colonna = 0; colonna < n_colonna; colonna++) { if(!leggi) cout Matrice[riga][colonna]; cout
salve professore volevo chiederle come faccio a stampare a video in C (con il classico printf ) una matrice di caratteri già inizializzata 4 x 4 del tipo printf("
La tabella di caratteri è :
%s ", matrice [4][4]); dovrebbe avere questo output La tabella di caratteri è a - b - c - d e - f - g - h i - l - m - n o - p - q - r Grazie anticipatamente
Ciao, puoi dirmi come operare con vettori di stringhe? Il mio intento sarebbe quello di prendere in input un tot di parole e poi ordinarle in ordine alfabetico! Grazie e complimenti per tutti questi corsi che stai facendo! :)
Per fortuna non c'è differenza, riguardo l'ordinamento, rispetto ai vettori numerici. Quindi puoi usare gli stessi algoritmi spiegati nella lezione precedente (bubble sort ad esempio) senza problemi. Infatti date due stringhe s1 e s2 il loro confronto, come in if(s1>s2), è possibile esattamente come con i numeri e fa riferimento al loro ordine alfabetico (lessicografico): string s1="Sandro", s2="Paolo"; if (s1>s2) -->> vero (Sandro sul dizionario appare dopo, quindi è maggiore, di Paolo)
Devi indicare come parametri almeno: - la matrice, numero di righe da considerare - numero di colonne da considerare. Inoltre mentre con un vettore nella dichiarazione di un vettore non sei obbligato ad indicare il numero di elementi (come in 'void funzione(int v[ ] )' con le matrici pui farlo solo con la prima dimensione. Ad esempio nel caso di questo esercizio: void Carica...(int CittaFiumi[ ][MAX_FIUMI], int n_citta, int n_fiumi) Cioè puoi non specificare il n. di citta tra [ ]; OK ?
Me lo chiedono spesso ma sono MOLTI anni che non acquisto libri sul C/C++ e consiglierei male; mi affiderei a google ed a recensioni di siti dedicati alla programmazione che siano palesemente affidabili (tipo programmazione.it o html.it, stackoverflow, codguru) in base al numero di iscritti, ricchezza del sito. Di gratuito puoi cercare Thinking in C++ di Herbert Schild, tradotto anche in italiano.
Ciao, trovo utilissime le tue lezioni, mi chiedevo però se potresti per favore mettere qui la copia del sorgente dei videoesercizi... Purtroppo mentre copio le tue lezioni sul foglio c capitano sempre errori di copiatura che richiedono troppo tempo a volte per essere sistemati... inoltre copiare passo passo distrae dalla lezione e richiede quasi il doppio del tempo che seguire la lezione senza copiare, grazie :)
Non sapevo l'avessero tradotto in italiano.. Comunque credo credo che queste video lezioni siano pensate e sviluppate talmente bene che un supporto cartaceo diventi quasi superfluo..
PROF la ringrazio moltissimo lei si che è e può essere chiamato PROFESSORE !!! dovrebbe insegnare a tanti sui colleghi la sua professionalità e la sua cordialità garzie grazie grazie !!!
Grazie per aver condiviso questo video corso con tutti gli studenti/appassionati d'Italia!
Grazie mille, ho capito, per cui
void CaricaMatrice(int Matrice[][Colonne],int righe,int colonne)... eccetera eccetera...
bene, complimenti per il video!
Grazie della risposta professore.
La funzione può essere lasciata così. E dove serve il nome usare il valore restituito come indice per il vettore con le stringhe dei nomi delle città:
cout
Nell'esempio attorno a 37:00 c'è scritto "int conta=0; dentro un FOR, quindi ad ogni ciclo la variabile conta viene sempre ridichiarata ad intero. si può fare questa cosa?
In C++ sì (per isolare l'uso del contatore dentro il for e non interferire inutilmente con l'esterno); in C no.
Qualche suggerimento su come modificare la funzione "CittaConPiuFiumi" per fargli stampare Cremona al posto di 2? la funzione ora è int, ma visto che devo fargli stampare una stringa essa diviene string? per come ho ragionato io ora in max_posizione dovremmo avere Citta[citta] cioè la stringa presente in posizione citta oppure legare int posizione_max al vettore delle citta ma come?mi sfugge qualcosa..
quando provo a richiamare la funz nel main mi dice questo: conversion from `std::string*' to non-scalar type `std::string' requested
Molto chiaro, continua cosi'!
@fcamuso: il prototipo e la sintassi della FUNZIONE CON LA MATRICE passata come argomento, in generale come si fa?
Nota: per vettori GRANDI si può ottimizzare creando un vettore di puntatori a carattere (vedi lezioni più avanti) ed invece di scambiare le stringhe (operazione pesante) si scambiano di posto i puntatori lasciando inalterato il vettore di stringhe; la lettura in ordine avviene scorrendo poi non il vettore di stringhe ma quello di puntatori.
domanda sull'esercizio: ho provato a mettere i dati nella matrice 3x2 con le parentesi graffe: {(1,1),(0,1),(1,0)} per esempio.. provo a stampare la matrice e non mi da i valori. li inserisco manualmente e invece me li da.. ho provato a inserire uno a uno i dati per ogni posizione della matrice ma me li accetta solo se li metto nel main. e invece nel main non mi accetta la forma con le graffe. mi sono spaccato la testa ma non ci arrivo. ciao
dopo grande spaccamento mentale.. l'errore era che ho messo le tonde al posto delle graffe all'interno delle graffe della matrice... dal video non si vedeva bene ed ero convinto fossero tonde.. quindi: {{1,1},{0,1},{0,1}}
e voilat
francesco prossen E' vero è facile confondere a volte ;)
Guardando il video mi è venuto un dubbio. Se invece di mettere le costanti avessi messo le direttive #define? che differenza esiste tra i due metodi di assegnamento?
Grazie. L'idea ci sarebbe ma al momento è il tempo che è carente ;)
Grazie!
Con const il compilatore può fare tutti controlli sul tipo e raggio di visibilità tipici delle variabili. #define è una sostituzione 'cieca', una comodità per la scrittura del codice non gestita dal compilatore (ma da un precompilatore che 'non si pone tante domande').
Buongiorno,
saprebbe consigliare un testo didattico indicato per chi vuole imparare c++? I video sono molto istruttivi ma ho bisogno di un supporto cartaceo. Grazie per il suo lavoro eccezionale.
Bene, grazie! :)
cannot convert 'float' to 'float (*)[100]' for argument '2' to 'void CONTA(float, float (*)[100], float)'
Puoi dirmi perchè mi da questo problema?
penso che hai scambiato FiumiCitta[MAX_FIUMI][MAX_CITTA] con FiumiCitta[MAX_CITTA][MAX_FIUMI]
fcamuso
Professore,avrei una domanda:
Quando creo una funzione che sia in grado di leggere da un file di testo una matrice,come posso fare in modo che sia il programma a calcolarne la dimensione?(in modo tale da avere una funzione assolutamente generale)
Mi spiego meglio:ecco il mio codice:
void CaricaMatrice(char NomeFile[],int Matrice[][Max_colonne],int n_riga,int n_colonna)
{ifstream leggi;
leggi.open(NomeFile);
for (unsigned int riga = 0; riga < n_riga; riga++) {
for (unsigned int colonna = 0; colonna < n_colonna; colonna++) {
if(!leggi)
cout Matrice[riga][colonna];
cout
Grazie
Ho bisogno di vedere il codice.
salve professore volevo chiederle come faccio a stampare a video in C (con il classico printf ) una matrice di caratteri già inizializzata 4 x 4 del tipo
printf("
La tabella di caratteri è :
%s ", matrice [4][4]);
dovrebbe avere questo output
La tabella di caratteri è
a - b - c - d
e - f - g - h
i - l - m - n
o - p - q - r
Grazie anticipatamente
professore sto seguendo tutte le sue lezioni..spiega benissimo...ma mi chiedevo non puo fare anche le video del java?
Ciao, puoi dirmi come operare con vettori di stringhe? Il mio intento sarebbe quello di prendere in input un tot di parole e poi ordinarle in ordine alfabetico! Grazie e complimenti per tutti questi corsi che stai facendo! :)
Per fortuna non c'è differenza, riguardo l'ordinamento, rispetto ai vettori numerici. Quindi puoi usare gli stessi algoritmi spiegati nella lezione precedente (bubble sort ad esempio) senza problemi. Infatti date due stringhe s1 e s2 il loro confronto, come in if(s1>s2), è possibile esattamente come con i numeri e fa riferimento al loro ordine alfabetico (lessicografico):
string s1="Sandro", s2="Paolo";
if (s1>s2) -->> vero (Sandro sul dizionario appare dopo, quindi è maggiore, di Paolo)
Devi indicare come parametri almeno:
- la matrice, numero di righe da considerare
- numero di colonne da considerare.
Inoltre mentre con un vettore nella dichiarazione di un vettore non sei obbligato ad indicare il numero di elementi (come in 'void funzione(int v[ ] )' con le matrici pui farlo solo con la prima dimensione. Ad esempio nel caso di questo esercizio:
void Carica...(int CittaFiumi[ ][MAX_FIUMI], int n_citta, int n_fiumi)
Cioè puoi non specificare il n. di citta tra [ ]; OK ?
Scritto a braccio senza provare il codice... possibili errori ...
for (int riga=0; riga
Me lo chiedono spesso ma sono MOLTI anni che non acquisto libri sul C/C++ e consiglierei male; mi affiderei a google ed a recensioni di siti dedicati alla programmazione che siano palesemente affidabili (tipo programmazione.it o html.it, stackoverflow, codguru) in base al numero di iscritti, ricchezza del sito. Di gratuito puoi cercare Thinking in C++ di Herbert Schild, tradotto anche in italiano.
Ciao, trovo utilissime le tue lezioni, mi chiedevo però se potresti per favore mettere qui la copia del sorgente dei videoesercizi... Purtroppo mentre copio le tue lezioni sul foglio c capitano sempre errori di copiatura che richiedono troppo tempo a volte per essere sistemati... inoltre copiare passo passo distrae dalla lezione e richiede quasi il doppio del tempo che seguire la lezione senza copiare, grazie :)
Thinking in C++ volume 1 e volume 2 di Bruce Eckel.. Sono la BIBBIA del C++
Non sapevo l'avessero tradotto in italiano.. Comunque credo credo che queste video lezioni siano pensate e sviluppate talmente bene che un supporto cartaceo diventi quasi superfluo..
Sì giusto, di Eckel; fatta confusione con altro autore 'autorevole' :)
Grazie