Novità

per i programmatori

salvo50

Advanced Member >PLATINUM PLUS<
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
 

joe

Advanced Member >PLATINUM PLUS<
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:

Giggio

Super Member >PLATINUM<
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.
 

i legend

Premium Member
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 .
 

genios

Advanced Member >PLATINUM<
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
 

Giggio

Super Member >PLATINUM<
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
 

genios

Advanced Member >PLATINUM<
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

Super Member >PLATINUM<
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,",",".")
 

genios

Advanced Member >PLATINUM<
se ometto l' istruzione Replace con la virgola funziona mentre con il punto da risultati sballati.
 

Ultima estrazione Lotto

  • Estrazione del lotto
    giovedì 28 marzo 2024
    Bari
    49
    73
    67
    86
    19
    Cagliari
    64
    36
    37
    02
    04
    Firenze
    66
    27
    44
    90
    17
    Genova
    09
    44
    78
    85
    19
    Milano
    70
    14
    47
    38
    27
    Napoli
    80
    29
    28
    45
    39
    Palermo
    54
    59
    78
    47
    62
    Roma
    17
    22
    49
    52
    88
    Torino
    71
    35
    75
    74
    60
    Venezia
    40
    84
    02
    63
    29
    Nazionale
    08
    13
    44
    69
    85
    Estrazione Simbolotto
    Firenze
    06
    35
    16
    18
    05

Ultimi Messaggi

Alto