IUT TOULON VAR Département Génie Électrique et Informatique Industrielle. Semestre 1 Algorithmique et langage C Sujets des travaux pratiques Série n 2

Documents pareils
UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Algorithmique et Programmation, IMA

SNT4U16 - Initiation à la programmation TD - Dynamique de POP III - Fichiers sources

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Calculateur quantique: factorisation des entiers

Le langage C. Séance n 4

Programmation Objet - Cours II

Le chiffre est le signe, le nombre est la valeur.

Travaux Dirigés n 1 : chaînes de caractères

Les chaînes de caractères

1 Année LMD-STSM Algorithmique et Programmation. Série de TD 2

Initiation à la programmation en Python

INF111. Initiation à la programmation impérative en C amini/cours/l1/inf111/ Massih-Reza Amini

Rappels Entrées -Sorties

PROJET ALGORITHMIQUE ET PROGRAMMATION II

Cours d Informatique


Solutions du chapitre 4

Bases de programmation. Cours 5. Structurer les données

TP 1. Prise en main du langage Python

Cours Informatique Master STEP

Algorithme. Table des matières

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Initiation. àl algorithmique et à la programmation. en C

Chapitre 2 Devine mon nombre!

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation

CORRECTION EXERCICES ALGORITHME 1

Durée de L épreuve : 2 heures. Barème : Exercice n 4 : 1 ) 1 point 2 ) 2 points 3 ) 1 point

Quelques algorithmes simples dont l analyse n est pas si simple

Traitement de texte : Quelques rappels de quelques notions de base

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Chap III : Les tableaux

Généralités sur le Langage Java et éléments syntaxiques.

Chapitre 10. Les interfaces Comparable et Comparator 1

Salle de technologie

I. Introduction aux fonctions : les fonctions standards

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

PIXMA MG5500. series. Guide d'installation

SUPPORT DE COURS. Langage C

Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr

SOMMAIRE. Travailler avec les requêtes... 3

Utilisez Toucan portable pour vos sauvegardes

Distribution Uniforme Probabilité de Laplace Dénombrements Les Paris. Chapitre 2 Le calcul des probabilités

Les différents types de données et leurs opérations de base

LA BOX FIBRE DE SFR GUIDE D UTILISATION COMPLET (MAIS PAS COMPLEXE) SFR.FR

Manuel d'installation

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Algorithmique avec Algobox

Chapitre 4 : Édition de fichiers texte - Vi

Algorithmique & Langage C IUT GEII S1. Notes de cours (première partie) cours_algo_lgc1.17.odp. Licence

Logiciel de base. Première année ENSIMAG

Les pages suivantes présenteront : I. Le téléchargement et l installation du navigateur. II. L utilisation de Pep s à l aide de ce navigateur.

Algorithmes et Programmes. Introduction à l informatiquel. Cycle de vie d'un programme (d'un logiciel) Cycle de vie d'un programme (d'un logiciel)

Les fichiers. Chapitre 4

Utiliser les supports d'exemplaires

Trier les ventes (sales order) avec Vtiger CRM

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

Algorithmique et programmation : les bases (VBA) Corrigé

Modes Opératoires WinTrans Mai 13 ~ 1 ~

LibreOffice Calc : introduction aux tableaux croisés dynamiques

Codage d information. Codage d information : -Définition-

Plus courts chemins, programmation dynamique

Correction TD algorithmique

Cours de C++ François Laroussinie. 2 novembre Dept. d Informatique, ENS de Cachan

MODE OPERATOIRE OPENOFFICE BASE

Programmation C. Apprendre à développer des programmes simples dans le langage C

Manuel d'utilisation d'apimail V3

Utiliser ma messagerie GMAIL

1 Lecture de fichiers

Recherche dans un tableau

Définitions. Numéro à préciser. (Durée : )

1. Qu est-ce que la conscience phonologique?

Activités numériques [13 Points]

1 Introduction et installation

Document d aide au suivi scolaire

Algorithmique avec Algobox

SOMMAIRE AIDE À LA CRÉATION D UN INDEX SOUS WORD. Service général des publications Université Lumière Lyon 2 Janvier 2007

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Continuité et dérivabilité d une fonction

Création, analyse de questionnaires et d'entretiens pour Windows 2008, 7, 8 et MacOs 10

CRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE

VOCABULAIRE LIÉ AUX ORDINATEURS ET À INTERNET

Structure d un programme et Compilation Notions de classe et d objet Syntaxe


L'instruction if permet d'exécuter des instructions différentes selon qu'une condition est vraie ou fausse. Sa forme de base est la suivante:

