• Aucun résultat trouvé

TP 1 - premiers pas en C

N/A
N/A
Protected

Academic year: 2022

Partager "TP 1 - premiers pas en C"

Copied!
6
0
0

Texte intégral

(1)

informatique - S1

TP 1 - premiers pas en C

département Mesures Physiques - IUT1 - Grenoble

1. sinus cardinal et cosinus redressé On considère le programme suivant :

#include <ansi_c.h>

main() {

double x,y;

printf("\nRentrez une valeur de x : ") scanf("%lf", x);

if (x=0);

{y == 1;}

else

{y=sin(x)/x;}

printf("\nsinus_cardinal(%lf)=%lf, x, y);

}

(a) Corriger les erreurs de syntaxe.

(b) À quoi sert l’instructionscanf? Le symbole==? (c) Quelle est l’effet de ce programme ? L’exécuter.

2. équation du second degré

Écrire un programme qui permet à l’utilisateur de saisir trois valeurs réellesa,betc, puis affiche le discriminant et les solutions réelles de l’équationax2+bx+c= 0. Si l’équation n’a pas de solution afficher un message pour l’indiquer.

3. affichage d’un réel

Écrire un programme qui demande à l’utilisateur un réel sous forme décimale et l’affiche ensuite sous forme scientifique avec 5 chiffres significatifs.

4. pilotage d’un générateur BF

Écrire un programme qui demande à l’utilisateur une fréquence (nombre entier, par exemple 100), une tension (nombre entier, par exemple 10), un offset (nombre entier, par exemple 5) et un type de si- gnal (chaîne valant "SIN", "TRI", "SQ"), puis affiche une commande du type OUTP:LOAD INF;:APPL:SIN 100Hz, 10Vpp, 5V en passant à la ligne.

5. la boucle for

On considère le programme suivant :

#include <ansi_c.h>

main() {

int i;

for (i=0 ; i<10 ; i++) {

printf("%d\n",i);

} }

(a) L’exécuter pas-à-pas pour en comprendre le fonctionnement, (b) Le modifier pour afficher, du plus grand au plus petit, les nombres

compris entre 16 et -3,

(c) Le modifier pour qu’il affiche 10 valeurs régulièrement réparties entre 2.5 et 4.8

6. trigonométrie

Écrire les fonctionsmoduleetargumentqui, partant de deux para- mètres réels aetbrenvoient respectivement le module et l’argument du nombre complexe correspondanta+ib.

7. conversion entre coordonnées

(2)

Écrire les fonctionsAbscisse,Ordonnee,Cotequi renvoient les coordonnées cartésiennes d’un point défini par ses coordonnées lati- tude, longitude et altitude, selon les formules

x = (R+h) cos(l) cos(L) y = (R+h) cos(l) sin(L) z = (R+h) sin(l)

aveclla latitude,Lla longitude, ethl’altitude.R = 6378000m est le rayon de la Terre.

Quelle est l’abscisse de la salle 300 du département Mesures Phy- siques (latitude45˚1133.1′′N, longitude5˚4303.1′′E, altitude220m) 8. puissance entière

1) Écrire un programme qui demande à l’utilisateur un entier stricte- ment positifnet un réelx, puis affiche la valeur dexn.

2) Modifier le programme pour qu’il fonctionne correctement pour un entiernquelconque (positif, négatif ou nul).

3) Transformer ce programme en une fonctionpuissancequi prend

comme paramètres un réelxet un entier positifn, et qui renvoie la va- leur dexélevé à la puissancen.

9. la fonction sinus cardinal

Écrire une fonctionsincqui calcule les valeurs du « sinus cardinal » sinc(x) = sinx

x six6= 0, sinc(0) = 1.

10. facultatif :suite de Syracuse

Écrire un programme qui demande à l’utilisateur de choisir un entier u0 puis affiche successivement les termes de la suite(un)définie par

un+1 =

 un

2 siunest pair, 3un+ 1

2 sinon.

Le tester avec plusieurs valeurs pouru0. Que remarque-t-on ? 11. facultatif :équation du second degré à solutions complexes

Reprendre le programme sur l’équation du second degré pour afficher, si le discriminant est négatif, les solutions complexes.

2

(3)

informatique - S1

TP 2 - tableaux, graphiques, fichiers

département Mesures Physiques - IUT1 - Grenoble

1. cosinus redressé double alternance

(a) Écrire une fonctionCosRed2donnant les valeurs du « cosinus re- dressé double alternance » :cos(x)sicos(x)>0,−cos(x)sinon.

(b) Remplir un tableau X avec 200 valeurs régulièrement réparties entre−2πet2π.

(c) Remplir un tableauYavec les valeurs correspondantes du cosinus redressé double alternance.

(d) Tracer la courbe représentative du cosinus redressé double alter- nance.

2. courbe de Lissajous

Tracer de même la courbe d’équations paramétriques, pour t ∈ [0,2π]:

x(t) = cos(t) y(t) = sin(4t)

