Université de la Réunion
13 pages
Français

Université de la Réunion

-

Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres
13 pages
Français
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres

Description

  • cours - matière potentielle : maths
Université de la Réunion Faculté des Sciences et Technologies Département de Biochimie et Biologie Moléculaire Histoire des Sciences et Bioinformatique (S33BC23) Algorithmique TD3 Données :
  • programmation avec le ← algorithmique
  • lire nb
  • algorithmique td3
  • variable codon en string variable
  • seq
  • finsi
  • codon
  • codons
  • tableau
  • tableaux
  • variable
  • variables

Sujets

Informations

Publié par
Nombre de lectures 30
Langue Français

Extrait

Université de la Réunion
Faculté des Sciences et Technologies
Département de Biochimie et Biologie Moléculaire

Histoire des Sciences et Bioinformatique
(S33BC23)
Algorithmique

TD3

Données :














I. Les variables et les opérateurs

1) Parmi les noms de variables suivant, indiquez ceux qui sont corrects ?

"test"
t_o_to
TOTO
t,ata
TiTi
t?tat
TITi
tAtA
2tutu
tutu1
t&to
t ta
téta
to1t2a4
tatatatatatatatttaatatatatatataatatatattatatatatatatatatataatatatatatatatattatatatatatatatatatattatatatat
atattatatatatattataatatatatatatatatatatatatatttttttttttttttttaaaaaaaaaaaaaaaaaaaaaaaaaaaaaattatatatta
attatatatatatatatattata

Il y a plusieurs règles à respecter pour le nom (l’étiquette) d’une variable :
1- un nom de variable doit toujours commencer par une lettre
2- un nom de variable ne doit pas contenir de caractères spéciaux comme les guillemets, la
plupart des signes de ponctuation, l’espace, le + ou tout autre caractère pouvant être interprété
comme un opérateur ou ayant une signification particulière en pseudo-code.
Cependant, il peut contenir des chiffres et des lettres. Le nombre de caractère n’est pas limité
bien qu’on évitera d’utiliser des noms à rallonge comme le dernier exemple (même si je le
répète ce nom est correct). En effet, le nombre maximal de caractère pourra être imposé par le
langage de programmation utilisé.
t_o_to # le underscore fait partie des caractères spéciaux acceptés.
TOTO
TiTi
TITi
tAtA
tutu1
téta
to1t2a4
tatatatatatatatttaatatatatatataatatatattatatatatatatatatataatatatatatatatattatatatatatatatatatattatatatat
atattatatatatattataatatatatatatatatatatatatatttttttttttttttttaaaaaaaaaaaaaaaaaaaaaaaaaaaaaattatatatta
attatatatatatatatattata

2) Quelle(s) est(sont) la(les) déclaration(s) correcte(s) ?

b,c en string
Variables b en string ET g en booléen
Variable b(,) en matrice
Variable 1test en entier
Variables b, c, b, g en string Variables A & B en booléen

Aucune de ces déclarations n’est correcte !!!
b,c en string # il manque le mot variable pour définir que ce sont des variables.
Variables b en string ET g en booléen # on ne doit pas avoir d’opérateurs quel qu’il soit dans
la déclaration ; pour séparer les noms de variables,
on utilise la virgule. De plus, on ne peut pas avoir
deux types différents de variable sur la même ligne
de déclaration (sauf dans le cas où on sépare les
déclarations par un point-virgule).
Variable b(,) en matrice # on s’attend à ce que la variable b soit un tableau. De plus, le type
matrice n’existe pas.
Variable 1test en entier # ici c’est incorrect à cause du nom de la variable qui doit commencer
par une lettre.
Variables b, c, b, g en string # on ne peut pas s’amuser à définir deux fois la même variable.
Variables A & B en booléen # on ne doit pas avoir d’opérateurs quel qu’il soit dans la
déclaration ; pour séparer les noms de variables, on utilise la ,

3) Quelle(s) est(sont) la(les) assignation(s) correcte(s) ? (Ces assignations sont
indépendantes et on considère que les valeurs des variables ont été assignées au
préalable).

Variables a, b en string
Variables c, d en entier
Variables e en booléen
[…]
a ← 1
a ← c & "1"
d ← b + 2
a ← a & b & a
c ← d / 0
e ← a > d
d ← 1,414
a ← Ccar("1")
b ← Ccar(1) - a
d ← Cnum("1") + c
[…]

En règle générale, on ne pourra pas assigner une valeur d’un certain type de données dans une
variable ayant un autre type. On ne pourra également pas utiliser des opérateurs prévus pour
un type de données pour effectuer des opérations sur des variables d’un autre type. On ne peut
en aucun cas mélangé des variables de type de données différent.
Rappel : Cnum et Ccar permettent de transformer des variables de type string en numérique et
numérique en string respectivement.
a ← a & b & a
d ← Cnum("1") + c

