PDA

Visualizza la versione completa : C++ Array Teoria


piano1997
27-05-2015, 22:08
Salve a tutti , per esercitarmi ho trovato dei test sui vettori in vista di un esame però questi tre mi hanno lasciato un po' perplesso qualcuno potrebbe spiegarmeli :

Le seguenti espressioni
'a'
"a"
sono equivalenti?

V o F

Se definiamo int s[10]; è ammessa l'istruzione s++;

V o F

Definito vet[100] vettore di 100 interi, è ammessa dal compilatore la seguente istruzione
int a;
a=vet[100];

V o F

oregon
27-05-2015, 23:23
Spiega tu, per ognuno, perché sei perplesso e cosa ne pensi.

piano1997
28-05-2015, 08:20
Secondo me la prima è vera perchè sono entrabe sono stringhe.
La seconda non so perchè se abbiamo dichiarato un vettore di 10 elementi, si può amentare il numero di celle o no o no? si può aumentare la grandezza di un vettore con s++?quindi non so se è vera o falsa.
La terza credo che sia vera perchè assegna ad a il l'elemeto del vettore in posizione 100.
Quindi se vet[100]=3 per esempio, allora a=3




Ah e poi ho trovato anche un'altra domanda a cui non saprei rispondere precisamente:
Cosa differenzia un metodo ingenuo da uno avanzato nell'ordinamento del vettore ?
Credo che potrebbe essere una velocità ovvero meno stringhe di codice da eseguire, oppure anche meno memoria se ad esempio un metodo ne usa meno di variabili ed un'altro ne usa di più


Poi fatemi sapere se è giusto o sbagliato e cosa ne pensate

oregon
28-05-2015, 09:22
No, tutte false.

1) non sono tutte e due stringhe ... Uno è un carattere (char), l'altra una stringa
2) non è lecito scrivere s++, non aumenta affatto il numero di elementi
3) gli elementi hanno indice tra 0 e 99, il 100 non esiste e potresti avere un crash se lo usi

piano1997
28-05-2015, 16:37
Ok grazie mille :D utima cosa c'è questa domanda :
Cosa differenzia un metodo ingenuo da uno avanzato nell'ordinamento del vettore ?

Credo che potrebbe essere una velocità ovvero meno stringhe di codice da eseguire, oppure anche meno memoria se ad esempio un metodo ne usa meno di variabili ed un'altro ne usa di più. Poi non ho capito bene la differenza tra metodo ingenuo e avanzato, forse i metodi avanzati sono tipo insertion sort, bubble sort

MItaly
28-05-2015, 17:09
Per metodi di ordinamento "ingenui" di solito si considerano tutti i metodi con complessità asintotica O(n^2) (o peggio), tipo bubble sort; i metodi che si usano normalmente "per davvero" sono O(n log n) (che si dimostra essere la migliore complessità asintotica che può avere un sort basato su confronti tra coppie di elementi).

piano1997
28-05-2015, 17:29
Wow che risposta :D . Scusa l'ignoranza ma in che senso complessita asintotica XD

oregon
28-05-2015, 17:33
Non hai evidentemente studiato ancora questi concetti, in effetti si "traducono" con meno o più tempo e meno memoria o più memoria utilizzati dagli due tipi di algoritmi.

piano1997
28-05-2015, 17:39
Grazie mille :D

Loading