TP6 : Entrées/Sorties

Documents pareils
TP, première séquence d exercices.

Le langage C. Séance n 4

1. Structure d'un programme FORTRAN 95

Cours Informatique Master STEP

Licence Sciences et Technologies Examen janvier 2010


La mémoire. Un ordinateur. L'octet. Le bit

Présentation du langage et premières fonctions

Etude de fonctions: procédure et exemple

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

Le prototype de la fonction main()

Représentation d un entier en base b

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

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

Algorithmique et Programmation, IMA

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

UE Programmation Impérative Licence 2ème Année

ACTIVITÉ DE PROGRAMMATION

Plan du cours Cours théoriques. 29 septembre 2014

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Système binaire. Algèbre booléenne

Chap III : Les tableaux

L ALGORITHMIQUE. Algorithme

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

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

Continuité et dérivabilité d une fonction

Gestion des Clés Publiques (PKI)

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

Exercices - Polynômes : corrigé. Opérations sur les polynômes

Cours 7 : Utilisation de modules sous python

Quelques éléments de compilation en C et makefiles

Examen Médian - 1 heure 30

= constante et cette constante est a.

La Licence Mathématiques et Economie-MASS Université de Sciences Sociales de Toulouse 1

1 Lecture de fichiers

Chapitre 10 Arithmétique réelle

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1

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

Algorithmique et programmation : les bases (VBA) Corrigé

Cours d algorithmique pour la classe de 2nde

TP1. Outils Java Eléments de correction

Méthodes de quadrature. Polytech Paris-UPMC. - p. 1/48

Exercices sur les interfaces

Informatique Générale

Sub CalculAnnuite() Const TITRE As String = "Calcul d'annuité de remboursement d'un emprunt"

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

Continuité en un point

Conversion d un entier. Méthode par soustraction

Seniors/Niveau 2. Connaissances préalables requises. Pour accéder au niveau 2, il faut être capable de:

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

STAGE IREM 0- Premiers pas en Python

Environnements et Outils de Développement Cours 1 Introduction

Rappels d architecture

Outils pour la pratique

AC AB. A B C x 1. x + 1. d où. Avec un calcul vu au lycée, on démontre que cette solution admet deux solutions dont une seule nous intéresse : x =

Compilation (INF 564)

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Initiation à la programmation en Python

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

Les commandes de base de LINUX

USTL - Licence ST-A 1ère année Initiation à la programmation TP 1

Polynômes à plusieurs variables. Résultant

Introduction au pricing d option en finance

ALGORITHMIQUE ET PROGRAMMATION En C

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Introduction à l algorithmique et à la programmation (Info 2)

TP3 : Manipulation et implantation de systèmes de fichiers 1

Cours Fonctions de deux variables

Programmation Classique en langage C

HISTORIQUE DES SYSTEMES D'EXPLOITATION (S.E.)

La création d un paquet Debian. Aurélien Jarno. Journées du Logiciel Libre. 15 octobre 2005

Algorithmique I. Algorithmique I p.1/??

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

La question est : dans 450 combien de fois 23. L opération est donc la division. Le diviseur. Le quotient

Rappels Entrées -Sorties

Les arbres binaires de recherche

Université Paris-Dauphine DUMI2E 1ère année, Applications

Master IMA - UMPC Paris 6 RDMM - Année Fiche de TP

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1

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)

L informatique en BCPST

Propagation sur réseau statique et dynamique

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

Chapitre I Notions de base et outils de travail

IV- Comment fonctionne un ordinateur?

V- Manipulations de nombres en binaire

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Compléments de documentation Scilab : affichage de texte et formatage de nombres

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

TP1 : Initiation à l algorithmique (1 séance)

Cours 1 : Qu est-ce que la programmation?

Structure d un programme

Mathématiques I Section Architecture, EPFL

TER Licence 3 Electronique des Télécoms Transmission GSM

Cours de Programmation 2

De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que

M06/5/COMSC/SP1/FRE/TZ0/XX INFORMATIQUE NIVEAU MOYEN ÉPREUVE 1. Mardi 2 mai 2006 (après-midi) 1 heure 30 minutes INSTRUCTIONS DESTINÉES AUX CANDIDATS

Cours d Algorithmique et de Langage C v 3.0

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

Transcription:

TP6 : Entrées/Sorties Vous devez à la fin de la séance savoir compiler à la main et utiliser un makefile pour compiler. Vous trouverez un exemple de makefile à l adresse suivante : http://www.math.ubordeaux1.fr/ dobj/f90/makefile 1 Ecran et clavier Exercice 1 : Le but de cet exercice est d écrire un programme qui affiche de différentes manières les valeurs d une matrice carrée 2 2. 1. Dans un fichier libre.f90, créer une subroutine permettant d afficher à l écran une matrice carrée 2 2 en format libre. 2. Dans un fichier flot.f90, créer une subroutine permettant d afficher à l écran une matrice carrée 2 2 avec des nombres flottants comportant 2 chiffres après la virgule et 4 chiffres en tout, 3. Dans un fichier sci.f90, créer une subroutine permettant d afficher à l écran une matrice carrée 2 2, en notation scientifique avec 3 chiffres après la virgure. 4. Dans un fichier prog.f90, créer un programme qui appelle les 3 subroutines précédentes et testez-le avec les matrices ci-dessous ( ) ( ) ( ) 3.444 2.34 378.444 29.34 3 2,,. 10.555 89.9 100.555 89122.9 100000 1 Exercice 2 : Ecrivez un programme qui affiche à l écran le vecteur suivant : ( 1 20 300 40000 50000 60 7 8 9 10 ) Pour cela, vous définirez et utiliserez un format qui affiche 10 fois un entier composé de 5 chiffres suivis de 2 espaces. 2 Fichiers Exercice 3 : Cet exercice fait suite à l exercice 3 du TP5. 1. Dans un fichier lagrange.f90, écrivez une subroutine qui prend comme arguments d entrée un entier n, un vecteur de réel y et comme argument de sortie un vecteur de réel poly de même taille que y. Calculez pour tout i le polynome d interpolation de Lagrange à n points 1

en x = y(i) de la fonction f(x) = 1 et stockez pour chaque i la valeur de ce polynôme 1 + x2 dans le vecteur poly. 2. Dans un fichier prog.f90, définissez un vecteur y de taille 51 et initialisez-le avec des valeurs équiréparties entre [ 1, 1]. Déclarez un vecteur pol de même taille. Appelez la subroutine lagrange avec comme argument (4,y,pol) puis affichez à l écran pour tout k : y(k) pol(k). NB : la subroutine lagrange est une subroutine externe, n oubliez pas de définir une interface dans votre programme. 3. Compilez votre programme en nommant l exécutable exo3 4. Exécutez votre programme en tapant./exo3 > data4. Vérifiez grâce à gnuplot que vous obtenez le bon résultat. 5. Dans un fichier ecriture.f90, écrivez une subroutine writepoly qui prend comme arguments d entrée un vecteur x, un vecteur f et une chaine de caractère filename. Dans cette subroutine, ouvrez un fichier dont le nom est contenu dans filename et qui n existe pas. Ecrivez dedans pour chaque i : x(i) f(i). NB : pour déclarer comme argument d entrée une chaine de caractère de taille quelconque : character(len=*),intent(in)::filename 6. Appelez la subroutine write dans votre programme en donnant comme nom de fichier poly4. Compilez, exécutez et vérifiez en traçant le contenu du fichier poly4 avec gnuplot que votre résultat est juste. 7. Exécutez une seconde fois votre programme. Que constatez-vous? Proposez une modification de votre programme pour palier ce problème. 8. On veut maintenant pouvoir lire les valeurs du vecteur y dans un fichier non formatté (i.e. binaire). Ces fichiers ont été écrit par le programme fortran ci-dessous. Copiez ce programme dans un fichier, compilez-le et exécutez-le afin de créer les fichiers 10points contenant 10 points et 101points contenant 101 points. Essayez d ouvrir les fichiers 10points et 101points avec emacs, que constatez-vous? program bin implicit none character(len=20)::filename real,dimension(:),allocatable::y real::inter integer::n,j,i print*, donner un nom de fichier read*,filename print*, donner le nombre de point 2