Propagation sur réseau statique et dynamique

1.6- Génération de nombres aléatoires

Procédure de sauvegarde pour AB Magique

IV- Comment fonctionne un ordinateur?

introduction Chapitre 5 Récursivité Exemples mathématiques Fonction factorielle ø est un arbre (vide) Images récursives

MO-Call pour les Ordinateurs. Guide de l utilisateur

CAPTURE DES PROFESSIONNELS

Objectifs du TP : Initiation à Access

POUR ALLER UN PEU PLUS LOIN SUR UN TABLEUR. Version EXCEL

NOTICE TELESERVICES : Créer mon compte personnel

MODE D EMPLOI DE LA PLATEFORME DE DEPOT DES

École : Maternelle. Livret de suivi de l élève. Nom : Prénom : Date de naissance : Année d entrée à l école maternelle :

Transcription:

IUT TOULON VAR Département Génie Électrique et Informatique Industrielle Nom : Groupe: Semestre 1 Algorithmique et langage C Sujets des travaux pratiques Série n 2 Prénom: TpC_2014_2015_SERIE2

TP n 5 Les tableaux 1/ Recopie de certains éléments d un tableau Soit les déclarations suivantes : int Tabint[10]={65,21, 9,23, 1,32,5, 69,12, 3}; int TabPos[10]={0} ; Écrire le programme qui recopie dans TabPos les valeurs positives contenues dans Tabint et affiche les deux tableaux. (nb les valeurs dans TabPos seront "regroupées au début", les zéros ensuite). 2/ Calculs sur un tableau Écrire le programme permettant de : -Réaliser la saisie au clavier d un tableau de 10 réels positifs. (La fin de la saisie s effectue sur l occurrence du dixième entier.) -Calculer la moyenne des différentes valeurs contenues dans le tableau. -D afficher la plus grande valeur contenue dans le tableau. 3/ Recherche de valeurs dans un tableau Écrire le programme permettant de : -Réaliser la saisie au clavier d un tableau de 10 entiers positifs. (La fin de la saisie s effectue sur l occurrence du dixième entier.) -Réaliser la saisie d'une valeur entière à rechercher. -D afficher le "valeur présente en position n x" si la valeur se trouve dans le tableau et "valeur absente" si la valeur ne se trouve pas dans le tableau. Modifiez votre programme pour qu'il affiche la valeur du tableau la plus proche de la valeur recherchée, - en supposant que le tableau est trié dans l'ordre croissant. - sans aucune hypothèse sur l'ordre des éléments du tableau. 4/ Le loto (suite) Le principe du loto Flash (avant 2008) est un tirage aléatoire de 6 entiers compris entre 1 et 49. Réaliser le programme effectuant un tirage Flash. ( cf http://fr.wikipedia.org/wiki/loto ) Pour chaque entier tiré, votre programme vérifiera qu il ne constitue pas un doublon. A partir du programme précédent, écrire un programme qui "joue" au loto jusqu'à avoir les 6 bons numéros. Après avoir "gagné", votre programme indiquera : le nombre de tirages total et le nombre de fois qu'il a trouvé 0,1,2,3,4,5 ou 6 bons numéros. 5/ Tri d un tableau d entiers On désire mettre en œuvre l algorithme du tri à bulles. Ce tri s effectuant sur un tableau d entiers. Cette méthode consiste à comparer les éléments du tableau deux à deux, à partir du bas, et à les permuter si l élément du bas est inférieur à l autre. A la fin, le tableau sera donc classé par ordre croissant. ex: Soit le tableau correspondant à l initialisation suivante: int TableauEntier [5]={10,23,41,3,30};

TP n 5 Les tableaux 10 10 10 10 3 3 3 3 3 3 23 23 23 3 10 10 10 10 10 10 41 41 3 23 23 23 23 23 23 23 3 3 41 41 41 30 30 30 30 30 30 30 30 30 30 41 41 41 41 41 Ce qui donne l algorithme suivant: Entier i,j, TableauEntier [5] Pour j variant de 1 à N-1 Pour i variant de N à j Si TableauEntier [i] < TableauEntier [i-1] Permuter TableauEntier [i] avec TableauEntier [i-1] Fsi Finpour Finpour On remarque que cet algorithme peut être amélioré car, si au cours d un parcours du tableau aucune valeur n est permutée le tableau est trié, il n est donc plus nécessaire de le parcourir d autres fois.

TP n 6 Les chaînes de caractères 1/ La table des codes ASCII Écrire un programme qui affiche la table des codes ASCII avec la valeur correspondante en hexadécimal et en décimal Ex : A 41 65 B 42 66 L affichage devra s effectuer page par page suite à l appui d une touche du clavier. 2/ Attention à la CASSE! Réaliser le programme qui affiche une majuscule (resp minuscule) si l utilisateur entre une lettre minuscule (resp majuscule) et affiche "Ce n est pas une lettre" si l utilisateur entre autre chose. 3/ Voyelle, consonne Votre programme devra effectuer séquentiellement les tâches suivantes : -Saisie d une chaîne d au plus 30 caractères (pouvant comporter des espaces) -Calcul et affichage du nombre de voyelles (a,e,i,o,u et y) quelle contient -Remplacement dans toute la chaîne des voyelles par la lettre z. ex : j adore le langage c La chaîne comporte 7 voyelles j zdzrz lz lzngzgz c 4/ srevne'l A Votre programme demande un mot et l'affiche à l'envers 5/ Le codage de CESAR. Un des moyen le plus simple pour faire de la cryptographie est d utiliser le codage de César. Le principe est de crypter une chaîne de caractère en remplaçant chaque caractère par un décalage de N dans l alphabet. Par exemple si N vaut 3, la phrase il fait beau devient : lo idlw ehdx On remarquera que les espaces ne sont pas codés et que, toujours pour N égal 3, x devient a, y devient b et z vaut c. a) Votre programme devra effectuer séquentiellement les tâches suivantes : -Saisie d une chaîne d au plus 50 caractères (pouvant comporter des espaces). -Cryptage et affichage de la chaîne cryptée par un décalage de N=3. -Décryptage de la chaîne et comparaison avec la chaîne initiale. Pour la comparaison on utilisera la fonction strcmp de la librairie standard. b) même programme que a) mais pour un décalage N quelconque saisi au clavier.

6/ Palindrome ou emordnilap? TP n 6 Les chaînes de caractères Un palindrome est un mot qui reste le même qu on le lise de gauche à droite ou de droite à gauche. Exemples: 12321 ==> est un palindrome langage ==> n est pas un palindrome anna ==> est un palindrome radar ==> est un palindrome Écrire le programme qui détermine si une chaîne de caractère est un palindrome. On rappelle qu une chaîne de caractère se termine par le caractère \0. 7/ C est l espace... Écrire le programme permettant de saisir une chaîne de caractère au clavier, d afficher le nombre de mots qu elle contient ainsi que les initiales de ces mots. On suppose que deux mots sont toujours séparés par un seul caractère espace( ' ' ). On admettra que la chaîne ne peut commencer ni finir par un caractère espace et que l on ne peut trouver plusieurs caractères espace consécutifs. Exemple: Si la chaîne de caractère entrée est: la vie est un long fleuve tranquille Le programme affichera: la vie est un long fleuve tranquille Le nombre de mots est: 7 La chaîne contenant les initiales est: lveulft 8/ Bien compter les mots Écrire un programme qui compte les mots d'une chaîne entrée au clavier. On ne fait aucune hypothèse sur le contenu de la chaîne (présence possible de ponctuations, de plusieurs espaces, de chiffres, de tirets, d'apostrophe, etc...). un mot composé avec un - compte pour deux mots. l'apostrophe ne sépare deux mots : ex : j'ai compte pour un seul mot. Exemple : Entrez une phrase : "007" : Hier... j'ai vu / un (bien) plus ' joli, porte-parapluie qu'aujourd'hui! cette phrase comporte 10 mots qui sont: Hier/j'ai/vu/un/bien/plus/joli/porte/parapluie/qu'aujourd'hui

