Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Il cuore digitale di F1 a Biggin Hill: l'infrastruttura Lenovo dietro la produzione media
Il cuore digitale di F1 a Biggin Hill: l'infrastruttura Lenovo dietro la produzione media
Nel Formula 1 Technology and Media Centre di Biggin Hill, la velocità delle monoposto si trasforma in dati, immagini e decisioni in tempo reale grazie all’infrastruttura Lenovo che gestisce centinaia di terabyte ogni weekend di gara e collega 820 milioni di spettatori nel mondo
DJI Osmo Mobile 8: lo stabilizzatore per smartphone con tracking multiplo e asta telescopica
DJI Osmo Mobile 8: lo stabilizzatore per smartphone con tracking multiplo e asta telescopica
Il nuovo gimbal mobile DJI evolve il concetto di tracciamento automatico con tre modalità diverse, un modulo multifunzionale con illuminazione integrata e controlli gestuali avanzati. Nel gimbal è anche presente un'asta telescopica da 215 mm con treppiede integrato, per un prodotto completo per content creator di ogni livello
Recensione Pura 80 Pro: HUAWEI torna a stupire con foto spettacolari e ricarica superveloce
Recensione Pura 80 Pro: HUAWEI torna a stupire con foto spettacolari e ricarica superveloce
Abbiamo provato il nuovo HUAWEI Pura 80 Pro. Parliamo di uno smartphone che è un vero capolavoro di fotografia mobile, grazie ad un comparto completo in tutto e per tutto, In questa colorazione ci è piaciuto molto, ma i limiti hardware e software, seppur in netto miglioramento, ci sono ancora. Ma HUAWEI ha fatto davvero passi da gigante per questa nuova serie Pura 80. Buona anche l'autonomia e soprattutto la ricarica rapida sia cablata che wireless, velocissima.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 20-07-2010, 17:56   #1
webeye
Bannato
 
Iscritto dal: Sep 2007
Messaggi: 22
[C++] 2 esercizi di fondamenti Array di stringhe e battaglia navale

Salve a tutti sono un novellino,
devo fare un esercizio per fondamenti di informatica IN C++, anzi gli esercizi sono 2.

Testo:
-si tratta un tradimento tra 2 persone il marito deve controllare una lista di email(1 centinaio)-
Scrivere un programma che dato in imput l'elenco delle mail ,(che per semplicità si puo' implementare come array di stringhe) conti quante sono le mail in cui e' contenuta una tra le seguenti parole: amore tesoro ecc.


dunque Il primo esercizio richiede un array di stringhe(array di array di caratteri, quindi una matrice SUPPONGO)
simula di ricevere una lista di 100 email quindi la dim colonna si sa ed e' statica,
ma la lunghezza di ogni mail e' indefinita.
Gia' qui credo di essere in alto mare,
credo di dover creare una matrice il cui indice di riga sara' il numero della mail e su ogni colonna e' contenuto un singolo carattere, dunque ad es.
email n°1:
lista[0][0-------x]
dove x e' la dim massima.
dovrei dichiarare per ogni riga un'array dinamico di char* in modo tale da incrementare la dimensione man mano che finisce?

preciso che l'email per comodita' venga inserita' da input senza scansioni su file ecc.




_______________________________________
l'altro esercizio e' la battaglia navale.
si gioca con 2 giocatori.
dunque si hanno 4 matrici
2 per ognuno.(A1,B1,A2,B2)

la Matrice di tipo A sarebbe la griglia dove sono posizionate le navi, all'inizio del gioco ogni giocatore posiziona le navi sulla griglia in verticale o in orizzontale, il problema e' che ci sono navi diversa dimensione ad. es da 4 caselle da 3 da 2 e da 1 La funzione distribuisci navi sulla griglia si da' scontato che sia gia' implementata.

Ora inizia la seconda parte, a turno ogni giocatore da le cordinate x,y per sparare sulle navi avversarie e si deve rispondere colpito se la nave avversaria e' stata colpita ma ci sono ancora altre caselle a galla, COLPITA E AFFONDATA quando non sono rimasti pezzi a galla(dunque ho l'ultimo pezzo) e ACQUA quando non prendo nulla, dunque questa griglia(B) di ogni giocatore dovra' contenere i tentativi andati a buon fine e non.

