Esercizio 1: funzione con valore di ritorno di tipo puntatore
|
|
- Adelina Rocco
- 6 anni fa
- Visualizzazioni
Transcript
1 Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 7 Esercitazione: 14 dicembre 2005 Esercizi su ricorsione, manipolazione stringhe, strutture dinamiche Problema: Esercizio 1: funzione con valore di ritorno di tipo puntatore Si consideri il seguente programma (main + sottoprogramma di tipo funzione) che effettua una ricerca per numero di matricola in un archivio che contiene informazioni relative agli studenti di un corso (si suppone che l archivio è ordinato per numero di matricola crescente). Se l elemento cercato si trova nell archivio, il sottoprogramma restituisce al chiamante l indirizzo della cella corrispondente. Si supponga che l archivio sia definito dalla seguente struct: /***************************** inizio programma**********************************/ typedef struct int matricola; char nome[20]; int numeroesami; studente; typedef struct studente stud[max_num_el]; int numst; archiviost; typedef studente *puntastudente; /* studente *ricerca (archiviost a, int matr) */ puntastudente ricerca (archiviost a, int matr) int i; i = 0; while(i<a.numst && a.stud[i].matricola < matr) i++; if(i == a.numst a.stud[i].matricola > matr) return NULL; return &(a.stud[i]); void main() archiviost a; int matricola; - 1 -
2 studente *ptrstud; /* inserimento dati in archivio */ scanf( %d, &matricola); ptrstud = ricerca(a, matricola); if (ptrstud!=null) stampadatistudente(*ptrstud); a) Spiegare perché il programma non è corretto. b) Implementare una versione corretta del programma. Soluzione: a) la funzione ricerca, nel caso di ricerca effettuata con successo, torna l indirizzo di una variabile di tipo studente che verrà distrutta al termine dell esecuzione del sottoprogramma stesso! Dunque, nel programma main, l indirizzo ritornato dalla funzione e assegnato alla variabile ptrstud punta a una zona di memoria il cui contenuto è indefinito. Si osservi la figura qui sotto (vedere figura lucidi Sottoprogrammi parte II del corso). b) puntastudente ricerca (archiviost *a, int matr) int i; i = 0; while(i<a->numst && a->stud[i].matricola < matr) i++; if(i == a->numst a->stud[i].matricola > matr) return NULL; return &(a->stud[i]); La chiamata al sottoprogramma nel main diventa ptrstud = ricerca(&a, matricola); - 2 -
3 Problema: /* Esercizio 2: somma ricorsiva degli interi di un array Scrivere un sottoprogramma ricorsivo che esegue la somma di un insieme di interi memorizzati in un array. */ Soluzione: #include <stdio.h> // per input-output #define MAX_DIM 30 // prototipi dei sottoprogrammi utilizzati (dichiarazione) /* funzione ricorsiva che ritorna la somma di un insieme di interi memorizzati in un array */ int sommainteri(int vettinteri[], int nelementi); void main() /* parte dichiarativa */ int vettinteri[max_dim] = 10, 10, 10, 10, 10, 10; // inizializzazione diretta del vettore int elementisignificativi = 6; int risultato; /* parte esecutiva */ risultato = sommainteri(vettinteri, elementisignificativi); printf("risultato = %d ", risultato); /* definizione dei sottoprogrammi */ int sommainteri(int vettinteri[], int nelementi) // se l'insieme è formato da zero interi => la somma vale zero if (nelementi == 0) return 0; else // altrimenti, il risultato è // l'elemento corrente dell'insieme + // la somma dei restanti elementi (chiamata ricorsiva) dell'insieme nelementi--; return (vettinteri[nelementi] + sommainteri(vettinteri, nelementi)); - 3 -
4 Esercizio 3: tema d esame sulla ricorsione Problema (recupero seconda prova intermedia, 12 febbraio 2003): Si consideri la seguente funzione ricorsiva: void LBD (int n, int * r) if ( n == 0) else *r = 0; LBD(n 1, r); *r =*r + 2; Dato le seguente frammento di codice: int x, y;... x = 3; LBD(x, &y); Indicare il valore assegnato alla variabile y dalla chiamata di LBD. Per giustificare la risposta si rappresenti graficamente lo stato dell esecuzione del programma quando l ultima invocazione della funzione s è attiva. Qual è in generale il valore calcolato da LBD nel secondo parametro come funzione del valore del primo? - 4 -
5 In generale si ha che y=2*x. Libreria String.h: informazioni strcpy e strncpy char *strcpy(char *dest, char *src); char *strncpy(char *dest, char *src, size_t n); DESCRIZIONE La funzione strcpy() copia la stringa src sull'area puntata da dest la quale deve essere sufficientemente ampia ad accogliere tutti i caratteri di src compreso il terminatore '\0'. Le aree src e dest non si devono sovrapporre. La funzione strncpy() e' simile alla funzione strcpy() eccetto che vengono copiati al piu' n caratteri. Attenzione: se strlen(src) >= n su dest non viene inserito il terminatore di fine stringa!!!! VALORE DI RITORNO - 5 -
6 Le funzioni strcpy() e strncpy() ritornano il puntatore alla stringa di destinazione dest. strcat e strncat char *strcat(char *dest, char *src); char *strncat(char *dest, char *src, size_t n); DESCRIZIONE La funzione strcat() concatena la stringa src aggiungendola al termine della stringa dest. La concatenazione avviene copiando la stringa src a partire dal terminatore della stringa desc. La copia di src e' comprensiva del suo terminatore. L'area di memoria puntata da dest deve essere sufficientemente ampia da accogliere entrambe le stringhe ed il terminatore '\0', quindi dest deve essere dimensionata almeno per contenere strlen(dest)+strlen(src)+1 caratteri. La funzione strncat() e' simile alla funzione strcat() ad eccezione che al piu' n caratteri di src sono accodati a dest. dest deve avere dimensione di almeno strlen(dest)+n+1 caratteri. VALORE DI RITORNO Le funzioni strcat() e strncat() ritornano il puntatore alla stringa dest risultante. strcmp e strncmp int strcmp(const char *s1, const char *s2); int strncmp(const char *s1, const char *s2, size_t n); DESCRIZIONE La funzione strcmp() effettua il confronto fra le due stringhe s1 e s2. La funzione strncmp() limita il confronto fra le due stringhe s1 e s2 al piu' a n caratteri. VALORE DI RITORNO Le funzioni strcmp() e strncmp() ritornano un intero minore, uguale o maggiore di 0 a seconda che s1 sia (o i primi n caratteri siano) rispettivamente minore, uguale o maggiore di s
7 Problema: Esercizio 4: concatenazione di due stringhe Si scriva un programma che, ricevute in ingresso due stringhe str1 e str2, ne esegua la concatenazione (str1str2) e ne stampi a video il risultato. Soluzione: #include <stdio.h> #define MAX_STR 100 char *strcat(char s1[], char s2[]) int i,j; for(i=0; s1[i]!='\0'; i++) ; for(j=0; s2[j]!='\0'; j++) s1[i+j]=s2[j]; s1[i+j]='\0'; return s1; void main() char stringa1[max_str]; char stringa2[max_str]; char *p; printf("inserisci stringa 1: "); scanf("%s", stringa1); printf("\n Inserisci stringa 2: "); scanf("%s", stringa2); p = strcat(stringa1, stringa2); printf("\n Risultato: %s ", p); Esercizio 5: inserimento ordinato in una lista Problema: parte a) Si implementi la procedura di inserimento ordinato in una lista
8 L intestazione della procedura da realizzare è la seguente: void inserisciinordine(lista* l, TipoDato dato); I tipi Lista e TipoDato sono così definiti: typedef struct int a; int b; TipoDato; typedef enum falso, vero boolean; typedef struct El TipoDato info; struct El *next; ElemLista; typedef ElemLista *Lista; Si assuma che la lista passata per indirizzo è ordinata. Non è richiesto alcun controllo per appurare che il dato da inserire sia già nella lista. Per facilitare la realizzazione della procedura, è possibile utilizzare la seguente funzione int comparatipodato(tipodato a, TipoDato b), che confronta due variabili di tipo TipoDato e restituisce: - 0 se le due variabili sono uguali; - un valore < 0 se a è < b; - un valore > 0 se a è > b. Non è richiesto di scrivere il codice di tale funzione. Parte b) Si indichi come la procedura dovrebbe essere invocata da un programma main come quello che segue, che dichiara una variabile lista di tipo Lista e una variabile contenutonodo di tipo TipoDato da inserire nella lista. void main() Lista lista; TipoDato contenutonodo; // chiamare la procedura Soluzione: a) void inserisciinordine(lista *l, TipoDato dato) Lista punt, puntcorrente, puntprecedente; puntcorrente = *l; puntprecedente = NULL; while (puntcorrente!= NULL && comparatipodato(dato, puntcorrente->info) > 0 ) puntprecedente = puntcorrente; puntcorrente = puntcorrente->next; punt = malloc(sizeof(elemlista)); punt->info = dato; punt->next = puntcorrente; // questa condizione è verificata solo se l inserimento avviene in testa. if(puntprecedente = = NULL) *l = punt; else puntprecedente->next = punt; - 8 -
9 b) void main() Lista lista; TipoDato contenutonodo; //chiamata corretta inserisciinordine(&lista, contenutonodo); - 9 -
STRINGHE: ARRAY DI CARATTERI! a p e \0
STRINGHE: ARRAY DI CARATTERI! Una stringa di caratteri in C è un array di caratteri terminato dal carattere '\0' s a p e \0 0 1 2 3 Un vettore di N caratteri può dunque ospitare stringhe lunghe al più
DettagliEsercizio 2 (punti 7) Dato il seguente programma C: #include <stdio.h> int swap(int * nome, int length);
Fondamenti di Informatica L-A (A.A. 004/005) - Ingegneria Informatica Prof.ssa Mello & Prof. Bellavista I Prova Intermedia del 11/11/004 - durata h - COMPITO B Esercizio 1 (punti 1) Una associazione di
DettagliIl blocco che costituisce il corpo di una funzione/procedura può contenere dichiarazioni di variabili. Esempio:
Variabili locali Il blocco che costituisce il corpo di una funzione/procedura può contenere dichiarazioni di variabili. void leggivettore(int v[], int dim) int i; /* i E UNA VARIABILE LOCALE */ for (i
DettagliEsercizio 1: Puntatori impiegati che sono manager
Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 10 Esercitazione: 25 gennaio 2006 Esercizi di riepilogo Problema: Esercizio 1: Puntatori impiegati che sono manager Si
DettagliInformatica 1. Corso di Laurea Triennale in Matematica. Gianluca Rossi
Informatica 1 Corso di Laurea Triennale in Matematica Gianluca Rossi gianluca.rossi@uniroma2.it Dipartimento di Matematica Università di Roma Tor Vergata 11: Stringhe (www.informatica-uno.blogspot.com)
DettagliIntroduzione al C. Unità 8 Stringhe
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Introduzione al C Unità 8 Stringhe D. Bloisi, A. Pennisi, S. Peluso, S. Salza Sommario Unità 8 Array di
DettagliEsercizio 1 Liste: calcolo perimetro di un poligono
Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 12 Esercitazione: 28 gennaio 2005 Esercizi su liste, ricorsione, file. Scaletta Esercizio 1 Liste: calcolo perimetro di
DettagliStrutture Dinamiche. Fondamenti di Informatica
Strutture Dinamiche Fondamenti di Informatica 1 Indice Allocazione e de-allocazione di memoria Liste e loro gestione Companies, srl 2 Allocazione e cancellazione di memoria malloc (sizeof (TipoDato));
DettagliCaratteri e stringhe
Caratteri e stringhe Caratteri Dato che un computer può memorizzare esclusivamente sequenze di bit, per memorizzare un carattere (e quindi testi) è necessario stabilire una convenzione che associa a un
Dettagliacquisizione numero elementi del primo insieme e del secondo insieme, finché elprimoinsieme oppure elsecondoinsieme > EL_INS
Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 3 Esercitazione: 20 ottobre 2004 Esercizi su array e applicazione delle regole di conversione di tipo Esercizi presenti:
DettagliELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli
ELEMENTI DI INFORMATICA L-B Ing. Claudia Chiusoli Materiale Lucidi delle lezioni Date degli appelli Testi di esami precedenti Informazioni e contatti http://www.lia.deis.unibo.it/courses/ Programma del
DettagliPuntatori. Un puntatore contiene un numero che indica la locazione di memoria dove è presente la variabile puntata
Puntatori int i = 10; int * pi = &i; pi i = 10 116 int * pi = pi contiene un informazione che mi permette di accedere ( puntare ) ad una variabile intera Un puntatore contiene un numero che indica la locazione
DettagliLaboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 18 31/03/2014
Laboratorio di Programmazione 1 1 Docente: dr. Damiano Macedonio Lezione 18 31/03/2014 Funzioni: Dichiarazione e Definizione La dichiarazione di una funzione serve a comunicare al compilatore quali sono
DettagliCARATTERI E STRINGHE Caratteri e stringhe Funzioni della libreria standard I/O Funzioni della libreria di gestione delle stringhe
CARATTERI E STRINGHE Caratteri e stringhe Funzioni della libreria standard I/O Funzioni della libreria di gestione delle stringhe Caratteri e stringhe Caratteri Sono i blocchi costitutivi di ogni programma:
DettagliDispensa 13 CORSO DI PROGRAMMAZIONE A.A CORSO DI LAUREA IN INGEGNERIA E SCIENZE INFORMATICHE CESENA. Laboratorio
CORSO DI LAUREA IN INGEGNERIA E SCIENZE INFORMATICHE CESENA CORSO DI PROGRAMMAZIONE A.A. 2014-15 Dispensa 13 Laboratorio Dott. Mirko Ravaioli e-mail: mirko.ravaioli@unibo.it http://www.programmazione.info
DettagliARRAY E STRINGHE. ESERCIZIO 2 Scrivere un programma che calcola il numero di doppie e di dittonghi (2 vocali vicine) presenti in una stringa.
3 ITI - a.s. 2007-2008 Compiti di Informatica ESTATE 2008 ARRAY E STRINGHE Scrivere una funzione che carica da tastiera un array di n elementi e lo stampa invertendo il primo elemento con l'ultimo, il
Dettagligiapresente( ) leggi( ) char * strstr(char * cs, char * ct) NULL
Materiale di ausilio utilizzabile durante l appello: tutto il materiale è a disposizione, inclusi libri, lucidi, appunti, esercizi svolti e siti Web ad accesso consentito in Lab06. L utilizzo di meorie
DettagliComplementi. - Ridefinizione di tipo - - Costrutto switch - - Programmazione su più file - - Parametri della funzione main - Funzione system -
Complementi - Ridefinizione di tipo - - Costrutto switch - - Programmazione su più file - - Parametri della funzione main - Funzione system - Università degli Studi di Brescia Prof. Massimiliano Giacomin
DettagliPolitecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prima prova in itinere COGNOME E NOME. 13 novembre 2006 RIGA COLONNA MATRICOLA
Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prima prova in itinere COGNOME E NOME 13 novembre 2006 RIGA COLONNA MATRICOLA Il presente plico pinzato, composto di sei fogli, deve
DettagliEsercitazione 6. Array
Esercitazione 6 Array Arrays Array (o tabella o vettore): è una variabile strutturata in cui è possibile memorizzare un numero fissato di valori tutti dello stesso tipo. Esempio int a[6]; /* dichiarazione
Dettagli4 Le liste collegate 4.0. Le liste collegate. 4 Le liste collegate Rappresentazione di liste 4.1 Rappresentazione di liste
4 Le liste collegate 4.0 Le liste collegate c Diego Calvanese Fondamenti di Informatica Corso di Laurea in Ingegneria Elettronica A.A. 2001/2002 4.0 0 4 Le liste collegate Rappresentazione di liste 4.1
DettagliEsercizio 1: calcolo del massimo di una sequenza (versione 1)
Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 2 Esercitazione: 12 ottobre 2005 Primi esercizi in C Esercizio 1: calcolo del massimo di una sequenza (versione 1) Si legga
DettagliPROVA SCRITTA DEL CORSO DI CORSO DI LAUREA IN INGEGNERIA BIOMEDICA ED ELETTRICA 17/2/2009
PROVA SCRITTA DEL CORSO DI CORSO DI LAUREA IN INGEGNERIA BIOMEDICA ED ELETTRICA 7/2/2009 MOTIVARE IN MANIERA CHIARA LE SOLUZIONI PROPOSTE A CIASCUNO DEGLI ESERCIZI SVOLTI ESERCIZIO (5 punti) Esprimere
DettagliPuntatori. Obiettivi: Richiamare quanto noto sui puntatori dal modulo A Presentare l analogia tra puntatori e vettori e l aritmetica dei puntatori
Puntatori Obiettivi: Richiamare quanto noto sui puntatori dal modulo A Presentare l analogia tra puntatori e vettori e l aritmetica dei puntatori 1 Il puntatore Un tipo puntatore è un tipo scalare per
DettagliI puntatori. Un puntatore è una variabile che contiene l indirizzo di un altra variabile. puntatore
I puntatori Un puntatore è una variabile che contiene l indirizzo di un altra variabile. puntatore...... L operatore & fornisce l indirizzo di un oggetto: p = &c; assegna a p l indirizzo di c, i.e., p
DettagliAppello di Informatica B
Politecnico di Milano Facoltà di Ingegneria Industriale 19 febbraio 2004 Appello di Informatica B Prof. Angelo Morzenti - Prof. Vincenzo Martena Cognome e nome: Matricola: Tipo di prova: recupero I prova
DettagliArray. Maurizio Palesi Salvatore Serrano. In C si possono definire tipi strutturati Vi sono due costruttori fondamentali
MASTER Information Technology Excellence Road (I.T.E.R.) Array Maurizio Palesi Salvatore Serrano Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 1 Tipi di dato stutturati In C si possono
DettagliStringhe e allocazione dinamica della memoria
Stringhe e allocazione dinamica della memoria Esercizio Scrivere un programma strings.c che legge da standard input una sequenza di parole separate da uno o più spazi, e stampa le parole lette, una per
Dettagli1 MANIPOLAZIONE DI STRINGHE ZERO-TERMINATE
1 MANIPOLAZIONE DI STRINGHE ZERO-TERMINATE 1.1 INTRODUZIONE In informatica una stringa è definita come una sequenza di caratteri, usualmente utilizzata per rappresentare informazioni in formato testuale.
DettagliRIGA COLONNA MATRICOLA. Il presente plico contiene 3 esercizi e deve essere debitamente compilato con cognome e nome, numero di matricola.
Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Appello 29 Giugno 2015 COGNOME E NOME RIGA COLONNA MATRICOLA Spazio riservato ai docenti Il presente plico contiene 3 esercizi e deve
DettagliLab 10 Gestione file di testo
Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni Lab 10 Gestione file di testo Lab15 1 Esercizio 1 n Realizzare un programma che, aperto un file di testo di nome
DettagliProgrammazione I - Laboratorio
Programmazione I - Laboratorio Esercitazione 3 - Array Gianluca Mezzetti 1 Paolo Milazzo 2 1. Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ mezzetti mezzetti di.unipi.it 2. Dipartimento
DettagliInformatica A a.a. 2010/ /02/2011
Politecnico di Milano Dipartimento di Elettronica e Informazione Informatica A a.a. 2010/2011 23/02/2011 Cognome Matricola Nome Firma dello studente Istruzioni Non separate questi fogli. Scrivete la soluzione
DettagliEsempio di Prova Scritta
Esempio di Prova Scritta La prova scritta è composta da alcuni esercizi per un totale di 10 punti (durata:circa 1h15 ). Le tipologie di esercizi possibili comprendono:! sintesi di una funzione ricorsiva/iterativa,
DettagliGestione delle stringhe in C
Gestione delle stringhe in C 1 Generalità Una stringa è un vettore di caratteri il cui ultimo elemento è un carattere terminatore (o di fine stringa), codificato dal carattere di codice 0 e rappresentato
DettagliIl linguaggio C. Notate che...
Il linguaggio C Notate che... 1 Il C è un linguaggio a blocchi int main (void) { blocco } 2 Il C è un linguaggio a blocchi (2) Non è possibile mischiare dichiarazioni e comandi! int main (void) { } Dichiarazione
Dettaglia.a Codice corso: 21012, 22010
ESERCIZIO 1 Scrivere un sotto-programma in linguaggio C++ che ricevuta una matrice quadrata come parametro restituisca al chiamante un valore booleano indicante se la matrice è simmetrica oppure no. Scrivere
DettagliFondamenti di Informatica T-1, 2010/2011 Modulo 2. Prova d Esame 5A di Mercoledì 13 Luglio 2011 tempo a disposizione 2h
Prima di cominciare: si scarichi dal sito http://esamix.labx il file StartKit5A.zip contenente i file necessari (progetto Visual Studio ed eventuali altri file di esempio). Avvertenze per la consegna:
DettagliLinguaggio C. Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore.
Linguaggio C Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore. 1 Funzioni Generalizzazione del concetto di funzione algebrica: legge che associa a valori delle variabili
DettagliGestione di stringhe. Le stringhe in C/C++
Alessio Bechini - Corso di - Gestione di stringhe Parte del materiale proposto è stato gentilmente fornito da G. Lipari Le stringhe in C/C++ In C e in C++ non esiste un vero e proprio tipo stringa. Una
DettagliProf. E. Occhiuto INFORMATICA 242AA a.a. 2010/11 pag. 1
Operazioni sulle liste Definiamo una serie di procedure e funzioni per operare sulle liste. Usiamo liste di interi per semplicità, ma tutte le operazioni sono realizzabili in modo del tutto analogo su
DettagliStrutture dati dinamiche
Strutture dati dinamiche Gestione della memoria La gestione statica della memoria è molto efficiente ma non è priva di inconvenienti È rigida rispetto a informazioni la cui dimensione non è nota a priori
DettagliESAME DI FONDAMENTI DI INFORMATICA I ESAME DI ELEMENTI DI INFORMATICA. 21 Gennaio 1998
21 Gennaio 1998 PROVA PRATICA Si scriva un programma C (BASIC per gli studenti di Elementi di Informatica) che: a) Legga da terminale una sequenza di caratteri terminati dal carattere '*' (un carattere
DettagliCorso di Fondamenti di Informatica. Puntatori e Allocazione Dinamica
Corso di Fondamenti di Informatica Puntatori e Allocazione Dinamica I puntatori (Richiamo) Il C++ prevede puntatori a dati di qualsiasi natura, semplici o strutturati e puntatori a funzione. In particolare
DettagliDefinizione Allocazione e deallocazione di variabili Allocazione e deallocazione di vettori
Università degli Studi di Cagliari Corso di Laurea in Ingegneria Biomedica (Industriale), Chimica, Meccanica, Elettrica FONDAMENTI DI INFORMATICA 1 http://www.diee.unica.it/~marcialis/fi1 A.A. 2010/2011
DettagliStringhe. In C le stringhe ben formate sono in realtà array di caratteri terminati sempre da un carattere speciale, \0, detto anche
Fondamenti di Informatica T-1 modulo 2 Laboratorio 04: stringhe 1 Stringhe In C le stringhe ben formate sono in realtà array di caratteri terminati sempre da un carattere speciale, \0, detto anche terminatore
DettagliFONDAMENTI DI INFORMATICA
Politecnico di Milano COGNOME E NOME Facoltà di Ingegneria Industriale FONDAMENTI DI INFORMATICA Seconda prova in itinere 13 Febbraio 2017 Primo Appello (Laureandi) 13 Febbraio 2017 RIGA COLONNA MATRICOLA
DettagliBreve riepilogo della puntata precedente:
Breve riepilogo della puntata precedente: 1. In C, il passaggio dei parametri alle funzioni avviene sempre per copia, ovvero il valore del parametro viene copiato all'interno della variabile che rappresenta
DettagliCorso di Laurea in Matematica Corso di Informatica Prova d Esame del 02/02/2010
Esercizio 1. Si deve modellare con una classe Java il contenuto di un portamonete, con delle opportune semplificazioni. Le monete da considerare sono di soli 4 tagli: 10, 20, 50 e 100 centesimi (cioè 1
DettagliLe stringhe. Le stringhe
Informatica: C++ Gerboni Roberta Stringhe di caratteri (esempi di utilizzo dei vettori) Nel linguaggio C++ una stringa è semplicemente un vettore di caratteri Vettori di caratteri La stringa "hello" è
DettagliLaboratorio di Informatica
Liste semplici (semplicemente linkate) Una lista semplice e costituita da nodi Laboratorio di Informatica 7. Strutture complesse di dati in C++ Ogni nodo e una struttura che contiene : Dati Un riferimento
DettagliTIPI DI DATO. I tipi di dato si differenziano in scalari e strutturati. tipi di dato. costruttori predefiniti. definiti dall'utente
TIPI DI DATO I tipi di dato si differenziano in scalari e strutturati tipi di dato scalari strutturati puntatori predefiniti int char float double definiti dall'utente costruttori predefiniti enum [] struct
DettagliESAME DI FONDAMENTI DI INFORMATICA I ESAME DI ELEMENTI DI INFORMATICA. 28 Gennaio 1999 PROVA SCRITTA
28 Gennaio 1999 PROVA SCRITTA Esercizio 1 Un elaboratore rappresenta numeri interi in complemento a due su 8 bit e numeri reali in utilizzando un byte per la mantissa normalizzata e un byte per l esponente
DettagliFunzioni e. Alessandra Giordani Mercoledì 16 maggio 2012
Funzioni e passaggio parametri Alessandra Giordani agiordani@disi.unitn.it Mercoledì 16 maggio 2012 http://disi.unitn.it/~agiordani/ Cosa vedremo oggi Le funzioni Il passaggio dei parametri Le dichiarazioni
DettagliPolitecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prova in itinere del 8 Novembre 2010 COGNOME E NOME RIGA COLONNA MATRICOLA
Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prova in itinere del 8 Novembre 2010 COGNOME E NOME RIGA COLONNA MATRICOLA Spazio riservato ai docenti Il presente plico contiene 4
DettagliIl presente plico contiene 3 esercizi e deve essere debitamente compilato con cognome e nome, numero di matricola.
Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Appello 1 settembre 2014 COGNOME E NOME RIGA COLONNA MATRICOLA Spazio riservato ai docenti Il presente plico contiene 3 esercizi e
DettagliInformatica B
Informatica B 2016-2017 Esercitazione 8 Array e Stringhe Alessandro A. Nacci alessandro.nacci@polimi.it - www.alessandronacci.it 1 Esercizio 1: stringhe - vocali consecutive Scrivere un programma che data
DettagliFunzioni, Stack e Visibilità delle Variabili in C
Funzioni, Stack e Visibilità delle Variabili in C Programmazione I e Laboratorio Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7
Dettaglivoid concatenastringhe (char st1[], char st2[], char stout[]) { int n=0,s=0; // dichiarazione variabili con inizializzazioni
// funzione che concatena due stringhe void concatenastringhe (char st1[], char st2[], char stout[]) int n=0,s=0; // dichiarazione variabili con inizializzazioni while (st1[n] = '\0') stout[n++] = st1[n];
Dettagli7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari
7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa
DettagliScrittura formattata - printf
Esercizi su Input/Output con formato FormattedIO 1 Scrittura formattata - printf Funzione printf int printf ( , ) La funzione restituisce un valore intero uguale ai caratteri
DettagliLinguaggio C. tipi di dati definiti dall utente. Università degli Studi di Brescia. Docente: Massimiliano Giacomin
Linguaggio C tipi di dati definiti dall utente Università degli Studi di Brescia Docente: Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 Tipi di dati in C Predefiniti
DettagliL Allocazione Dinamica della Memoria
L Allocazione Dinamica della Memoria Maurizio Palesi DIIT Università di Catania Viale Andrea Doria 6, 95125 Catania mpalesi@diit.unict.it http://www.diit.unict.it/users/mpalesi Sommario Questo documento
DettagliIl linguaggio C. Puntatori e dintorni
Il linguaggio C Puntatori e dintorni 1 Puntatori : idea di base In C è possibile conoscere e denotare l indirizzo della cella di memoria in cui è memorizzata una variabile (il puntatore) es : int a = 50;
DettagliLaboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007
Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007 Dott.Davide Di Ruscio Dipartimento di Informatica Università degli Studi di L Aquila Lezione del 08/05/08 Nota Questi lucidi sono tratti
DettagliEsercizi C su array e matrici
Politecnico di Milano Esercizi C su array e matrici Massimo, media e varianza,, ordinamento, ricerca e merge, matrice simmetrica, puntatori Array Array o vettore Composto da una serie di celle int vett[4]
DettagliFondamenti di Informatica T-1
Fondamenti di Informatica T-1 Argomenti di questa esercitazione Stringhe Strutture ESERCIZIO 1 (stringhe) Scrivere una funzione che date tre stringhe A, B e C concateni in C il contenuto di A e B e restituisca
DettagliCos è una stringa (1) Stringhe. Leggere e scrivere stringhe (1) Cos è una stringa (2) DD Cap. 8 pp. 305-341 KP Cap. 6 pp. 241-247
Cos è una stringa (1) Stringhe DD Cap. 8 pp. 305-341 KP Cap. 6 pp. 241-247 Una stringa è una serie di caratteri trattati come una singola unità. Essa potrà includere lettere, cifre, simboli e caratteri
DettagliFondamenti di Informatica T. Linguaggio C: i puntatori
Linguaggio C: i puntatori Il puntatore E` un tipo di dato, che consente di rappresentare gli indirizzi delle variabili allocate in memoria. Dominio: Il dominio di una variabile di tipo puntatore è un insieme
DettagliRICERCA DI UN ELEMENTO
RICERCA DI UN ELEMENTO Si legga da tastiera un array di N elementi (N stabilito dall utente) Si richieda un elemento x il programma deve cercare l elemento x nell array Se l elemento è presente, deve visualizzare
DettagliPolitecnico di Torino Sede di Alessandria Corso di informatica Programmazione in c: introduzione. e mail: sito: users.iol.
Politecnico di Torino Sede di Alessandria Corso di informatica Programmazione in c: introduzione prof. Lorenzo Porcelli e mail: genna18@iol.it sito: users.iol.it/genna18 Risoluzione di un problema Dato
DettagliCompito di Fondamenti di Informatica
Compito di Fondamenti di Informatica In un magazzino viene utilizzato un archivio informatico, nel quale vengono memorizzate le informazioni relative ai prodotti contenuti nel magazzino e che ne permette
DettagliEsercizio 1. Esercizio 2
Esercizio 1 Realizzare un programma che, aperto un file di testo di nome Prova.txt in modalità scrittura, provveda a leggere da input delle parole separate da spazi (stringhe di al più 63 caratteri) e
DettagliLinguaggio C: le funzioni. Introduzione e sintassi
ISIS "Guido Tassinari" di Pozzuoli Indirizzo Informatico - Articolazione Informatica Informatica Prof. A.S. 2012/2013 Linguaggio C: le funzioni. Introduzione e sintassi 21/10/2012 Introduzione Spesso alcuni
DettagliL'allocazione dinamica della memoria
L'allocazione dinamica della memoria Fulvio CORNO - Matteo SONZA REORDA Dip. Automatica e Informatica Politecnico di Torino I puntatori Le variabili di tipo puntatore permettono di accedere alla memoria
DettagliI puntatori e l allocazione dinamica di memoria
I puntatori e l allocazione dinamica di memoria L allocazione delle variabili Allocazione e rilascio espliciti di memoria Le funzioni malloc e free 2 2006 Politecnico di Torino 1 Allocare = collocare in
DettagliINFORMATICA DI BASE Linguaggio C Prof. Andrea Borghesan
INFORMATICA DI BASE Linguaggio C Prof. Andrea Borghesan venus.unive.it/borg borg@unive.it Ricevimento lunedì, prima o dopo lezione 1 Le funzioni in C Le funzioni vengono utilizzate per 3 motivi: Riusabilità
DettagliIntroduzione alla programmazione ricorsiva
Introduzione alla programmazione ricorsiva chiamata ricorsiva di sottoprogrammi un sottoprogramma P chiama lo stesso P direttamente o indirettamente (e.g., P chiama Q che chiama P) sembra circolo vizioso
DettagliInformatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 17/01/2014/ Foglio delle domande / VERSIONE 1
Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 17/01/2014/ Foglio delle domande/ VERSIONE 1 1) L approccio con cui si studia un sistema focalizzandosi solo sul rapporto tra input e output si chiama
DettagliImplementazione di Liste puntate
Laboratorio di Algoritmi e Strutture Dati Aniello Murano http://people.na.infn.it people.na.infn.it/~murano/ 1 Implementazione di Liste puntate 2 1 Indice Liste puntate semplici: Gli elementi sono logicamente
DettagliAPPELLO SCRITTO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO 2013 2014 20.VI.2014
APPELLO SCRITTO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO 2013 2014 20.VI.2014 VINCENZO MARRA Indice Esercizio 1 1 Leggere stringhe e caratteri 1 Esercizio 2 2
DettagliCorso di Laurea in Matematica. LABORATORIO DI INFORMATICA Compito Totale - 21 Marzo Soluzione degli Esercizi
Corso di Laurea in Matematica LABORATORIO DI INFORMATICA 2002-2003 Compito Totale - 21 Marzo 2003 degli Esercizi Esercizio 1. (versione 1) i) Dato il numero binario 1010101111, dire qual è la sua rappresentazione
DettagliFondamenti di Informatica T-1 Modulo 2. Obiettivo di questa esercitazione. Files Allocazione dinamica della memoria
Fondamenti di Informatica T-1 Modulo 2 Obiettivo di questa esercitazione Files Allocazione dinamica della memoria 2 1 1 Esercizio 1 (file) Realizzare un programma che, aperto un file di testo di nome Prova.txt
DettagliPILE E CODE. Pile (stack):
PILE E CODE Sono tipi di dato che consentono di rappresentare sequenze di elementi in cui gli inserimenti e le cancellazioni sono eseguiti con particolari modalita` (politiche o discipline). Pile (stack):
DettagliESERCIZI DI PROGRAMMAZIONE DA TEMI D ESAME - vettori -
ESERCIZI DI PROGRAMMAZIONE DA TEMI D ESAME - vettori - Elementi di Informatica e Programmazione Università di Brescia 1 Esercizio 1 Sviluppare un programma che acquisisce dall utente al massimo 50 numeri
DettagliInserimento di un elemento in coda. quale va collegato quello nuovo. ultimo. *lista 8 3. aux. ultimo. *lista 8 3. aux
Inserimento di un elemento in coda Se la è vuota coincide con l inserimento in testa = è necessario il passaggio per indirizzo! Se la non è vuota, bisogna scandirla fino in fondo = dobbiamo usare un puntatore
DettagliEsercitazione 10. Strutture ed Enumerazioni. Allocazione dinamica di memoria
Esercitazione 10 Strutture ed Enumerazioni Allocazione dinamica di memoria ESERCIZIO Scrivere una funzione che, dato un array di interi bidimensionale di dimensione n n, calcoli e stampi la somma degli
DettagliProgrammazione a moduli in C
Funzioni Programmazione a moduli in C Politecnico di Milano Motivazioni Alcuni programmi possono essere molto, molto complessi E utile poter partizionare il lavoro di progettazione in sottolavori più semplici
DettagliLinguaggio C: puntatori
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica A - GES Prof. Plebani A.A. 2006/2007 Linguaggio C: puntatori La presente dispensa e da utilizzarsi ai soli fini didattici previa
DettagliPuntatori. Fondamenti di Programmazione
Puntatori Fondamenti di Programmazione Funzioni utili stdio.h c = getchar(); restituisce un carattere letto da tastiera. Equivale a: scanf( %c, &c); putchar(c); scrive un carattere sullo schermo. Equivale
DettagliCorso di Fondamenti di Informatica
Corso di Fondamenti di Informatica Il tipo puntatore; l allocazione dinamica della memoria Claudio De Stefano - Corso di Fondamenti di Informatica 1 puntatori una variabile di tipo puntatore al tipo x
DettagliRecord in C: il costruttore struct.
Record in C: il costruttore struct. Le variabili di tipo record e i nuovi tipi record si dichiarano in C tramite il costruttore di tipo struct:. ::= ;
DettagliConsideriamo un vettore allocato dinamicamente
Libreria per per la la gestione/manipolazione dei dei vettori Consideriamo un vettore allocato dinamicamente int * v; v = (int *) malloc (n * sizeof (int) ); Conversione di tipo da void * a int * Numero
DettagliStrutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1)
Strutture Strutture e Unioni DD cap.10 pp.379-391, 405-406 KP cap. 9 pp.361-379 Strutture Collezioni di variabili correlate (aggregati) sotto un unico nome Possono contenere variabili con diversi nomi
DettagliCorso di Informatica 1 Esercitazione n. 4
Corso di Informatica 1 Esercitazione n. 4 Marco Liverani Esercizio n. 1 Letti in input due numeri interi n > 0 e k > 1 costruire un array A di n numeri interi casuali minori di 100 che non siano multipli
DettagliLinguaggio C I puntatori
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Linguaggio C I puntatori 2001 Pier Luca Montessoro - Davide Pierattoni
DettagliEsercitazione 5. Procedure e Funzioni Il comando condizionale: switch
Esercitazione 5 Procedure e Funzioni Il comando condizionale: switch Comando: switch-case switch (espressione) { /* espressione deve essere case costante1: istruzione1 di tipo int o char */ [break]; case
DettagliFunzioni e Procedure
Funzioni e Procedure Alcuni Esempi: #include void h (int X, int *Y); main() int A,B; A=0; B=0; h(a, &B); /*B e un parametro di uscita*/ printf("\n %d \t %d", A, B); void h (int X, int *Y) X=X+1;
DettagliPROGRAMMI LINGUAGGIO C
PROGRAMMI IN LINGUAGGIO C Corso di Programmazione Modulo B Prof. GIULIANO LACCETTI Studentessa Bellino Virginia Matr. 408466 Corso di Diploma in Informatica http://www.dicecca.net Indice 1. Package per
DettagliIndice PARTE A. Prefazione Gli Autori Ringraziamenti dell Editore La storia del C. Capitolo 1 Computer 1. Capitolo 2 Sistemi operativi 21 XVII XXIX
Indice Prefazione Gli Autori Ringraziamenti dell Editore La storia del C XVII XXIX XXXI XXXIII PARTE A Capitolo 1 Computer 1 1.1 Hardware e software 2 1.2 Processore 3 1.3 Memorie 5 1.4 Periferiche di
Dettagli