Noms de fichiers sous Unix : majuscules différentes des minuscules (préférer les minuscules), on peut utiliser également des chiffres, - (sauf en premier caractère), _ (souligné), . (point) et quelques autres. En tous cas jamais d'espace, et éviter les accents.
DOS et Telnet vers Windows |
UNIX |
|
afficher la liste des fichiers (détaillée) |
DIR |
ls -l |
changer de répertoire de travail |
CD répertoire |
cd répertoire |
effacer un fichier |
DEL fichier |
rm fichier |
effacer tous les fichiers |
DEL *.* |
rm * |
créer un répertoire |
MD répertoire |
mkdir répertoire |
supprimer un répertoire (vide) |
RD répertoire |
rmdir répertoire |
monter un "device" local |
mount device pt_de_montage |
|
copier un fichier |
COPY source dest |
cp source dest |
déplacer (ou renommer) un fichier ou répertoire |
MOVE src dest |
mv src dest |
copier un répertoire et ses sous-répertoires |
XCOPY /S src dest |
cp -R src dest |
gérer les accès aux fichiers |
ATTRIB |
chmod , chown , chgrp |
aide sur une commande |
commande /? |
man commande |
Processus de compilation : ouvrez une fenêtre shell (terminal) (icône stylisant un écran et un coquillage). Appeler l'éditeur (kwrite nomfichier.c &) et taper le texte. Ne pas oublier de sauver ! Dans le terminal, compiler (gcc nomfichier.c -o nomprogramme). S'il n'y a pas d'erreur, appeler le programme par son nom, dans le terminal (ne pas lancer les programmes par un clic en mode graphique si votre programme ne commence pas par ouvrir une fenêtre).
Accès à une machine distante (attention, il faut que le système distant accepte les accès extérieurs) : ssh -X iup2@ipst207xx puis toute commande "texte" ou graphique ("konqueror &" par exemple).
Il existe la même chose pour accéder à une machine Windows (telnet), ou depuis Windows (putty.exe) : voir IUP1
Accès aux fichiers d'une machine :
dans le gestionnaire de fichiers de votre système (explorateur de fichiers Windows, Konqueror,...) taper l'adresse ftp://iup2@ipst207xx ou (mieux) sftp si les deux systèmes le permettent (transmission codée, plus sûr). On peut aussi monter (localement) un répertoire distant (qui doit être partagé)
/* premier programme, TP IUP2 2003 */ /*directives du précompilateur *****************************************/ //inclusion d'entête pour utiliser les fonctions standard #include <stdio.h> //définition de deux constantes #define lng_txt 40 #define taux 6.55957 /* déclarations globales (types et prototypes) *************************/ typedef char texte[lng_txt]; //un texte est un tableau de 40 caractères maxi void dire(texte); //cette fonction affiche le texte qu'on lui donne float convertir(float); //convertit un réel en un autre /* fonction principale : doit s'appeler main ***************************/ int main(void) { float en_francs,en_euros; //déclaration locale à main dire("bonjour"); //il faut toujours être poli printf("entrez une somme en francs : "); scanf("%f",&en_francs); //lire la somme en_euros=convertir(en_francs); //appel d'une fonction printf("%0.2ff font %0.2f euros\n",en_francs,en_euros); dire("au revoir, à bientôt."); } /* fonction qui effectue la conversion *********************************/ //entête : on lui donne un réel et elle en rend un autre float convertir(float somme_en_francs) { float temporaire; //déclaration locale temporaire=somme_en_francs/taux; //calcul return temporaire; //c'est ainsi qu'une fonction rend son (unique) résultat } /* fonction qui affiche un texte ***************************************/ //je n'en ai besoin que dans cette fonction, on peut l'inclure ici #include <string.h> /* définit la fonction 'strlen' */ void dire(texte msg) { int i,nb; //variables locales nb=strlen(msg)+4; //calcul de la longueur du cadre for(i=0;i<nb;i++)printf("*"); //affichage de 'nb' étoiles printf("\n* %s *\n",msg); //passage à la ligne, *, espace, le texte, for(i=0;i<nb;i++)printf("*"); printf("\n"); //passage à la ligne (pour le prochain prompt) }
a) il demande le solde initial de votre compte, la somme que vous y ajoutez, puis il calcule le solde.
b) en plus il demande le nombre de fois que vous ajoutez cette mïiuml;¿½e somme. Vous devez obligatoirement utiliser une boucle et faire des additions successives.
c) testez de grands nombres de boucles, pour voir quand il lui faut quelques secondes, et remarquez l'erreur (par exemple par ajouts de 0.01)
Proposition de solution :
#include <stdio.h> int main(void) { float debut,somme,solde; int i,nb; printf("solde initial ?"); scanf("%f",&debut); printf("mouvement ?"); scanf("%f",&somme); printf("nombre de mouvements ?"); scanf("%d",&nb); solde=debut; for(i=0;i<nb;i++) solde=solde+somme; printf("solde finial : %f \n",solde); }
(c) P. TRAU IPST - ULP