4) Quelles seront les valeurs des variables après l’exécution des instructions suivantes ?

Variables a, b en numérique
Variables c, d en chaîne de caractères Variables e en booléen
DEBUT
c ← "bon"
d ← "jour"
a ← 1
b ← 2
c ← c & c
d ← d
a ← (b + 2) / 4
b ← a
a ← b
e ← a > b
d ← d & c & d & d & Ccar(b)
e ← d > c
FIN

a contiendra la valeur 1
b contiendra la valeur 1
c contiendra la chaîne de caractère « bonbon »
d contiendra la chaîne de caractère « jourbonbonjourjour1 »
e contiendra VRAI # j après b dans l’alphabet.

II. Lecture / écriture et tests

1) Plusieurs erreurs se sont glissées dans cet algorithme. Corrigez les.

Variables b, c en booléen
Variable d en entier
DEBUT
b ← "AUU" > "UUU"
c ← "UAU" == "UUU"
SI b & c ALORS # le & ne peut être utilisé que pour des string et n’est pas un opérateur de
comparaison.
d = 1.5 # ne pas confondre le = mathématique/programmation avec le ← algorithmique.
De plus, la variable d a été déclarée en entier donc on ne peut pas avoir un réel.
SINON "UUU" != "UAU" # ne pas oublier de mettre SINONSI au lieu de SINON lorsqu’on
a une nouvelle condition et de rajouter le ALORS en fin de
ligne.
d = 2.5 # ne pas confondre le = mathématique/programmation avec le ← algorithmique.
De plus, la variable d a été déclarée en entier donc on ne peut pas avoir un réel.
FIN # /!\ fermer le bloc de condition avant de fermer l’algorithme.
FINSI

Variables b, c en booléen
Variable d en numérique
DEBUT
b ← "AUU" > "UUU"
c ← "UAU" == "UUU"
SI b ET c ALORS
d ← 1.5 SINONSI "UUU" != "UAU" ALORS
d ← 2.5
FINSI
FIN

2) Écrivez un algorithme qui demande à l’utilisateur de rentrer un codon et qui permet
d’afficher si ce codon est un codon stop ou pas.

Découpez bien les instructions demandées :
1- demander à l’utilisateur de rentrer un codon
2- vérifier que l’utilisateur a bien rentré un codon, i.e. mot de 3 lettres qui sont une
combinaison des lettres A, U, G et C seulement
3- afficher si ce codon est un codon stop ou pas
Donc dans un premier temps, notre algorithme doit afficher « Entrez un codon » pour que
l’utilisateur sache ce qu’on attend de lui. Il devra ensuite stocker la donnée saisie par
l’utilisateur dans une variable de type string (qu’il faudra déclarer avant).
Dans un deuxième temps, l’algorithme doit tester si la chaîne de caractère saisie par
l’utilisateur correspond bien à un des trois codons stop. Si c’est le cas, l’algorithme affiche «
C’est un codon stop » sinon l’algorithme affiche « Ce n’est pas un codon stop ».

Variable codon en string
Variable bool en booléen
Variable i en numérique
DEBUT
codon ← « »
bool ← Faux
TANTQUE NON bool
ECRIRE « Entrez un codon »
LIRE codon
SI Len(codon) == 3 ALORS
bool ← Vrai
POUR i ← 1 A Len(codon)
SI Trouve(« UAGC », Mid(codon, i, 1)) == 0 ALORS
bool ← Faux
i ← Len(codon)
FINSI
i SUIVANT
FINSI
FINTANTQUE
SI codon == « UAA » OU codon == « UAG » OU codon == « UGA » ALORS
ECRIRE « Ce codon est un codon stop »
SINON
ECRIRE « Ce codon n’est pas un codon stop »
FINSI
FIN

3) Quel serait le résultat de l’algorithme suivant si l’utilisateur rentre les valeurs 2, 3 et 5.
Même question avec les valeurs 4, 3 et 5.

Variables x, y, z en numérique
DEBUT x ← 0
y ← 0
z ← 0
ECRIRE « Rentrez trois nombres »
LIRE x, y, z
SI x > y ALORS
SI y > z ET x > z ALORS
ECRIRE « Les chiffres sont rangés dans l’ordre décroissant »
SINON
ECRIRE « Les chiffres ne sont pas rangés »
FINSI
SINON
SI y < z ET x < y ALORS
ECRIRE « Les chiffres sont rangés dans l’ordre croissant »
SINON
ECRIRE « Les chiffres ne sont pas rangés »
FINSI
FINSI
FIN

er- 2<3<5 donc x < y implique qu’on rentre dans le SINON du 1 SI et y < z donc on rentre
dans le SI juste apr&#

  • Univers Univers
  • Ebooks Ebooks
  • Livres audio Livres audio
  • Presse Presse
  • Podcasts Podcasts
  • BD BD
  • Documents Documents