add io related text
This commit is contained in:
parent
3bda7ea69b
commit
7e591fc958
@ -175,9 +175,10 @@ XXX\index{XXX}
|
|||||||
Pour faire simple, on accède à chaque unité de donnée l'une après l'autre,
|
Pour faire simple, on accède à chaque unité de donnée l'une après l'autre,
|
||||||
comme quand on déroule une bande 6250bpi. Ces unités peuvent être
|
comme quand on déroule une bande 6250bpi. Ces unités peuvent être
|
||||||
(restons simple pour commencer) des lignes entières de texte.
|
(restons simple pour commencer) des lignes entières de texte.
|
||||||
Dans l'ancien temps\footnote{F77 rulz the world}, le format de ces
|
Dans l'ancien temps\footnote{F66 rulz the world} des cartes
|
||||||
lignes devait être précisement structure, avec des largeurs de champs
|
à trous, le format de ces
|
||||||
fixés.
|
lignes devait être précisement structurées, avec des largeurs de champs
|
||||||
|
dans la ligne fixés.
|
||||||
|
|
||||||
% --------------------------------------------------------
|
% --------------------------------------------------------
|
||||||
|
|
||||||
@ -186,7 +187,51 @@ fixés.
|
|||||||
XXX\index{XXX}
|
XXX\index{XXX}
|
||||||
|
|
||||||
C'est pas pareil : d'abord les enregistrements sont tous de la même
|
C'est pas pareil : d'abord les enregistrements sont tous de la même
|
||||||
taille
|
taille. Ensuite, on y accède par son rang, son numéro d'ordre dans le
|
||||||
|
fichier. Dès que j'ai fini de planter les deux arbres en attente,
|
||||||
|
je vous propose un exemple simple et aussi artificiel que les
|
||||||
|
autres exemples de ce ouvrage.
|
||||||
|
|
||||||
|
% --------------------------------------------------------
|
||||||
|
|
||||||
|
\section{Read et Write}
|
||||||
|
|
||||||
|
Ces deux opérations (la lecture et l'écriture) sont contrôlables
|
||||||
|
par plusieurs choses~: les paramètres à l'ouverture,
|
||||||
|
du fichier, à XXX\index{XXX},
|
||||||
|
et surtout les chaines de format.
|
||||||
|
Bienvenue dans le monde du légendaire champ "Hollerith".
|
||||||
|
|
||||||
|
\subsection{Les chaines de format}
|
||||||
|
|
||||||
|
%
|
||||||
|
% attention, il y a un hack pour l'affichage du mot "format" !
|
||||||
|
% Attention, dans "{\small{\textsc{format}}}", les accolades
|
||||||
|
% exterieures sont indispensables. Affaire à suivre...
|
||||||
|
%
|
||||||
|
La chaine de {\small{\textsc{format}}} contrôle la façon dont les
|
||||||
|
données (nombres, textes ou booleans)
|
||||||
|
seront présentées à l'affiche ou à l'impression.
|
||||||
|
Une bonne connaissance, et une longue pratique des chaines de
|
||||||
|
{\small{\textsc{format}}} est
|
||||||
|
indispendable pour arriver à l'harmonie ultime bien que rigoureuse,
|
||||||
|
de vos interminables listings de chiffres abscons.
|
||||||
|
Nous verrons ensuite comment les utiliser pour faire de la saisie
|
||||||
|
presque (mais pas complètement) utilisable en milieu
|
||||||
|
\textsl{enduser}\index{enduser}.
|
||||||
|
|
||||||
|
Il y a deux manières de les utiliser~: en ligne de l'instruction
|
||||||
|
d'écriture/lecture, ou séparément en tant que chaine de caractères.
|
||||||
|
Pour la clarté de lecture, c'est la seconde que je vais utiliser.
|
||||||
|
|
||||||
|
%
|
||||||
|
%
|
||||||
|
%
|
||||||
|
% INSERT BIG "TODO" HERE.
|
||||||
|
%
|
||||||
|
%
|
||||||
|
\lstinputlisting{code/fortran/printty.f90}
|
||||||
|
|
||||||
|
|
||||||
% --------------------------------------------------------
|
% --------------------------------------------------------
|
||||||
|
|
||||||
@ -216,7 +261,7 @@ end module
|
|||||||
|
|
||||||
Rien de bien compliqué~:
|
Rien de bien compliqué~:
|
||||||
Un module peut être vu comme une boite qui contient (\texttt{contains})
|
Un module peut être vu comme une boite qui contient (\texttt{contains})
|
||||||
des procédures (\texttt{function} ou \texttt{subroutine},
|
des procédures (\texttt{function} ou \texttt{subroutine}),
|
||||||
et qui sera utilisé avec ce genre de petit programme~:
|
et qui sera utilisé avec ce genre de petit programme~:
|
||||||
|
|
||||||
\begin{lstlisting}
|
\begin{lstlisting}
|
||||||
@ -228,9 +273,17 @@ program t
|
|||||||
end program
|
end program
|
||||||
\end{lstlisting}
|
\end{lstlisting}
|
||||||
|
|
||||||
|
La première ligne, \texttt{use dummy}, permet d'accéder aux fonctions disponibles
|
||||||
|
dans le module dummy.
|
||||||
|
Elle doit être suivie d'un \texttt{implicit none}, pour une raison à éclaircir.
|
||||||
|
Et ensuite nous pouvons appeler notre procédure.
|
||||||
|
|
||||||
|
Mais les modules permettent de faire bien d'autre choses.
|
||||||
|
|
||||||
% --------------------------------------------------------
|
% --------------------------------------------------------
|
||||||
\section{Random et Aléa}
|
\section{Random et Aléa}
|
||||||
|
|
||||||
|
Tentative de sranding faite à la rache.
|
||||||
La dernière ligne va vous étonner.
|
La dernière ligne va vous étonner.
|
||||||
|
|
||||||
\begin{lstlisting}
|
\begin{lstlisting}
|
||||||
@ -246,15 +299,22 @@ La dernière ligne va vous étonner.
|
|||||||
dummy = rand()
|
dummy = rand()
|
||||||
\end{lstlisting}
|
\end{lstlisting}
|
||||||
|
|
||||||
|
Mais il y a d'autres manières plus rigoureuses d'utiliser les nombres
|
||||||
|
pseudo-aléàtoires avec le fortan moderne.
|
||||||
|
|
||||||
% --------------------------------------------------------
|
% --------------------------------------------------------
|
||||||
% new Thu 24 Nov 2022 02:27:05 AM CET
|
% new Thu 24 Nov 2022 02:27:05 AM CET
|
||||||
|
|
||||||
\section{Options de gfortran} \index{gfortran}
|
\section{Options de gfortran} \index{gfortran}
|
||||||
|
|
||||||
Comme d'habitude avec gcc\footnote{The Gnu Compiler Collection}, les
|
Comme d'habitude avec gcc\footnote{Giant Complicated Compilords}, les
|
||||||
options sont innombrables. J'ai essayé d'en dégager les plus importantes,
|
options sont innombrables. J'ai essayé d'en dégager les plus importantes,
|
||||||
mais ce ne sont probablement pas les seules.
|
mais ce ne sont probablement pas les seules.
|
||||||
|
|
||||||
|
Pour commencer, la plus obligatoire de toutes ces options est sans contexte
|
||||||
|
le protecteur de base \texttt{-Wall} qui vous protégera de nombreux
|
||||||
|
maléfices.
|
||||||
|
|
||||||
% --------------------------------------------------------
|
% --------------------------------------------------------
|
||||||
|
|
||||||
\section{Images}
|
\section{Images}
|
||||||
@ -339,7 +399,7 @@ immédiatement garnir de données pertinentes~:
|
|||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
|
|
||||||
Une fois en possession de ces données conceptuelles, que l'on peut
|
Une fois en possession de ces données conceptuelles, que l'on peut
|
||||||
aisément voire comme un cheminement, nous allons demander
|
aisément voir comme un cheminement, nous allons demander
|
||||||
au crayon de se promener sur notre feuille virtuelle en suivant
|
au crayon de se promener sur notre feuille virtuelle en suivant
|
||||||
ce chemin, et enfin de s'arreter de dessiner~:
|
ce chemin, et enfin de s'arreter de dessiner~:
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user