Chaînes de caractères. Enregistrement. TCH010-Informatique



Documents pareils
Les structures de données. Rajae El Ouazzani

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

Programme Compte bancaire (code)

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

PARTAGE DE DOCUMENTS EN LIGNE AVEC ONEDRIVE

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

Les structures. Chapitre 3

Cours de Programmation Impérative: Zones de mémoires et pointeurs

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

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

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

I. Introduction aux fonctions : les fonctions standards

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

Corrigé des exercices sur les références

Le langage C. Séance n 4

Premiers Pas en Programmation Objet : les Classes et les Objets

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)

Introduction à la programmation concurrente

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...


Les arbres binaires de recherche

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

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

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

Java Licence Professionnelle CISII,

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

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

Conventions d écriture et outils de mise au point

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

Programmation impérative

Cahier des charges. driver WIFI pour chipset Ralink RT2571W. sur hardware ARM7

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Poker. A rendre pour le 25 avril

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

I00 Éléments d architecture

PROJET 1 : BASE DE DONNÉES REPARTIES

Tp 1 correction. Structures de données (IF2)

Archivage Messagerie Evolution pour usage HTML en utilisant Hypermail

Installer Office sur Ordinateur / Tablette / Smartphone

Délocaliser vos vidéos MEDIAplus

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Cours Informatique 1. Monsieur SADOUNI Salheddine

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

Introduction au langage C

Windows 10 Technical Preview

Cours de Systèmes d Exploitation

Informatique. Les réponses doivent être données en cochant les cases sur la dernière feuille du sujet, intitulée feuille de réponse

Premiers Pas avec OneNote 2013

INSTALLATION DBSWin En réseau

ENVOI EN NOMBRE DE SMS

Cours d initiation à la programmation en C++ Johann Cuenin

Securexam pour le programme CPA,CGA

Préconisations Portail clients SIGMA

Les chaînes de caractères

Club informatique Mont-Bruno Séances du 13 et du 29 octobre 2010 Présentateur : Réjean Côté

Tsoft et Groupe Eyrolles, 2005, ISBN :

EXERCICES UML. Modéliser cette situation par un diagramme de cas d utilisation. Consulter planning

Oracle Developer Suite 10g. Guide de l installation. Vista & Seven

Développement d un logiciel de messagerie instantanée avec Dotnet (version simplifiée)

La Clé informatique. Formation Excel XP Aide-mémoire

Projet de programmation (IK3) : TP n 1 Correction

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

03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing

Cahier des Clauses Techniques Particulières

PROJET ALGORITHMIQUE ET PROGRAMMATION II

Programmer en JAVA. par Tama

ENVOI EN NOMBRE DE SMS

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski

Pc Portable ou Tablette tactile?

Présentation du langage et premières fonctions

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

Atelier n 12 : Assistance à distance

Algorithmique et Programmation, IMA

Cours 6 : Tubes anonymes et nommés

A QUOI SERVENT LES BASES DE DONNÉES?

LA DIVERSITE DES SUPPORTS ANDROID

CUOMO PC Route d Oron Lausanne 021/

Systèmes embarqués D.Rossier

Cahier n o 6. Mon ordinateur. Fichiers et dossiers Sauvegarde et classement

cc.region.beaujeu@wanadoo.fr Site Internet Actuellement nous trouvons ce schéma réseau :

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

TIC. Tout d abord. Objectifs. L information et l ordinateur. TC IUT Montpellier

ORDINATEUR DOSSIERS FICHIERS

Comment obtenir des ebooks sur le Reader

Utilisation d objets : String et ArrayList

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

Dans le chapitre 1, nous associions aux fichiers ouverts des descripteurs de fichiers par lesquels nous accédions aux fichiers.

LECON 2 : PROPRIETES DE L'AFFICHAGE Version aout 2011

Comme chaque ligne de cache a 1024 bits. Le nombre de lignes de cache contenu dans chaque ensemble est:

Exigences système Commercial & Digital Printing

Avertissement : Nos logiciels évoluent rendant parfois les nouvelles versions incompatibles avec les anciennes.

Mon aide mémoire traitement de texte (Microsoft Word)

Matériel informatique à petit prix dans un cadre d'économie Sociale et Solidaire

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

Acquisition de matériels informatiques

ACTIVITÉ DE PROGRAMMATION

Guide pratique de vos solutions mobiles à l international. Téléphonez et restez joignable à l étranger GUIDE ROAMING

Un ordonnanceur stupide

WinReporter Guide de démarrage rapide. Version 4

Transcription:

Chaînes de caractères Enregistrement

