Esercizio Si legga una sequenza di numeri interi da tastiera (terminatore: 0), quindi: Creare lista L1 con inserimento in testa; cons Creare lista L2 con.

Slides:



Advertisements
Presentazioni simili
Sottoprogrammi: funzioni e procedure
Advertisements

Programmazione Ingegneria TLC
1 Informatica Generale Susanna Pelagatti Ricevimento: Mercoledì ore presso Dipartimento di Informatica, Via Buonarroti,
Introduzione al linguaggio C Dr. Francesco Fabozzi Corso di Informatica.
Grafi Algoritmi e Strutture Dati. Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Algoritmi e strutture dati 2/ed 2 Copyright © The McGraw.
Lez. 121 Universita' di Ferrara Facolta' di Scienze Matematiche, Fisiche e Naturali Laurea Specialistica in Informatica Algoritmi Avanzati Progettazione.
Algoritmi in C++ (1) da completare
STRUTTURE DATI e LABORATORIO II ESERCITAZIONE N°13 Heap massimo.
Esercizi su alberi binari
Tail recursion: esempio
Alberi binari Definizione della struttura dati: struct tree { };
Esercizi su strutture dinamiche Fondamenti di Programmazione Canale AD a.a. 2009/2010.
Prof.ssa Chiara Petrioli -- Fondamenti di programmazione, a.a. 2009/2010 Corso di Fondamenti di Programmazione a.a.2009/2010 Prof.ssa Chiara Petrioli Corso.
Prof.ssa Chiara Petrioli -- corso di programmazione 1, a.a. 2007/2008 Corso di Programmazione 1 a.a.2007/2008 Prof.ssa Chiara Petrioli Corso di Laurea.
Introduzione alla Object Oriented Programming, OOP E.Mumolo. DEEI
E.Mumolo. DEEI Introduzione alla programmazione ad oggetti in C++ Object Oriented Programming, OOP E.Mumolo. DEEI
Laboratorio di Linguaggi lezione IX: tipi ricorsivi Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso.
1 Corso di Informatica (Programmazione) Esercitazione 1 (26 novembre 2008)
Argomenti della lezione
ITERAZIONE e RICORSIONE (eseguire uno stesso calcolo ripetutamente) ITERAZIONE: ripetere piu volte una sequenza di operazioni istruzioni: for, while, do.
Argomenti Direttive di Preprocessore: Compilazione Condizionale
ITERAZIONE e RICORSIONE (eseguire uno stesso calcolo ripetutamente)
Esercizi su code Date due code in ingresso a valori interi in ordine crescente, scrivere una funzione che restituisca una terza coda che contenga i valori.
Esercizi su alberi binari
Esercizi FUNZIONI Passaggio di parametri per valore, variabili e tipi locali e globali, prototipo.
Esercizi C sui tipi definiti dall’utente
Politecnico di Milano Esercizi Preparazione alla prima prova intermedia.
Le liste dinamiche La ricorsione
Le funzioni.
Sorting: MERGESORT Vogliamo ordinare lista (a 1,…,a n ). 1.Dividi lista in 2 sottoliste aventi (quasi) la stessa dimensione: (a 1,a 3,a 5,…) e (a 2,a 4,…),
Lezione 17 maggio 2007 Parametri da linea di comando FILE Strutture (introduzione)
FUNZIONI: IL MODELLO APPLICATIVO 1) Valutazione, nellenvironment corrente, del simbolo che denota il nome della funzione; 2) Valutazione, nellenvironment.
1.Scrivere una funzione per cercare un numero x in una lista circolare di interi. La funzione deve restituire NULL se il numero non esiste. 2.Scrivere.
I Metodi in Java Il termine "metodo" è sinonimo di "azione". Quindi, affinché un programma esegua qualche istruzione, deve contenere metodi.
15 maggio 2002 Avvisi: Ultima lezione: mercoledì 29 maggio II Esonero: mercoledì 5 giugno, ora da stabilire.
Corso di informatica Athena – Periti Informatici
Diagramma di flusso del problema del Supermercato.
Università degli Studi di BresciaA.A. 2012/2013 Fondamenti di Programmazione Docente: Alessandro SaettiA.A. 2012/2013 Università degli Studi di Brescia.
void binario(int n); …………………
Prof.ssa Chiara Petrioli -- corso di programmazione 1, a.a. 2007/2008 Corso di Programmazione 1 a.a.2007/2008 Prof.ssa Chiara Petrioli Corso di Laurea.
Esercizi Liste.
Esercizi su File e Liste
Università degli Studi di BresciaA.A. 2012/2013 Fondamenti di Programmazione Docente: Alessandro SaettiA.A. 2012/2013 Università degli Studi di Brescia.
1Piero Scotto - C14. Finalità del corso Programma Materiale Requisiti Spendibilità 2Piero Scotto - C14.
Grafi Rappresentazione mediante liste di adiacenza:
Tail recursion: esempio
Esercizi La distanza di hamming tra due interi x e y si definisce come il numero di posizioni nella rappresentazione binaria di x e y aventi bit differenti.
Esercizi su alberi binari di ricerca
Alberi binari Definizione della struttura dati: struct tree { };
Corso di Programmazione Grafica e Laboratorio Daniele Marini
1 Esempi domande di esame. 2 Dato il seguente programma #include int main(){ int *p,j=9,i=5; p=&j; *p=i; printf("%d %d %d\n", i,j,*p); scanf("%d",p);/*
Ugo de'Liguoro - Informatica 2 a.a. 03/04 Lez. 2 La ricorsione Corso di Informatica 2 a.a. 2003/04 Lezione 2.
Ugo de'Liguoro - Informatica 2 a.a. 03/04 Lez. 5 Le strutture informative Corso di Informatica 2 a.a. 2003/04 Lezione 5.
1 Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza Valentina Ciriani ( ) Laboratorio di programmazione Lezione 11 e 12 -
CORSO DI PROGRAMMAZIONE II Lezione 22
Array (ordinamento) CORDA – Informatica A. Ferrari.
Ripetizione La vera potenza dei programmi per computer risiede nella capacità di ripetere lo stesso calcolo o sequenza di istruzioni più volte, ogni volta.
Esercitazioni su liste
Struttura di una lista legata Una lista legata è una variabile strutturata in cui ogni elemento mantiene l’indirizzo (mediante un puntatore) dell’elemento.
Dato un vettore di reali di dimensione DIM, si inseriscano N elementi presi da tastiera, si utilizzi 0 per terminare l’inserimento. Ordinare gli elementi.
1 FONDAMENTI DI INFORMATICA II Ingegneria Gestionale a.a ° Ciclo Pile e Code.
CORSO DI PROGRAMMAZIONE II
1 FONDAMENTI DI INFORMATICA II Ingegneria Gestionale a.a ° Ciclo Strutture Dati.
C++:Strutture di Controllo
APPUNTI SUL LINGUAGGIO C
Esercitazioni su alberi
Corso di Algoritmi e Strutture Dati APPUNTI SUL LINGUAGGIO C Esercizi su Alberi.
Lezione n. Parole chiave: Corso di Laurea: Insegnamento: Docente: A.A Salvatore Cuomo Strutture dati di tipo astratto 19 Strutture dati,
Lezione n. Parole chiave: Corso di Laurea: Insegnamento: Docente: A.A Salvatore Cuomo Esercizi sui dati strutturati 13 Tipi di dati strutturati.
Input in Java. Uso Scanner Un oggetto per la lettura dalla tastiera Piuttosto, per rappresentare la tastiera del nostro calcolatore useremo un oggetto.
Transcript della presentazione:

