Torna indietro   Hardware Upgrade Forum > Software > Programmazione

OPPO Find X9 Pro: il camera phone con teleobiettivo da 200MP e batteria da 7500 mAh
OPPO Find X9 Pro: il camera phone con teleobiettivo da 200MP e batteria da 7500 mAh
OPPO Find X9 Pro punta a diventare uno dei riferimenti assoluti nel segmento dei camera phone di fascia alta. Con un teleobiettivo Hasselblad da 200 MP, una batteria al silicio-carbonio da 7500 mAh e un display da 6,78 pollici con cornici ultra ridotte, il nuovo flagship non teme confronti con la concorrenza, e non solo nel comparto fotografico mobile. La dotazione tecnica include il processore MediaTek Dimensity 9500, certificazione IP69 e un sistema di ricarica rapida a 80W
DJI Romo, il robot aspirapolvere tutto trasparente
DJI Romo, il robot aspirapolvere tutto trasparente
Anche DJI entra nel panorama delle aziende che propongono una soluzione per la pulizia di casa, facendo leva sulla propria esperienza legata alla mappatura degli ambienti e all'evitamento di ostacoli maturata nel mondo dei droni. Romo è un robot preciso ed efficace, dal design decisamente originale e unico ma che richiede per questo un costo d'acquisto molto elevato
DJI Osmo Nano: la piccola fotocamera alla prova sul campo
DJI Osmo Nano: la piccola fotocamera alla prova sul campo
La nuova fotocamera compatta DJI spicca per l'abbinamento ideale tra le dimensioni ridotte e la qualità d'immagine. Può essere installata in punti di ripresa difficilmente utilizzabili con le tipiche action camera, grazie ad una struttura modulare con modulo ripresa e base con schermo che possono essere scollegati tra di loro. Un prodotto ideale per chi fa riprese sportive, da avere sempre tra le mani
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


OPPO Find X9 Pro: il camera phone con teleobiettivo da 200MP e batteria da 7500 mAh OPPO Find X9 Pro: il camera phone con teleobiett...
DJI Romo, il robot aspirapolvere tutto trasparente DJI Romo, il robot aspirapolvere tutto trasparen...
DJI Osmo Nano: la piccola fotocamera alla prova sul campo DJI Osmo Nano: la piccola fotocamera alla prova ...
FUJIFILM X-T30 III, la nuova mirrorless compatta FUJIFILM X-T30 III, la nuova mirrorless compatta
Oracle AI World 2025: l'IA cambia tutto, a partire dai dati Oracle AI World 2025: l'IA cambia tutto, a parti...
Dallo spazioporto di Jiuquan decollerann...
Il Giappone un passo più vicino a...
Gli interferometri LIGO, Virgo e KAGRA h...
Kia PV5: è record di autonomia! I...
L'aeroplano supersonico ''silenzioso'' N...
Nissan: le batterie allo stato solido co...
NVIDIA cambia strategia? La GPU Feynman ...
Signal respinge le accuse dopo il down A...
Uragano Melissa in arrivo: la tempesta d...
8K o 4K? Ecco perché il tuo occhi...
Mercato auto europeo in crescita nei pri...
Addio SSD e RAM, benvenuti funghi: dagli...
TCL Q6C: tecnologia e design per un TV c...
Corsair MP700 PRO XT al debutto: un SSD ...
Apple Watch Ultra 2 in titanio con GPS +...
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: 02:26.


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