add io related text

This commit is contained in:
tTh 2024-09-17 18:52:17 +02:00
parent 3bda7ea69b
commit 7e591fc958
1 changed files with 67 additions and 7 deletions

View File

@ -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~: