Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
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
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.