You are on page 1of 2

Algoritmi e Programmazione Avanzata

Esercitazione I (Ripasso) – 18/09/2009

Esercizio 1
Scrivere un programma che richieda in input all'utente N numeri interi (con N deciso a
piacere dal programmatore), li immagazzini in un vettore e successivamente usi una
funzione per riordinare il vettore in ordine crescente e una seconda funzione per
stamparlo a schermo.

Esercizio 2
Un file contiene esattamente N caratteri alfabetici (uno per riga, con N scelto dal
programmatore). Scrivere un programma che legga il file e stampi a schermo tutte le
possibili permutazioni dei caratteri che compaiono nel file, in un ordine qualsiasi.
Facoltativo: modificare il programma in modo che accetti il nome del file da leggere come
input sulla linea di comando, e scriva le permutazioni all'interno di un secondo file, sempre
dato come input sulla linea di comando (es: nomeprogramma.exe file_input.txt
file_output.txt)

Esempio
Contenuto del file (N = 3)
a
b
c

Output a schermo
abc
acb
bac
bca
cab
cba

Esercizio 3
Un file contiene, su ogni sua riga, il nome, il cognome e il numero di matricola di vari
studenti. Il numero delle righe è scritto sulla prima linea del file. Realizzare un programma
che legga il file, conservi le informazioni sugli studenti in una struttura e li stampi a
schermo in ordine alfabetico (cognome, nome, matricola).

Esempio
Contenuto del file
3
Totò Macario 123457
Gennaro Esposito 123456
Ciro Ferrara 123458

Output
Esposito Gennaro 123456
Ferrara Ciro 123458
Macario Totò 123457
Possibile struttura da usare
struct studente
{
char nome[30];
char cognome[30];
int matricola;
};

Esercizio 4
Realizzare un programma in C che legga da tastiera una stringa 1 di massimo N
caratteri (definiti dal programmatore), legga poi da tastiera una stringa 2 di
massimo M caratteri (definiti dal programmatore) con M < N, e restituisca in
output il numero di volte per cui la stringa 2 compare all'interno della stringa 1.
Per ogni occorrenza della stringa 1 all'interno della stringa 2, il programma
dovra' anche visualizzare l'indice della stringa 1 in cui compare il primo carattere
della stringa 2.

Esempio
stringa1 = perdindirindina
stringa2 = di
Il programma dovra' ritornare in output:
La stringa "di" compare 3 volte all'interno della stringa "perdindirindina";
- in posizione 3
- in posizione 6
- in posizione 11

stringa1 = perdiana
stringa2 = di
Il programma dovra' ritornare in output:
La stringa "di" compare 1 volte all'interno della stringa "perdiana";
- in posizione 3

stringa1 = giacobino
stringa2 = bino
Il programma dovra' ritornare in output:
La stringa "bino" compare 1 volte all'interno della stringa "giacobino";
- in posizione 5

You might also like