Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce
Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce
REDMI Note 17 Pro porta in fascia media una batteria da 8.340 mAh con ricarica HyperCharge a 67W, un display AMOLED da 6,83 pollici capace di picchi di luminosità molto elevati e una struttura certificata TÜV SÜD contro cadute e infiltrazioni d'acqua, il tutto racchiuso in una scocca da 223 grammi. Lo abbiamo provato per diversi giorni tra fotocamera, prestazioni, autonomia e prezzo sul mercato italiano
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra integra un sensore da 1 pollice 8K, ottiche Leica e triplo chip IA. Tra schermo OLED rimovibile, workflow I-Log a 10 bit e stabilizzazione a tre assi, analizziamo le doti tecniche di una gimbal camera pensata per i professionisti
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 11-01-2006, 23:41   #1
SCYHO
Member
 
L'Avatar di SCYHO
 
Iscritto dal: Dec 2004
Messaggi: 88
[c++]tracce d'esame

ciao a tutti. tra una settimana ho l'esame di programmazione in c++. mi hanno dato alcune delle tracce ke usciranno. partiamo dalla prima.

Codice:
Si richiede di sviluppare un programma multifile per l’eliminazione degli elementi dispari in un vettore di numeri naturali.
Si progetti una funzione “elimina_dispari” che riceva in ingresso da tastiera il vettore di numeri naturali (interi non negativi) V allocato staticamente ed il suo riempimento n, ed elimini dal vettore V tutti gli elementi dispari in esso eventualmente presenti. La funzione restituisce inoltre come valore di ritorno il numero di elementi eliminati. L’eliminazione deve essere effettuata senza l’ausilio di alcun vettore di appoggio.
Nel main bisognerà:
- leggere V ed n (mediante una opportuna funzione “leggi_vetint”);
- effettuare l’eliminazione degli elementi dispari (mediante la funzione”elimina_dispari”);
- stampare il vettore in seguito all’eliminazione di uno o più elementi (mediante una opportuna funzione 
  “stampa_vetint”);
Non è richiesto controllo sull’input: si supponga che l’utente inserisca correttamente vettore e riempimento. Il main deve invece consentire di rieseguire il programma a richiesta dell’utente.

Esempi di esecuzione:
Procedura di inserimento del vettore
Inserisci il riempimento: 5
Inserisci il vettore. Solo numeri interi positivi:
Elemento di posizione 0: 1
Elemento di posizione 1: 3
Elemento di posizione 2: 5
Elemento di posizione 3: 7
Elemento di posizione 4: 9
Inserimento terminato.

Eliminazione di tutti gli elementi dispari dal vettore.
sono stati eliminati n. 5 elementi.
Vettore risultante:
Il vettore e' vuoto!

Un altro giro? (Y=1/N=0) 1

Procedura di inserimento del vettore
Inserisci il riempimento: 3
Inserisci il vettore. Solo numeri interi positivi:
Elemento di posizione 0: 0
Elemento di posizione 1: 1
Elemento di posizione 2: 2
Inserimento terminato.

Eliminazione di tutti gli elementi dispari dal vettore.
sono stati eliminati n. 1 elementi.
Vettore risultante:
Elemento di posizione 0: 0
Elemento di posizione 1: 2

Un altro giro? (Y=1/N=0) 0
sinceramente nel livello in cui sono ora troverò un pò di difficoltà per questo vi kiedo di spiegarmi sommariamente o non come procedere nella creazione di questo proramma.
grazie ciaoooo
__________________
"Voi che li avete girati nei giradischi e gridati voi che li avete aspettati ascoltati bruciati e poi scordati..chi erano mai questi Beatles
MA CHI ERANO MAI QUESTI BEATLES"
SCYHO è offline   Rispondi citando il messaggio o parte di esso
Old 12-01-2006, 19:21   #2
Fenomeno85
Senior Member
 
L'Avatar di Fenomeno85
 
Iscritto dal: Jun 2002
Città: Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8897
1 provaci poi ti do una mano

~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio.
Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso
Fenomeno85 è offline   Rispondi citando il messaggio o parte di esso
Old 12-01-2006, 21:48   #3
AbuJaffa
Senior Member
 
L'Avatar di AbuJaffa
 
