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
    venerdì 24 aprile 2026
    Bari
    15
    88
    36
    90
    37
    Cagliari
    49
    22
    46
    28
    86
    Firenze
    07
    85
    14
    84
    55
    Genova
    89
    69
    88
    41
    81
    Milano
    71
    43
    45
    25
    03
    Napoli
    83
    72
    60
    16
    21
    Palermo
    75
    78
    68
    80
    76
    Roma
    13
    25
    67
    83
    78
    Torino
    30
    39
    63
    72
    81
    Venezia
    13
    55
    71
    89
    05
    Nazionale
    42
    70
    22
    48
    41
    Estrazione Simbolotto
    Genova
    38
    45
    33
    15
    22
Indietro
Alto