en plaçant dans des tableaux X et Y les valeurs d’abscisses et d’or- données correspondant à 200 instants régulièrement répartis entre 0 et 2π.

3. détermination d’incertitudes de mesure

(a) Tracer sur un même graphique, pour0≤ϕ ≤π/2, y=p

1 +π22 et y=

p1 + sin2(ϕ) ϕ|cos(ϕ)| .

(b) Déterminer graphiquement les intersections de ces deux courbes à une précision de102. Quelles sont les valeurs en degré correspon- dantes ?

4. résolution numérique par dichotomie

On rappelle que si une fonction f continue sur[a, b] est strictement monotone, avec f(a)et f(b) de signes opposés, alors elle admet un unique zéro sur l’intervalle. L’algorithme de dichotomie suivant per- met de déterminer des valeurs approchées de ce zéro.

Il consiste à définir deux suites (xn) et (yn) adjacentes, avec (xn) croissante, (yn) décroissante, et dont la limite commune est le zéro cherché.

Pour cela on pose x0 = a, y0 = b puis, si xn et yn sont calculées, on note m le milieu de l’intervalle [xn, yn]. Si f(xn) et f(m) sont de signes opposés, le zéro est entre xn et m : on pose xn+1 = xn, yn+1=m. Dans le cas contraire, on poseraxn+1=m,yn+1 =yn. Comment tester « informatiquement » sif(xn)etf(m)sont de même signe ?

Implémenter cet algorithme.

5. courbe de valeurs lues dans un fichier

Lire dans le fichiercourbe.txt200 valeurs d’abscisse et ordonnée (rangées à raison d’une abscisse et d’une ordonnée, séparées par une espace, sur chaque ligne), les ranger dans des tableauxXetY, et tracer la courbe correspondante.

(4)

informatique - S1

TP 3 - calculs de moyennes, écarts-type, variances

département Mesures Physiques - IUT1 - Grenoble

1. fonction de lecture :

Créer une fonction Lecture1 qui prend comme paramètres un ta- bleau de réels et une chaîne de caractèresnomet qui :

- range dans le tableau les valeurs lues dans le fichiernom - renvoie le nombre de valeurs lues.

2. moyenne : écrire une fonction Moyenne1 qui prend comme para- mètre un tableau X et un entier n et renvoie la moyenne des n pre- mières valeurs du tableau.

3. variance : écrire une fonction Variance1qui prend comme para- mètre un tableauXet un entiernet renvoie la variance desnpremières valeurs du tableau.

4. écart-type :écrire une fonctionEcartType1qui prend comme pa- ramètre un tableau Xet un entiernet renvoie l’écart-type desnpre- mières valeurs du tableau.

5. calculs statistiques : écrire un fonctionmain()qui, en utilisant ce qui précède :

- fait choisir un fichier à l’utilisateur à l’aide de la fonction FileSelectPopup(),

- place les nombres contenus dans ce fichier dans un tableau,

- affiche la moyenne, la variance et l’écart-type de la série statistique.

6. à deux variables : écrire de même des fonctions Lecture2, Moyenne2, Variance2 et EcartType2 qui permettent de cal-

culer les moyennes, variances et écart-type des n premières valeurs contenues dans un tableau X, pondérées par les coefficients corres- pondants d’un tableauY, à partir d’un fichier qui contient sur chaque ligne une note et le coefficient associé.

Rappels :

— pour une série statistique(xi), la moyenne est

¯

x= x1+. . .+xp

p ,

la variance est

(x1x)¯ 2+. . .+ (xpx)¯ 2

p ,

l’écart-type est la racine carrée de la variance.

— pour une série statistique(xi, ni), la moyenne est

¯

x= n1x1+. . .+npxp

n1+. . .+np

,

la variance est

n1(x1x)¯ 2+. . .+np(xpx)¯ 2 n1+. . .+np

,

l’écart-type est la racine carrée de la variance.

(5)

informatique - S1

TP 4 - GPS

département Mesures Physiques - IUT1 - Grenoble

À partir de la trace enregistrée par un GPS, on récupère le parcours d’un randonneur sous la forme d’un fichier contenant, sur chaque ligne, la latitude l, la longitudeLet l’altitudehdes points successifs.

Dans un premier temps, on considèrera que la Terre est une sphère de rayonR= 6378000m.

On a alors les formules de conversion en coordonnées cartésiennes :

x = (R+h) cos(l) cos(L) y = (R+h) cos(l) sin(L) z = (R+h) sin(l)

1. Les randonnées considérées durent au maximum 10 heures, et un point est enregistré toutes les 10 secondes.

Définir en début de programme une constanteNBPplus grande que le nombre maximal de points à considérer.

2. Écrire une fonction qui permet de relire les valeurs contenues dans le fichier, de les placer dans trois tableaux l, Leth, en renvoyant le nombre de lignes lues.

3. Écrire une fonction Abscisse qui prend comme paramètre trois réels (latitude, longitude, altitude) et renvoie l’abscisse correspon- dante.