Supponevo di creare 4 matrici di interi.
Sulle matrici di tipo A(dove ci sono le navi) quando vengono distribuite le navi scrivo in ogni casella il numero di pezzi che ha una nave
ad es nella matrice c'e' un pezzo: [0 0 0 4 4 4 4 0 0 0]
se prendo si e' in presenza di una nave verifico i numero se e' 4 allora dovro' controllare per un massimo di 4 posizioni a nord sud est ovest, ma rischiero' di trovare altre navi so gia' che è sbagliata come idea, ma continuo ugualmente ad esporla, una volta che colpisco questa nave da 4 decremento il numero su ogni casella quando tale numero sara 1 vuol dire che e' l'ultimo pezzo e sara' colpita e affondata.
Potrei anche fare solamente una matrice di 0 e 1 e -1 dove le 1 sono le navi e man man diventano -1 e controllo semplicemente se accanto alle cordinate ci sono -1 o 1
Ma su questo sono molto confuso, se le navi fossero state di dimensione 1 sarebbe stata una cavolata,
ma se ad es. supponiamo di colpire una nave al centro qual'e' la condizione che dovrei applicare per vedere se la nave e' finita? dovrei fare una serie di funzioni verifica nave 4 nave 3 nave 2 ecc?

Scusate se sono stato niubbo ma sono all'inizio.
webeye è offline   Rispondi citando il messaggio o parte di esso
Old 20-07-2010, 18:51   #2
ndakota
Senior Member
 
L'Avatar di ndakota
 
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
Edit: sorry, ho cannato xD

Ultima modifica di ndakota : 20-07-2010 alle 19:08.
ndakota è offline   Rispondi citando il messaggio o parte di esso
Old 20-07-2010, 20:45   #3
fero86
Senior Member
 
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
Quote:
Originariamente inviato da webeye Guarda i messaggi
Gia' qui credo di essere in alto mare,
credo di dover creare una matrice il cui indice di riga sara' il numero della mail e su ogni colonna e' contenuto un singolo carattere, dunque ad es.
email n°1:
lista[0][0-------x]
dove x e' la dim massima.
dovrei dichiarare per ogni riga un'array dinamico di char* in modo tale da incrementare la dimensione man mano che finisce?
ma assolutamente no, basta che istanzi un array di 100 oggetti std::string:
Codice:
string Messages[100];


Quote:
preciso che l'email per comodita' venga inserita' da input senza scansioni su file ecc.
leggere dallo standard input e leggere da file, in termini di complessitá del codice, é la stessa identica cosa
anzi, in questo sarebbe stato piu semplice leggere 100 files piuttosto che un unico stream di input, perché con lo stream unico devi inventarti una convenzione per separare le emails. a tal proposito ti do un consiglio: scegli un carattere di separazione delle emails che assumi non contenuto in alcuna mail, per esempio la tabulazione verticale (codice ASCII 11, cioé 0x0B), e per leggere ciascuna mail usa semplicemente la funzione globale getline specificando quel carattere come separatore. in questo modo la lettura delle email si riduce ad un ciclo for banale con una sola istruzione dentro.
fero86 è offline   Rispondi citando il messaggio o parte di esso
Old 20-07-2010, 20:47   #4
fero86
Senior Member
 
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
Quote:
Originariamente inviato da fero86 Guarda i messaggi
ma assolutamente no, basta che istanzi un array di 100 oggetti std::string:
Codice:
string Messages[100];
mi correggo, probabilmente per la realizzazione di quel programma non é necessario istanziare un bel niente, semplicemente leggi le email una ad una dallo standard input e le processi man mano che le leggi.
fero86 è offline   Rispondi citando il messaggio o parte di esso
Old 20-07-2010, 21:17   #5
fero86
Senior Member
 
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
ecco, per esempio, il seguente programma C++ legge un numero infinito di emails e segnala quelle incriminate: per ogni mail che legge stampa sullo standard output uno 0 se la mail non é incriminata e stampa un 1 se lo é.
Codice:
#include <iostream>
#include <string>
#include <algorithm>

using namespace std;


class EFound {};

int main() {
	cin.exceptions(ios::eofbit | ios::badbit | ios::failbit);

	try {
		const int cWords = 2;
		const string aWords[cWords] = {
			"amore",
			"tesoro",
			// ...
		};

		while (true) {
			string strEmail;
			getline(cin, strEmail, '\x0B');

			try {
				for_each(aWords, aWords + cWords, [strEmail] (const string &rstrWord) {
					if (search(strEmail.begin(), strEmail.end(), rstrWord.begin(), rstrWord.end()) != strEmail.end()) {
						cout << true << endl;
						throw EFound();
					}
				});
			} catch (const EFound&) {
				continue;
			}
			cout << false << endl;
		}
	} catch (const ios::failure&) {
		return 0;
	}
}

Ultima modifica di fero86 : 20-07-2010 alle 22:06. Motivo: naming convention nel codice
fero86 è offline   Rispondi citando il messaggio o parte di esso
Old 20-07-2010, 21:39   #6
webeye
Bannato
 
Iscritto dal: Sep 2007
Messaggi: 22
lo sapevo che string era molto piu' semplice da utilizzare e avrei risolto tutto, ma STRING NON SI PUo' usare, e' un corso di fondamenti di informatica, la classe string non la facciamo nel corso

dovresti utilizzatre quanto di piu' basilare sai ..try catch e trhow ecc sono esclusi(nn so nemmeno cosa siano)
forse l'unica soluz. e' utilizzare char* dinamico ma non ho la limitazione della dimensione?
webeye è offline   Rispondi citando il messaggio o parte di esso
Old 20-07-2010, 22:58   #7
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da webeye Guarda i messaggi
lo sapevo che string era molto piu' semplice da utilizzare e avrei risolto tutto, ma STRING NON SI PUo' usare, e' un corso di fondamenti di informatica, la classe string non la facciamo nel corso
Che significa che è un corso di fondamenti di informatica?
Se è C++ per lo meno la libreria standard uno deve poterla usare, altrimenti è il caso di parlare di C.
Se non studiate la classe string che cavolo fate in quel corso di C++?
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 21-07-2010, 00:08   #8
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Forse i suoi professori pensano che il C++ sia un "C con le classi" e basta...

@webeye: se non conosci a priori la lunghezza massima delle singole stringhe, vedo un char* come unica soluzione "corretta".
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 21-07-2010, 00:55   #9
webeye
Bannato
 
Iscritto dal: Sep 2007
Messaggi: 22
allora, avendo seguito un corso che spiegava dall' hellowrld alle matrici e for con indici di ogni genere, facciamo esercizi come quelli scritti sopra ma limitandoci ad usare strighe puntatori, interi ecc. usiamo strtok strcmp ecc. perche' ce le hanno spiegato, ma all'esame si suppone che gli esercizi che ci vengono dati si possano risolvere con la roba che abbiamo fatto durante il corso, non ci viene dunque spiegata la sintassi da usare per quella determinata classe, non sapevo della sua esistenza fino a quando non ho visto quel problema...
@l'altro intelligente che ha risposto, al mio corso spiegano questo, poi le altre cose saranno di competenza dei corsi successivi, non posso fare le liste o usare vector ad un esame di fondamenti senno' ti cacciano a calci in c*lo
webeye è offline   Rispondi citando il messaggio o parte di esso
Old 21-07-2010, 00:56   #10
webeye
Bannato
 
Iscritto dal: Sep 2007
Messaggi: 22
avete soluzioni per il secondo?
webeye è offline   Rispondi citando il messaggio o parte di esso
Old 21-07-2010, 01:03   #11
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Quote:
Originariamente inviato da webeye Guarda i messaggi
@l'altro intelligente che ha risposto, al mio corso spiegano questo, poi le altre cose saranno di competenza dei corsi successivi, non posso fare le liste o usare vector ad un esame di fondamenti senno' ti cacciano a calci in c*lo
Complimenti per il tono, eh. No, dico davvero: uno magari pensa anche di aiutarti a risolvere un esercizio sul quale hai difficoltà, si lascia scappare un commento sui tuoi professori (fosse stato su di te), e si vede rispondere così.
Bada bene che qui l'aiuto non ti è dovuto: anzi, in questo forum è quasi vietato, per cui vedi di abbassare i toni, alla prossima sarà un moderatore a decidere cosa fare.
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 21-07-2010, 01:47   #12
tuccio`
Senior Member
 
Iscritto dal: Apr 2010
Città: Frosinone
Messaggi: 416
imho è un corso di c

comunque più che il numero di pezzi della nave ti conviene assegnare un id a ogni nave e metterci quello nella matrice

così che se due navi sono "in fila", abbiano id diverso tipo 1 1 1 1 2 2 2 0 0 0...

in questo modo fare il controllo è easy
tuccio` è offline   Rispondi citando il messaggio o parte di esso
Old 21-07-2010, 08:41   #13
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da webeye Guarda i messaggi
@l'altro intelligente che ha risposto, al mio corso spiegano questo, poi le altre cose saranno di competenza dei corsi successivi, non posso fare le liste o usare vector ad un esame di fondamenti senno' ti cacciano a calci in c*lo
Senti prima di insultare gli altri, sei te che hai aperto il thread indicando come il linguaggio C++, forse dovresti prima imparare la differenza tra C e C++.
Voi al corso state studiando il C.
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 21-07-2010, 09:31   #14
webeye
Bannato
 
