05/09/2018
Prérequis
Machine Linux
cours de C
But
Algorithmes
Révisions
Images
Renvoyer le compte rendu (pdf) et l'archive du travail en fichier .tar sur l'email snir2@workboot.fr
Qtcréator est déja installé.
Nous utiliserons donc cet outil !
Un exercice un projet.
Envoyer une archive du projet a chaque exercice .
Vérifier que le makefile fonctionne bien.
Version 1
Réaliser un programme Bonjour le monde !
projet non Qt - C du nom de bonjour
Vous testerez dans l'environnement de Qtcréator (enlever shadow build)
Et tester en ligne de commande dans un terminal votre travail.
>./bonjour
>Bonjour le monde !
>
Version 2
Même résultat que la V1 mais si passage de paramètre du nom
projet non Qt - C du nom de bonjourv2
Vous testerez dans l'environnement de Qtcréator (enlever shadow build)
(passage de paramètre dans QtCréator rubrique Run)
Et tester en ligne de commande dans un terminal votre travail.
>./bonjour mr tux
>Bonjour le monde et Mister tux
>
Ici le fait de passer le paramètre mr votre programme sait que c'est le nom dans le paramètre suivant.
>./bonjour tux
> je ne comprends la commande tux
>
>./bonjour mr
> il manque le nom
>
il faut prévoir un traitement des erreurs possibles et rendre votre programme convivial.
indice :
On peut avoir les caractères de la chaîne avec argv[1][0]='m'
et argv[1][1]='r'
Version 3
Pareil que V2, mais utiliser la librairie string.h
pour comparer les chaines (ici mr) strcmp
pour plus d'information :
man string.h
int strcmp(const char *, const char *);
Utiliser au maximum l'IDE Qtcréator.
R = R1 + R2 + Rx .......
./rserie 10000 2000
Donne le résultat de 2 résistors pour son équivalent série.
Vous pouvez étendre à n éléments
./rserie 1000 2000 5000 6000 80000 .....
1/R= 1/R1 + 1/R2 + 1/Rx ....
./rpara 10000 2000
idem en parallèle
Vous pouvez étendre à n éléments
./rpara 1000 2000 5000 6000 80000 .....
Écrire un programme qui permet d'afficher ce magnifique sapin ! (boucles obligatoire)
>./sapin 4
*
***
*****
*******
ici 4 est un exemple .. il accepte de 1 à 25
Prévoir un traitement des erreurs ..
./sapin
veuillez entrer une valeur entière.
pas d'erreur de segmentation acceptable!
Pour les fonctions faire comme vu en cours.
Ici nous allons faire une bibliothèque de fonctions... pour dessiner avec des caractères sur l’écran du terminal.
Définir un tableau de 80 * 25 (zone écran) , a 2 dimensions .. dans le plan ..
screen[80][25] , tableau de char (variable globale)
char screen[80][25];
Ce tableau représente notre écran donc de 80 de large et 25 de haut.
Chaque fonction sera testée au fur et a mesure par un petit programme de test (qui devra figurer dans le compte rendu) un main et la fonction …
Le but du tp est de faire une bibliotheque de fonctions pour travailler dans ce plan.
Efface (des espaces dans l’écran)
rempli le tableau du caractère 32 ou ' ' le caractère espace. (80 x 25 )
La fonction affiche_scr()
permet d'afficher le contenu du tableau sur l'écran.
permet de vérifier la fonction précédente.
Permet de placer un caractère n'importe ou dans l’écran.
Prévoir de ne pas sortir de l'écran ! en faisant les tests et éviter l' erreur de segmentation en tapant a coté du tableau.
Cette fonction place la chaîne au coordonnées x,y dans le tableau.
Les fonctions suivantes doivent utiliser plot_scr …
Réalise une ligne horizontale partant x1,y1 de longueur long avec le char passé en argument
(gauche droite attention a ne pas sortir du tableau!!)
Réalise une ligne verticale partant x1,y1 de longueur long avec le char fournit ..
(haut bas attention à ne pas sortir du tableau !! )
Faire un programme
Dessiner un repère orthonormé X/Y place au milieu (a +-1 pixel)
créer une fonction plot(x,y) le point sera '*'
qui sera dans ce repère. plot(0,0) fera un point aux coordonnées 0,0
Et dessiner dessus l’équation de la droite y=x dans ce repère.
Et y=-x
placer le nom des fonctions sur le graphe.
Représenter cette fois ci y=x*x
Qui nous fera un damier de '*' et ' ' de 4 x 4
qui remplira notre écran de 80 x 25
**** **** ****
**** **** ****
**** **** ****
**** **** ****
**** ****
**** ****
**** ****
**** **** .........
a l'aide des fonctions crées avant.
Ou un espace devient un '0' et un '*' devient '1'
Faire afficher ...
111100001111 ...etc ...
Réaliser a partir du travail précédent un programme qui affiche
P1
80 25
1111000011111 .... votre damier
ce programme va s'appeler damier
une fois que cela fonctionne faire :
./damier > image.pbm
Avec votre ordinateur .. regarder le fichier obtenu.
explication:
https://fr.wikipedia.org/wiki/Portable_pixmap