Il 0% ha trovato utile questo documento (0 voti)
13 visualizzazioni9 pagine

Esercizi Array

Il documento presenta una serie di esercizi in linguaggio C riguardanti la manipolazione di array e vettori. Gli esercizi includono operazioni come conteggio di numeri, calcolo di media, massimo e minimo, conversioni tra sistemi numerici, e gestione di duplicati. Ogni esercizio richiede la scrittura di un programma specifico per risolvere un problema definito, con esempi e suggerimenti per l'implementazione.

Caricato da

gianlucapinti856
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
13 visualizzazioni9 pagine

Esercizi Array

Il documento presenta una serie di esercizi in linguaggio C riguardanti la manipolazione di array e vettori. Gli esercizi includono operazioni come conteggio di numeri, calcolo di media, massimo e minimo, conversioni tra sistemi numerici, e gestione di duplicati. Ogni esercizio richiede la scrittura di un programma specifico per risolvere un problema definito, con esempi e suggerimenti per l'implementazione.

Caricato da

gianlucapinti856
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Sei sulla pagina 1/ 9

Esercizi Array

1) Conteggio dei numeri inseriti

Un utente inserisce da tastiera una serie di numeri interi positivi, ed il termine della
serie è indicato dall’inserimento del valore -1. Il programma, al termine
dell’inserimento, deve stampare quanti numeri pari l’utente aveva inserito, e quanti
numeri in totale sono stati inseriti.

Esempio:

Inserisci un numero: 5

Inserisci un numero: 3

Inserisci un numero: 6

Inserisci un numero: 5

Inserisci un numero: 2

Inserisci un numero: 5

Inserisci un numero: 7

Inserisci un numero: 7

Inserisci un numero: -1

Numeri totali inseriti: 8

Numeri pari inseriti: 2

2) Lettura di numeri con terminazione

Si scriva un programma in linguaggio C che legga da tastiera una serie di numeri interi
fino a quando la somma di tutti i numeri introdotti fino a quel momento non supera il
valore 1000. A quel punto, il programma stampa il valore del prodotto di tutti i numeri
inseriti.

3) Media dei numeri

Si scriva un programma in linguaggio C per calcolare la media aritmetica di una serie di


numeri inseriti da tastiera. L’introduzione di un valore particolare pari a “0” indica il
termine del caricamento dei dati.
4) Massimo e minimo

Si scriva un programma in linguaggio C per calcolare il valore massimo e minimo di un


insieme di N numeri inseriti da tastiera. Il programma deve leggere il valore di N, ed in
seguito deve leggere una sequenza di N numeri. A questo punto il programma deve
stampare il massimo ed il minimo tra i numeri inseriti.

5) Quadrati perfetti

Si scriva un programma in linguaggio C per il calcolo dei quadrati perfetti per una
sequenza di numeri. Il programma deve prima leggere un numero inserito da tastiera, e
quindi stampare i primi quadrati perfetti sino al quadrato del numero.

6) Conversione Binario-Decimale

Si scriva un programma in linguaggio C che converta un numero binario in un numero


decimale. Il numero binario è rappresentato su N bit, e il valore di N è inserito da
tastiera. L’utente inserisce le cifre del numero binario un bit alla volta, partendo dal bit
meno significativo (ossia dal bit di peso 2 0 ). Il programma visualizzerà il numero
decimale corrispondente.

7) Fattoriale

Si scriva un programma in linguaggio C che acquisisca un numero intero positivo N da


tastiera e stampi il valore del fattoriale di N. Suggerimento. Si ricorda che il fattoriale di
un numero è il prodotto di tutti i numeri compresi tra 1 ed N.

8) Generazione sequenza di numeri consecutivi

Un utente introduce da tastiera due numeri interi, chiamati INIZIO e LUN. Il programma
deve stampare una serie di numeri interi consecutivi. La serie inizia al valore INIZIO ed è
lunga LUN elementi.

