Nouveau logiciel éducatif

Cette catégorie traite de développements récents pour nos vieilles machines, applications, jeux ou démos... Amis programmeurs, c'est ici que vous pourrez enfin devenir célèbres!

Modérateurs : Papy.G, fneck, Carl

jasz
Messages : 1313
Inscription : 05 oct. 2016 20:05
Localisation : Quelque part dans le 31

Re: Nouveau logiciel éducatif

Message par jasz »

En effet la OCRification à commis beaucoup d'erreurs un peu partout sans compter les fautes de frappe et autres inutilités. Cependant, il reste un bon casse-tête pour ceux qui aiment ;)
dcmoto.png
dcmoto.png (5.26 Kio) Consulté 4456 fois
Cependant je rencontre toujours des difficultés avec le choix des nombres NB1 et NB2
Sachant que NB1=INT(RND*T) et T=1 le resultat est forcément 0 pour que l'aléatoirité fonctionne il faudrait T=100 mais cela bloque le programme à la recherche de NB2 en boucle à cause de LIMIT(N) avec N=1. Si on conserve T=1, NB2=-2 car NB2=INT(RND*LIMIT(N)-2) sachant que LIMIT(N)=0

Bon, j'avance un peu tout de même mais à petit pas... à suivre.
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Nouveau logiciel éducatif

Message par Daniel »

Toutes les opérations de mise au point de programme, création de disquette ou de cassette, simulation de frappe au clavier à partir du presse-papier ou d'un fichier texte, impression du listing de programme BASIC dans un fichier texte, etc. sont extrêmement simples dans Windows avec l'émulateur dcmoto.

Pour les utilisateurs de Linux, il doit être possible de profiter des mêmes avantages grâce à Wine.
Daniel
L'obstacle augmente mon ardeur.
hadessuk
Messages : 254
Inscription : 15 déc. 2016 18:01

Re: Nouveau logiciel éducatif

Message par hadessuk »

jasz a écrit : 16 sept. 2018 16:17 En effet la OCRification à commis beaucoup d'erreurs un peu partout sans compter les fautes de frappe et autres inutilités. Cependant, il reste un bon casse-tête pour ceux qui aiment ;)
Ça m'a pris «que» une journée complète à taper ;)
jasz a écrit : 16 sept. 2018 16:17 Cependant je rencontre toujours des difficultés avec le choix des nombres NB1 et NB2
Sachant que NB1=INT(RND*T) et T=1 le resultat est forcément 0 pour que l'aléatoirité fonctionne il faudrait T=100 mais cela bloque le programme à la recherche de NB2 en boucle à cause de LIMIT(N) avec N=1. Si on conserve T=1, NB2=-2 car NB2=INT(RND*LIMIT(N)-2) sachant que LIMIT(N)=0

Bon, j'avance un peu tout de même mais à petit pas... à suivre.
Merci de ton intérêt.
hadessuk
Messages : 254
Inscription : 15 déc. 2016 18:01

Re: Nouveau logiciel éducatif

Message par hadessuk »

Daniel a écrit : 16 sept. 2018 17:06 Toutes les opérations de mise au point de programme, création de disquette ou de cassette, simulation de frappe au clavier à partir du presse-papier ou d'un fichier texte, impression du listing de programme BASIC dans un fichier texte, etc. sont extrêmement simples dans Windows avec l'émulateur dcmoto.

Pour les utilisateurs de Linux, il doit être possible de profiter des mêmes avantages grâce à Wine.
Autant que je sache, c'est pas un système automatisable, je me trompe?
Xavier_AL

Re: Nouveau logiciel éducatif

Message par Xavier_AL »

Tu nous cites Daniel, puis "Autant que je sache, c'est pas un système automatisable, je me trompe?"
Parles-tu de Windows, linux, DCmoto ou de la conversion ?
Avant de connaitre DCmoto, j'ai créé un logiciel pour créer des fichiers K7 à partir de fichiers texte... (http://dskcenter.free.fr/TO7/)

L'idée me semblait bonne, mais pour le débogage, il était nécessaire de recharger la K7, alors que l'ajout d'une seule ligne, ou d'un groupe de lignes était plus rapide avec un "copier/coller" sur l'émulateur.

L'OCR est merveilleux, mais pour certains listings de mauvaise qualité, il faut "améliorer" les images...
Et il est impératif de relire entièrement le listing, alors qu'une frappe directe est plus ou moins exploitable directement.

Une saisie en une journée, c'est combien d'heures? 2,4 ou 8 heures.
Dernière modification par Xavier_AL le 16 sept. 2018 19:29, modifié 1 fois.
hadessuk
Messages : 254
Inscription : 15 déc. 2016 18:01

Re: Nouveau logiciel éducatif

Message par hadessuk »