Écrire de même la fonctionOrdonneeet la fonctionCote.

4. Écrire une fonctionDistancequi prend comme paramètres six réels X1, Y1, Z1,X2, Y2, Z2, et renvoie la distance entre les deux points de coordonnées respectives (X1,Y1,Z1) et (X2,Y2,Z2).

5. Écrire une fonction principale qui, en utilisant les fonctions précé- dentes :

(a) permet à l’utilisateur de choisir un fichier (b) relit le fichier

(c) trace, en deux graphiques dans la même fenêtre : le trajet parcouru (représenter la latitude et la longitude), et le profil d’altitude (re- présenter l’altitude)

(d) calcule et place dans 3 tableaux X, Y, Z les coordonnées carté- siennes des points lus dans le fichier

(e) calcule la distance totale parcourue lors de la randonnée, le déni- velé positif et le dénivelé négatif

6. Les coordonnées latitude, longitude et altitude fournies par le GPS font en fait référence non pas à une sphère, mais à un ellipsoïde de demi-grand-axe a = 6378137.00m, de demi-petit-axe b = 6356752.31m, d’excentricité e = √

a2−b2/a = 0.08181919, d’ap- platissementf = a−b

a = 1/298.2572.

On obtient alors les formules de conversion :













x = ( a

p1−e2sin2(l) +h) cos(l) cos(L)

y = ( a

p1−e2sin2(l) +h) cos(l) sin(L) z = ( a(1−e2)

p1−e2sin2(l) +h) sin(l)

Comparer les valeurs obtenues par ces formules avec celles obtenues pour le modèle sphérique.

(6)

informatique - S1

TP 5 - traitement d’images

département Mesures Physiques - IUT1 - Grenoble

En début de programme vous placerez le code :

#include <ansi_c.h>

#define LARGEUR 400

#define HAUTEUR 266

#include <X:\Informatique\Programmation\Données\ImagesMph.h>

pour bénéficier des deux fonctions :

ChargeImage("image.bmp", Image)

qui place dans la matrice Image l’image contenue dans le fichier image.bmp, et

AfficheImage(Image,"mon titre", T, G)

qui affiche l’image représentée par la matriceImagedans une fenêtre dont le bord supérieur gauche est àTpixels du haut et Gpixels de la gauche du coin supérieur gauche de l’écran.

Puis, pour disposer de deux images (originale et modifiée) : unsigned char Image[HAUTEUR][LARGEUR];

unsigned char ImageTrans[HAUTEUR][LARGEUR];

Une image, monochrome, sera donc représentée par une matrice d’unsigned char, soit des entiers compris entre 0 et 255 : 0 indique un pixel noir, 255 un pixel blanc.

Pour vos essais utiliser les images fournies ou vos propres images (au format bitmap (bmp), de dimensions imposées HAUTEUR x LARGEUR ; les couleurs seront transformées en niveaux de gris).

1. Quelques manipulations élémentaires pour commencer : (a) Relire et afficher l’une des images fournies.

(b) Créer et afficher une image blanche.

(c) Créer et afficher une image avec une bande blanche en haut, une bande centrale grise et une bande noire en bas.

2. Appliquer à une image les transformations élémentaires suivantes, en affichant côte à côte l’image originale et l’image transformée.

négatif : transformer le blanc en noir et le noir en blanc.

symétrie ; inverser droite et gauche.

luminosité : éclaircir/assombrir d’une valeur choisie par l’utilisateur (par exemple, entre -20 et +20).

contraste : assombrir les pixels sombres et éclaircir les pixels clairs.

3. De même, implémenter deux filtres plus complexes :

accentuation (renforcement de netteté) : remplacer le niveau de chaque pixel par la combinaison de son niveau coefficient 1 + 4r et des niveaux des quatre voisins (gauche, droite, haut, bas) coeffi- cient−r. Tester pour plusieurs valeurs der, de 0.1 à 2.

détection de contours : dessiner les contours de l’image.

4. Histogramme :

Afficher l’histogramme d’une image (en abscisse les 256 niveaux de gris, en ordonnée le nombre de pixels de cette couleur).

Références

Documents relatifs

Tu pratiques un sport : après l’avoir présenté, tu donneras les raisons pour lesquelles tu as choisi de faire du sport et pourquoi celui-ci plutôt qu’un autre. • Ville

[r]

Des alpinistes, des navigateurs, des coureurs automobiles… risquent souvent leur vie pour remporter une victoire?. Seriez-vous prêt à risquer la vôtre pour réaliser

4 Écris chaque nombre sous forme décimale puis en notation

4  Écris chaque nombre sous forme décimale puis en notation

Le carré du produit de deux nombres est égal au produit des carrés de ces deux

Le carré du produit de deux nombres est égal au produit des carrés de ces deux

Ce fichier est conçu pour une utilisation très souple : travail en ateliers parallèles (recherches individuelles ou en équipes), travail de toute la classe sur un même thème