Esempio: Inserisci Inizio: 7

Inserisci Lun: 4 La serie è: 7 8 9 10


9) Numeri in sequenza consecutivi

Si scriva un programma in linguaggio C che determini se, in una sequenza di numeri


inseriti da tastiera, vi sono due o più numeri consecutivi uguali.

10) Divisori di un numero

Sia dato un numero intero positivo N inserito da tastiera. Si scriva un programma in


linguaggio C che calcoli i numeri interi che sono divisori (con resto uguale a zero) di N.
Dire inoltre se N è un numero primo. Suggerimento.

• Un numero M è divisore di un numero N se il resto della divisione N/M è uguale a zero.


• Un numero è primo se è divisibile solo per 1 o per il numero stesso.

11) Massimo comune divisore di 2 numeri

Si scriva un programma in linguaggio C per calcolare il massimo comun divisore (MCD)


di due numeri interi positivi. Il MCD è definito come il massimo tra i divisori comuni ai
due numeri. Suggerimento. Si considerino due numeri interi N1 e N2. Il MCD di N1 e N2
è il massimo tra i numeri che sono divisori (con resto uguale a zero) sia di N2 che di N1.
In particolare, si supponga che sia N1 minore di N2. Il MCD è il massimo tra i numeri
compresi tra 1 e N1 che sono divisori (con resto uguale a zero) sia di N1 che di N2.

12) Minimo comune multiplo di 2 numeri

Si scriva un programma in linguaggio C per calcolare il minimo comune multiplo (MCM)


di due numeri interi positivi. Dati due numeri interi N1 e N2, il minimo comune multiplo
è il più piccolo numero M che è divisibile (con resto pari a zero) sia per N1 che per N2.
Suggerimento. Si considerino due numeri interi N1 e N2. Sia N1 più grande di N2. Il
MCM è il primo multiplo di N1 che è divisibile (con resto uguale a zero) per N2.
12) Rappresentazione del triangolo di Floyd

Scrivere un programma in linguaggio C per la rappresentazione del triangolo di Floyd. Il


triangolo di Floyd è un triangolo rettangolo che contiene numeri naturali, definito
riempiendo le righe del triangolo con numeri consecutivi e partendo da 1 nell’angolo in
alto a sinistra.

Si consideri ad esempio il caso N=5. Il triangolo di Floyd e’ il seguente:

23

456

7 8 9 10

11 12 13 14 15

Il programma riceve da tastiera un numero intero N. Il programma visualizza le prime N


righe del triangolo di Floyd. Suggerimento. Si osserva che il numero di valori in ogni riga
corrisponde all’indice della riga: 1 valore sulla prima riga, 2 sulla seconda, 3 sulla terza.

13) Ricerca di un elemento in vettore

Scrivere un programma in linguaggio C che riceve in ingresso una sequenza di N numeri


interi. I numeri sono memorizzati in un vettore. Il valore N è inserito dall’utente, ma il
vettore può contenere al massimo 30 numeri. Terminato l’inserimento della sequenza
di numeri, l’utente inserisce un valore di riferimento. Il programma deve indicare se tale
valore di riferimento è contenuto nel vettore.

14) Verificare se un vettore contiene tutti elementi uguali

Scrivere un programma in linguaggio C che riceve in ingresso una sequenza di N numeri


interi. I numeri sono memorizzati in un vettore. Il valore N è inserito dall’utente, ma il
vettore può contenere al massimo 30 numeri. Terminato l’inserimento della sequenza
di numeri, il programma deve verificare se gli elementi del vettore sono tutti uguali tra
loro.
15) Copia degli elementi pari

Un programma deve leggere dall’utente due vettori di 5 elementi ciascuno. Il


programma deve creare un ulteriore vettore, che contenga la copia dei soli elementi
pari presenti nei due vettori di partenza, e stampare tale vettore.

16) Verifica ordinamento vettore

