Novità

per i programmatori

Prova ad inserire zero al posto del primo o del secondo numero

Codice:
Option Explicit
Sub Main
   Dim A,B,C
   A = CInt(InputBox("Inserisci il primo numero",,5))
   If A > 0 Then
      B = CInt(InputBox("Inserisci il secondo numero",,13))
      If B > 0 Then
         C = A * B
         Scrivi " IL PRIMO NUMERO ",1,0,,1,4
         Scrivi Format2(A),1,0,,2,4
         Scrivi " MOLTIPLICATO PER IL SECONDO NUMERO ",1,0,,1,4
          Scrivi Format2(B),1,0,,2,4
          Scrivi " UGUALE ",1,0,,1,4
          Scrivi Format2(C),1,,,2,4
      End If
      If B < 1 Then Scrivi " Hai inserito ZERO come secondo numero, non è cosentito, inizia da capo",1,,,2,5
   End If
   If A < 1 Then Scrivi  " Hai inserito ZERO come primo numero, non è cosentito, inizia da capo",1,,,2,5
End Sub
 
Ciao Genios.

Quel vecchio Basic non può essere tradotto pari-pari.

Return per esempio sarebbe End Sub.

Ma la routine di input potrebbe essere pressoché identica.

Invece di essere richiamata con il numero della linea di programma (100)

deve avere "un nome".

Ma ha poco senso scrivere una Sub quando possono essere usati gli input-box

che in pratica sono quella "sub 100"

Se lo script di giggio fa quello che deve ... non capisco cosa altro cerchi.

Hai scritto il diagramma di flusso che vuol dire che hai capito cosa vuoi

ed hai un programma in vbscript che fa quello che vuoi.

Se invece vuoi usare i nuovi script dopo averli tradotti

su macchine come il commodore o lo zx spectrum,

o il ][gs o l' M24 ... direi che è quasi impossibile.

L'inverso ... anche.

Non consiglierei a nessuno tanto meno a te di provarci.

In pratica il diverso funzionamento delle macchine e del loro basic,

rendono INUTILIZABILI i diagrammi di flusso in computer

che elaborano versioni di Basic così diverse.

In pratica se riesci a trovare il diagramma di flusso

del vecchio programma e/o de nuovo programma

poi non lo puoi usare sull'altro sistema che necessita per funzionare

di un diagramma di flusso diverso.

:)
 
Ultima modifica:
La differenza sta nella gestione degli errori in input e nella flessibilità se volessi inserire + di 2 elementi .da moltiplicare?


in questo caso invece di seguire il diagramma proposto da chi ha chiesto aiuto uno fa di testa sua e il diagramma invce di seguirlo lo interpreta.
 
in questo caso invece di seguire il diagramma proposto da chi ha chiesto aiuto uno fa di testa sua e il diagramma invce di seguirlo lo interpreta.
.
Lo 0 a ben vedere sembrerebbe voler essere escluso dal diagramma percio non l'ho messo , poi le modifiche per attuare ciò che si vuole non cambiano la logica del codice.
Osservazioni banali.
Eugenio ha detto che lo script fa quanto richiesto e
se non necessita di alcuna modifica , a mio avviso non si può parlare di interpretazione.
ma le assicuro che terrò in grande considerazione le sue critiche costruttive.
Cordiali saluti da i legend :)

X Genios
Eugenio , purtroppo non conosco i vecchi basic .
 
joe scrive

[
Ma la routine di input potrebbe essere pressoché identica.

Invece di essere richiamata con il numero della linea di programma (100)

deve avere "un nome".

/QUOTE]

Bene joe hai centrato il problema

la vogliamo scrivere questa sub che verrà richiamata io non so ancora farlo .:)

Grazie a tutti

ciao Eugenio
 
Non è propriamente vero che un diagramma di flusso non possa essere sviluppato in un qualsiasi linguaggio.
Il diagramma dice cosa fare , il programmatore che conosce il linguaggio poi saprà come farlo.
o come nel caso di Genios dovrebbe ,specie dopo lo script postato in precedenza.

provo a postare la mia soluzione attinente al listato in qbasic di qualche post fa

Come ha suggerito Joe le subroutine richiamate da un numero di linea si trasformeranno in Subroutine da richiamarsi con il call , come detto da Ilegend il problema di questo listato si risolve concettualmente nello stesso modo dell'altro.



Codice:
Sub Main
   Call InputIntero(N1,"QUAL'È IL PRIMO NUMERO?")
   Call InputIntero(N2,"QUAL'È IL SECONDO NUMERO?")
   Scrivi "LA SOMMA DEI DUE NUMERI È :" & N1 + N2
End Sub
Sub InputIntero(n,Testo)
   Do
      s = InputBox(Testo,,n)
      s = Replace(s,",",".")
      n = CDbl(s)
      If Int(n) <> n Then
         MsgBox "MI DISPIACE, IL NUMERO DEVE ESSERE UN INTERO.RIPROVATE"
      End If
   Loop While Int(n) <> n
End Sub
 
Giggio non funziona se inserisci 1,7 e 1,6 da come risultato 33 Anche se la via da intraprendere è questa.

Io pensavo a una soluzioni tipo

Codice:
10  "QUAL'È IL PRIMO NUMERO?"
20    Call InputIntero N
40  T=N
50  "QUAL'È IL SECONDO NUMERO?"
70  Call InputIntero N
80  SCRIVI"LA SOMMA DEI DUE NUMERI È", T + N
90  STOP

120 SCRIVI "MI DISPIACE, IL NUMERO DEVE ESSERE UN INTERO.
RIPROVATE"
140  Call InputIntero N
RETURN
Sub InputIntero(n)
IF N = INT (N) THEN 140

End Sub
 
Ultima modifica:
Giggio non funziona se inserisci 1,7 e 1,6 da come risultato 33 Anche se la via da intraprendere sia questa.

Io pensavo a una soluzioni tipo

Codice:
10  "QUAL'È IL PRIMO NUMERO?"
20    Call InputIntero N
40  T=N
50  "QUAL'È IL SECONDO NUMERO?"
70  Call InputIntero N
80  SCRIVI"LA SOMMA DEI DUE NUMERI È", T + N
90  STOP
110 IF N = INT (N) THEN 140
120 SCRIVI "MI DISPIACE, IL NUMERO DEVE ESSERE UN INTERO.
RIPROVATE"
140  Call InputIntero N
RETURN
Sub InputIntero(n)
End Sub


Credo che tu abbia un problema con le impostazioni internazionali.
Se inserisci un numero decimale non dovrebbe prenderlo ed infatti fa cosi sul mio pc.

prova ad invertire la virgola con il punto in questa istruzione

s = Replace(s,",",".")
 
se ometto l' istruzione Replace con la virgola funziona mentre con il punto da risultati sballati.
 

Ultima estrazione Lotto

  • Estrazione del lotto
    sabato 22 novembre 2025
    Bari
    82
    08
    24
    45
    37
    Cagliari
    07
    16
    67
    74
    35
    Firenze
    76
    32
    44
    06
    51
    Genova
    22
    77
    19
    27
    89
    Milano
    46
    81
    56
    29
    85
    Napoli
    68
    90
    80
    06
    47
    Palermo
    31
    07
    43
    83
    19
    Roma
    08
    68
    17
    12
    57
    Torino
    87
    17
    61
    60
    58
    Venezia
    27
    05
    17
    72
    50
    Nazionale
    70
    76
    56
    81
    15
    Estrazione Simbolotto
    Torino
    26
    34
    10
    42
    33
Indietro
Alto