• Aucun résultat trouvé

TD : Programmation en C — semaine 2

N/A
N/A
Protected

Academic year: 2022

Partager "TD : Programmation en C — semaine 2"

Copied!
2
0
0

Texte intégral

(1)

Module ISUP-2019sept TD 2 – page 1/2

TD : Programmation en C — semaine 2

4 Octobre 2019

Objectif(s)

O Premi`eres bases de programmation : variables, et structures de contrˆole (conditionnel, boucle).

O Gestion des entr´ees/sorties clavier.

Attention :le manuel (accessible avec la commandeman) contient aussi des informations sur les fonctions C de la biblioth`eque standard. Par exemple,man printfpermet de se renseigner sur l’utilisation de la fonction Cprintf.

De plus, vous ferez attention `a rendre le code que vous ´ecrirez lisible pour une autre personne : par exemple en don- nant des noms explicites `a vos variables, en indentant correctement votre code1, ainsi qu’en ajoutant des commentaires pour d´ecrire le fonctionnement de tout ce qui n’est pas ´evident.

Exercice 1 – Pr´eliminaires

1. T´el´echarger le fichierready.csur le site des TDs, et en console, effectuer les ´etapes suivantes :

— Cr´eer un dossier avec votre nom, un sous-dossiertd2et placer le fichierready.cdans ce r´epertoire.

— Vous pouvez compiler le fichier avecgccet l’ex´ecuter avec./ready: gcc ready.c -o ready

./ready

Il y a un certain nombre d’options que l’on doit fournir `agcc2, la commande compl`ete que nous utiliserons pour tous nos programmes sera :

gcc ready.c -o ready -Wall -ansi -pedantic -Wall -Werror -std=c99

Pour ne pas retaper cette longue ligne `a chaque fois, vous pouvez r´ecup´erer le scriptrun.sh, le mettre dans le mˆeme r´epertoire queready.cet taper :

./run.sh ready

Rappel : Pour rendre un script ex´ecutable il faut taperchmod +x run.sh. Si vous remplacez “ready” par un autre nom de programme, le scriptrun.shmarchera tout aussi bien !

2. Lisez les deux fichiers que vous avez t´el´echargez. Que fait le programmeready.c?

Exercice 2 – `A votre tour

Tous les programmes suivants seront stock´es dans des fichiers diff´erents, pour d´emarrer n’h´esitez pas `a vous inspirez de ready.c.

1. Affichez “Bonjour Monde” `a l’´ecran.

2. ´Ecrivez un programme qui demande deux r´eels `a l’utilisateur et affiche lequel est le plus petit et lequel est le plus grand.

Pour cela, nous utiliserons la fonctionscanfde la biblioth`eque standard, telle quescanf("%f", &v);attend que l’utilisateur entre une valeur (%findique qu’il s’agit d’un nombreflottant) et l’enregistre dans la variable v (d´eclar´ee avec le typefloat)3. L’affichage du contenu devse fera avec l’instruction suivante :printf("%f", v);.

3. Demandez `a l’utilisateur la notenqu’il a obtenu au dernier examen et affichez sa mention sachant que :

1. cf. la ”golden rule” de l’indentation :https://www2.cs.arizona.edu/˜mccann/indent_c.html 2. Vous savez comment regarder `a quoi elles correspondent

3. Attention `a ne pas oublier le symbole ’&’ devant le nom de la variable. Nous verrons dans les semaines qui suivent le sens pr´ecis de ce symbole.

Sorbonne Universit´e/Master d’Informatique/ISUP-2019sept 4 Octobre 2019

(2)

Module ISUP-2019sept TD 2 – page 2/2

— n <10= Echec

— 10≤n <12= Peut mieux faire

— 12≤n <14= Assez bien

— 14≤n <16= Bien

— 16≤n= Tr`es bien

4. Demandez un entiern`a l’utilisateur. Affichez tous les entiers de1 `an(un par ligne).

5. Demandez deux entiersnetm`a l’utilisateur. Affichez un rectanglen×muniquement compos´e d’´etoiles (*).

6. Demandez un entiern`a l’utilisateur. Affichez le suite desnpremiers termes de la suite de Fibonacci. Expliquer le comportement apparaissant quandn∼50.

Exercice 3 – Un mini-jeuC’est plus, c’est moins

On g´en`ere un nombre al´eatoirercompris entre 0 (inclus) etn(exclus) avec la fonctionrand: int r = rand() % n;

Cette fonction est inclue dans la biblioth`eque standard : vous devez ajouter #include <stdlib.h>au d´ebut de votre programme.

1. G´en´erez un entier al´eatoirex∈[0; 1000[.

Demandez ensuite un nombre entier `a l‘utilisateur :

— Si il est au dessus, dites le lui et redemandez ;

— Si il est en dessous, dites le lui et redemandez ;

— Si il trouve, c’est gagn´e !

2. Inversez le fonctionnement du jeu pour que cette fois le joueur choisisse le nombre `a deviner, et que ce soit l’ordina- teur qui devine.

Exercice 4 – Challenges

1. Vous avez trois challenges de programmation `a r´esoudre. Les sujets sont les suivants (par ordre - subjectif - de difficult´e) :

— Parking -https://uva.onlinejudge.org/external/113/11364.pdf

— Division of Nlogonia -https://uva.onlinejudge.org/external/114/11498.pdf

— Combination Lock -https://uva.onlinejudge.org/external/105/10550.pdf Voici quelques informations suppl´ementaires surscanfqui vous seront utiles :

— scanfignore les espaces, si vous ´ecrivezscanf("%d", &v)et rentrez “ 12”, pas de soucis.

— Pour r´ecup´erer deux ´el´ements de l’utilisateur d’affil´ee, vous pouvez ´ecrirescanf("%d %d", &v1, &v2) ou simplement faire deuxscanf`a la suite.

— Mettez l’exemple du probl`eme dans un fichierinput.txt, vous pouvez tester votre programme avec : ./snail < input.txt

(Rappelez-vous, <redirige le contenu du fichier vers l’entr´ee standard du programme, par cons´equent on peut lire le contenu du fichier avecscanf.)

Sorbonne Universit´e/Master d’Informatique/ISUP-2019sept 4 Octobre 2019

Références

Documents relatifs

Alors comme k = 2, cela nous conduit au fait que x apparaˆıt une fois appliqu´e, et une fois non

1) Features, being a very short description of the major facilities of SDOS. 2) Concepts, section where simple definitions throughout the rest of the manual are

On peut ´ecrire une deuxi`eme fonction qui appelle la premi`ere et renvoie l’indice de la premi`ere occurence de l’´el´ement recherch´e s’il est pr´esent dans le tableau ou

n Juveniles consume plankton, adults are carnivorous (insect larvae, crustaceans, worms and small molluscs, fish roe and larvae). n Sexual maturity is attained at the age of 3 to

The first tropical alien crayfish species in European waters: the redclaw Cherax quadricarinatus (Von Martens, 1868) (Decapoda, Parastacidae).. The biology and aquaculture potential

The definition of conditional information leads directly to another definition, that of mutual information, which measures information shared by two events..

Pour toute source, il existe un code instantané de longueur moyenne minimale satisfaisant les propriétés suivantes. Les deux mots les plus longs, donc associés aux états les

Afin de donner une autre interprétation de l’information mutuelle, on rappelle préalablement la définition suivante.