Fondamenti di Programmazione

Похожие документы
- Esercitazione IV Programmazione C Funzioni Alessandro Saetti

L Allocazione Dinamica della Memoria

4 Le liste collegate 4.0. Le liste collegate. 4 Le liste collegate Rappresentazione di liste 4.1 Rappresentazione di liste

Lezione 21 e 22. Valentina Ciriani ( ) Laboratorio di programmazione. Laboratorio di programmazione. Lezione 21 e 22

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro

APPELLO SCRITTO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO VI.2015

Elementi di Informatica e Programmazione

Allocazione Dinamica della Memoria

File e puntatori a file

ESERCIZI DI PROGRAMMAZIONE DA SVOLGERE INDIVIDUALMENTE - parte 2 -

Fondamenti di Programmazione

5. Quinta esercitazione autoguidata: liste semplici

Lezione 6 programmazione in Java

Programmazione I - Laboratorio

Lab 10 Passaggio per riferimento

INFORMATICA DI BASE Linguaggio C Prof. Andrea Borghesan

Gestione dinamica della memoria

L'Allocazione Dinamica della Memoria nel linguaggio C

METODI ESERCIZI. 07-xx_Esercizi[01] Versione del: venerdì 3 maggio Andrea Zoccheddu CORSO INFORMATICA ITI ANGIOY SASSARI

Classe Squadra. #include <iostream> using namespace std;

Informatica 1. Corso di Laurea Triennale in Matematica. Gianluca Rossi

stringhe array monodimensionali char. libreria < string.h>

13 Esercizi di Riepilogo

I tipi strutturati e i record in C++

Lezione 9 Esercizi d esame

Quicksort e qsort() Alessio Orlandi. 28 marzo 2010

Fondamenti di Informatica T-1 Modulo 2

Definizione Allocazione e deallocazione di variabili Allocazione e deallocazione di vettori

Esercizi 5 CICLI. Es.5(cicli)

Strutture Dati Dinamiche

Транскрипт:

Fondamenti di Programmazione Ingegneria dell Automazione Industriale Ingegneria Elettronica e delle Comunicazioni Alessandro Saetti Marco Sechi e Andrea Bonisoli (email: {alessandro.saetti,marco.sechi,andrea.bonisoli}@unibs.it) Università degli Studi di Brescia 1 dati dinamiche (1º parte) 1. Scrivere un programma C che acquisisca da tastiera un dato intero n, allochi dinamicamente un vettore di n variabili intere, inizializzi il vettore con dati pseudocasuali compresi tra 1 e 100 ed infine visualizzi i numeri pari nel vettore. 2. Scrivere un programma C che, trattando con strutture dati che aggregano due interi e che rappresentano punti del piano cartesiano, acquisisca da tastiera un punto fintantoché il punto è differente da <0,0>, memorizzando i dati acquisiti in un vettore allocato dinamicamente che si ingrandisce ad ogni nuova acquisizione. Infine, visualizzi i punti nel primo quadrante del piano cartesiano. 2

Esercizio 1 Scrivere un programma C che acquisisca da tastiera un dato intero n, allochi dinamicamente un vettore di n variabili intere, inizializzi il vettore con dati pseudo-casuali compresi tra 1 e 100 ed infine visualizzi i numeri pari nel vettore. 3 Esercizio 2 Scrivere un programma C che, trattando con strutture dati che aggregano due interi e che rappresentano punti del piano cartesiano, acquisisca da tastiera un punto fintantoché il punto è differente da <0,0>, memorizzando i dati acquisiti in un vettore allocato dinamicamente che si ingrandisce ad ogni nuova acquisizione. Infine, visualizzi i punti nel primo quadrante del piano cartesiano. 4

