Fondamenti di Informatica Ingegneria Meccanica, Elettrica, Gestionale Prova scritta del 13 Aprile 2004

Documenti analoghi
si considerino le seguenti implementazioni dell algoritmo di ricerca di un elemento all interno di un vettore v: 1) 2)

Pag 79: ... int n; void P(int x) { x++; printf("%d", n); printf("%d", x); } main() { n=3; P(n); printf("%d", n); }

Fondamenti di Informatica Ingegneria Meccanica, Elettrica, Gestionale Prova scritta del 12 Luglio 2004

FONDAMENTI DI INFORMATICA. Corso di Laurea in Ingegneria Meccanica. Università degli Studi di Firenze A. A APPUNTI INTEGRATIVI

Alcuni metodi di ordinamento. Algoritmi di ordinamento. Ordinamento per inserimento diretto. Ordinamento per inserimento diretto

3. 1. Capitolo 4. Reti logiche. Logica e Reti logiche. Il modello strutturale delle reti logiche. 4.1 Funzioni, espressioni e schemi logici

Scrivere una funzione Octave con parametri a, b e p che esegue le seguenti operazioni:

Fisica Generale - Modulo Fisica I Ingegneria Meccanica - Edile - Informatica Esercitazione 1 RAPPRESENTAZIONE E COMPOSIZIONE DI VETTORI

Elementi Finiti SPRING, TRUSS, BEAM

Ottimizzazione nella gestione dei progetti Capitolo 5: programmazione multiperiodale modello di flusso CARLO MANNINO

Fondamenti di Informatica Ingegneria Meccanica, Elettrica, Gestionale Prova scritta del 13 Aprile 2004

Le Matrici. 001 ( matrice unità)

Algoritmi di Ordinamento

Definiamo ora alcuni vettori particolarmente importanti detti versori.

George Boole ( )

Circuiti combinatori notevoli e circuiti aritmetici