Iscritto dal: Jan 2006
Città: Lassù
Messaggi: 2842
Quote:
Originariamente inviato da SCYHO
ciao a tutti. tra una settimana ho l'esame di programmazione in c++. mi hanno dato alcune delle tracce ke usciranno. partiamo dalla prima.

Codice:
Si richiede di sviluppare un programma multifile per l’eliminazione degli elementi dispari in un vettore di numeri naturali.
Si progetti una funzione “elimina_dispari” che riceva in ingresso da tastiera il vettore di numeri naturali (interi non negativi) V allocato staticamente ed il suo riempimento n, ed elimini dal vettore V tutti gli elementi dispari in esso eventualmente presenti. La funzione restituisce inoltre come valore di ritorno il numero di elementi eliminati. L’eliminazione deve essere effettuata senza l’ausilio di alcun vettore di appoggio.
Nel main bisognerà:
- leggere V ed n (mediante una opportuna funzione “leggi_vetint”);
- effettuare l’eliminazione degli elementi dispari (mediante la funzione”elimina_dispari”);
- stampare il vettore in seguito all’eliminazione di uno o più elementi (mediante una opportuna funzione 
  “stampa_vetint”);
Non è richiesto controllo sull’input: si supponga che l’utente inserisca correttamente vettore e riempimento. Il main deve invece consentire di rieseguire il programma a richiesta dell’utente.

Esempi di esecuzione:
Procedura di inserimento del vettore
Inserisci il riempimento: 5
Inserisci il vettore. Solo numeri interi positivi:
Elemento di posizione 0: 1
Elemento di posizione 1: 3
Elemento di posizione 2: 5
Elemento di posizione 3: 7
Elemento di posizione 4: 9
Inserimento terminato.

Eliminazione di tutti gli elementi dispari dal vettore.
sono stati eliminati n. 5 elementi.
Vettore risultante:
Il vettore e' vuoto!

Un altro giro? (Y=1/N=0) 1

Procedura di inserimento del vettore
Inserisci il riempimento: 3
Inserisci il vettore. Solo numeri interi positivi:
Elemento di posizione 0: 0
Elemento di posizione 1: 1
Elemento di posizione 2: 2
Inserimento terminato.

Eliminazione di tutti gli elementi dispari dal vettore.
sono stati eliminati n. 1 elementi.
Vettore risultante:
Elemento di posizione 0: 0
Elemento di posizione 1: 2

Un altro giro? (Y=1/N=0) 0
sinceramente nel livello in cui sono ora troverò un pò di difficoltà per questo vi kiedo di spiegarmi sommariamente o non come procedere nella creazione di questo proramma.
grazie ciaoooo
!!!!! E questo sarebbe un tema d'esame di programmazione c++???
Un po scarso come livello.
__________________
Fa' che non turbi l'anima tua il triste spettacolo dell'ingiustizia umana; anch' essa, nell'economia divina, ha il suo valore. È sopra di essa che vedrai sorgere immancabilmente la giustizia di Dio.
HO CONCLUSO EGREGIAMENTE TRATTATIVE CON OLTRE 90 UTENTI!
ATTENZIONE: consiglio di evitare assolutamente trattative con l'utente Herant
AbuJaffa è offline   Rispondi citando il messaggio o parte di esso
Old 12-01-2006, 21:53   #4
AbuJaffa
Senior Member
 
L'Avatar di AbuJaffa
 
Iscritto dal: Jan 2006
Città: Lassù
Messaggi: 2842
Ho letto tracce e^100 volte più toste di queste.
__________________
Fa' che non turbi l'anima tua il triste spettacolo dell'ingiustizia umana; anch' essa, nell'economia divina, ha il suo valore. È sopra di essa che vedrai sorgere immancabilmente la giustizia di Dio.
HO CONCLUSO EGREGIAMENTE TRATTATIVE CON OLTRE 90 UTENTI!
ATTENZIONE: consiglio di evitare assolutamente trattative con l'utente Herant
AbuJaffa è offline   Rispondi citando il messaggio o parte di esso
Old 13-01-2006, 09:56   #5
franksisca
Senior Member
 