dati dinamiche (2º parte) 3. Scrivere 2 funzioni C che, trattando con strutture dati che aggregono una stringa e 3 interi e che rappresentano le tempistiche di un maratoneta, svolgano i seguenti compiti: Acquisisca da tastiera i dati di un maratoneta, fintantoché il tempo del maratoneta è diverso da 0:0:0, memorizzando i dati acquisiti in un vettore di maratoneti allocato dinamicamente che si ingrandisce ad ogni nuova acquisizione. Produca infine un puntatore all area di memoria allocata e il numero di maratoneti acquisiti. [Suggerimento: MaratonetaPtr inizializzamaratoneti(int *n);] Visualizzi i dati in un dato vettore di n variabili Maratoneta [Suggerimento: void visualizza(maratoneta v[], int n);] Scrivere un programma C che, sfruttando le funzioni precedentemente definite, acquisisca e visualizzi una sequenza di maratoneti. 5 dati dinamiche (2º parte) 4. Scrivere una funzione C che, trattando con strutture dati che aggregono una stringa e 3 interi e che rappresentano le tempistiche di un maratoneta, svolga il seguente compito: dati due tempi, produca 1 se il primo tempo precede il secondo e zero altrimenti. [Suggerimento: int minore(tempo t1, Tempo T2);] precedentemente definita e le funzioni definite per l esercizio 3, acquisisca e visualizzi una sequenza di maratoneti. Visualizzi infine i dati del maratoneta con il miglior tempo. 6

Esercizio 3 Scrivere 2 funzioni C che, trattando con strutture dati che aggregano una stringa e 3 interi e che rappresentano le tempistiche di un maratoneta, svolgano i seguenti compiti: Acquisisca da tastiera i dati di un maratoneta, fintantoché il tempo del maratoneta è diverso da 0:0:0, memorizzando i dati acquisiti in un vettore di maratoneti allocato dinamicamente che si ingrandisce ad ogni nuova acquisizione. Produca infine un puntatore all area di memoria allocata e il numero di maratoneti acquisiti. [Suggerimento: MaratonetaPtr inizializzamaratoneti(int *n);] Visualizzi i dati in un dato vettore di n variabili Maratoneta [Suggerimento: void visualizza(maratoneta v[], int n);] Scrivere un programma C che, sfruttando le funzioni precedentemente definite, acquisisca e visualizzi una sequenza di maratoneti. 7 Esercizio 4 Scrivere una funzione C che, trattando con strutture dati che aggregono una stringa e 3 interi e che rappresentano le tempistiche di un maratoneta, svolga il seguente compito: dati due tempi, produca 1 se il primo tempo precede il secondo e zero altrimenti. [Suggerimento: int minore(tempo t1, Tempo T2);] precedentemente definita e le funzioni definite per l esercizio 3, acquisisca e visualizzi una sequenza di maratoneti. Visualizzi infine i dati del maratoneta con il miglior tempo. 8

dati dinamiche (per casa) 5. Scrivere una funzione C che, trattando con strutture dati che aggregono una stringa e 3 interi e che rappresentano le tempistiche di un maratoneta, svolga il seguente compito: ordini una data sequenza di n maratoneti in base ai loro tempi cronometrici crescenti. [Suggerimento: void ordina(maratoneta v[], int n);] precedentemente definita e le funzioni definite per gli esercizi 3 e 4, acquisisca e visualizzi una sequenza di maratoneti. Visualizzi infine la sequenza di maratoneti ordinati secondo ai loro tempi cronometrici crescenti. 9 dati dinamiche (per casa) 6. Scrivere una funzione C che, trattando con strutture dati che aggregono una stringa e 3 interi e che rappresentano le tempistiche di un maratoneta, svolga il seguente compito: ordini una data sequenza di n maratoneti secondo un dato criterio. [Suggerimento: void ordina(maratoneta v[], int n, int (*confronta)(maratoneta, Maratoneta));] precedentemente definita e le funzioni definite per gli esercizi 3-5, acquisisca e visualizzi una sequenza di maratoneti. Acquisisca infine un numero intero x e, se x è pari a zero, visualizzi la sequenza di maratoneti ordinata secondo tempi cronometrici crescenti; se x è diverso da zero, visualizzi la sequenza ordinata secondo tempi cronometrici descrescenti. 10