Scrivere un programma in linguaggio C che riceve in ingresso una sequenza di N numeri


interi. I numeri sono memorizzati in un vettore. Il valore N è inserito dall’utente, ma il
vettore può contenere al massimo 30 numeri. Terminato l’inserimento della sequenza
di numeri, il programma deve verificare se il vettore contiene una sequenza di numeri
ordinata in modo strettamente crescente.

17) Operazione di shift di un vettore

Scrivere un programma in linguaggio C che riceve in ingresso una sequenza di N numeri


interi. Il valore N è inserito dall’utente. I numeri sono memorizzati in un vettore. Il
programma esegue le seguenti operazioni:

1. visualizza il vettore

2. esegue uno spostamento (shift) a sinistra di una posizione del contenuto del vettore.
Pertanto ogni elemento del vettore deve assumere il valore dell’elemento
immediatamente successivo all’interno del vettore. L’elemento di indice N-1 deve
assumere il valore zero.

Ad esempio dato il vettore: 1 10 15 18 Il programma deve generare il vettore: 10 15 18 0


Il programma visualizza il vettore ottenuto. 3. esegue uno spostamento (shift) a destra
di una posizione del contenuto del vettore ottenuto nel passo precedente.

Pertanto ogni elemento del vettore deve assumere il valore dell’elemento


immediatamente precedente all’interno del vettore.

L’elemento di indice 0 deve assumere il valore zero.

Ad esempio dato il vettore: 10 15 18 0 Il programma deve generare il vettore: 0 10 15 18


Il programma visualizza il vettore ottenuto. Nota. Nella definizione di “destra” e
“sinistra” si immagini il vettore stampato orizzontalmente, a partire dalla cella di indice
18) Compattazione di un vettore

Scrivere un programma in linguaggio C che legge N numeri interi da tastiera e li


memorizza in un vettore. Il numero N viene inserito dall’utente ed è minore di 20. Il
programma deve generare un secondo vettore che compatta i numeri contenuti nel
primo vettore. In particolare:

• ogni numero che compare ripetuto nel primo vettore, deve comparire una sola volta
nel secondo vettore

• ogni numero uguale a zero presente nel primo vettore non deve comparire nel
secondo vettore. Il programma deve visualizzare il contenuto del secondo vettore. Ad
esempio,

si supponga N=8 e si consideri la sequenza di numeri 1 18 3 0 24 3 6 0 inseriti da


tastiera.

Il programma deve visualizzare 1 18 3 24 6.

19) Intersezione di due vettori

Siano dati due vettori di interi inseriti da tastiera. La lunghezza dei due vettori è inserita
dall’utente da tastiera. I due vettori possono avere lunghezze diverse, ma possono
contenere al massimo 30 numeri. Si scriva un programma in linguaggio C per generare
un terzo vettore che contiene l’intersezione tra due vettori. Tale vettore deve contenere
i numeri presenti in entrambi i vettori dati. Ad esempio, si assuma che siano stati
inseriti i due vettori: 1 6 15 20 25 2 20 18 6 Il programma deve visualizzare la sequenza 6

20) Calcolo di occorrenze

Scrivere un programma in linguaggio C che legge N numeri interi da tastiera e li


memorizza in un vettore. Il numero N viene inserito dall’utente ed è minore di 20. Il
programma deve visualizzare, per ogni cifra contenuta nel vettore, il numero di
occorrenze. Ad esempio, si supponga N=7 e si consideri la sequenza di numeri 1 6 15 6
2 15 15. Il programma deve visualizzare: numero 1 occorrenze 1 numero 6 occorrenze 2
numero 15 occorrenze 3 numero 2 occorrenze 1 Suggerimento. Per ogni numero
presente nel vettore, il numero di occorrenze deve essere visualizzato una sola volta
(ad esempio per i numeri 6 e 15). Utilizzare un vettore di supporto per poter tenere
traccia dei numeri nel vettore per cui sono già state calcolate le occorrenze. Gestire
questo vettore di supporto in modo analogo al vettore per la compattazione di una
sequenza.