read*,n allocate(y(n)) inter = n-1 y=(/(-1.+2.*j/inter,j=0,(n-1))/) open(file=filename,unit=10,status= unknown,form= unformatted ) write(10) size(y) do i=1,size(y) write(10) y(i) end do close(10) deallocate(y) end program bin 9. Dans le fichier prog.f90, lisez un nom de fichier au clavier puis initialisez un vecteur de points à l aide de ce fichier. Appelez ensuite les subroutine lagrange et writepoly avec ce vecteur. Exécutez votre programme avec les fichiers 10points. Vérifiez à l aide de gnuplot que votre résultat est correct. Faites de même avec le fichier 101points. NB : Pour pouvoir comparer tous vos résultats, vous pouvez modifier votre programme pour demander à l utilisateur le nom du fichier dans lequel sera écrit le polynome d interpolation. Exercice 4 : Définissez un format qui permette 4 fois l affichage d une chaine de caractère de 40 caractères suivie d un retour à la ligne. Utilisez ce format pour afficher à l écran le texte suivant 1 : Sables Il n est pas de desert si vaste Que ne puisse traverser Celui que porte la musique des etoiles 3 Modules Exercice 5 : OBLIGATOIRE Cet exercice fait suite à l exercice 5 du TP4. On représente toujours le polynôme P (x) = n i=0 a ix i par un type dérivé polynome composé : d un entier degre qui représente le degré du polynôme d un tableau de réels coefficients à une dimension contenant 101 cases numérotées de 0 à 100, représentant les coefficients du polynôme (on suppose que le degré du polynôme est au maximum 100). 1 Ce poème a été écrit par M. LE SAINT qui a remporté un prix lors du 5e concours de poésie RATP. 3

Exemple : Pour P, l entier degre vaut n et le tableau coefficients est (\a 0, a 1,..., a n, 0,..., 0\) Dans un fichier modpoly.f90, créer un module contenant : 1. le type dérivé polynome. 2. la fonction initialize pol 3. la subroutine print pol 4. la subroutine cree monome 5. la fonction copie pol 6. la fonction add pol 7. la subroutine mult pol 8. la fonction derivpol Dans un fichier poly.f90, faites appel à ce module et tester que tout marche correctement. 1. Ecrivez sur papier l algorithme effectuant la division euclidienne de deux polynômes 2. En se servant des sous-programmes écrits dans les questions précédentes, toujours dans le module modpoly, écrire une subroutine divisioneucl qui effectue la division euclidienne de 2 polynômes. Cette subroutine prend comme paramètres : deux polynômes, le reste de la division, le quotient de la division. 4 Encore des exercices sur les fichiers et les formats Exercice 6 : Le but de cet exercice est de se familiariser avec des programmes qui lisent et écrivent des fichiers. 1. Voici un premier programme : http://www.math.u-bordeaux1.fr/ dobj/f90/exformatte.f90 Télécharger-le ainsi que le fichier : http://www.math.u-bordeaux1.fr/ dobj/f90/bat.amdba Dans ce programme, on veut lire un fichier dont le nom est donné par l utilisateur et écrire dans un fichier nommé toto. Lisez le programme, compilez-le (en corrigeant bien sur les différentes erreurs qui apparaissent) et faites le tourner deux fois. Tout se passe-t-il bien? Pourquoi? 4

2. Télécharger le programme suivant : http://www.math.u-bordeaux1.fr/ dobj/f90/exerreur.f90 ainsi que les fichiers : http://www.math.u-bordeaux1.fr/ dobj/f90/ficherr http://www.math.u-bordeaux1.fr/ dobj/f90/bat.amdba Dans ce programme, on veut gérer correctement les erreurs. Assurez-vous que vous comprenez tout ce qu il y a écrit dans le programme, compilez et executez-le avec les fichiers télécharger. Que se passe-t-il? Pourquoi? 5