Corso di Programmazione Grafica e Laboratorio Daniele Marini

Slides:



Advertisements
Presentazioni simili
C C++ &.
Advertisements

Puntatori Linguaggio C.
Corso di Fondamenti di Programmazione canale E-O
INFORMATICA Algoritmi fondamentali
Funzioni e procedure Ogni linguaggio di programmazione ad alto livello mette a disposizione del programmatore questi strumenti, ed il C non è da meno!
Laboratorio di Linguaggi Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso di Laurea in Informatica.
Uso avanzato di C.
Nel C non esiste un dato primario di tipo stringa; queste sono rappresentate con un array monodimensionale di caratteri (tipo char). Così per definire.
Preincremento e PostIncremento in C++
Introduzione al linguaggio C
Dati strutturati C++.
Marco Barisione Estendere Python in C.
Introduzione al linguaggio C
Introduzione al linguaggio C Dr. Francesco Fabozzi Corso di Informatica.
Le funzioni.
Algoritmi in C++ (1) da completare
Concetti di base: header file, funzione main(),set caratteri C++, token, operatori, espressioni etc. Flusso di controllo, cicli, costrutti.
Funzioni definite dall’utente
Tail recursion: esempio
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 VI: puntatori 2/3 Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso.
Laboratorio di Linguaggi lezione V Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso di Laurea in.
Laboratorio di Linguaggi lezione VIII Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso di Laurea.
Laboratorio di Linguaggi lezione III Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso di Laurea.
Laboratorio di Linguaggi lezione V Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso di Laurea in.
Laboratorio di Linguaggi P R I M O C O M P I T I N O Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese.
Laboratorio di Linguaggi lezione IX: Dentro le Librerie Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese.
Laboratorio di Linguaggi lezione IV Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso di Laurea in.
Laboratorio di Linguaggi lezione IX: tipi ricorsivi Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso.
Laboratorio di Linguaggi lezione II Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso di Laurea in.
1 laboratorio di calcolo II AA 2003/04 quinta settimana a cura di Domizia Orestano Dipartimento di Fisica Stanza tel. ( )
Struct, enum, Puntatori e Array dinamici
Esercizi FUNZIONI Passaggio di parametri per valore, variabili e tipi locali e globali, prototipo.
Esercizi C sui tipi definiti dall’utente
Esercizi Puntatori, struct con campi puntatore, puntatori a struct, rapporto tra array e puntatori. FUNZIONI Passaggio di parametri per indirizzo, passaggio.
Politecnico di Milano Esercizi Preparazione alla prima prova intermedia.
Dichiarazioni e tipi predefiniti nel linguaggio C
Le liste dinamiche La ricorsione
Algebra Lineare Esercizi assegnati.
Le funzioni.
Piero Scotto - C141 C14 #6 I VETTORI (#define e const)
2000 Prentice Hall, Inc. All rights reserved. Capitolo 10 (Deitel) Strutture, unioni ed enumerazioni Sommario Introduzione Definire le strutture.
Il linguaggio C Le funzioni C Language Il passaggio dei parametri
void binario(int n); …………………
Unità Didattica 3 Linguaggio C
Laboratorio di Linguaggi lezione VII: variabili Globali e Locali Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali.
1Piero Scotto - C14. Finalità del corso Programma Materiale Requisiti Spendibilità 2Piero Scotto - C14.
Sviluppare un programma in C che, dato un array da 100 elementi interi caricato con numeri casuali compresi tra [10,100], sia in grado di cercare il valore.
Unità Didattica 1 Linguaggio C
Introduzione al C Davide Gadia.
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni – BCOR Ingegneria Elettronica – BELR Introduzione al C Esercitazione 5 D. Bloisi, A.
Prof.ssa Chiara Petrioli -- corso di programmazione 1, a.a. 2006/2007 Corso di Programmazione 1 a.a.2006/2007 Prof.ssa Chiara Petrioli Corso di Laurea.
1 Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza Valentina Ciriani ( ) Laboratorio di programmazione Lezione 11 e 12 -
ALGORITMI Un algoritmo è un insieme di istruzioni: -ordinate -non ambigue -effettivamente computabili.
CORSO DI PROGRAMMAZIONE II Lezione 22
#include void main() { int a,b,c,; float s, x,x1,x2,delta,alfa,beta; int num[3]; int i; printf("La forma classica dell'equazione di 2° grado è: a*x^2+b*x+c=0\n.
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.
Informatica B Allievi Elettrici - AA Fondamenti della programmazione in linguaggio C (II) Istruzioni e strutture di controllo.
CORSO DI PROGRAMMAZIONE II
1 Il linguaggio C Precisazioni sull’esperienza in laboratorio.
Introduzione Laboratorio di Calcolo Corso di Laurea in Fisica Università degli Studi di Roma “La Sapienza”
Il linguaggio C Notate che ....
Il linguaggio C Un primo programma C : un primo programma (2) /* Programma che calcola il massimo fra tre numeri inseriti da tastiera */ #include #define.
Copyright © Istituto Italiano Edizioni Atlas
Informatica B Allievi Elettrici - AA Fondamenti della programmazione in linguaggio C (III)
Laboratorio di Linguaggi lezione XI Marco Tarini Università dell’Insubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso di Laurea.
Il C `e un linguaggio di programmazione di uso generale, originariamente sviluppato per la scrittura del sistema operativo Unix, ed oggi disponibile su.
Lezione n. Parole chiave: Corso di Laurea: Insegnamento: Docente: A.A Salvatore Cuomo Esercizi sui dati strutturati 13 Tipi di dati strutturati.
Linguaggio C: Funzioni e Puntatori Laboratorio di Programmazione Gruppo 1.
Transcript della presentazione:

Corso di Programmazione Grafica e Laboratorio Daniele Marini Introduzione al C Corso di Programmazione Grafica e Laboratorio Daniele Marini

Il linguaggio C Strutture di alto livello Controllo a basso livello Programmi efficienti Può essere compilato su un'ampia gamma di computer e SO

Il linguaggio C - Intro Programma minimo main() { } Ogni programma C deve contenere una e una sola funzione main().

Struttura di un programma C Comandi per il preprocessore #define, #include, #if, #endif, etc. Definizione di tipi typedef, struct, etc... Prototipi di funzioni (dichiarazione) int myFunc(int a, char b, float c); Variabili (globali) Funzioni (implementazione) int myFunc(int a, char b, float c) { // implementazione } Main

Esempio (parte 1) #define MY_CONST 50 // Pre-processor #include <stdio.h> // Pre-processor typedef int vecInt[3]; // type definition // function declarations void printVec(vecInt vec); int nPrint(vecInt vec, int times);

Esempio (parte 2) // function implementation void printVec(vecInt vec) { printf(“%d,%d,%d”,vec[0],vec[1],vec[2]); }

Esempio (parte 3) int nPrint(vecInt vec, int times) { int i; // local var for(i=0;i<times;i++) printVec(vec); printf(“\n”); } return i+1;

Esempio (parte 4) int main(int argc, char *argv[]) { vecInt myVect; int res; myVec[0] = 1; myVec[1] = 8; myVec[2] = 4; res = nPrint (myVec, 4); return 0; }

Struct Viene allocata una stringa, un intero, un float typedef struct MiaStruttura { char c; int num1; float num2; } MiaStrutt; Viene allocata una stringa, un intero, un float MiaStrutt s //s variabile di tipo MiaStrutt Accesso ai campi s.c = ‘D’; s.num1 = 26; s.num2 = 77.7

Union Viene allocata un float (il più “grande” dei tre) typedef union MiaUnion { char c; int num1; float num2; } MiaUn; Viene allocata un float (il più “grande” dei tre) MiaUn u //u variabile di tipo union Accesso ai campi come in struct In vari momenti posso utilizzare una delle tre “possibilità” (devo applicare il casting)

Casting “Forzatura” del tipo di una variabile int numint; float numfl=6.34; char let='A'; numint=(int)numflt; //assegna il valore 6 (parte intera) numint=(int)let;//assegna il valore 65 (codice ASCII)

Puntatori - 1 Un puntatore è una variabile che contiene l'indirizzo di memoria di un'altra variabile puntata int z; int *p; int val=7; //mettiamo che l’indirizzo di memoria sia 6F0 p = &val; //p ha valore 6F0 z = *p; //z ha valore 7 Utilizzati per Gestione dinamica della memoria Passaggio di parametri per indirizzo

Puntatori - 2 int z; int *p; int val=7; p = &val; z = *p; Indirizzo memoria Valore int z; int *p; int val=7; p = &val; z = *p; 6F0 7 val 6F1 6F0 p 6F2 7 z

Puntatori - 3 Gestione dinamica della memoria float *misure; void allocaMisure(int numero) { misure = (float*)malloc(numero * sizeof(float)); } … allocaMisure(15); misure[10] = 3.14;

Puntatori - 4 Passaggio di parametri per indirizzo void cambia(int numero) { numero = 15; } void cambiaPtr(int *numero) *numero = 5; int i=10; cambia(i); // i vale sempre 10; ho passato il VALORE della var cambiaPtr(&i); // i vale 5; ho passato l’INDIRIZZO di mem

Dichiarazioni e Header Files Separare implementazione e dichiarazioni in diversi files #include <functions.h> // implementation Header File // functions.h void printVec(vecInt vec); int nPrint(vecInt vec, int times); Link #include <functions.h> // call

Compilazione e Link Compilazione Link File .c compilati in file oggetto (.obj) In generale un file .obj per ogni file .c Link “Unisce” i file .obj più eventuale codice delle librerie

Bibliografia A. Kelley, I. Pohl, C Didattica e Programmazione, Addison-Wesley Italia, 1996. R. Sedgewick, Algoritmi in C, Addison-Wesley Italia, 1993. http://alpha.science.unitn.it/~fiorella/guidac/indexc.html