// Bonjour et bienvenue dans cette traduction en français de notre // programme de morse

Documents pareils
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)

Introduction au langage C

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Le prototype de la fonction main()

Java Licence Professionnelle CISII,

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

3IS - Système d'exploitation linux - Programmation système

MISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES. Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année

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

Programmation système de commandes en C

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

Les chaînes de caractères

Programmation Classique en langage C

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Programmation système I Les entrées/sorties

Algorithmique et Programmation, IMA

Le langage C. Séance n 4

Les structures. Chapitre 3

Programmation en langage C

TP2 : tableaux dynamiques et listes chaînées

Archivage Messagerie Evolution pour usage HTML en utilisant Hypermail

Cours de C. Petits secrets du C & programmation avancée. Sébastien Paumier

Chap III : Les tableaux

Programmation C. J.-F. Lalande. 15 novembre 2012


EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

MINIMUM. connaissances nécessaires à la programmation des microcontrôleurs PIC18 en langage C (une introduction au langage c A.N.S.

Les structures de données. Rajae El Ouazzani

I. Introduction aux fonctions : les fonctions standards

Introduction au Langage de Programmation C

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

Programmation en langage C d un µcontrôleur PIC à l aide du compilateur C-CCS Sommaire

OS Réseaux et Programmation Système - C5

#include <stdio.h> #include <stdlib.h> struct cell { int clef; struct cell *suiv; };

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

COMPARAISONDESLANGAGESC, C++, JAVA ET

INITIATION A LA PROGRAMMATION

Durée estimée :1 journée Date de la réalisation : Description Fournisseur Référence Nombre PU HT LM35CZ, LM35AZ LM35DZ

Langage Éric Guérin 5 octobre 2010

Brefs rappels sur la pile et le tas (Stack. / Heap) et les pointeurs

Derrière toi Une machine virtuelle!

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

DNS Server RPC Interface buffer overflow. Céline COLLUMEAU Nicolas BODIN

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Plan du cours. Historique du langage Nouveautés de Java 7

Programmer en JAVA. par Tama

Outils pour la pratique

Les fichiers. Chapitre 4

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

TRAVAUX PRATIQUES Programmation Système Langage C / Système UNIX. 2 e année Génie Informatique

Chapitre 1 : La gestion dynamique de la mémoire

Programmation système en C/C++

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

as Architecture des Systèmes d Information

Programmation en langage C Eléments de syntaxe

Cours Programmation Système

Programmation C++ (débutant)/instructions for, while et do...while

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

COURS D'INFORMATIQUE: LANGAGE C NOTES DE COURS

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

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

Lier Erlang avec d autres langages de programmation

Programmation en C. École Nationale Supérieure de Techniques Avancées. Pierre-Alain Fouque et David Pointcheval

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

Compression de Données - Algorithme de Huffman Document de Conception

Conventions d écriture et outils de mise au point

Programmation Réseau SSH et TLS (aka SSL)

TD3: tableaux avancées, première classe et chaînes

Cours d Algorithmique et de Langage C v 3.0

Claude Delannoy. 3 e édition C++

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

I00 Éléments d architecture

Programmation en C - Sommaire

Anis ASSÈS Mejdi BLAGHGI Mohamed Hédi ElHajjej Mohamed Salah Karouia

SUPPORT DE COURS. Langage C

Les processus légers : threads. Système L3, /31

ACTIVITÉ DE PROGRAMMATION

Le Langage C Licence Professionnelle Qualité Logiciel Pr. Mouad BEN MAMOUN ben_mamoun@fsr.ac.ma Année universitaire 2011/2012

Cours 6 : Tubes anonymes et nommés

Langage C. Patrick Corde. 22 juin Patrick Corde ( Patrick.Corde@idris.fr ) Langage C 22 juin / 289

Notes de Cours - Programmation Pascal Ferraro

INFO-F-404 : Techniques avancées de systèmes d exploitation

Notions fondamentales du langage C# Version 1.0

Les débordements de tampons et les vulnérabilités de chaîne de format 1

Gestion mémoire et Représentation intermédiaire

Le C en 20 heures. Eric Berthomier & Daniel Schang. Septembre 2011 (Màj.) Publié sous licence

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

INF 104 (SELC) Introduction au langage C

Programme Compte bancaire (code)

Cours de C. Allocation dynamique. Sébastien Paumier

Utilisation d objets : String et ArrayList

Examen d informatique première session 2004

La programmation des PIC en C. Les fonctions, les interruptions.

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

Table des matières. Chapitre 4 : Variables pointeurs

Le système de gestion des fichiers, les entrées/sorties.

Arguments d un programme

STS SE. FreeRTOS. Programmation réseau WIFI. Programmation réseau. Socket Tcp. FlyPort smart Wi-Fi module

Cours de programmation avancée. Le langage C. Université du Luxembourg

Transcription:

Dans cette partie de notre site internet vous trouverez les codes que nous avons utilisé dans notre TPE. Il contient le premier code du traducteur franco-morse, ainsi que la deuxième version. Cette page contient également le code de l automatisation de l émission du code morse avec la carte Arduino. Version 1.1 // Bonjour et bienvenue dans cette traduction en français de notre // programme de morse // la première chose à dire est que les lignes qui commence par // // ne compte pas dans le programme donc je m en servirais pour vous // expliquer le code : #include <stdio.h> #include <string.h> // les «includes» servent à inclure des librairies c est-à-dire des dossiers qui contiennent des fonctions dont nous aurons besoin int main(int argc, const char * argv[]) // cette ligne est obligatoire elle dit au compilateur que le programme commence ici. int lettre; // la nous initialisons des variables quand une variable commence par INT c est que elle est de type nombre quand elle commence par CHAR c est que elle est de type «lettre» char mot; int choix; int infini = 10; char a[] = "010110"; char b[] = "0110101010"; char c[] = "01101011010"; // ici j initialise des variables de type lettre (car elle sont entre mais j en ai plusieurs grâce au []. Cela ne sert à définir que la D par exemple contient un bip long (0110) et de deux bip court(010) char d[] = "01101010"; char e[] = "010"; char f[] = "0101011010"; char g[] = "011011010"; char h[] = "010101010"; char i[] = "01010"; char j[] = "010110110110"; char k[] = "011010110"; char l[] = "0101101010"; char m[] = "0110110"; char n[] = "011010"; char o[] = "0110110110"; char p[] = "01011011010";

char q[] = "011011010110"; char r[] = "01011010"; char s[] = "0101010"; char t[] = "0110"; char u[] = "01010110"; char v[] = "0101010110"; char w[] = "01101001010"; char x[] = "010110110"; char y[] = "011010110110"; char z[] = "01101101010"; printf("\n\n"); // la fonction printf sert à afficher et ici les \n servent à sauter à la ligne. ********************MENU******************* Bienvenue dans le programme de traduction du morse en français crée par les membres du tpe Entrez le numero du programme que vous-voulez executer: 1.Les membres 2.Programme de traduction ******************************************* scanf("%d", &choix); // la fonction scanf sert à reconnaître ce que l utilisateur va rentrer ici nous devons entrer un nombre qui sera enregistré dans la variable choix switch(choix) // la fonction switch sert à dire si choix est égal à un, faire ce qui est contenu dans case 1, si choix est égal a 2, faire ce qui est contenu dans case 2. case 1: printf("les membres sont: \n\n"); printf("caruso Louis\n"); printf("simonin Corentin\n"); printf("couchot Adrien\n"); printf("blind Lydie\n"); break; case 2:

printf("si vous-voulez commencez la traduction appuyer sur 1\n"); scanf("%d", &lettre); // comme avant scanf regarde ce que l utilisateur entre, puis il est place à la variable dans «lettre» if (lettre == 1) printf("entrez le mot lettre par lettre\n"); do // la fonction do est terminée par une fonction while qui dit que il faut faire ça à l infini puisque tant que infini est égal à 10 il faut le faire sachant que infini ne change jamais ça le fera en permanence. scanf("\n%s",&mot); // comme tout à l heure la fonction sert à copier ce que l utilisateur entre et l enregistre dans la variable mot. // si la fonction if dit que si la lettre enregistrée dans la variable mot est égal à 97 il faut écrire la variable à qui correspondait tout à l heure à 010110. Si vous me demandez pourquoi le nombre 97 et pas «a» je vous dirais simplement qu il faut se référer à la table ASCII qui dit qu en informatique la lettre «a» correspond au nombre 97 puisque les machines ne comprennent pas les lettres. Ainsi «b» correspond au nombre 98, «c» au 99 et ainsi de suite if(mot == 97) printf("%s",a); if(mot == 98) printf("%s",b); if(mot == 99) printf("%s",c); if(mot == 100) printf("%s",d); if(mot == 101) printf("%s",e); if(mot == 102) printf("%s",f); if(mot == 103) printf("%s",g);

if(mot == 104) printf("%s",h); if(mot == 105) printf("%s",i); if(mot == 106) printf("%s",j); if(mot == 107) printf("%s",k); if(mot == 108) printf("%s",l); if(mot == 109) printf("%s",m); if(mot == 110) printf("%s",n); if(mot == 111) printf("%s",o); if(mot == 112) printf("%s",p); if(mot == 113) printf("%s",q); if(mot == 114) printf("%s",r); if(mot == 115) printf("%s",s); if(mot == 116) printf("%s",t); if(mot == 117) printf("%s",u); if(mot == 118)

printf("%s",v); if(mot == 119) printf("%s",w); if(mot == 120) printf("%s",x); if(mot == 121) printf("%s",y); if(mot == 122) printf("%s",z); while(infini == 10); // ici c est la fonction qui ne s arrêtera pas break; return 0; // cette fonction donne la fin du programme et remet toutes les variables qu on a initialisé à la valeur zéro mais il ne nous sert pas car la boucle qu on a créé est infini, le programme ne passera donc jamais par cette fonction sauf si on l arrête de force. La version 1.2 // la plupart des fonctions utilisées dans le code précédent seront les mêmes dans celui-là.

#include <stdio.h> #include <stdlib.h> // on inclut diverse librairies qui nous seront utiles #include <string.h> #include <ctype.h> static const char *convert(char caractere); // on avertit le compilateur que on a frabriqué une fonction int main(void) // c est la boucle principale int choix; int entree; static const char *sortie; ********************MENU******************* Bienvenue dans le programme de traduction du morse en franáais crèe par les membres du tpe Entrez le numero du programme que vous-voulez executer: 1.Les membres 2.Programme de traduction ******************************************* scanf("%d", &choix); switch(choix) case 1: printf("les membres sont: \n\n"); printf("caruso Louis\n"); printf("simonin Corentin\n"); printf("couchot Adrien\n"); printf("blind Lydie\n\n"); printf("veuillez entrer la phrase a traduire :"); // cequi suit est un peu compliqué mais concrètement, ce petit morceau de code va chercher les lettres en français et va les associés au code morse et il fait cela jusqu à ce que le mot soit fini et après il passe au suivant. while ((entree = getchar())) sortie = convert(tolower(entree)); if (sortie == NULL) putchar('\n'); else

printf("%s", sortie); fflush(stdout); break; case 2: printf("veuillez entrer la phrase a traduire :"); while ((entree = getchar())) sortie = convert(tolower(entree)); if (sortie == NULL) putchar('\n'); else printf("%s", sortie); fflush(stdout); break; return 0; // ici c est la fonctionne qui permet d associé à une lettre un code en morse static const char *convert(char caractere) static const char *tablecaracteres = "abcdefghijklmnopqrstuvwxyz0123456789 "; /* *INDENT-OFF* */ static const char *tableconvertie[] = ".- ", "-... ", "-.-. ", "-.. ", ". ", /* abcde */ "..-. ", "--. ", "... ", ".. ", ".--- ", /* fghij */ "-.- ", ".-.. ", "-- ", "-. ", "--- ", /* klmno */ ".--. ", "--.- ", ".-. ", "... ", "- ", /* pqrst */ "..- ", "...- ", ".-- ", "-..- ", "-.-- ", /* uvwxy */ "--.. ", "----- ", ".---- ", "..--- ", "...-- ", /* z0123 */ "...- ", "... ", "-... ", "--... ", "---.. ", /* 45678 */ "----. ", " " /* 9[ESPACE] */ ; /* *INDENT-ON* */ const char *pcaractere = strchr(tablecaracteres, caractere);

if (pcaractere == NULL) return NULL; else return tableconvertie[pcaractere - tablecaracteres]; // L avantage de ce second code est qu il traduit toute la phrase en une fois, alors que avec le premier code on devait entrer le mot lettre par lettre. Programme de la carte Arduino : // Ce programme nous sert pour l automatisation de l émission du code morse. int led = 13; // on initialise la broche sur laquelle on branche l Arduino int ab; // on initialise la variable qui contientra ce que l utilisateur a envoyé void a(); // on initialise toutes les fonction (une pour chaque lettre) void b(); void c(); void d(); void e(); void f(); void g(); void h(); void i(); void j(); void k(); void l(); void m(); void n(); void o(); void p(); void q(); void r(); void s(); void t(); void u(); void v(); void w(); void x(); void y(); void z(); void space(); // cette boucle est spécifique au langage Arduino, elle sert d initialisation

void setup() pinmode(led, OUTPUT); // on definit le piezo-buzzer comme une sortie Serial.begin(9600); // on prévient qu on utilisera l interface sur l ordinateur (s appelant le Serial) // cette boucle est spécifique au langage Arduino, et elle s exécute à l infini void loop() ab = Serial.read(); // la variable ab récupère ce que l utilisateur a écrit if(ab == 97) // si la variable est égale a 97 (97=a dans la table ASCII) on exécute la fonction a() et ainsi de suite a(); if(ab == 98) b(); if(ab == 99) c(); if(ab == 100) d(); if(ab == 101) e(); if(ab == 102) f(); if(ab == 103) g(); if(ab == 104) h(); if(ab == 105) i(); if(ab == 106) j(); if(ab == 107) k(); if(ab == 108) l(); if(ab == 109) m(); if(ab == 110) n(); if(ab == 111) o(); if(ab == 112) p(); if(ab == 113) q(); if(ab == 114) r(); if(ab == 115) s(); if(ab == 116) t(); if(ab == 117)

u(); if(ab == 118) v(); if(ab == 119) w(); if(ab == 120) x(); if(ab == 121) y(); if(ab == 122) z(); if(ab == 32) space(); // ici se trouve toutes les variables de l alphabet et sont traduit en code morse. void a() // on allume la broche «led» qui est celle du piezo // on attend 500 millisecondes // on l éteint void b() void c()

void d() void e() void f() void g()

void h() void i() void j()

void k() void l() void m()

void n() void o() void p() void q()

void r() void s() void t() void u()

void v() void w() void x()

void y() void z() void space()