Xavier_AL a écrit : 16 sept. 2018 19:17 Tu nous cites Daniel, puis "Autant que je sache, c'est pas un système automatisable, je me trompe?"
Parles-tu de Windows, linux, DCmoto ou de la conversion ?
La création d'une disquette à partir d'un fichier texte. Pour la partie qui serait dans DCMoto, ça serait d'ouvrir une nouvelle session, de coller tout le texte dans l'émulateur, de sauver ça sur une image de disquettes.
Xavier_AL a écrit : 16 sept. 2018 19:17 Avant de connaitre DCmoto, j'ai créé un logiciel pour créer des fichiers K7 à partir de fichiers texte...

L'idée me semblait bonne, mais pour le débogage, il était nécessaire de recharger la K7, alors que l'ajout d'une seule ligne, ou d'un groupe de lignes était plus rapide avec un "copier/coller" sur l'émulateur.

L'OCR est merveilleux, mais pour certains listings de mauvaise qualité, il faut "améliorer" les images...
Et il est impératif de relire entièrement le listing, alors qu'une frappe directe est plus ou moins exploitable directement.
«OCR», haha, c'est tout tapé à la main. Ya aucun programme d'OCR qui réussissait à prendre en compte les impressions délavées d'une imprimante matricielle datant de 30 ans.

Le scan des pages est dans github:
https://github.com/hadess/inondation-d- ... er/Listing
Xavier_AL a écrit : 16 sept. 2018 19:17 Une saisie en une journée, c'est combien d'heures? 2,4 ou 8 heures.
Presque 10 heures.
Xavier_AL

Re: Nouveau logiciel éducatif

Message par Xavier_AL »

J'ai tapé 746 listings Hebdogiciel... tous en OCR de listings retravaillés.
(de 4 à 6 heures de travail en moyen par programme avec débogage sur émulateur)

Les OCRs sont très bon...
Et j'utilise celui-ci maintenant : https://www.onlineocr.net/
ex1.jpg
ex1.jpg (29.47 Kio) Consulté 4428 fois
ex2.jpg
ex2.jpg (43.81 Kio) Consulté 4428 fois
Ocr brut... j'ai vu pire.
Il faut faire des remplacements groupés GOSUB et 00SUB ... etc..
Mais, la vérification est plus rapide et plus sûre, car l'oublie de lignes est réduit!

Code : Tout sélectionner

0 CLS: SCREENO, 0%3: CLEARI 000,55 ttGOSUBB500 GOSUB235001
6 CLS: LG=0: 00,911920000,: SCREEN4,4,5
10 LIMITS=STR$(LIMIT(N))
20 LIM=LEN(LIMITS)-1 0 AS=(LIM,35)
40 ESS=1:0P=J:0Pa=0:0PF=0:COU=0:W.0
50 ATT5pOt eepLOR7,4
55 GOSUD80.(WOOSUB9000' -
60 GOSUB1100:00SUB1200:GOSUB1300
70 GOSUB2100:00FU91792 
BO GOSUBB700:SOL=0:UR=0:DROICR=0:MR.--0:GOSUB1500:
95 GOSU91792:GOSUB1BCO:GOSUB1792
90 GOSUB19&0:00SUB1792:00T060
1100 'RECHERCHE DE N31
1101 IFOP=1THEN1115ELSE
1105 NB1=INT(RND*(LIMIT(N)-2))
1110 MR1$=STRS(NB1):LNB1=LEN(N91$)-1:LX=LNB1:XBlii:II-4:GOSUB1400:RETURN
1115 NB1=INT(RND*T) GOT01110
1200 'RECHERCHE DE N92
1201 NB2=0:RESULT=0
1210 N92=INTŒND*((LIMIT(N))-2)):
1215 PMI! T=(N81+ND2)
1217 IFRESULT>LIMIT(N)THEN GOTO
1200 ELSE
1220 N92$=STRS(ND2):LNB2=LEN(NB2e)-1:LX,:LMB2:)($=NB2$:I=2:GOSUB1400
1230 IFCHS(N)="SANS"THEN1232ELSERETURN 
Dernière modification par Xavier_AL le 16 sept. 2018 20:34, modifié 3 fois.
jasz
Messages : 1313
Inscription : 05 oct. 2016 20:05
Localisation : Quelque part dans le 31

Re: Nouveau logiciel éducatif

Message par jasz »

Merci pour les scans ça peut effectivement aider ;)
Xavier_AL

Re: Nouveau logiciel éducatif

Message par Xavier_AL »

Les étapes pour la préparation d'un Ocr :

- Convertir en niveaux de gris.
1.jpg
1.jpg (25.88 Kio) Consulté 4427 fois
-Recentrer les couleurs.
2.JPG
2.JPG (60.48 Kio) Consulté 4427 fois

