PreviousNextUpTitleContents

FAQ Frequently asked questions - Q&R Questions et réponses



 

A quel public cible s'adresse ce cours?

Ce cours a été élaboré originalement pour des élèves du niveau de treizième de la formation de technicien en informatique au Lycée Technique des Arts et Métiers au Grand-Duché du Luxembourg.

Accompagné du recueil des solutions des exercices, il s'adresse aussi à des personnes qui veulent s'adonner à des études d'autodidacte de la programmation en C.
Il faut toutefois remarquer que C n'est pas un langage facile à utiliser pour des débutants en programmation. Pour cette raison, il est avantageux si vous possédez déjà quelques notions de base de la programmation en PASCAL (ou d'un autre langage de programmation structuré).

Remarque: Aujourd'hui, la programmation en ANSI-C ne se trouve plus au programme de la classe de 13e mentionnée ci-dessus. Nous traitons maintenant la programmation en Delphi sous Windows.


A quel standard de programmation s'oriente ce cours?

Le cours se comprend comme une introduction à la programmation en ANSI-C. (Ne pas à confondre avec le standard ANSI-C++)

Les notations du cours suivent celles de la 'bible' des programmeurs en C: "The C Programming Language" de Kernighan/Ritchie.

No Ansi

Quelques fonctions non-portables, spécifiques à MS-DOS sont introduites dans le cours et marquées par un symbole spécial:
 


Où se trouve la version la plus actuelle du cours?

Vous trouverez la version la plus actuelle du cours sur le serveur Web du Lycée Technique des Arts et Métiers (Luxembourg): Vous pouvez télécharger la version actuelle du cours (comprimée .ZIP) du serveur ftp du Lycée Technique des Arts et Métiers: Si le serveur ne répond pas, veuillez contacter l'administrateur du serveur:

Qu'est-ce que ce "langage algorithmique"?

La matière traitée se base en partie sur les cours d'informatique de la classe de technicien en informatique (Initiation à l'algorithmique, application en Pascal) et contient donc quelques explications utilisant les notations du langage algorithmique qui y ont été introduites.

Ceci ne devrait cependant pas empêcher les personnes possédant quelques notions de base de la programmation en PASCAL (ou d'un autre langage de programmation structuré) de pouvoir tirer profit de ce cours.

Il faut toutefois remarquer que C n'est pas un langage facile à utiliser pour des débutants en programmation.


Pourquoi n'y a-t-il pas de liens directs entre les énoncés et les solutions des exercices?

Actuellement je n'ai pas prévu d'établir des liens directs entre les questionnaires des exercices et les solutions respectives. Les solutions des exercices sont disponibles dans une série de documents à part:
voir: La page des solutions des exercices

(Bien que cette façon de procéder se laisserait facilement justifier par des arguments pédagogiques, la vérité est bien plus simple: environ 200 liens devraient être établis 'manuellement' pour relier les 165 fichiers du cours aux 201 fichiers des solutions ...)

Remarque: Pendant la lecture, il est pratique d'ouvrir deux fenêtres de votre 'WWW-Browser':
- une page pour feuilleter le manuel et
- une deuxième page pour afficher les solutions des exercices.

 Attention: Les versions actuelles du cours (> novembre 1997) ouvrent automatiquement une deuxième fenêtre pour la page des solutions des exercices.


Les sujets qui ne sont pas traîtés dans ce cours

Comme le cours a été rédigé comme introduction à la programmation en ANSI-C différents sujets ont été omis volontairement du cours: Pour des détails sur ces points, vous pouvez vous référencer au manuel "The C programming language" de Kernighan/Ritchie ou vous pouvez vous référencer à l'une des adresses sur l'Internet.


Compilateurs ANSI-C

Pour pouvoir suivre ce cours avec succès, vous avez besoin d'un compilateur ANSI-C, comme par exemple:

Est-ce vous pouvez m'envoyer votre cours sous forme de document RTF, DOC, PDF, PS, ...?

Au départ (en 1995) ce cours a été rédigé sous format Winword. A un certain moment, j'ai converti le document en format HTML . Pour plusieurs raisons, je ne distribue pas la version 'originale' en format Word, la raison la plus importante étant la suivante: Depuis la conversion en HTML, je ne m'occupe plus du fichier original et la version complète, corrigée et actualisée existe uniquement sous format HTML, qui est alors distribuée sous forme d'un fichier ZIP.


Traduction en format HTML

Je remercie Chris Hector et Christian Bolik, les auteurs de l'outil rtftohtml qui m'a servi à traduire mes documents texte en format HTML.

Vous trouvez la version la plus récente de rtftohtml à l'adresse: http://www.sunpack.com/RTF.

(Remarque: Si vous voulez vous servir de rtftohtm pour traduire en HTML des documents contenant des codes source de programmes, n'oubliez pas de définir dès le départ un style de formatage du nom de 'Code' et de l'appliquer à tous les codes source dans votre document.)


Comment peut-on lire une chaîne de caractères contenant des blancs (espaces, tabulations, etc.)?

La commande associée a scanf pour pouvoir lire des chaînes de caractères comportant des blancs est :
    scanf("%[^\n]", ch);


Comment imprimer du texte sous DOS/ sous UNIX?

Une solution peut être réalisée en utilisant les instructions suivantes:

        FILE *PRN;

    PRN = fopen("PRN", "w");     /* ouvrir l'imprimante en écriture */
    fprintf(PRN, "exemple\n");   /* imprimer ... */
    fclose(PRN);                 /* fermer l'imprimante */

    Voir aussi le FAQ:    19.8 How can I direct output to the printer?


Comment utiliser le mode graphique (avec les produits Borland) sous DOS?

Ceci n'a plus rien à faire avec le standard ANSI-C, puisque c'est spécifique au DOS et même uniquement valable pour Borland-C(++):
Voici quand même l'exemple d'un petit test graphique:

#include <stdio.h>
#include <graphics.h>

int main(void)
{
   /* request auto detection */
   int gdriver = DETECT, gmode, errorcode;
   int i, maxx, maxy;

   /* initialize graphics, local variables */
   initgraph(&gdriver, &gmode, "");

   /* read result of initialization */
   errorcode = graphresult();
   if (errorcode != grOk)
   /* an error occurred */
   {
      printf("Graphics error: %s\n",  grapherrormsg(errorcode));
      printf("Press any key to halt:");
      getch();
      exit(1);
      /* terminate with an error code */
   }

   /* DESSINER ... */
  . . .

   /* clean up */
   closegraph();
   return 0;
}
 

Condition: Les fichiers *.bgi nécessaires doivent se trouver dans le répertoire du programme *.exe ou bien il faut indiquer le répertoire où se trouvent ces fichiers comme dernier paramètre de l'instruction initgraph (p.ex: initgraph(&gdriver, &gmode, "C:\TC\BGI");.
Le désavantage de la deuxième solution est clair: Le programme n'est plus portable, puisqu'il tourne uniquement sur des machines où le répertoire indiqué existe et contient les fichiers .BGI.
En général, le fichier egavga.bgi devrait suffire pour les cartes graphiques actuelles si vous n'utilisez pas de polices (fontes) spéciales.

Voir aussi le FAQ:  19.10 How can I do graphics?


Comment utiliser le mode graphique (avec les produits Borland) sous DOS?

Ceci n'a plus rien à faire avec le standard ANSI-C.
Tout ce dont on a besoin pour programmer graphiquement sous DJGPP est contenu dans la librairie graphique gratuite ALLEGRO pour DJGPP,
téléchargeable à l'adresse :
    http://www.talula.demon.co.uk/allegro

Voir aussi le FAQ:  19.10 How can I do graphics?


Comment contrôler quelle/si une touche a été pressée sans bloquer le programme sous DOS/ sous UNIX? remplacement pour getch sous Unix?

Le standard ANSI-C ne définit pas de fonction à cet effet. La solution n'est donc pas portable.

Sous DOS:

Sous UNIX:

Comment implémenter des listes chaînées/arbres binaires en C?

Vous trouverez une réponse à ces question sur les pages suivantes:

Où est-ce que je trouve un cours semblable au vôtre sur PASCAL/C++/JAVA?

Il existe un grand nombre de tutoriels traitant Pascac, C++ ou JAVA sur l'Internet. Je vous conseillerais de commencer votre recherche par l'un des sites suivants:

Pour PASCAL:

Pour C++: Pour JAVA:

Autres adresses sur l'Internet

Avant toute autre source, veuillez consulter le FAQ du groupe de discussion comp.lang.c: Autres tutoriels en langue française sur la programmation en C: Quelques adresses intéressantes pour des programmeurs en C: Groupes 'News' intéressants: Pour des questions concernant les standards ANSI-C / K&R-C / ... :


PreviousNextUpTitleContents

Feedback - Copyright © 1993,1996,1997 F.Faber