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
    martedì 03 novembre 2026
    Bari
    60
    81
    39
    27
    89
    Cagliari
    49
    40
    60
    34
    57
    Firenze
    33
    90
    53
    40
    10
    Genova
    18
    81
    28
    44
    52
    Milano
    12
    50
    54
    43
    81
    Napoli
    74
    79
    42
    24
    17
    Palermo
    51
    31
    10
    90
    62
    Roma
    23
    27
    40
    65
    28
    Torino
    89
    44
    69
    04
    21
    Venezia
    19
    33
    78
    37
    59
    Nazionale
    01
    56
    18
    50
    68
    Estrazione Simbolotto
    Torino
    45
    09
    18
    28
    03

Ultimi Messaggi

Indietro
Alto