“ Pseudocodice ” Un programma per computer lavorerà su in insieme di “ variabili ” contenenti i dati del problema, soluzioni intermedie, soluzioni finali.

Slides:



Advertisements
Presentazioni simili
Programmazione ad oggetti
Advertisements

Introduzione al linguaggio C++
LINGUAGGIO DI PROGRAMMAZIONE C
Funzioni e procedure Ogni linguaggio di programmazione ad alto livello mette a disposizione del programmatore questi strumenti, ed il C non è da meno!
Informatica Generale Susanna Pelagatti
Dati strutturati A. Ferrari.
Stringhe di caratteri In linguaggio C.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità G1 Dati strutturati.
Ripasso R1 Dati strutturati.
Array (vettori) In linguaggio C / C++.
Algoritmi e Programmazione
1 Informatica Generale Susanna Pelagatti Ricevimento: Mercoledì ore presso Dipartimento di Informatica, Via Buonarroti,
Fondamenti di Informatica CDL in Ingegneria Meccanica - A.A CDL in Ingegneria Meccanica - A.A Tipi di dati Ing. Simona Colucci.
Fondamenti di Informatica CDL in Ingegneria Gestionale - A.A Tipi di dati Ing. Simona Colucci.
Indirizzi delle variabili A ogni variabile sono associati tre concetti fondamentali: il valore memorizzato; il tipo dati di appartenenza; lindirizzo. Il.
FUNZIONI DI BIBLIOTECA
Fondamenti di Informatica II Ingegneria Informatica / Automatica (A-I) Meccanica Prof. M.T. PAZIENZA a.a – 3° ciclo.
Caratteri e stringhe di caratteri
Argomenti dalla linea dei comandi Gli argomenti possono essere passati a qualsiasi funzione di un programma, compresa la main(), direttamente dalla linea.
Fondamenti di Informatica II Ingegneria Informatica (A-I) Prof. M.T. PAZIENZA a.a – 3° ciclo.
Corso di Informatica (Programmazione)
1 Corso di Informatica (Programmazione) Lezione 13 (21 novembre 2008) Programmazione in Java: stringhe e array.
Introduzione alla programmazione ll
Introduzione alla programmazione lll
Array Struttura numerate di dati. Memorizzare molti dati In informatica cè spesso bisogno di memorizzare ed elaborare un insieme costituito da molti dati.
Corso di Informatica A.A Corso di Informatica Laurea Triennale - Comunicazione&Dams Dott.ssa Adriana Pietramala Laurea.
Politecnico di Milano Esercizi Preparazione alla prima prova intermedia.
Il Linguaggio C.
Gli algoritmi.
Java base III: Array e Stringhe
Corso di PHP.
TIPI DI DATO Un tipo di dato T è definito come: un dominio di valori, D un insieme di funzioni F 1,..,F n sul dominio D un insieme di predicati P 1,..,P.
4 Tipi di dati & variabili
Biologia Computazionale - Algoritmi
RAPPRESENTAZIONE DELL'INFORMAZIONE
2000 Prentice Hall, Inc. All rights reserved. Capitolo 6 (Deitel) I vettori Sommario Introduzione Vettori Dichiarazione di vettori 6.4.
Programmazione di Calcolatori
Programmazione di Calcolatori
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array e stringhe Marco D. Santambrogio – Ver. aggiornata al 9 Agosto 2013.
BIOINFO3 - Lezione 201 Come in ogni corso di introduzione ad un linguaggio di programmazione, proviamo a scrivere lormai celebre primo programma di prova.
Fopndamenti di programmazione. 2 La classe String Una stringa è una sequenza di caratteri La classe String è utilizzata per memorizzare caratteri La classe.
Corso JAVA Lezione n° 11 Istituto Statale di Istruzione Superiore “F. Enriques”
Biologia Computazionale
GLI ARRAY MONODIMENSIONALI. Utilizzando le nostre attuali conoscenze, proviamo a risolvere il seguente problema: Calcolare la media dei voti conseguiti.
Lezione 3 Struttura lessicale del linguaggio
Vettori, indirizzi e puntatori Finora abbiamo usato gli indirizzi nel chiamare  la funzione scanf()  le altre funzioni per riferimento Tuttavia la vera.
Rappresentazione dell’informazione nel calcolatore.
Vettori (a una dimensione)
Variabili Numeriche –Interi (byte, short, int, long): complemento a 2 –A virgola mobile (float, double): IEEE 745 Alfanumeriche –Carattere (char): Unicode.
Parte 3 Lo stato: variabili, espressioni ed assegnazioni
Arduino: introduzione alla programmazione
Università di Torino – Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a prof. Viviana Bono Blocco 7 – Array.
13 ottobre Decisioni F. Bombi 13 ottobre 2002.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array e “stringhe” Marco D. Santambrogio – Ver. aggiornata al 8 Aprile 2015.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array e “stringhe” Marco D. Santambrogio – Ver. aggiornata al 26 Marzo 2014.
ALLOCAZIONE STATICA: LIMITI Per quanto sappiamo finora, in C le variabili sono sempre dichiarate staticamente –la loro esistenza deve essere prevista e.
Informatica 6 Tipi di dato. Nelle celle di memoria di un calcolatore ci sono solo “0” e “1”, fisicamente realizzati tramite due diversi livelli di tensione.
1 Informatica Generale Alessandra Di Pierro Ricevimento: Giovedì ore presso Dipartimento di Informatica, Via Buonarroti,
Sommario Oggetti immutabili e non Tipi Primitivi: String, Arrays.
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
1 Informatica Generale Marzia Buscemi Ricevimento: Giovedì ore , Dipartimento di Informatica, stanza 306-PS o per posta.
Informatica e Informatica di Base
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array e “stringhe” Marco D. Santambrogio – Ver. aggiornata al 14 Marzo 204.
Stringhe In linguaggio C. Stringhe  Un insieme di caratteri in sequenza forma una stringa.  Alcuni linguaggi definiscono per le stringhe uno specifico.
GLI ALGORITMI DI ORDINAMENTO
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array e “stringhe” Marco D. Santambrogio – Ver. aggiornata al 28 Ottobre 2014.
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
Cloud informatica V anno. Introduzione a PHP Lo scripting PHP PHP è un linguaggio di scripting lato server. Le caratteristiche di un linguaggio di scripting.
Il computer ragiona? Problemi e algoritmi. Paola Pianegonda2 Cos’è un problema?  Problema è qualsiasi situazione della quale non conosciamo la soluzione.
Informatica Problemi e algoritmi. una situazione che pone delle domande cui si devono dare risposte. Col termine problema o situazione problematica s’indica.
Transcript della presentazione:

“ Pseudocodice ” Un programma per computer lavorerà su in insieme di “ variabili ” contenenti i dati del problema, soluzioni intermedie, soluzioni finali Un programma per computer lavorerà su in insieme di “ variabili ” contenenti i dati del problema, soluzioni intermedie, soluzioni finali Le variabili possono essere di tipo diverso, a seconda dei dati che trattiamo, ad esempio Le variabili possono essere di tipo diverso, a seconda dei dati che trattiamo, ad esempio Numeri interi Numeri interi Numeri reali Numeri reali Matrici Matrici Parole costruite su un alfabeto Parole costruite su un alfabeto Vettori Vettori Anche in questo caso dobbiamo prevedere un insieme “ minimale ” di tipi di variabili su cui lavorare con lo pseudocodice Anche in questo caso dobbiamo prevedere un insieme “ minimale ” di tipi di variabili su cui lavorare con lo pseudocodice

Variabili I tipi di variabili disponibili e le relative operazioni dipendono dal linguaggio di programmazione I tipi di variabili disponibili e le relative operazioni dipendono dal linguaggio di programmazione Possiamo considerare “ universali ” due tipi di variabile: Possiamo considerare “ universali ” due tipi di variabile: Variabile “ numero ” Variabile “ numero ” Variabile “ carattere ” Variabile “ carattere ” Inoltre, possiamo prevedere la possibilità di gestire Inoltre, possiamo prevedere la possibilità di gestire Vettori o matrici di numeri Vettori o matrici di numeri Sequenze di caratteri (o “ stringhe ” ) Sequenze di caratteri (o “ stringhe ” )

Variabili La parola “ ciao ” è composta da quattro caratteri La parola “ ciao ” è composta da quattro caratteri In un computer è rappresentata come un array (o vettore) di quattro elementi carattere (detto stringa) In un computer è rappresentata come un array (o vettore) di quattro elementi carattere (detto stringa) Quindi, se abbiamo una variabile di tipo stringa il cui valore è “ ciao ” (senza virgolette!) potremmo anche accedere a uno qualsiasi dei caratteri della parola Quindi, se abbiamo una variabile di tipo stringa il cui valore è “ ciao ” (senza virgolette!) potremmo anche accedere a uno qualsiasi dei caratteri della parola

