|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
es 10 capitolo 5 del vangelo secondo Stroustrup. l'ho fatto bene?
ciao a tutti, sto seguendo il libro "c++ - linguaggio, libreria standard, principi di programmazione" di Bjarne Stroustrup e facendo gli esercizi che si trovano a fine capitolo. volevo sapere se ho fatto bene questo esercizio che il libro propone:
si definisca un array di stringhe in cui le stringhe contengano i nomi dei mesi. Si stampino queste stringhe e poi si passi l'array ad una funzione che stampi le stesse stringhe. io ho fatto così: Codice:
#include <iostream> using namespace std; void f(char*[], int); int main() { const int dim = 12; char* arr[dim] = { "gennaio", "febbraio", "marzo", "aprile", "maggio", "giugno", "luglio", "agosto", "settembre", "ottobre", "novembre", "dicembre" }; for(int i = 0; i < dim; ++i) { cout << arr[i] << endl; } cout << endl; f(arr, dim); return 0; } void f(char* arr[], int dim) { for(int i = 0; i < dim; ++i) { cout << arr[i] << endl; } } non si trovano le soluzioni degli esercizi del libro su internet? ho provato a cercare ma non le ho trovate. nel caso, posso usare questo thread per scriverci tutti gli esercizi che farò da qui alla fine? ![]() |
![]() |
![]() |
![]() |
#2 |
Bannato
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
|
Si, l'esercizio è svolto nel modo corretto.
Per le soluzioni, c'è questo libro: http://www.amazon.com/C-Solutions-Co.../dp/0201309653 non so se ci sia qualche risorsa gratuita su internet. Ciao |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
addirittura un libro per le soluzioni degli esercizi??
![]() |
![]() |
![]() |
![]() |
#4 |
Bannato
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
|
|
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Quote:
![]()
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
![]() |
![]() |
![]() |
#6 | |
Senior Member
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
|
Quote:
In questo caso, l'obiettivo sarebbe quello di verificare alcuni concetti del C++ (e non del C).
__________________
In God we trust; all others bring data Ultima modifica di sottovento : 16-10-2008 alle 08:47. |
|
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
si sono sicuro, semplicemente perchè l'esercizio è nel capitolo "puntatori, array e stutture". la libreria standard è moooooolto piu avanti
![]() |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
inizio a pensare che hai ragione tu.. in altri esercizi dice "in un array di char terminato da 0(nello stile del C)". quindi mi sa che quando dice stringhe si riferisce sempre a std::string.
|
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
|
Beh, ti credo. Cmq secondo me l'esercizio comincia a diventare un attimo piu' interessante quando usi anche qualche container invece dell'array. Che so, un vector. Ovviamente IMFO....
__________________
In God we trust; all others bring data |
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
si ovviamente a questo punto penso bisogna utilizzare un vector<string> solo che stavo pensando a come inizializzarlo in un colpo solo ma non mi viene in mente niente.. ho guardato su cplusplus.com i vari costruttori sia di string che di vector ma nada
![]() |
![]() |
![]() |
![]() |
#11 |
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
bon l'ho fatto così:
Codice:
#include <iostream> #include <vector> #include <string> using namespace std; void f(vector<string>&); int main() { vector<string> arr; arr.push_back("gennaio"); arr.push_back("febbraio"); arr.push_back("marzo"); arr.push_back("aprile"); arr.push_back("maggio"); arr.push_back("giugno"); arr.push_back("luglio"); arr.push_back("agosto"); arr.push_back("settembre"); arr.push_back("ottobre"); arr.push_back("novembre"); arr.push_back("dicembre"); for(size_t i = 0; i < arr.size(); ++i) { cout << arr.at(i) << endl; } cout << endl; f(arr); return 0; } void f(vector<string>& arr) { for(size_t i = 0; i < arr.size(); ++i) { cout << arr.at(i) << endl; } } |
![]() |
![]() |
![]() |
#12 |
Senior Member
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
|
Direi che hai svolto l'esercizio con successo. Vorrei aggiungere due considerazioni:
1 - passi alla funzione un riferimento. Ottimo. Potresti pero' metterlo costante; 2 - Il tuo codice (che funziona perfettamente) ha una "richiesta implicita" al container: quella dell'accesso casuale ad ogni elemento del container stesso. A ben vedere, non ne avresti bisogno. Se stessi scrivendo una libreria, per esempio, questa richiesta limiterebbe l'uso del tuo algoritmo ad un certo numero di container. Siccome non ne hai veramente bisogno, potresti eliminare questa richiesta, rendendo l'algoritmo (beh, e' solo una stampa, ma non toglie nulla al discorso) piu' generale e quindi utilizzabile in un maggior numero di casi.
__________________
In God we trust; all others bring data |
![]() |
![]() |
![]() |
#13 |
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
per il punto 1 ci sono, è stata solo una dimenticanza.. purtroppo è del punto 2 che non ho capito niente
![]() ![]() |
![]() |
![]() |
![]() |
#14 |
Senior Member
Iscritto dal: Sep 2008
Messaggi: 1271
|
un piccolo OT:
il libro sopra citato, si potrebbe come definire "il più ufficiale per il c++" per il java, quale potrebbe essere?
__________________
MacBook 6,1|2,26 Ghz C2D|2GB 1067 Mhz DDR3|GeForce 9400M|Mac OSX 10.6.2 |
![]() |
![]() |
![]() |
#15 |
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
non penso ce ne sia uno.. io ho trovato ottimo "concetti di informatica e fondamenti di java" Cay Horstmann Apogeo l'ultima edizione del 2007..
|
![]() |
![]() |
![]() |
#16 | |
Senior Member
Iscritto dal: Mar 2005
Città: Morimondo city
Messaggi: 5491
|
Quote:
se ti interessa il mio prof di Algoritmi mi ha passato il pdf delle soluzioni della seconda edizione inglese,io purtroppo ho la prima e non ci azzecca molto e di spendere 71 euro per la seconda non ci penso minimamente,va bene tutto che è la bibbia degli algoritmi ma 71 euro per un libro francamente mi sembrano troppi....fine OT
__________________
Khelidan Ultima modifica di khelidan1980 : 17-10-2008 alle 09:53. |
|
![]() |
![]() |
![]() |
#17 |
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
prenderlo in italiano a 55 fa proprio schifo?
![]() |
![]() |
![]() |
![]() |
#18 | |
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Quote:
io veramente ho comprato la seconda edizione di quel testo a 50 euro, tramite bol.
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
|
![]() |
![]() |
![]() |
#19 | |
Senior Member
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
|
Quote:
In sostanza: hai usato un vector, in modo di scrivere qualcosa del tipo "vect[index]", assumendo che il container in uso lo possa fare. Se il container in uso fosse stato per esempio una lista, questa operazione non l'avresti potuta fare. Pero' a ben vedere, la potresti evitare poiche' quello che a te interessa e' partire dal primo elemento, stamparlo e passare al successivo. La richiesta "passa al successivo" e' piu' "debole" della richiesta "dammi l'elemento in posizione i", quindi il tuo algoritmo sara' piu' generale.... Ti prego di scusarmi se sto parlando di cose che devi ancora affrontare.
__________________
In God we trust; all others bring data |
|
![]() |
![]() |
![]() |
#20 |
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
e se usassi un iteratore non aggirerei questo problema?
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:54.