Iscritto dal: Sep 2007
Messaggi: 22
è inutile che ci scaldiamo, se facciamo new e delete anziche' malloc free credo sia c++, il libro che seguiamo e' Deitel&deitel

comunque per citare:
Forse i suoi professori pensano che il C++ sia un "C con le classi" e basta.

ti ho risposto cosi' perche' non sai nemmeno quello che dici, se vai all'universita' saprai che ogni corso ha un programma e conosco anche il corso di ingegneria e al primo esame di informatica non si usa quella sintassi, quindi non ti precipitare con commenti "facili" potrebbero scambiarti per stolto
webeye è offline   Rispondi citando il messaggio o parte di esso
Old 21-07-2010, 09:33   #15
webeye
Bannato
 
Iscritto dal: Sep 2007
Messaggi: 22
Quote:
Originariamente inviato da tuccio` Guarda i messaggi
imho è un corso di c

comunque più che il numero di pezzi della nave ti conviene assegnare un id a ogni nave e metterci quello nella matrice

così che se due navi sono "in fila", abbiano id diverso tipo 1 1 1 1 2 2 2 0 0 0...

in questo modo fare il controllo è easy
questa mi sembra una buona idea, grazie
webeye è offline   Rispondi citando il messaggio o parte di esso
Old 21-07-2010, 11:16   #16
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Quote:
Originariamente inviato da webeye Guarda i messaggi
è inutile che ci scaldiamo, se facciamo new e delete anziche' malloc free credo sia c++, il libro che seguiamo e' Deitel&deitel

comunque per citare:
Forse i suoi professori pensano che il C++ sia un "C con le classi" e basta.

ti ho risposto cosi' perche' non sai nemmeno quello che dici, se vai all'universita' saprai che ogni corso ha un programma e conosco anche il corso di ingegneria e al primo esame di informatica non si usa quella sintassi, quindi non ti precipitare con commenti "facili" potrebbero scambiarti per stolto
Caro il mio sapientone, io ti avevo risposto in quel modo proprio perché i vostri professori si fanno tanto i belli a dire "no ma vi facciamo studiare C++" quando in realtà scrivete in C, e voi nemmeno ve ne rendete conto. Anzi, fanno passare l'idea sbagliata che il C++ sia soltanto un C con la classi e i due operatori new e delete (come tu stesso mi stai confermando...).

Io so benissimo di cosa parlo, sei tu che evidentemente non cogli il senso del discorso: anzi, fai pure il "simpatico".
Io intendevo molto più semplicemente dire che se il programma vi impone di scrivere codice C++, allora dovete poter utilizzare gli strumenti che il C++ vi offre: se invece non usate NIENTE di ciò che avete a disposizione... mi dispiace, ma non è C++, quindi o i tuoi professori non hanno bene in mente la differenza tra i due linguaggi o c'è qualcosa che non va.

Sei ufficialmente nella mia ignore list, e ti segnalerò anche ad un moderatore: magari per questa volta sei pure fortunato e te la cavi, ma con questa testa non andrai molto avanti nelle tue cose.

ciao
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 21-07-2010, 11:25   #17
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
webeye: cerca di avere più rispetto per le persone che, se sono qui, sono qui per cercare di aiutarti. Quindi ritieni ammonito.

Seconda cosa: non si svolgono esercizi per intero, quindi se vuoi una soluzione, posta prima un tuo tentativo di soluzione e ti faremo riflettere su questo.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 21-07-2010, 13:21   #18
fero86
Senior Member
 
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
Quote:
Originariamente inviato da webeye Guarda i messaggi
@l'altro intelligente che ha risposto, al mio corso spiegano questo, poi le altre cose saranno di competenza dei corsi successivi, non posso fare le liste o usare vector ad un esame di fondamenti senno' ti cacciano a calci in c*lo
a caval donato non si guarda in bocca.
fero86 è offline   Rispondi citando il messaggio o parte di esso
Old 21-07-2010, 13:26   #19
fero86
Senior Member
 
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
Quote:
Originariamente inviato da webeye Guarda i messaggi
comunque per citare:
Forse i suoi professori pensano che il C++ sia un "C con le classi" e basta.

ti ho risposto cosi' perche' non sai nemmeno quello che dici, se vai all'universita' saprai che ogni corso ha un programma e conosco anche il corso di ingegneria e al primo esame di informatica non si usa quella sintassi, quindi non ti precipitare con commenti "facili" potrebbero scambiarti per stolto
guarda, lasciati dire che stai pisciando completamente fuori dal vaso: conosco personalmente DanieleC88, andiamo nella stessa universitá e sappiamo bene com'é fatto un corso universitario perché, forse al contrario di te, ne abbiamo seguiti una valanga.

inoltre, forti della nostra esperienza, giunti a questo punto possiamo tranquillamente dire che la stragrande maggioranza dei professori non é assolutamente al passo con le tecnologie (non c'entra niente col C++ ma giusto ieri vedevo per caso la pagina di un corso di Informatica Grafica dove si tratta ancora OpenGL 1.5!!! e siamo quasi alla 4.0 ), quindi il discorso di DanieleC88 é perfettamente valido.

Ultima modifica di fero86 : 21-07-2010 alle 13:28.
fero86 è offline   Rispondi citando il messaggio o parte di esso
Old 21-07-2010, 18:59   #20
webeye
Bannato
 
Iscritto dal: Sep 2007
Messaggi: 22
Quote:
Originariamente inviato da cionci Guarda i messaggi
webeye: cerca di avere più rispetto per le persone che, se sono qui, sono qui per cercare di aiutarti. Quindi ritieni ammonito.

Seconda cosa: non si svolgono esercizi per intero, quindi se vuoi una soluzione, posta prima un tuo tentativo di soluzione e ti faremo riflettere su questo.
ho chiesto una soluzione ma si intendeva una soluzione logica
webeye è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Il cuore digitale di F1 a Biggin Hill: l'infrastruttura Lenovo dietro la produzione media Il cuore digitale di F1 a Biggin Hill: l'infrast...
DJI Osmo Mobile 8: lo stabilizzatore per smartphone con tracking multiplo e asta telescopica DJI Osmo Mobile 8: lo stabilizzatore per smartph...
Recensione Pura 80 Pro: HUAWEI torna a stupire con foto spettacolari e ricarica superveloce Recensione Pura 80 Pro: HUAWEI torna a stupire c...
Opera Neon: il browser AI agentico di nuova generazione Opera Neon: il browser AI agentico di nuova gene...
Wind Tre 'accende' il 5G Standalone in Italia: si apre una nuova era basata sui servizi Wind Tre 'accende' il 5G Standalone in Italia: s...
iPad Air 13'' (M2) in offerta: sconto di...
Schiaffo al copyright: utilizzare materi...
realme GT 8 Pro porta le fotocamere inte...
JBL Clip 5 a soli 39€ su Amazon: lo spea...
Apple pronta a pagare 1 miliardo l'anno ...
Apple non dimentica gli iPhone più...
Nintendo si prepara a dare il benservito...
Arriva la Canon R6 Mark III con un obiet...
Una famiglia ha ridotto un conto ospedal...
Le carte collezionabili dell'INPS conqui...
Football Manager 26 debutta su Steam con...
A 189,99€ con coupon: il NAS UGREEN che ...
Arm cresce ancora: ricavi oltre 1 miliar...
Xiaomi Redmi Note 14 5G ora a soli 179€:...
Spotify dovrà affrontare una nuov...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 11:38.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v