L'Avatar di franksisca
 
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
a parte la semplicità, bisogna ricordare a cosa serve il forum:
il forum serve per chiarire dubbi, non per fare esami........
Prova a risolverlo, e se non ne vieni a capo posta i tuoi problemi e li risolveremo.
__________________
My gaming placement
franksisca è offline   Rispondi citando il messaggio o parte di esso
Old 13-01-2006, 10:50   #6
AbuJaffa
Senior Member
 
L'Avatar di AbuJaffa
 
Iscritto dal: Jan 2006
Città: Lassù
Messaggi: 2842
ben detto.
__________________
Fa' che non turbi l'anima tua il triste spettacolo dell'ingiustizia umana; anch' essa, nell'economia divina, ha il suo valore. È sopra di essa che vedrai sorgere immancabilmente la giustizia di Dio.
HO CONCLUSO EGREGIAMENTE TRATTATIVE CON OLTRE 90 UTENTI!
ATTENZIONE: consiglio di evitare assolutamente trattative con l'utente Herant
AbuJaffa è offline   Rispondi citando il messaggio o parte di esso
Old 13-01-2006, 14:21   #7
Fenomeno85
Senior Member
 
L'Avatar di Fenomeno85
 
Iscritto dal: Jun 2002
Città: Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8897
Quote:
Originariamente inviato da SCYHO
ciao a tutti. tra una settimana ho l'esame di programmazione in c++. mi hanno dato alcune delle tracce ke usciranno. partiamo dalla prima.

Codice:
Si richiede di sviluppare un programma multifile per l’eliminazione degli elementi dispari in un vettore di numeri naturali.
Si progetti una funzione “elimina_dispari” che riceva in ingresso da tastiera il vettore di numeri naturali (interi non negativi) V allocato staticamente ed il suo riempimento n, ed elimini dal vettore V tutti gli elementi dispari in esso eventualmente presenti. La funzione restituisce inoltre come valore di ritorno il numero di elementi eliminati. L’eliminazione deve essere effettuata senza l’ausilio di alcun vettore di appoggio.
Nel main bisognerà:
- leggere V ed n (mediante una opportuna funzione “leggi_vetint”);
- effettuare l’eliminazione degli elementi dispari (mediante la funzione”elimina_dispari”);
- stampare il vettore in seguito all’eliminazione di uno o più elementi (mediante una opportuna funzione 
  “stampa_vetint”);
Non è richiesto controllo sull’input: si supponga che l’utente inserisca correttamente vettore e riempimento. Il main deve invece consentire di rieseguire il programma a richiesta dell’utente.

Esempi di esecuzione:
Procedura di inserimento del vettore
Inserisci il riempimento: 5
Inserisci il vettore. Solo numeri interi positivi:
Elemento di posizione 0: 1
Elemento di posizione 1: 3
Elemento di posizione 2: 5
Elemento di posizione 3: 7
Elemento di posizione 4: 9
Inserimento terminato.

Eliminazione di tutti gli elementi dispari dal vettore.
sono stati eliminati n. 5 elementi.
Vettore risultante:
Il vettore e' vuoto!

Un altro giro? (Y=1/N=0) 1

Procedura di inserimento del vettore
Inserisci il riempimento: 3
Inserisci il vettore. Solo numeri interi positivi:
Elemento di posizione 0: 0
Elemento di posizione 1: 1
Elemento di posizione 2: 2
Inserimento terminato.

Eliminazione di tutti gli elementi dispari dal vettore.
sono stati eliminati n. 1 elementi.
Vettore risultante:
Elemento di posizione 0: 0
Elemento di posizione 1: 2

Un altro giro? (Y=1/N=0) 0
sinceramente nel livello in cui sono ora troverò un pò di difficoltà per questo vi kiedo di spiegarmi sommariamente o non come procedere nella creazione di questo proramma.
grazie ciaoooo

comunque manco all'itis mi hanno mai dato una traccia così banale

Codice:
#include "stdafx.h"

using namespace std;

#define N 50

void leggi_vetint (int arr[], int n){
	cout << "Inserisci il vettore. Solo numeri interi positivi:"<<endl;
	for (int i=0;i<n;i++){
		cout << "Elemento di posizione " <<i << ":\t" ;
		cin >> arr[i];
	}
	cout << "Inserimento terminato."<<endl;
}