Determinanti e caratteristica di una matrice (M.S. Bernabei & H. Thaler

Valutazione di una espressione. Espressioni. Espressioni semplici: variabili. Espressioni semplici: costanti

SPAZI VETTORIALI. 1. Spazi e sottospazi vettoriali

Grafo diretto Università degli Studi di Milano

Grafi: cammini minimi

Lezioni di Ricerca Operativa. Corso di Laurea in Informatica ed Informatica Applicata. Università di Salerno. Lezione n 3

Politecnico di Milano - Facoltà di Ingegneria INFORMATICA A - Corso per allievi GESTIONALI - Prof. C. SILVANO A. A. 2003/ novembre 2003

Dove siamo. Gli array - II. Array bidimensionali (matrici) Oggi. Array bidimensionali (matrici) Sintassi Java. Stefano Mizzaro 1

Il lemma di ricoprimento di Vitali

Progettazione di Algoritmi

{ 1, 2,3, 4,5,6,7,8,9,10,11,12, }

LABORATORIO DI FONDAMENTI DI INFORMATICA DIAGRAMMI DI FLUSSO E CODIFICA IN C DEGLI ALGORITMI

Puntatori e gestione dinamica della memoria

Le grandezze scalari e le grandezze vettoriali

2 Numeri reali. M. Simonetta Bernabei & Horst Thaler

IEIM Esercitazione 1I Array. Alessandro A. Nacci -

5.4 Il teorema fondamentale del calcolo integrale

Linguaggio C: Espressioni

Linguaggio C. Condizioni composte (operatori logici)

Matematiche Complementari 25 gennaio 2011

Traduzione di espressioni in assembly Motorola 68000

Programma di matematica Prof.ssa Tacchi Lucia Anno scolastico 2017/2018 classe I A

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 17/01/2014/ Foglio delle domande / VERSIONE 1

(*lista == NULL (*lista)->info >= elem) accede al campo next di *lista solo se *lista non e' NULL. */ #include <stdio.h> #include <stdlib.

Unità Didattica 2 Linguaggio C. Espressioni, Operatori e Strutture linguistiche per il controllo del flusso

Introduzione. Punti e vettori. Spazio Vettoriale. Spazio affine. Linea in uno spazio affine

PREFERENZE COME RELAZIONI D ORDINE

Algebra delle Matrici

AXO Architettura dei Calcolatori e Sistemi Operativi. calcolo delle espressioni

B8. Equazioni di secondo grado

a cura di Luca Cabibbo e Walter Didimo

IEIM Esercitazione II Elementi di programmazione C. Alessandro A. Nacci -

Vettori e scalari. Grandezze scalari. Grandezze vettoriali

Linguaggi di Programmazione Corso C. Parte n.5 Automi a Stati Finiti. Nicola Fanizzi

Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prova in itinere del 26 Novembre 2014 COGNOME E NOME RIGA COLONNA MATRICOLA

acuradi Luca Cabibbo e Walter Didimo Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 1

Oscillatore armonico unidimensionale

Teoria dei grafi: ricerca di percorsi a minimo costo Ing. Valerio Lacagnina

MATEMATICA Classe Prima

MATRICI E DETERMINANTI CENNI SUI SISTEMI LINEARI. Angela Donatiello 1

σ a σ R σ S σ N σ LF Calcolo a fatica oligociclica di componenti meccanici Tensione alterna La Curva di Wöhler N Numero di cicli lg N

Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prova in itinere del 26 Novembre 2014 COGNOME E NOME RIGA COLONNA MATRICOLA

IL CONTRIBUTO DEI GRECI. A = b. h. Parallelogramma h. h b

Istruzioni iterative (o cicliche)

Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prova in itinere del 26 Novembre 2014 COGNOME E NOME RIGA COLONNA MATRICOLA

Corso di Informatica Medica Esercitazione 1I ! Alessandro A. Nacci - alessandronacci.com

Circuiti digitali notevoli: ALU

Vettori. Vettori. Vettori in Matematica. Grandezze Fisiche

Laurea triennale in Scienze della Natura a.a. 2009/2010. Regole di Calcolo

Istruzioni di controllo

Organizzazione della lezione

Corso di Fondamenti di Informatica Macroarea di Ingegneria 2017/18. Tutor: prof. Francesco De Vincenzi

Appunti di Matematica 1 - I polinomi - Polinomi. I vari monomi che compongono il polinomio si chiamano termini del polinomio.

Il moto rettilineo uniformemente accelerato è un moto che avviene su una retta con accelerazione costante. a = costante

Linguaggio C: Espressioni

SUGLI INSIEMI. 1.Insiemi e operazioni su di essi

Algoritmi su Array. Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna

Esercizi di Informatica Teorica Pumping lemma e proprietà di

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I

2 x = 64 (1) L esponente (x) a cui elevare la base (2) per ottenere il numero 64 è detto logaritmo (logaritmo in base 2 di 64), indicato così:

Algoritmi su Array. Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna

Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni. Lab 05 Array. Lab06 1

Integrali impropri in R

Vettori Geometrici. Corso di Metodi Numerici per il Design. 30 Settembre 2002 Vettori Geometrici. Corso di Laurea in Disegno Industriale

7. Strutture di controllo

Cominciamo con un esempio... Utilizzando un sottoprogramma 16/12/2017

Funzioni razionali fratte

Unità Didattica N 02. I concetti fondamentali dell aritmetica

Esempio Data la matrice E estraiamo due minori di ordine 3 differenti:

Manualistica 3 Le strutture di controllo

METODO VOLTAMPEROMETRICO

Previously on TDP. LISTA rappresentata mediante "struct e puntatori" Cosa e aux? Di che tipo e e cosa contiene?

ovviamente uguale al caso delle due cricche laterali. Nel caso di larghezza finita W:

acquisizione numero elementi del primo insieme e del secondo insieme, finché elprimoinsieme oppure elsecondoinsieme > EL_INS

Aniello Murano NP- Completezza (seconda parte)

Informatica I Facoltà di Ingegneria

Corso di Informatica 1 (IN110) Tutorato n. 3

Le strutture di controllo in C++

Corso di Informatica 1 (IN110) Tutorato n. 4

ISTITUTO TECNICO INDUSTRIALE "E. FERMI" LUCCA

Linguaggio del calcolatore. Algebra di Boole AND, OR, NOT. Notazione. And e or. Circuiti e reti combinatorie. Appendice A + dispense

Fondamenti di Informatica

Laboratorio di Programmazione

int i; int a[10]={1,2,3,4,5,6,7,8,9,10}; /* inizializzazione in fase di definizione */ int b[10];

Transcript:

C Fondmenti di Informtic Ingegneri Meccnic, Elettric, Gestionle Pro scritt del 13 Aprile 004 NOME MATRICOLA Esercizio 1 Dto il segente progrmm in lingggio C: #inclde <stdio.h> #inclde <stdli.h> oid min (oid) int n,z,i,c; scnf( %d,&n); for (i=1;i<=n;i++) z = 1; c = 0; while (c <= ) if ((i%z)==0) c++; if (c <= ) printf( %d \n, i); Disctere, in fnzione di n, qli lori sono stmpti dl comndo printf. Si sppong n 0. Solzione: per n > 0 ll prim iterzione del ciclo (i=1) z=1 c=0 while ( c ) if ((i%z)==0) c++; il ciclo è esegito esttmente 3 olte, finché c iene incrementto incrementto fino 3 i%z=0 è sempre er, perché il resto dell diisione con z=1 è sempre sempre 0. Printf non iene esegit, perché c non pò essere dopo il ciclo Anlogmente per le sccessie iterzioni s i fino d n Per n=0 i=1 Flso Non entr nel ciclo, printf non è esegit Non stmp niente

Esercizio Dto n ettore di interi, di 10 componenti: int [10]; scriere n fnzione in lingggio C che implementi n lgoritmo di ordinmento del ettore. Si sppongno note le componenti del ettore. Solzione: Procedr di scmio di de elementi di n ettore oid scmi (tipoelem *, *y) tipoelem ; =*; *=*y; *y=; Er sfficiente implementre no degli lgoritmi qi sotto riportti insieme ll precedente procedr di scmio degli elementi. Selection_sort oid selection_sort (ett z, int n); int i,j,imin; for (i=0; i<n-1; i++) imin=i; for (j=i+1; j<n; j++) if (z[j]<z[imin]) imin = j; scmi(&z[i], &z[imin]); Blesort oid lesort (ett z, int n); int i,j; oolen fine; i = 0 do i++; fine = TRUE; for (j=n-1; j>=i; j--) if (z[j]<z[j-1]) scmi(&z[j], &z[j-1]); fine = FALSE; while (!fine && i!=n-1)

Qicksort oid qicksort (ett z, int n) int sin,des, i,j; tipoelem ; tipolist lis; /*sppongo l'esistenz di n tipo list s de lori interi, con fnzioni ins e estr. Nell list engono memorizzte le coppie di indice minimo e mssimo dei sotto-ettori ncor d ordinre*/ ins (&lis, 0, n-1); while (!listot(lis)) estri (&lis, &sin,&des); i=sin; j=des+1; =z[sin]; while(i<j) do j--; while(z[j]>); do i++; while(z[i]<= && i!=j); if (i<j) scmi(&z[i], &z[j]); if (sin!=j) scmi(&z[sin], &z[j]); if (sin<j-1) ins (&lis, sin,j-1); if (des>i) ins (&lis, i,des);

Esercizio 3 Dti i nmeri interi negtii n1 = -(303) 8 n = -(4AFD) 16 rppresentrli in complemento de s 16 it ed effettrne l somm, operndo in complemento de. Solzione: lorndo pcchetti: se 8 pcchetti di 3 it 3=011 0=000 =010 lorndo pcchetti: se 16 pcchetti di 4 it A=1010 F=1111 D=1101 4=0100 (303) 8 =(011 000 010 010 011) 15 it ggingo n it s 0 011 000 010 010 011 (4AFD) 16 =(0100 1010 1111 1101 ) 16 it Essendo nmeri negtii ed essendo richiest espressmente il clcolo in complemento de occorre complementre i de nmeri inri troti n1=0 011 000 010 010 011 n=0100 1010 1111 1101 complemento di n1= 1100111101101101 complemento di n= 1011010100000011 esego l somm fr i de complementi 1 1100111101101101 + 1011010100000011 = 1 1000010001110000 L somm non prodce oerflow perché gli ltimi de riporti sono concordi. Un ltr ripro è che il it più significtio (il 16 ) è ncor pri 1, qindi il risltto (dto dll somm di de nmeri negtii) è ncor n nmero negtio.

Esercizio 4 Dimostrre, tilizzndo le regole e i teoremi dell lger oolen (proprietà degli opertori AND, OR, NOT e i teoremi di De Morgn), l eqilenz logic delle segenti fnzioni: f (, y) = (( y )OR NOT ( AND y)) AND NOT ( NOT (y)) g (, y) = y AND ( ) Solzione: Notzioni: y = AND y + y = OR = NOT y = XOR y y = IMPLICA y f (, y) = (( y) + z) y = (( + y) + + y) y = ( + y + + y) y = y + y y + y + y y = = y + 0 + y + 0 = y + y = y( + ) = y 1 = y g (, y) = y ( ) = y 1 = y Not: ( ) È sempre er Un tle proposizione si chim TAUTOLOGIA.

Esercizio 5 Dti i segenti interi nsigned s 16 it: = 0001100010111010 y = 0000010101110011 ltre l espressione: (( + 18) + y) 4 operndo in ritmetic inri ed tilizzndo solo l opertore di ddizione e gli opertori di spostmento. Solzione: 4 è necessrio semplificre il 4 col poiché esegendo l diisione medinte semplice shift 4 si perdereero cifre significtie = 4 = 00001100010111010 shift d di 1 posto ggingo 0 dl lto opposto ( 18 ) = (0000000010000000 10 ) 0000110001011101 + 0000000010000000 + 0000010101110011 = 0001001001010000 (1010011000110) = (4688) 10 6330 (( + 18) + y) = ( + 18 + y) = + 18 + 1395 = 4688 4

Esercizio 6 Dire qli lori stmp l segente fnzione C, ) qndo i lori di s e t sino rispettimente 10 e 7; ) qndo i lori di s e t sino rispettimente 10 e ; oid pnttori(int s, t) int,; int *,*; = (s - t); = (s \ t); = &; = &; if ((* % 5) == 0) * = (* - t); * = (* + s); else = ; = &; printf("%d %d %d %d\n",,,*,*); Solzione ) s=10 t=7 oid pnttori(int s, t) int,; int *,*; 3 = (s - t); 10-7 = 3 = (s / t); 10/7 = 1 1 3 = &; = &; 1 if ((* % 5) == 0) * = (* - t); * = (* + s);

else = ; = &; 3 1 printf("%d %d %d %d\n",,,*,*); 3, 1, 1, 3 ------------------------------------------------------------------------------------------------ ) s=10 t= oid pnttori(int s, t) int,; int *,*; 8 = (s - t); 10- = 8 = (s / t); 10/ = 5 5 8 = &; = &; 5 if ((* % 5) == 0) 5%5=0 * = (* - t); * = 8- = 6 8 6 * = (* + s); * = 6+10 = 16 else = ; = &; printf("%d %d %d %d\n",,,*,*); 16, 6, 16, 6 16 6