Logo de kxs.frCours d'informatique pour le lycée et la prépa

Hello world!

Programme

Depuis la publication de The C Programming Language par Brian Kernighan et Dennis Ritchie en 1978, il est de tradition lorsqu'on apprend un nouveau langage de s'attacher à afficher l'expression « Hello world! ». Cela permet de vérifier, avec un programme simple que tout fonctionne.

Voici donc votre premier programme C :

#include <stdio.h>

int main() {
	printf("Hello world!\n");
}

1) Compiler et exécuter ce programme.

Après compilation et exécution, Hello world! devrait s'afficher dans le terminal.

Explications

#include <stdio.h>

Cette ligne charge la bibliothèque stdio (standart in out) qui permet de gérer les entrées et sorties (saisie au clavier, affichage dans le terminal…). Nous utiliserons différentes bibliothèques dans nos programmes futurs.

int main() { … }

main() est la fonction principale d'un programme C. C'est elle qui est exécutée lorsqu'on lance l'exécutable.

Le int signifie qu'elle renvoie un entier (integer). Si tout va bien, elle renvoie 0.

Les parenthèses vides signifient que la fonction main n'attend pas de paramètres.

Enfin, les accolades délimitent les instructions qui seront exécutées suite à l'appel de la fonction main

printf("Hello world!\n");

On utilise ici la fonction printf qui permet d'afficher des données dans le terminal. Ici, on affiche une chaîne de caractères qui se termine par un retour chariot \n. On remarque qu'une instruction se termine systématiquement par ; en C.

Indentation et espaces

Excepté les retours à la ligne après les déclarations des bibliothèques et les espaces entre les mots (int et main, par exemple) le compilateur ne tient pas compte de l'indentation et des espaces en C. Ainsi les deux programmes suivant sont parfaitement valides :

#include <stdio.h>
int main(){printf("Hello world!\n");}
#include <stdio.h>


		int main(){		printf(
			"%s\n", 	
			
					"Hello world!")
;}

2) Compiler et exécuter les programmes ci-dessus pour vérifier qu'ils fonctionnent bien.

On s'évertuera néanmois à respecter les conventions de présentation pour faciliter la lecture du code. Il faudra donc bien indenter son code.

La commande suivante

gcc fichier.c -o binaire -lm

permet de compiler le code ci-dessous :

/**/
             k;double sin()
         ,cos();main(){float A=
       0,B=0,i,j,z[1760];char b[
     1760];printf("\x1b[2J");for(;;
  ){memset(b,32,1760);memset(z,0,7040)
  ;for(j=0;6.28>j;j+=0.07)for(i=0;6.28
 >i;i+=0.02){float c=sin(i),d=cos(j),e=
 sin(A),f=sin(j),g=cos(A),h=d+2,D=1/(c*
 h*e+f*g+5),l=cos      (i),m=cos(B),n=s\
in(B),t=c*h*g-f*        e;int x=40+30*D*
(l*h*m-t*n),y=            12+15*D*(l*h*n
+t*m),o=x+80*y,          N=8*((f*e-c*d*g
 )*m-c*d*e-f*g-l        *d*n);if(22>y&&
 y>0&&x>0&&80>x&&D>z[o]){z[o]=D;;;b[o]=
 ".,-~:;=!*#$@"[N>0?N:0];}}/*#****!!-*/
  printf("\x1b[H");for(k=0;1761>k;k++)
   putchar(k%80?b[k]:10);A+=0.04;B+=
     0.02;}}/*****####*******!!=;:~
       ~::==!!!**********!!!==::-
         .,~~;;;========;;;:~-.
             ..,--------,*/

3) Essayer de compiler et d'exécuter le code ci-dessus.

Il faudra éviter d'écrire ce genre de code illisible.