int elimina_dispari (int arr[], int n){
	int del_element=0;
	cout << "Eliminazione di tutti gli elementi dispari dal vettore."<<endl;
	for (int i=0;i<n;i++){
		if (arr[i]%2 != 0){
			del_element ++;
			for (int y=i;y<n-1;y++)
				arr[y] = arr[y+1];
		}
	}
	return del_element;
}

void stampa_vetint (int arr[], int n){
	for (int i=0;i<n;i++)
		cout << "Elemento di posizione " << i << ": "<<arr[i]<<endl;
}

int _tmain()
{
	int arr[N],n, del_ele;
	cout << "Porcedura di inserimento del vettore\nInserisci il riempimento:\t";
	cin >> n; /* per correttezza n deve essere controllato che sia < N */
	leggi_vetint (arr, n);
	del_ele = elimina_dispari(arr, n);
	cout << "sono stati eliminati n. " << del_ele << " elementi."<<endl;
	cout << "Vettore risultante:"<<endl;
	(n-del_ele == 0)? cout << "Il vettore e' vuoto!"<<endl : stampa_vetint (arr, n-del_ele);
	system ("PAUSE");
	return 0;
}
~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio.
Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso
Fenomeno85 è offline   Rispondi citando il messaggio o parte di esso
Old 13-01-2006, 15:40   #8
SCYHO
Member
 
L'Avatar di SCYHO
 
Iscritto dal: Dec 2004
Messaggi: 88
beh beati voi ke la ritenete così facile. io mica tanto...

cmq nn riesco a rpovarci perkè non sono in grado di creare un funzione ke faccia quel ke vuole la traccia.

sono capace di:
1)definire un vettore di numeri naturali
2)di creare un programma multifile
3)di verificare la posizione di un elemento nel vettore

non sono capace:
1)di creare una funzione come elimina_dispari
2)di inserire il fattore riempimento n del vettore
3)di stampare gli elementi eliminati e poi quelli restanti.
__________________
"Voi che li avete girati nei giradischi e gridati voi che li avete aspettati ascoltati bruciati e poi scordati..chi erano mai questi Beatles
MA CHI ERANO MAI QUESTI BEATLES"
SCYHO è offline   Rispondi citando il messaggio o parte di esso
Old 13-01-2006, 15:43   #9
SCYHO
Member
 
L'Avatar di SCYHO
 
Iscritto dal: Dec 2004
Messaggi: 88
per farvi rendere un pò conto, prendendo un pezzo del codice di Fenomeno85