21) Fusione di due vettori ordinati

Scrivere un programma in linguaggio C che esegue la fusione di due vettori di interi


ordinati in modo crescente. Il programma deve eseguire le seguenti operazioni: 1.
leggere due vettori di N interi. Il numero N viene inserito dall’utente ed è minore di 20. I
due vettori possono avere lunghezza diversa. I due vettori si suppongono già ordinati in
maniera crescente. Creare un terzo vettore di lunghezza pari alla somma delle
lunghezze dei due vettori dati. Il vettore dovrà contenere i numeri contenuti nei due
vettori di partenza. I numeri nel vettore devono essere ordinati in modo crescente. 3.
stampare il vettore generato.

Ad esempio, si assuma che siano stati inseriti i due vettori 1 6 15 20 25 2 8 18 19. Il


programma dovrà visualizzare la sequenza 1 2 6 8 15 18 19 20 25

Due Somme
Dato un array di numeri interi nums e un numero intero target, restituisci gli indici dei due numeri in
modo che la loro somma siatarget .

Si può supporre che ogni input abbia esattamente una soluzione e non si può utilizzare lo stesso
elemento due volte.

Puoi restituire la risposta in qualsiasi ordine.

Rimuovi i duplicati dall'array ordinato


Dato un array di interi numsordinato in ordine non decrescente , rimuovi i duplicati sul posto in
modo che ogni elemento univoco appaia solo una volta . L' ordine relativo degli elementi dovrebbe
essere mantenuto lo stesso . Quindi restituisci il numero di elementi univoci innums .

Considerando il numero di elementi univoci di numsessere k, per essere accettati, è necessario fare
le seguenti cose:

Modificare l'array numsin modo che i primi kelementi di numscontengano gli elementi univoci
nell'ordine in cui erano presenti numsinizialmente. Gli elementi rimanenti di nums non sono
importanti, così come la dimensione di nums.
Ritorno k.
Rimuovi elemento
Dato un array di interi num se un intero val, rimuovi tutte le occorrenze di val in nums in-place .
L'ordine degli elementi può essere modificato. Quindi restituisci il numero di elementi in nums cui
non sono uguali a val.

Considerando il numero di elementi in nums cui non sono uguali a val, k per essere accettato, è
necessario fare le seguenti cose:

Modificare l'array nums in modo che i primi k elementi di nums contengano gli elementi che non
sono uguali a val. Gli elementi rimanenti di nums non sono importanti, così come la dimensione di
nums.
Ritorno k.

Cerca Inserisci Posizione


Dato un array ordinato di interi distinti e un valore di destinazione, restituisci l'indice se la
destinazione viene trovata. In caso contrario, restituisci l'indice in cui si troverebbe se fosse inserito
in ordine.

È necessario scrivere un algoritmo con O(log n)complessità di runtime.

Più uno
Ti viene dato un intero grande rappresentato come un array di interi digits, dove ogni cifra
digits[i]è l' intero. Le cifre sono ordinate dalla più significativa alla meno significativa in ordine da
sinistra a destra. L'intero grande non contiene alcun 's iniziale.i 0
th

Incrementa di uno il numero intero grande e restituisce la matrice di cifre risultante .

Esempio 1:

Input: cifre = [1,2,3]


Output: [1,2,4]
Spiegazione: l'array rappresenta l'intero 123.
Incrementando di uno si ottiene 123 + 1 = 124.
Pertanto, il risultato dovrebbe essere [1,2,4].
Pascal's Triangle
Given an integer numRows, return the first numRows of Pascal's triangle.

In Pascal's triangle, each number is the sum of the two numbers directly above it as shown:

Example 1:

Input: numRows = 5
Output: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]

Potrebbero piacerti anche