Variabile Una variabile è definita da un tipo (numero, carattere, etc.) e da un nome Una variabile è definita da un tipo (numero, carattere, etc.) e da un nome In un programma non si può (abbastanza logicamente) assegnare lo stesso nome a variabili diverse In un programma non si può (abbastanza logicamente) assegnare lo stesso nome a variabili diverse Tutte le operazioni (assegnazione, confronto, etc.) devono essere effettuate su variabili dello stesso tipo Tutte le operazioni (assegnazione, confronto, etc.) devono essere effettuate su variabili dello stesso tipo In perl le variabili (qualsiasi sia il loro tipo) sono precedute dal simbolo $, mentre i vettori dal In perl le variabili (qualsiasi sia il loro tipo) sono precedute dal simbolo $, mentre i vettori dal

Variabili Mentre, intuitivamente, quando progettiamo un algoritmo una variabile può essere di qualsiasi tipo e/o assumere qualsiasi valore, nei linguaggi di programmazione ogni variabile ha un TIPO ben definito Mentre, intuitivamente, quando progettiamo un algoritmo una variabile può essere di qualsiasi tipo e/o assumere qualsiasi valore, nei linguaggi di programmazione ogni variabile ha un TIPO ben definito Il tipo della variabile definisce l ’ insieme di valori che la variabile può assumere: Il tipo della variabile definisce l ’ insieme di valori che la variabile può assumere: Booleano: vero/falso (e operatori logici) Booleano: vero/falso (e operatori logici) Intero: un numero intero Intero: un numero intero “ Floating point ” : un numero con virgola (razionale!) “ Floating point ” : un numero con virgola (razionale!) Carattere: uno dei 255 caratteri definiti dalla tabella ASCII associata al computer che state usando Carattere: uno dei 255 caratteri definiti dalla tabella ASCII associata al computer che state usando

Codifica ASCII dei caratteri

Variabili e tipi Linguaggi TIPIZZATI: quando si usa una variabile in un programma è necessario definire esplicitamente (la prima volta che la si usa) che tipo è associato ad essa, ad esempio: Linguaggi TIPIZZATI: quando si usa una variabile in un programma è necessario definire esplicitamente (la prima volta che la si usa) che tipo è associato ad essa, ad esempio: int x = 10 int x = 10 char c = ‘ a ’ char c = ‘ a ’ Linguaggi non tipizzati: quanto sopra non è necessario. E ’ l ’ interprete del linguaggio che cerca di “ indovinare ” di che tipo di variabile si tratta sulla base dei valori associati ad essa (utile, ma pericoloso per chi programma!) Linguaggi non tipizzati: quanto sopra non è necessario. E ’ l ’ interprete del linguaggio che cerca di “ indovinare ” di che tipo di variabile si tratta sulla base dei valori associati ad essa (utile, ma pericoloso per chi programma!)

Variabili e tipi In ogni caso, per qualsiasi di linguaggio di programmazione usiate, dovete abituarvi a pensare di fare fare assegnamenti/confronti/etc soltanto tra variabili dello stesso tipo ed è quindi necessario che, indipendentemente dal linguaggio, abbiate sempre chiaro quale tipo è associato a ciascuna variabile In ogni caso, per qualsiasi di linguaggio di programmazione usiate, dovete abituarvi a pensare di fare fare assegnamenti/confronti/etc soltanto tra variabili dello stesso tipo ed è quindi necessario che, indipendentemente dal linguaggio, abbiate sempre chiaro quale tipo è associato a ciascuna variabile

Tipi di dati “ derivati ” Abbiamo accennato all ’ istruzione “ per ogni ” Abbiamo accennato all ’ istruzione “ per ogni ” PER OGNI elemento IN collezione_di_elementi ESEGUI... Come è possibile definire una “ collezione ” di elementi? Come è possibile definire una “ collezione ” di elementi? Il metodo più utilizzato è quello della “ sequenza ” (o “ array ”, vedi dispense pagine 20/21) Il metodo più utilizzato è quello della “ sequenza ” (o “ array ”, vedi dispense pagine 20/21)

Gli “array” L’array (ovvero, insieme ordinato di variabili) è molto utile per una grande quantità di applicazioni diverse, ed è supportato virtualmente da tutti i linguaggi di programmazione (per lo meno, da quelli che interessano a noi). L’array (ovvero, insieme ordinato di variabili) è molto utile per una grande quantità di applicazioni diverse, ed è supportato virtualmente da tutti i linguaggi di programmazione (per lo meno, da quelli che interessano a noi). Un paio di note: finora abbiamo definito gli elementi dell’array come, ad esempio c i ovvero con il “pedice” che si usa in matematica Un paio di note: finora abbiamo definito gli elementi dell’array come, ad esempio c i ovvero con il “pedice” che si usa in matematica Poiché i programmi si scrivono in “formato testo”, senza la possibilità di inserire indici o pedici, la notazione più comune mette il numero dell’elemento tra parentesi quadre, quindi Poiché i programmi si scrivono in “formato testo”, senza la possibilità di inserire indici o pedici, la notazione più comune mette il numero dell’elemento tra parentesi quadre, quindi c i si scrive c[i] – ovvero l’i-esimo elemento dell’array c c i si scrive c[i] – ovvero l’i-esimo elemento dell’array c Seconda nota: in informatica si conta a partire da zero!!!! Quindi, in un array chiamato c di n elementi, gli elementi saranno c[0] c[1] c[2] … c[n-1], ovvero gli indici invece di andare da 1 a n andranno da 0 a n-1!! Seconda nota: in informatica si conta a partire da zero!!!! Quindi, in un array chiamato c di n elementi, gli elementi saranno c[0] c[1] c[2] … c[n-1], ovvero gli indici invece di andare da 1 a n andranno da 0 a n-1!!

Array e sequenze In bioinformatica è comune scrivere programmi di analisi di sequenza In bioinformatica è comune scrivere programmi di analisi di sequenza La sequenza è rappresentata come una “stringa”, ovvero (nella nostra testa mentre programmiamo) come un array di caratteri La sequenza è rappresentata come una “stringa”, ovvero (nella nostra testa mentre programmiamo) come un array di caratteri La sequenza S = “ACGTAG” potrà essere rappresentata come un array di 6 elementi: La sequenza S = “ACGTAG” potrà essere rappresentata come un array di 6 elementi: S[0] = ‘A’ S[1]=‘C’ S[2] = ‘G’ e S[0] = ‘A’ S[1]=‘C’ S[2] = ‘G’ e …e così via…

Array e genomi Un cromosoma viene quindi solitamente rappresentato come un enorme array di milioni di caratteri, in cui il carattere in posizione i corrisponderà all’i- esimo paio di basi sul cromosoma (o meglio, all’ (i+1)-esimo paio di basi, se il primo ha posizione 0 nell’array) Un cromosoma viene quindi solitamente rappresentato come un enorme array di milioni di caratteri, in cui il carattere in posizione i corrisponderà all’i- esimo paio di basi sul cromosoma (o meglio, all’ (i+1)-esimo paio di basi, se il primo ha posizione 0 nell’array)

Array e sequenze Esercizio 1: data una sequenza, verificare se contiene un codone di start Esercizio 1: data una sequenza, verificare se contiene un codone di start Esercizio 2: data una sequenza, verificare quanti codoni di start contiene, e il frame di lettura di ognuno Esercizio 2: data una sequenza, verificare quanti codoni di start contiene, e il frame di lettura di ognuno Esercizio 3: data una sequenza, per ogni codone di start trovato verificare se esiste un codone di stop “in frame” rispetto ad esso Esercizio 3: data una sequenza, per ogni codone di start trovato verificare se esiste un codone di stop “in frame” rispetto ad esso

Trovare il codone di start La sequenza da analizzare è memorizzata in un array che si chiama “sequenza” La sequenza da analizzare è memorizzata in un array che si chiama “sequenza” A priori non sappiamo da quanti nucleotidi sarà composta A priori non sappiamo da quanti nucleotidi sarà composta Vediamo, carattere per carattere, se ci sono 3 elementi dell’array consecutivi che corrispondono ad ‘A’, ‘C’, ‘G’ Vediamo, carattere per carattere, se ci sono 3 elementi dell’array consecutivi che corrispondono ad ‘A’, ‘C’, ‘G’ Trovato un codone di start, possiamo a questo punto calcolare il frame di lettura a partire dalla posizione in cui lo abbiamo trovato Trovato un codone di start, possiamo a questo punto calcolare il frame di lettura a partire dalla posizione in cui lo abbiamo trovato Trovato un codone di start, possiamo verificare se a valle di esso c’è un codone di stop nello stesso frame di lettura Trovato un codone di start, possiamo verificare se a valle di esso c’è un codone di stop nello stesso frame di lettura