La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

APPUNTI SUL LINGUAGGIO C

Presentazioni simili


Presentazione sul tema: "APPUNTI SUL LINGUAGGIO C"— Transcript della presentazione:

1 APPUNTI SUL LINGUAGGIO C
Corso di Algoritmi e Strutture Dati APPUNTI SUL LINGUAGGIO C Esercizi su Liste

2 Esercizio L’informazione genetica codificata nel DNA è codificata nella sequenza di basi: A = adenina, G = guanina, C = citosina, T = timinia Per convenzione sequenze di DNA sono rappresentate come liste di caratteri ‘A’,‘G’, ‘C’, ‘T’ Si vogliono analizzare sequenze di questo tipo, contenenti solo i caratteri ‘A’, ‘G’, ‘C’, ‘T’.

3 Generazione di numeri casuali
In c la libreria <stdlib.h> esiste la funzione int rand() che restituisce un numero intero casuale compreso tra 0 e la costante RAND_MAX (di solito di valore 32767)

4 Costruire le seguenti funzioni
Funzione void DNAGen(plist* L, int DIM) che generi una sequenza casuale di DNA con DIM caratteri. p.s. si ricordi che i caratteri ammessi sono A, G, C e T

5 Costruire le seguenti funzioni
Funzione int TestDNA(plist L) che data una sequenza di caratteri (lista) verifica se questa sia una sequenza di DNA p.s. si ricordi che i caratteri ammessi sono A, G, C e T

6 Costruire le seguenti funzioni
Funzione void deleteDNA(plist* L, char c) elimina tutte le occorrenze di c, e stampa la sequenza risultante E.g. se sequenza {‘G’, ‘A’, ‘A’, ‘T’} e bisogna cancellare ‘A’ allora stampa GT.

7 Costruire le seguenti funzioni
Funzione int confrontaDNA(plist L1, plist L2, int t) che verifica se due sequenze di DNA (anche di lunghezza differente) siano t-allineati E.g. L1: ‘G’, ‘A’, ‘A’, ‘T’. L2: ‘G’, ‘C’, ‘A’, ‘T’, ‘C’. Se t >=2 allora sono t-allineati, altrimenti no p.s. esiste la funzione int abs(int a) che restituisce il valore assoluto di a

8 Costruire le seguenti funzioni
Funzione void commonDNA(plist L1, plist L2, plist* L3) che calcola in L3 la sequenza costituita dai caratteri (in ordine) in comune tra le due sequenze di DNA (anche di lunghezza differente) E.g. L1: ‘G’, ‘A’, ‘A’, ‘T’. L2: ‘G’, ‘C’, ‘A’, ‘T’, ‘C’. L3: ‘G’, ‘A’, ‘T’

9 Costruire le seguenti funzioni
Funzione void invertDNA(plist L, char C1, char C2) che inverte nella sequenza di DNA data tutti i caratteri C1 con i caratteri C2 E.g. L: ‘G’, ‘A’, ‘A’, ‘T’. e C1 = A e C2 = T L: ‘G’, ‘T’, ‘T’, ‘A’.

10 Costruire le seguenti funzioni
Funzione int MatchDNA(plist L1, plist L2) che verifica se due sequenze di DNA matchano. allineate due sequenze: Devono avere la stessa lunghezza Se due caratteri allineati sono diversi allora: G su A (e viceversa), T su C (e viceversa) E.g. L: ‘G’, ‘A’, ‘C’, ‘T’, ‘T’ L: ‘A’, ‘G’, ‘T’, ‘C’, ‘T’

11 Costruire le seguenti funzioni
Funzione int WindowDNA(plist L1, plist L2) che verifica se due sequenze di DNA sono a “specchio”, quindi una è l’altra letta da destra a sinistra. E.g. L: ‘G’, ‘A’, ‘C’, ‘T’, ‘T’ L: ‘T’, ‘T’, ‘C’, ‘A’, ‘G’

12 Costruire le seguenti funzioni
Funzione int PalindromeDNA(plist L) che verifica se una sequenza di DNA è Palindroma E.g. L: ‘G’, ‘A’, ‘A’, ‘G’

13 APPUNTI SUL LINGUAGGIO C
Corso di Algoritmi e strutture Dati APPUNTI SUL LINGUAGGIO C Esercizi su Liste FINE


Scaricare ppt "APPUNTI SUL LINGUAGGIO C"

Presentazioni simili


Annunci Google