TP n 7 Les fonctions Pour chaque exercice, il faut écrire un programme principal qui permet d'appeler la fonction demandée afin de l'essayer pour différentes valeurs des paramètres. 1/ Triangle, rectangle La surface d'un triangle quelconque peut se calculer à partir des longueurs a, b et c de trois côtés de la manière suivante : a b c On calcule d'abord la demi somme d des longueurs des trois côtés : d 2 La surface S est alors donnée par la formule S d.( d a).( d b).( d c) Pour savoir si un triangle est rectangle on peut vérifier si le théorème de Pythagore s'applique dans ce rectangle. Pour cela il faut vérifier si la somme des carrés des longueurs des deux côtés les plus courts est égale au carré de la longueur du côté le plus long. Si on ne connaît quel 2 2 2 2 2 2 côté est le plus long, il faut tester si une des trois égalités : a b c ou b c a ou 2 2 2 c a b est vraie. 3.1 Écrire une fonction qui, à partir de trois longueurs, retourne : 1 si ces longueurs représentent les côtés d'un triangle rectangle 0 si ces longueurs ne représentent pas les côtés d'un triangle rectangle -1 si ces longueurs ne peuvent pas être les côtés d'un triangle 3.2/ Écrire une fonction qui retourne la surface d'un triangle quelconque à partir des longueurs de ses trois côtés. Utiliser les fonctions précédentes dans un programme qui affiche la surface d'un triangle et qui détermine si un triangle est rectangle. 2/ Factorielle Écrire une fonction qui calcule la factorielle d un entier N passé en paramètre. Donner la limite de N en fonction du type de la valeur de retour de la fonction. int Facto(int n); 3/ Nombre d'occurrence d'un caractère Écrire une fonction qui retourne le nombre de fois qu'un caractère donné apparaît dans une chaîne. Le prototype pourra être int nbcar ( char * s, char x ); 4/ "Renverser" chaîne Écrire une fonction qui renverse une chaîne de caractères. En appelant la fonction avec un tableau contenant la chaîne "bonjour", le contenu du tableau sera modifié pour contenir la chaîne "ruojnob".