Esercizio Si legga una sequenza di numeri interi da tastiera (terminatore: 0), quindi: Creare lista L1 con inserimento in testa; cons Creare lista L2 con inserimento in coda; cons_tail Stampa delle due liste; showlist Ricerca dell’elemento n nella lista; member Calcolo della lunghezza della lista; length Calcolo della somma degli interi; sumlist Estrapolazione di una sotto-lista, dalla posizione k alla fine. sublist

Esercizio Si legga una sequenza di numeri interi da tastiera (terminatore: 0), quindi: Creare lista L1 con inserimento in testa; Creare lista L2 con inserimento in coda; Stampa delle due liste; Ricerca dell’elemento n nella lista; Calcolo della lunghezza della lista; Calcolo della somma degli interi; Estrapolazione di una sotto-lista, dalla posizione k alla fine. Ricorsive o ITerative?

Esercizio Si legga una sequenza di numeri interi da tastiera (terminatore: 0), quindi: Creare lista L1 con inserimento in testa; Creare lista L2 con inserimento in coda; Stampa delle due liste; R+IT Ricerca dell’elemento n nella lista; R+IT Calcolo della lunghezza della lista; R+IT Calcolo della somma degli interi; R+IT Estrapolazione di una sotto-lista, dalla posizione k alla fine. R+IT Ricorsive o ITerative?

Esercizio main.clista.c Lista.h Come definire due funzioni che fanno la stessa cosa in C ma in modi diversi??

Esercizio main.clista.c Lista.h Banalmente usando un nome di funzione diverso (member, member_r) Altro modo?

Esercizio main.c #ifndef RECURSIVE // Tutte le funzioni NON // ricorsive #endif #ifdef RECURSIVE // Tutte le funzioni // ricorsive #endif lista.c Lista.h #define RECURSIVE Banalmente usando un nome di funzione diverso (member, member_r) Meno banalmente: usando istruzioni al precompilatore (#ifdef, #ifndef) Differenza??

Esercizio Lista.h #define RECURSIVE typedef struct node{ int n; struct node *next; } listNode; typedef listNode* list; list cons(int n, list l); list consTail(int n, list l); int sumList(list l); //R+IT void showlist(list l); //R+IT int length(list l); //R+IT int member(int n, list l); //R+IT list subList(int k, list l); //R+IT