Codice:
void leggi_vetint (int arr[], int n){
io non ho idea di perkè si metta arr[] e n nei dati iniziali di questa funzione. so ke sono i dati di ingresso ma nn so perkè si mettono proprio quei 2!
__________________
"Voi che li avete girati nei giradischi e gridati voi che li avete aspettati ascoltati bruciati e poi scordati..chi erano mai questi Beatles
MA CHI ERANO MAI QUESTI BEATLES"
SCYHO è offline   Rispondi citando il messaggio o parte di esso
Old 13-01-2006, 15:52   #10
maxithron
Senior Member
 
L'Avatar di maxithron
 
Iscritto dal: Mar 2002
Città: Italy/Usa
Messaggi: 2817
EDIT
__________________
"Utilizzando atomi pentavalenti drogheremo il silicio di tipo n;
Utilizzando atomi trivalenti drogheremo il silicio di tipo p;
Utilizzando della cannabis ci drogheremo noi e vedremo il silicio fare cose impossibili" - DSDT-HowTo
maxithron è offline   Rispondi citando il messaggio o parte di esso
Old 13-01-2006, 19:33   #11
Fenomeno85
Senior Member
 
L'Avatar di Fenomeno85
 
Iscritto dal: Jun 2002
Città: Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8897
allora a te manca tutta la teoria che non è facile spigare in poche righe, diciamo che un libro sarebbe l'ideale.

Allora vediamo se riesco a spiegare in modo facile:

Definizione di una funzione

Codice:
tipo_ret nome_funzione (parametri)
allora il tipo_ret è il tipo di variabile che vorrai far ritornare alla funzione chiamante.
Questo significa che se è esempio int, la variabile ritornata sarà un intero, char carattere, int * un puntatore a un intero, void significa che non ritorni nulla e così via.

nome_funzione la scegli te o al massimo ti viene fornita dalle richieste.


I parametri vanno scritti come se stessi dichiarando le variabili. Gli array in c si possono passare o:

Codice:
int nome (int a[])
oppure in modo uguale in questo altro

Codice:
int nome (int *a)
Cosa passare a un metodo.

Se sei sotto un progetto l'analista ti avrà dato delle specifiche altrimenti come devi ragionare:
devi passare tutte le variabili che ti servono per fare quello che ti serve.

In questo caso te devi lavorare sull'array sul quale analizzi solo su una porzione definita. Quindi alla funzione ti servono appunto arr e n.

Spero che un pò ti ho chiarito al massimo dimmi che cosa non ti è chiaro

Comunque con l'esperienza vedrai che capirai velocemente. Tanto usare c usare vb usare php alla fine è solo sintassi nulla di +.

~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio.
Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso

Ultima modifica di Fenomeno85 : 13-01-2006 alle 19:36.
Fenomeno85 è offline   Rispondi citando il messaggio o parte di esso
Old 13-01-2006, 22:32   #12
crick_pitomba
Member
 
Iscritto dal: Oct 1999
Messaggi: 111
Quote:
Originariamente inviato da Fenomeno85
c

int elimina_dispari (int arr[], int n){
int del_element=0;
cout << "Eliminazione di tutti gli elementi dispari dal vettore."<<endl;
for (int i=0;i<n;i++){
if (arr[i]%2 != 0){
del_element ++;
for (int y=i;y<n-1;y++)
arr[y] = arr[y+1];
}
}
return del_element;
}
non sono troppo d'accordo con l'implementazione di questa funzione...
nel caso peggiore (array pieno di elementi dispari) è quadratica nell'input:non pensi che sia poco efficiente?

se l'esame è di programmazione ad una facoltà di informatica, probabilmente il professore che ha assegnato la traccia valuterà proprio questo parametro.

evidentemente il programma è limitato come complessità di spazio e deve essere risolto con una complessità di tempo ragionevole.

forse utilizzando due indici, uno per scorrere l'array, l'altro per memorizzare l'ultima posizione valida si ottiene una funzione più efficiente perchè lineare in funzione dell'input.
crick_pitomba è offline   Rispondi citando il messaggio o parte di esso
Old 14-01-2006, 00:16   #13
SCYHO
Member
 
L'Avatar di SCYHO
 
Iscritto dal: Dec 2004
Messaggi: 88
Quote:
Originariamente inviato da Fenomeno85
allora a te manca tutta la teoria che non è facile spigare in poche righe, diciamo che un libro sarebbe l'ideale.

Allora vediamo se riesco a spiegare in modo facile:

Definizione di una funzione

Codice:
tipo_ret nome_funzione (parametri)
allora il tipo_ret è il tipo di variabile che vorrai far ritornare alla funzione chiamante.
Questo significa che se è esempio int, la variabile ritornata sarà un intero, char carattere, int * un puntatore a un intero, void significa che non ritorni nulla e così via.

nome_funzione la scegli te o al massimo ti viene fornita dalle richieste.


I parametri vanno scritti come se stessi dichiarando le variabili. Gli array in c si possono passare o:

Codice:
int nome (int a[])
oppure in modo uguale in questo altro

Codice:
int nome (int *a)
Cosa passare a un metodo.

Se sei sotto un progetto l'analista ti avrà dato delle specifiche altrimenti come devi ragionare:
devi passare tutte le variabili che ti servono per fare quello che ti serve.

In questo caso te devi lavorare sull'array sul quale analizzi solo su una porzione definita. Quindi alla funzione ti servono appunto arr e n.

Spero che un pò ti ho chiarito al massimo dimmi che cosa non ti è chiaro

Comunque con l'esperienza vedrai che capirai velocemente. Tanto usare c usare vb usare php alla fine è solo sintassi nulla di +.

~§~ Sempre E Solo Lei ~§~
gia. io ho iniziato da poco col c++, ma sono esperto in php..per questo bene o male le cose le conosco(array,variabili,cicli,condizioni....),però trovo difficoltà col c++ in quanto non sono abituati alla sua sintassi. inoltre col php, ke lavora in web, non c'è da allocare e deallocare una variabile,non c'è da tener conto dello spazio ke occupi con un singolo dato,non c'è da tener conto della visibilità o non di una variabile,non bosogna defenirne il tipo,non c'è da dichiare prima un prototipo,poi come si svolge una funzione,e poi applicarla...applichi e basta.
__________________
"Voi che li avete girati nei giradischi e gridati voi che li avete aspettati ascoltati bruciati e poi scordati..chi erano mai questi Beatles
MA CHI ERANO MAI QUESTI BEATLES"
SCYHO è offline   Rispondi citando il messaggio o parte di esso
Old 14-01-2006, 11:28   #14
AbuJaffa
Senior Member
 
L'Avatar di AbuJaffa
 
Iscritto dal: Jan 2006
Città: Lassù
Messaggi: 2842
Il linguaggio C è l'essenza della programmazione!
__________________
Fa' che non turbi l'anima tua il triste spettacolo dell'ingiustizia umana; anch' essa, nell'economia divina, ha il suo valore. È sopra di essa che vedrai sorgere immancabilmente la giustizia di Dio.
HO CONCLUSO EGREGIAMENTE TRATTATIVE CON OLTRE 90 UTENTI!
ATTENZIONE: consiglio di evitare assolutamente trattative con l'utente Herant
AbuJaffa è offline   Rispondi citando il messaggio o parte di esso
Old 14-01-2006, 13:08   #15
IspiCiosa
Senior Member
 
Iscritto dal: Dec 2004
Messaggi: 1218
Esatto!! W il C !!!
__________________
Athlon64 3500 (Winchester), Asus A8V-E Deluxe, X700Pro 256MB, Maxtor 200GB Sata,Ali Enermax 400W, Mast. Pionner 109,Lettore dvd LG, Creative 2.1 3200, LG 1980q, Canon Pixma mp500.
IspiCiosa è offline   Rispondi citando il messaggio o parte di esso
Old 14-01-2006, 13:35   #16
Fenomeno85
Senior Member
 
L'Avatar di Fenomeno85
 
Iscritto dal: Jun 2002
Città: Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8897
Quote:
Originariamente inviato da crick_pitomba
non sono troppo d'accordo con l'implementazione di questa funzione...
nel caso peggiore (array pieno di elementi dispari) è quadratica nell'input:non pensi che sia poco efficiente?

se l'esame è di programmazione ad una facoltà di informatica, probabilmente il professore che ha assegnato la traccia valuterà proprio questo parametro.

evidentemente il programma è limitato come complessità di spazio e deve essere risolto con una complessità di tempo ragionevole.

forse utilizzando due indici, uno per scorrere l'array, l'altro per memorizzare l'ultima posizione valida si ottiene una funzione più efficiente perchè lineare in funzione dell'input.
posta il codice che non capisco quello che vuoi fare.

~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio.
Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso
Fenomeno85 è offline   Rispondi citando il messaggio o parte di esso
Old 14-01-2006, 15:57   #17
crick_pitomba
Member
 
Iscritto dal: Oct 1999
Messaggi: 111
come vedo dal tuo codice, utilizzi 3 indici
del_element che continene quella che sarà la dimensione dell'array una volta eliminati tutti gli elementi
i che è l'indice che scorre l'array alla ricerca degli elementi da eliminare
y che ti serve per spostare tutti gli elementi ogni volta...

Ma è inutile spostarli tutti ogni volta. basta spostare solo l'elemento corrente

lo pseudo codice che risolve il problema dovrebbe essere così

poni indice=0;
poni numpari=0
scorri l'array un elemento alla volta
se l'elemento è pari
mettilo nella cella Array[numpari]
incrementa il valore numpari
restituisci n-numpari

in pratica sposa tutti e solo in numeri pari riempiendo le parti più basse con numeri pari

nel caso in cui l'array è pieno di numeri pari ogni elemento viene spostato su se stesso
nel caso in cui nessun elemento sua pari nessun elemento spostato

in entrambi i casi l'intero array viene scorso una sola volta e nel caso peggiore ci sono solo n spostamenti (caso in cui tutti gli elementi sono pari)

il codice c dovrebbe essere (sono un po' arruginito)

int pari =0; //conta i pari nell'array
int indice=0; //indice per scorrere l'array
for (indice=0; indice<n; indice++){
// se l'elemento è pari....
if(arr[indice]%2==0){
//copia l'elemento corrente nella prima posizione disponibile e incrementa la posizione
arr[pari++]=arr[indice];
}
}
return n-pari; (se vuoi fare all'interno della funzione il conto degli elementi eliminati
oppure
return pari; //che rappresenta la nuova dimensione del vettore e fuori stamperai n-pari come numero di elementi eliminati


cosa ne pensi?
crick_pitomba è offline   Rispondi citando il messaggio o parte di esso
Old 14-01-2006, 16:40   #18
Qu@ker
Member
 
Iscritto dal: Apr 2004
Messaggi: 130
Codice:
int elimina_dispari (int arr[], int n)
{
	int i = 0;
	for (; i < n && (arr[i] % 2 == 0); ++i)
		;
	for (int y = i+1; y < n; ++y)
		if (arr[y] % 2 == 0)
			arr[i++] = arr[y];
	return (n - i);
}
Qu@ker è offline   Rispondi citando il messaggio o parte di esso
Old 14-01-2006, 18:08   #19
Fenomeno85
Senior Member
 
L'Avatar di Fenomeno85
 
Iscritto dal: Jun 2002
Città: Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8897
Quote:
Originariamente inviato da crick_pitomba
come vedo dal tuo codice, utilizzi 3 indici
del_element che continene quella che sarà la dimensione dell'array una volta eliminati tutti gli elementi
i che è l'indice che scorre l'array alla ricerca degli elementi da eliminare
y che ti serve per spostare tutti gli elementi ogni volta...

Ma è inutile spostarli tutti ogni volta. basta spostare solo l'elemento corrente

lo pseudo codice che risolve il problema dovrebbe essere così

poni indice=0;
poni numpari=0
scorri l'array un elemento alla volta
se l'elemento è pari
mettilo nella cella Array[numpari]
incrementa il valore numpari
restituisci n-numpari

in pratica sposa tutti e solo in numeri pari riempiendo le parti più basse con numeri pari

nel caso in cui l'array è pieno di numeri pari ogni elemento viene spostato su se stesso
nel caso in cui nessun elemento sua pari nessun elemento spostato

in entrambi i casi l'intero array viene scorso una sola volta e nel caso peggiore ci sono solo n spostamenti (caso in cui tutti gli elementi sono pari)

il codice c dovrebbe essere (sono un po' arruginito)

int pari =0; //conta i pari nell'array
int indice=0; //indice per scorrere l'array
for (indice=0; indice<n; indice++){
// se l'elemento è pari....
if(arr[indice]%2==0){
//copia l'elemento corrente nella prima posizione disponibile e incrementa la posizione
arr[pari++]=arr[indice];
}
}
return n-pari; (se vuoi fare all'interno della funzione il conto degli elementi eliminati
oppure
return pari; //che rappresenta la nuova dimensione del vettore e fuori stamperai n-pari come numero di elementi eliminati


cosa ne pensi?
hai perfettamente ragione ... non mi era venuta in mente questa soluzione che alla fine è solo un O(n) in confronto alla mia che è un O(n*(n-1))


~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio.
Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso
Fenomeno85 è offline   Rispondi citando il messaggio o parte di esso
Old 14-01-2006, 19:10   #20
crick_pitomba
Member
 
Iscritto dal: Oct 1999
Messaggi: 111
l'importante è dare una mano al povero SCHYO...
crick_pitomba è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce Recensione REDMI Note 17 Pro: il midrange con ba...
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema Insta360 Luna Ultra: la potenza del sensore da 1...
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Lenovo annuncia nuovi sistemi per la vir...
M6 e M5 Ultra, i primi benchmark conferm...
La nuova falla della cybersecurity &egra...
The Blood of Dawnwalker, il sequel potre...
Colpiti i data center Amazon: irrecupera...
Google Wallet, nuova interfaccia in arri...
iPhone Duo, problemi di produzione per i...
Firefox diventa più veloce con PDF e JPE...
WhatsApp, arriva su iOS la nuova scorcia...
Snap presenta Specs: realtà aumentata, c...
SteamOS verso un cambiamento epocale: ar...
Recensione HUAWEI FreeBuds Neo, piccoli ...
TSMC aumenta i costi di produzione: AMD ...
L'Europa sfida i magnati dei combustibil...
One UI 9 arriva sui Galaxy S26: pi&ugrav...
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: 17:37.


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