5/ Mélanger une chaîne TP n 7 Les fonctions Écrire une fonction qui mélange aléatoirement les caractères d'une chaîne passée en paramètre. 6/ Conversion chaîne / nombre entier Écrire une fonction qui retourne un nombre entier égal à la valeur numérique d'une chaîne de caractères composée des caractères chiffres. Exemple : la chaîne "1234" donne l'entier 1234. Modifier votre fonction pour qu'elle arrête l'interprétation au premier caractère qui n'est pas un caractère chiffre. Exemple : la chaîne "1234 mv" donne l'entier 1234. (remarque : c'est similaire à ce que fait scanf pour le format %d) 7/ Conversion chaîne / nombre réel ŠŠŠŠ crire une fonction qui retourne un nombre réel égal à la valeur numérique d'une chaîne de caractères composée des caractères chiffres et éventuellement du point décimal '.'. (Il pourra être judicieux de réutiliser la fonction écrite en 7 ) Exemple : la chaîne "1234.034" donne l'entier 1234.034. Modifier votre fonction pour qu'elle arrête l'interprétation au premier caractère qui n'est pas un caractère chiffre ou le point décimal. 8/ Sinus ŠŠŠŠ Écrire la fonction sinus qui retourne le développement limité de sin(x) au voisinage de zéro à l ordre n. Cette fonction pourra appeler la fonction Facto de l'exercice n 1. double SinDL(float x, int n); On rappelle : sin x = x x3 3! x5 5! x7 7!... Écrire une fonction principale qui appelle votre fonction SinDL() et la fonction sin() de la librairie mathématique et compare les résultats.

TP n 8 Les fichiers 1/ Écrire dans un fichier 1.1/ Faire un programme qui écrit des phrases entrées au clavier dans un fichier nommé texte.txt. Le programme s'arrête dès que la phrase entrée est : STOP 1.2/ Écrire un programme qui écrit dans un fichier texte la suite des valeurs prises par la fonction y(t)=339.4.sin(314t) pour t variant entre 0 et 20.10-3 par pas de 0.2.10-3. Le fichier contiendra donc : t y(t) 0,00E+000 0,00E+000 2,00E-004 2,13E+001 4,00E-004 4,25E+001 6,00E-004 6,36E+001 8,00E-004 8,44E+001 1,00E-003 1,05E+002 1,20E-003 1,25E+002 1,40E-003 1,44E+002... 2/ Lire un fichier 2.1/ Écrire un programme qui affiche le contenu d'un fichier texte à l'écran. 2.2/ Écrire un programme qui lit dans le fichier créé à la question 1.2 la valeur de y(t) lorsque l'on rentre la valeur t au clavier. -a) en supposant que la valeur entrée existe exactement dans le fichier -b) en donnant la valeur de y(t) correspondant à la valeur de t existant dans le fichier qui la plus proche de la valeur tapée. 3/ Fichier crypté par César Reprendre le TP6.5 mais lisant le texte clair dans un fichier et en écrivant le texte crypté dans un autre fichier. Écrire un programme qui décrypte un fichier crypté par la méthode césar en créant un fichier contenant le texte clair. Fichier clair Fichier crypté Fichier décrypté Écrire un programme qui compare deux fichiers et l'utiliser pour vérifier que le fichier décrypté est identique au fichier clair. 4/ Occurrences des caractères dans un texte Écrire un programme qui lit un fichier texte et produit un fichier dans lequel on trouve le nombre d'occurrence de chaque caractère présent dans le fichier lu.