- Modifier la résolution 21x29,7 en 300dpi
- Accentuer le contraste.
3.JPG
3.JPG (66.99 Kio) Consulté 4427 fois
Parfois, il faut tout traiter sur une seule colonne.
Pour la correction en mode texte, les erreurs sont pratiquement toutes les même... et peuvent être traitées en modifications groupées...
Puis, relecture minutieuse.
4.JPG
4.JPG (89.16 Kio) Consulté 4425 fois
jasz
Messages : 1313
Inscription : 05 oct. 2016 20:05
Localisation : Quelque part dans le 31

Re: Nouveau logiciel éducatif

Message par jasz »

Finalement, j'ai tout de même obtenu un bon début :)

dcmoto.png
dcmoto.png (5.47 Kio) Consulté 4405 fois
Cependant même avec un OCR il y a des choses difficiles à comprendre comme la ligne 30. Qu'a voulu dire l'auteur avec son A$=(LIM,35)?
A$ que l'on retrouve en ligne 2205 sous PRINTUSINGA$;NB1 de même qu'en 2222 pour NB2. En toute probabilité A$ devait contenir des # ce qui est vrai avec A$=STRING$(LIM,35) (Enfin ici un seul #). Mais la syntaxe reste incorrect. A$ ne sert donc à rien ;)

Rassure toi ce n'est pas la seule erreur du genre :roll:
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Nouveau logiciel éducatif

Message par Daniel »

Ca me fait penser à un piège, quand on porte un programme BASIC d'une machine à l'autre, ou même d'un BASIC à un autre sur la même machine. Il n'y a pas le même jeu d'instructions dans le BASIC 1.0 des TO et celui des MO, et encore moins entre le BASIC 512, le BASIC 128, le BASIC-DOS, le BASIC-QDOS et le BASIC 1.0.

Donc si on porte le programme et qu'un token du Basic d'origine n'a pas de correspondance dans le Basic de destination, ce token disparaît. C'est peut être ce qui explique la disparition du token STRING$, qui existe en BASIC 512 mais pas en BASIC 1.0.

Si mon hypothèse est exacte, elle peut expliquer des dizaines d'autres erreurs dans ce programme, en particulier l'absence d'instruction après les ELSE, mais aussi plein d'autres erreurs incompréhensibles autrement. Malheureusement, sans la version originale, il sera difficile de tout reconstituer.
Daniel
L'obstacle augmente mon ardeur.
Xavier_AL

Re: Nouveau logiciel éducatif

Message par Xavier_AL »

Oui, programme Basic 128/512 imprimé en Basic 1...
:mrgreen:
jasz
Messages : 1313
Inscription : 05 oct. 2016 20:05
Localisation : Quelque part dans le 31

Re: Nouveau logiciel éducatif

Message par jasz »

Il y a beaucoup d'erreurs de programmation et surtout d'énormes lourdeurs dont voici un échantillon

Code : Tout sélectionner

1100 'RECHERCHE DE NB1
1101 IFOP=1THEN1115
1105 NB1=INT(RND*(LIMIT(N)-2))
1110 NB1$=STR$(NB1):LNB1=LEN(NB1$)-1:LX=LNB1:X$=NB1$:I=1:GOSUB1400:RETURN
1115 NB1=INT(RND*T)
1118 GOTO1110
Cette séquence est appelée en ligne 60 par un GOSUB

Il aurait pu la simplifier ainsi

Code : Tout sélectionner

1100 'RECHERCHE DE NB1
1105 IFOP=1THEN NB1=INT(RND*T) ELSE NB1=INT(RND*(LIMIT(N)-2))
1110 NB1$=STR$(NB1):LNB1=LEN(NB1$)-1:LX=LNB1:X$=NB1$:I=1:GOSUB1400
1115 RETURN
C'est plus propre, plus net et plus facile à comprendre.

Je pense qu'il s'agit d'un brouillon inachevé mais toutefois bien avancé. Il voulait sans doute le rendre compatible avec le BASIC1.0 dans un but scolaire. :roll:
Dernière modification par jasz le 17 sept. 2018 20:47, modifié 1 fois.
__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: Nouveau logiciel éducatif

Message par __sam__ »

Il y a une époque ou le basic n'acceptait que des numéros de lignes après le THEN. Il me semble même que le ELSE était absent de certains basics (il suffisait de mettre un goto à la ligne suivante).

Le style de codage que je lis me fait penser à cette époque des THEN-à-numéros-de-lignes.
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
jasz
Messages : 1313
Inscription : 05 oct. 2016 20:05
Localisation : Quelque part dans le 31

Re: Nouveau logiciel éducatif

Message par jasz »

Il est vrai que la quasi majorité des programmes de l'époque utilisaient ce schéma. Pourtant le BASIC1.0 tolérait tout de même des conditions à conséquences multiples sans saut de lignes. Pour preuve, Initiation au BASIC TO7/TO7-70 page 57 (mon premier livre de chevet) ;)
Comme l'a dit Daniel, l'auteur devait bien mal connaître le BASIC Thomson au regard des nombreuses erreurs...
Répondre