Exemple 1: Écrire un programme de conjugaison des verbes en "er". Le programme lit un verbe régulier en "er" au clavier et en affiche la conjugaison au présent de l'indicatif. Vous devez implémenter au minimum 3 fonctions : Une fonction qui vérifie qu il s agit bien d un verbe en "er" Une fonction qui remplit un tableau avec les différentes conjugaisons Une fonction qui affiche le contenu du tableau

Structure de données: #define JE 0 #define TU 1 #define IL 2 #define NOUS 3 #define VOUS 4 #define ILS 5 #define MAXCAR 100 #define MAXLIGNE 6 0 Programme 1 Programmes 2 Programme 3 Programmons 4 Programmez 5 Programment // tableau de chaine de caractere typedef char t_mot[maxcar]; typedef t_mot t_tab_conjugaison[maxligne];

#define TRUE 1 #define FALSE 0 // fonction qui verifie si un mot se termine bien par er // renvoie TRUE si c est le cas, FALSE sinon. int verbe_en_er(char * verbe){ int valide=false; // verifier les 2 derniers caracteres if ((verbe[strlen(verbe)-1]=='r')&&(verbe[strlen(verbe)-2]=='e')) valide=true; } return valide; P R O G R A M M E R \0 0 1 2 3 4 5 6 7 8 9 10

void conjuguer(t_tab_conjugaison tablo, char * verbe){ char racine[maxcar]; 0 Programm int personne=0; 1 Programm //determiner la racine 2 Programm strcpy(racine, verbe); 3 Programm racine[strlen(racine)-2]='\0'; // enlever er 4 Programm // copier la racine pour chaque personne for(personne=je;personne<=ils;personne++){ 5 Programm strcpy(tablo[personne],racine); } // ajouter la terminaison 0 Programme strcat(tablo[je],"e"); 1 Programmes strcat(tablo[tu],"es"); strcat(tablo[il],"e"); t(t ") 2 Programme strcat(tablo[nous],"ons"); 3 Programmons strcat(tablo[vous],"ez"); strcat(tablo[ils],"ent"); 4 Programmez } 5 Programment

void afficher_conjugaison(t_tab_conjugaison tablo,int nb_ligne){ int ligne=0; } for(ligne=0;ligne<nb_ligne;ligne++){ g g g printf("%s\n",tablo[ligne]); } Programme Programmes Programme Programmons Programmez Programment

// programme principal int main(void){ char verbe[maxcar]; // sert a memoriser le verbe conjuguer t_tab_conjugaison conjugaison; // tableau de conjugaison // lecture du verbe tant qu'il ne finit pas par er do{ printf("\n entrez un verbe se terminant en er:"); scanf("%s",verbe); " }while(!verbe_en_er(verbe)); // conjuguer conjuguer(conjugaison,verbe); //affichage afficher_conjugaison(conjugaison,maxligne); } return EXIT_SUCCESS;

Exemple 2: Définissez les structures nécessaires pour mettre en mémoire les informations suivantes sur un groupe de 10 personnes : Chaque personne doit être décrite par les informations suivantes : Nom Pré Date de naissance Adresse Numéro de téléphone Chaque adresse doit être décrite par les informations suivantes : Numéro civique Nom de la rue Ville Code-Postal Le numéro de téléphone doit être décrit par les informations suivantes : Indicatif régional à 3 chiffres Numéro à 7 chiffres

pré date de naissance adresse numéro de tél. jour mois année rue ville 0 personne Indicatif rég. 1 personne Téléphone jour 9 personne pré date de naissance adresse numéro de tél. mois année jour mois année Indicatif rég. Téléphone

0 personne 1 personne pré date de naissance adresse 9 personne numéro de tél. jour mois année rue ville Indicatif rég. Téléphone t_ date t_adresse t_numtel typedef struct{ long long } t_numtel; typedef struct{ long long long }t_date; indicatif_regional; telephone; jour; mois; annee; #define MAX_CAR 100 typedef char t_chaine[max_car]; typedef struct{ long ; t_chaine rue; t_chaine ville; } t_adresse;

0 personne 1 personne pré date de naissance adresse 9 personne numéro de tél. t_personne jour mois année rue ville Indicatif rég. Téléphone t_ date t_adresse t_numtel typedef struct{ t_chaine ; t_chaine pre; t_date date_de_naissande; t_adresse adresse; t_ numtel _ de_ tel; } t_personne;

0 personne 1 personne pré date de naissance adresse 9 personne numéro de tél. t_groupe t_personne jour mois année rue ville Indicatif rég. Téléphone t_ date t_adresse t_numtel typedef struct{ t_chaine ; t_chaine pre; t_date date_de_naissande; t_adresse adresse; t_ numtel _ de_ tel; } t_personne; #define MAX_PERS 10 typedef t_personne t_groupe[max_pers];

Définissez les structures nécessaires pour conserver les informations des différentes salle d ordinateur de l ÉTS. Un contient une ou plusieurs (s). Chaque a un numéro de local (ex. : 1222, 1226, etc.). Une, c est un ordinateur et un écran. Évidemment, e chacune des s s possède un numéro qui permet de l identifier. Pour chaque ordinateur, nous voulons la puissance du CPU (en MHz), la quantité de mémoire vive (en Mo), la capacité du disque (en Go) et la (ex. : "Compaq", "Hp", etc.). Il faut aussi pouvoir oir conserver tous les s installés sur la machine. Pour chaque écran il faut : la (ex. : "Samsung", "Sony", etc.), la taille (en pouces) et la résolution (comme.25 ou.27). Pour chaque, il faut : le du (ex. : "Word", "Excel", etc.), la compagnie distributrice (ex. : "Microsoft", "Borland", etc.) et la version (ex. : 1.5, 2.08, etc.). Les chaînes de caractères sont au maximum de 40 caractères. Il y a au maximum 100 s par ordinateur, 25 s par et 10 s.

s nb s ordinateur ecran #define MAX_CAR 41 //40 caractères + \0 #define MAX_LOGICIEL 100 #define MAX_STATION 25 #define MAX_LABO 10 typedef char t_chaine[max_car]; puissance espace disque memoire s nb resolution taille t_ecran typedef struct{ double double t_chaine }t_ecran; resolution; taille; ; typedef struct{ t_chaine ; t_chaine cie; double version; }t_; t_ compagnie version

t_ordinateur s nb s ordinateur ecran //un tableau de s typedef t_ t_tab_[max_logiciel]; puissance espace disque memoire s nb resolution taille t_ecran typedef struct { t_tab_ t_chaine double double double ; puissance; espace_disque; memoire; t_ compagnie version }t_ordinateur; t_tab_ tab_; int nb_;

t_ordinateur s nb s //une typedef struct { t_tab_ char ; t_ordinateur ordi; t_ecran ecran; ordinateur ecran t_ puissance espace disque memoire s nb resolution taille t_ecran t_tab_ t_ compagnie version //un tableau de typedef t_ t_tab_[max_station]; }t_;

t_ordinateur s nb s t_labo //un labo typedef struct { char t_tab_ ; ordinateur ecran t_ puissance espace disque memoire s nb resolution taille t_ecran //un tableau de t_tab_ t_ compagnie version typedef t_ t_tab_[max_station]; int nb_; t_tab_ tab_; }t_labo;

t_tab_labo t_ordinateur s nb s t_labo t_tab_ ordinateur ecran t_ //la définition du tableau contenant les s puissance espace disque memoire s nb resolution taille t_ecran t_tab_ t_ compagnie version typedef t_labo t_tab_labo[max_labo];

t_tab_labo t_ordinateur s nb s t_labo t_tab_ ordinateur ecran t_ puissance espace disque memoire s nb resolution taille t_ecran t_tab_ t_ compagnie version int main (void){ //(rappel: pas de variable, pas d'espace réservé) t_tab_labotab tab_labo = {0}; } int nb_labo = 0;

t_tab_labo t_ordinateur s nb s t_labo Valide ou pas? t_tab_ ordinateur ecran t_ puissance espace disque memoire s nb resolution taille t_ecran t_tab_ t_ compagnie version tab_labo1.tab_1.ordi. = «Nec»; tab_labo[0].tab_[0].ordi.tab_[0]. _ [ ] _ [ ] = «TC»; t_ecran ecran = {1024*768,17,"Nec"}; t_ordinateur ordi = {"Vtech",4,1.4,200,{0}};

t_tab_labo t_ordinateur s nb s t_labo Valide ou pas? t_tab_ ordinateur ecran t_ puissance espace disque memoire s nb resolution taille t_ecran t_tab_ t_ compagnie version t_ ;. = 1;.ecran = ecran;.ordi = ordi; tab_labo[0].tab_[0] = ;

t_tab_labo t_ordinateur s nb s t_labo t_tab_ ordinateur ecran t_ puissance espace disque memoire s nb resolution taille t_ecran //Fonction qui compare deux écrans t_tab_ t_ compagnie version int ecran_pareil(t_ecran ec1, t_ecran ec2){ return ec1.resolution == ec2.resolution && ec1.taille == ec2.taille && strcmp(ec1.,ec2.) == 0; }