Langage C

Séance 1 : Instructions, variables, séquencement

On désire afficher des dessins à l'aide d'une machine à écrire programmable qui possède les instructions suivantes :
Notez que l'on fait suivre les instructions de parenthèses (), nous verrons plus tard pourquoi (ce sont des fonctions).
Par exemple, le "programme" suivant affiche le texte "**".
 ecrire();
 ecrire();


EXERCICE 1 - Instructions, séquencement

1-  Donner les instructions pour dessiner deux "*" séparées d'un espace.

2-  Même question pour trois "*";

EXERCICE 2 - Notion de variable, répétitions
Si l'on veut afficher 60 étoiles avec cette méthode, le programme va devenir très long; nous allons voir comment procéder pour répéter des suites d'instructions.
Une des caractéristiques intéressantes des langages de programmation est la possibilité de manipuler des variables. Pour créer une variable, on doit lui donner un nom et spécifier sa valeur :
 x = 23;

cette instruction donne la valeur 23 à la variable x.
Une variable peut changer de valeur :
 x = 20;
 x = x + 1;

à la suite de quoi x vaut 21.
En langage C, les variables doivent être déclarées en début de bloc (voir cours). L'instruction printf peut être utilisée pour afficher la valeur d'une variable :
printf("%d\n", x); /* affiche 21 (valeur en décimal) */

Les variables peuvent être utilisées pour contrôler l'exécution des instructions d'un programme, par exemple grâce à l'instruction while ("tant que"). Voici une suite d'instructions qui affiche des étoiles :
i = 0; 
while (i < 52) {
    ecrire();
    i = i + 1;
}

Les deux instructions à répéter sont décalées vers la droite : on dit qu'elles sont "indentées". On utilise la touche tabulation (-->|, à gauche du clavier) pour indenter les instructions.

1-  Combien d'étoiles affiche ce programme ?

EXERCICE 3 - Notre machine à écrire possède une autre instruction (ou fonction) :
La valeur n est un paramètre de cette fonction (nombre entier).

1-  Écrire la suite d'instructions qui ferait la même chose que ligne(50).

2-  En utilisant l'instruction ligne(n), écrire un programme permettant de dessiner un carré de 5 sur 3 :
*****
*   *
*****


3-  En utilisant l'instruction de répétition while, dessinez la figure :
*
**
***
****
*****


4-  Même question pour
*****
****
***
**
*


EXERCICE 4 - Écrivez un programme effectuant le dessin suivant :
    *
   ***
  *****
 *******
*********

Le nombre de lignes de la pyramide (ici 5) devrait être donné par une variable hauteur.

EXERCICE 5 - Itérations en langage C
Écrire un programme qui affiche les 50 premiers nombres pairs (2,4,6,...), de trois façons différentes :

EXERCICE 6 - Calcul des termes d'une suite
Soit la suite de nombres entiers définie par
U0
=
A
Un+1
=
ì
ï
í
ï
î
Un / 2
si Un est pair
3Un + 1
si Un est impair
Cette suite atteint la valeur 1, quelle que soit la valeur A du premier terme ! Par exemple, si A=10, la suite des termes est 10, 5, 16, 8, 4, 2, 1, 4, 2, 1, ... Le cycle 1,4,2,1 se répète indéfiniment.

1-  Écrire un programme qui affiche les termes de la suite, jusqu'à arriver à la valeur 1.

2-  Modifier le programme pour qu'il affiche le nombre de termes avant convergence (c'est à dire la première valeur de n telle que Un soit égal à 1.

3-  Écrire un programme qui affiche le nombre de termes défini dans la question précédente, pour toutes les valeurs de A comprises entre 2 et 100. On structurera le programme en fonctions indépendantes.
TP Programmation 1 :
Environnement Unix, premiers programmes
Durant le TP, on testera les programmes réalisés dans les exercices précédents.



File translated from TEX by TTH, version 3.70.
On 21 Sep 2005, 09:25.