|
Topic Topic Hot Topic New Topic Locked Topic Sticky Topic Hidden |
qbasic |
Post Reply
|
| Author | ||
maxlopez
Utente Base
Joined: 02/Set/2006 Status: Offline Points: 56 |
Post Options
Thanks(0)
Quote Reply
Topic: qbasicPosted: 15/Mar/2012 at 19:30 |
|
|
salve, ho bisogno di un aiuto, io ho un programmino di 41kb, lungo circa 20 pagine di a4,che esegue calcoli matematici , questo e scritto in qbasic, e funziona cosi: io inserisco 8 dati che sono numeri e lui finito di scrivere questi 8 dati , stampa i risultati in due pagine, io vorrei sapere se fosse possibile vedere i risultati prima che esso stampasse , cosi da poter modificare uno degli 8 dati che io ho inserito, tipo un foglio di execel..,
grazie in anticipo massimo |
||
![]() |
||
willy55
Veterano
Esperto di Access Joined: 03/Ago/2011 Location: Italy Status: Offline Points: 1224 |
Post Options
Thanks(0)
Quote Reply
Posted: 15/Mar/2012 at 20:42 |
|
|
Se il tuo QBasic si riferisce ad un QuickBasic con le righe numerate per i vari statement
http://it.wikipedia.org/wiki/QBASIC il passaggio ad un Basic più evoluto (Come Visual Basic) è sempre possibile ma la logica del passato (con i GOTO) potrebbe richiedere una rivisitazione completa del programma. Alcune istruzioni hanno una corrispondenza uno ad uno e sono magari anche supportate, altre invece dovranno essere modificate nel nuovo linguaggio. e la logica potrebbe essere diversa (ad esempio GOSUB sostituita da FUNCTION ecc.) Certo devi avere la conoscenza della problematica e della logica con cui l'applicativo è stato realizzato. Il consiglio che ti posso dare è quello suddividere il codice in parti ed un poco alla volta effettui il porting nel nuovo linguaggio. Puoi impiegare anche Excel con il suo Visual Basic e produrre l'output su delle celle invece di agire (come nel passato) con i risultati in stampa.
Tieni present che però qualsiasi calcolo è funzione dei dati di input per cui forse devi rivedere l'intera procedura magari anche per gli aspetti dell'interfaccia utente.
Buon lavoro. |
||
|
Willy
|
||
![]() |
||
andreacarnera
Utente Onorario
Utente Onorario Joined: 13/Set/2004 Status: Offline Points: 1917 |
Post Options
Thanks(0)
Quote Reply
Posted: 16/Mar/2012 at 10:28 |
|
|
10 Estrai l'algoritmo di funzionamento
20 Riscrivi tutto con un linguaggio moderno 30 POKE 53280,RND(15); GOTO 10 |
||
|
Andrea Carnera
Db/Application Developer www.alberghiera.it Programmatore dal 1987 |
||
![]() |
||
willy55
Veterano
Esperto di Access Joined: 03/Ago/2011 Location: Italy Status: Offline Points: 1224 |
Post Options
Thanks(0)
Quote Reply
Posted: 16/Mar/2012 at 17:33 |
|
|
Vedo che vi sono anche altri giurrassici che nel passato si sono cimentati con:
Texax TI-59, CPM, Commodore 64, ZX Spectrum, PC XT, M24 e compagnia cantante. Un saluto a tutti. |
||
|
Willy
|
||
![]() |
||
Ricky53
Amministratore
Esperto di Excel e PowerPoint Joined: 05/Ott/2006 Location: Italy Status: Offline Points: 9476 |
Post Options
Thanks(0)
Quote Reply
Posted: 16/Mar/2012 at 17:55 |
|
|
ECCOMI:
A) TI-59 anno 1978 forse 1979 ... (fatto programmone con schede (tante) per il dimensionamento di un forno per la cottura dei mattoni di argilla (facoltà di ingegneria di Roma istituto di chimica applicata ... il professore non me lo ricordo forse era Sebastiani impianti chimici I ... che bei tempi e che stupendi ricordi) lavorava per circa due ore con tolti e metti schede e faceva il lavoro di una squadra di 5 ingegneri che con il regolo impiegava una settimana a dimensionarlo B) Commodore 64 anno 1983 forse 1984 fatto "programmissimo" per la gestione dei "Condomini" con il floppy da 170 Kb (è stato utilizzato fino al 1995 ed era un portento faceva anche il caffè !!! Tutto questo non per vantarmi ma trasmettere il mio piacere nei ricordi e l'entusiasmo che provo ancora oggi nel ricordare quanto si faceva allora con pochissimi mezzi e strumenti molto limitati ma per l'epoca all'avanguardia (Commodore 64) Edited by Ricky53 - 16/Mar/2012 at 17:56 |
||
|
Amministratore
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare Più chiara è la vostra spiegazione Più immediata sarà la nostra soluzione |
||
![]() |
||
maxlopez
Utente Base
Joined: 02/Set/2006 Status: Offline Points: 56 |
Post Options
Thanks(0)
Quote Reply
Posted: 18/Mar/2012 at 15:47 |
|
|
CLS
INPUT "numero dei mattoni 1 parete ", H1 INPUT "numero mattoni 2 parete ", H2 INPUT "altezza parete ", H4 INPUT "numero di operai ", H5 INPUT "giorni lavorati ", H6 INPUT "larghezza parete ", H7 INPUT "valore di carico ", K INPUT "somam delle 2 pareti", SPA 'INPUT "grafico altezza finestra ", GAF INPUT "finestra sinistra ", HOG$ INPUT "finestra destra ", HOP$ INPUT "materiale con cemento ", MCNO INPUT "Minino cemento ", MnBL INPUT "Max. calce ", MxBL CONST pi = 3.141592654# H3 = ROUND((H1 / H2), 5) H8 = ROUND((25 + (5 * (SQR(H2 / H1))) + (90 * (H5 / H6))), 5) H9 = ROUND(TANDEG(H8), 5) H10 = ROUND((1.2 * H3), 5) H11 = ROUND((SINDEG(90 - ATNDEG(H10))), 5) H12 = ROUND(((H6 - (H4 * H11)) / 2), 5) H13 = ROUND(((H5 * H11) / H12), 5) H14 = ROUND((COSDEG(SININVDEG(H13))), 5) H15 = ROUND((H14 + (H9 * H13)), 5) H16 = ROUND((H3 * H12), 5) H17 = ROUND((H15 * H16), 5) IF H1 > 11 THEN TTF = 1.3 IF H1 < 11 THEN TTF = 1.06 IF H1 = 11 THEN TTF = 1.06 H18 = ROUND(((.02 * (H1)) + TTF), 5) H19 = ROUND(((H12 / H10) + H17), 5) 'H20 = ROUND(((H5 / H19) * A20 = (H5 / H19) A21 = (SQR(1 + (A20 * A20))) A22 = (A20 / A21) A23 = (SININVDEG(A22)) A24 = ((H5 - (H17 * A22)) / H12) A25 = (TANDEG(SININVDEG(A24))) A26 = (A22 / A25) A27 = (COSDEG(ATNDEG(A26))) A28 = (A24 / A27) A29 = (COSDEG(SININVDEG(A28))) A30 = ((H15 - A29) / A28) A31 = (A28 * (H9 - A30)) A32 = (H3 * A31) A33 = (A24 - (A22 * A32)) A34 = (TANDEG(SININVDEG(A33))) A35 = (A22 / A34) A36 = (ATNDEG(A35)) A37 = COSDEG(A36) A38 = (A33 / A37) A39 = SININVDEG(A38) A40 = COSDEG(A39) A41 = ((H15 + A31 - A40) / A38) A42 = (ATNDEG(A41)) A43 = (COSDEG(A42)) A44 = (A42 - A39) A45 = COSDEG(A44) A46 = TANDEG(A44) A47 = (A20 / A33) A48 = (90 - ATNDEG(A47)) A49 = (SINDEG(A48)) A50 = (COSDEG(A48)) A51 = ((H17 + (H12 * A32)) / A37) A52 = (H12 / A50) A53 = (A51 + A52) A54 = ((H12 * A45) / A49) A55 = ((A43 * A51) / A35) A56 = (((A41 * A55) - (A46 * A54)) / A53) A57 = (ATNDEG(A56)) A58 = (COSDEG(A57)) A59 = ((A41 * A56) / A51) A60 = ((A46 * A56) / A52) A61 = (A54 * A55) A62 = ((A54 - A55) / A61) A63 = (A59 + A60 + A62) A64 = ((A41 - A46) / A63) A65 = (A64 / A58) A66 = (H7 / A65) IF A65 < H7 THEN B20 = A20 * .9 IF A65 > H7 THEN B20 = A20 * 1.1 B21 = (SQR(1 + (B20 * B20))) B22 = (B20 / B21) B23 = SININVDEG(B22) B24 = ((H5 - (H17 * B22)) / H12) B25 = TANDEG(SININVDEG(B24)) B26 = (B22 / B25) B27 = COSDEG(ATNDEG(B26)) B28 = (B24 / B27) B29 = COSDEG(SININVDEG(B28)) B30 = ((H15 - B29) / B28) B31 = (B28 * (H9 - B30)) B32 = (H3 * B31) B33 = (B24 - (B22 * B32)) B34 = (TANDEG(SININVDEG(B33))) B35 = (B22 / B34) B36 = (ATNDEG(B35)) B37 = (COSDEG(B36)) B38 = (B33 / B37) B39 = (SININVDEG(B38)) B40 = (COSDEG(B39)) B41 = ((H15 + B31 - B40) / B38) B42 = (ATNDEG(B41)) B43 = (COSDEG(B42)) B44 = (B42 - B39) B45 = (COSDEG(B44)) B46 = TANDEG(B44) B47 = (B20 / B33) B48 = (90 - ATNDEG(B47)) B49 = SINDEG(B48) B50 = COSDEG(B48) B51 = ((H17 + (H12 * B32)) / B37) B52 = (H12 / B50) B53 = (B51 + B52) B54 = ((H12 * B45) / B49) B55 = ((B43 * B51) / B35) B56 = (((B41 * B55) - (B46 * B54)) / B53) B57 = ATNDEG(B56) B58 = (COSDEG(B57)) B59 = ((B41 * B56) / B51) B60 = ((B46 * B56) / B52) B61 = (B54 * B55) B62 = ((B54 - B55) / B61) B63 = (B59 + B60 + B62) B64 = ((B41 - B46) / B63) B65 = (B64 / B58) B66 = (H7 / B65) H20 = ((B20 - A20) / (B66 - A66)) * (1 - A66) + A20 H21 = (SQR(1 + (H20 * H20))) H22 = (H20 / H21) H23 = (SININVDEG(H22)) H24 = ((H5 - (H17 * H22)) / H12) H25 = TANDEG(SININVDEG(H24)) H26 = (H22 / H25) H27 = COSDEG(ATNDEG(H26)) H28 = (H24 / H27) H29 = (COSDEG(SININVDEG(H28))) H30 = ((H15 - H29) / H28) H31 = (H28 * (H9 - H30)) H32 = (H3 * H31) H33 = (H24 - (H22 * H32)) H34 = (TANDEG(SININVDEG(H33))) H35 = (H22 / H34) H36 = (ATNDEG(H35)) H37 = (COSDEG(H36)) H38 = (H33 / H37) H39 = (SININVDEG(H38)) H40 = (COSDEG(H39)) H41 = ((H15 + H31 - H40) / H38) H42 = (ATNDEG(H41)) H43 = (COSDEG(H42)) H44 = (H42 - H39) H45 = (COSDEG(H44)) H46 = (TANDEG(H44)) H47 = (H20 / H33) H48 = (90 - ATNDEG(H47)) H49 = SINDEG(H48) H50 = (COSDEG(H48)) H51 = ((H17 + (H12 * H32)) / H37) H52 = (H12 / H50) H53 = (H51 + H52) H54 = ((H12 * H45) / H49) H55 = ((H43 * H51) / H35) H56 = (((H41 * H55) - (H46 * H54)) / H53) H57 = (ATNDEG(H56)) H58 = (COSDEG(H57)) H59 = ((H41 * H56) / H51) H60 = ((H46 * H56) / H52) H61 = (H54 * H55) H62 = ((H54 - H55) / H61) H63 = (H59 + H60 + H62) H64 = ((H41 - H46) / H63) H65 = (H64 / H58) H66 = (H7 / H65) PRINT "Item no.65 ", H65 INPUT "Is 65 equale a h7 , ck$ IF ck$ = "Y" THEN GOTO CARRYON ELSE END CARRYON: H67L = (H3 * H50) H67R = (1 - H3) H68L = ((H5 / H34) - (H17 * H35)) H68R = (H35 * H37) poi ci sono pure queste varianti o come si chiamano.. IF H338OB < 12 THEN H341OB = 12 IF H338OB = 12 OR H338OB > 12 AND H338OB < 14 THEN H341OB = 14 IF H338OB = 14 OR H338OB > 14 AND H338OB < 16 THEN H341OB = 16 niente si puo' fare ? |
||
![]() |
||
willy55
Veterano
Esperto di Access Joined: 03/Ago/2011 Location: Italy Status: Offline Points: 1224 |
Post Options
Thanks(0)
Quote Reply
Posted: 18/Mar/2012 at 22:06 |
|
|
In base a quanto presentato, il codice allegato può essere convertito in Excel.
Per semplicità si può (ad esempio) inserire nelle celle A21, A22,..., B21, B22, ... , H1. H2 ecc. le relative formule. Per le variabili K, SPA, GAF si possono prendere a riferimento altre celle denominandole appropriatamente. Alcune funzioni matematiche devono trovare corrispondenza fra vecchio e nuovo linguaggio. Ad esempio la funzione di arrotondamento (ROUND = ARROTONDA); la radice quadrata (SQR = RADQ) devono essere migrate (ad Excel in base alla versione e lingua impiegata). Inoltre per le funzioni trigonometriche si devono impiegare le funzioni disponibili in Excel (corrispondenza TANDEG = TAN ecc.) tenendo presente che in Basic la logica era ad esempio quella sotto riportata: http://rosettacode.org/wiki/Trigonometric_functions Capita la logica ed effettuato il porting nel nuovo linguaggio sarà da effettuare la verifica dei calcoli e magari una migliore interfaccia e presentazione dei dati. Buon lavoro. Edited by willy55 - 18/Mar/2012 at 22:12 |
||
|
Willy
|
||
![]() |
||
roberto97
Moderatore
Moderatore Joined: 05/Dic/2006 Location: Italy Status: Offline Points: 1767 |
Post Options
Thanks(0)
Quote Reply
Posted: 19/Mar/2012 at 00:34 |
|
|
Qual'è la parte di questo thread che riguarda Visual Basic ?
MaxLopez se la soluzione che cerchi è migrare in Excel allora sposto la richiesta in quella sezione ... Altrimenti chiarisci la cosa ... vuoi apportare delle modifiche al sorgente qbasic ... vuoi migrarlo in Visual Basic ... In questo caso potrebbe anche essere "compatibile" con questa sezione ... non essendocene una specifica ... Ma di base ... la tua richiesta è un'anteprima di stampa in qbasic ?
|
||
|
Roberto
|
||
![]() |
||
maxlopez
Utente Base
Joined: 02/Set/2006 Status: Offline Points: 56 |
Post Options
Thanks(0)
Quote Reply
Posted: 19/Mar/2012 at 19:40 |
|
|
si si, una anteprimain q basic sarebbe meglio, è possibile farlo?
|
||
![]() |
||
willy55
Veterano
Esperto di Access Joined: 03/Ago/2011 Location: Italy Status: Offline Points: 1224 |
Post Options
Thanks(0)
Quote Reply
Posted: 20/Mar/2012 at 19:20 |
|
|
Credo che il codice da te allegato non sia quello descritto nel primo post (non ha 8 valori in input ma ben 14) e non ha la lunghezza indicata. Inoltre non vi è nessuna istruzione per la stampante (LPRINT) ne per quanto riguarda l'output su file (WRITE ecc.) presentato magari quale risultato.
che dovrebbe essere scritta (con doppi apici finali) come:
Ritengo che il codice sia parziale o non confacente quanto prospettato, rivedilo nella sua complessità. In ogni caso, per quanto riguarda le istruzioni (non presenti) della stampa se vuoi convertire l'output, dalla printer al video, (quanto viene prodotto dal calcolo) deve essere inviato allo schermo per cui modificare l'istruzione LPRINT in PRINT Ritengo comunque che la scelta di impiegare il QBasic sia una soluzione non confacente con le esigenze che oggi sono disponibili (per le intefaccie grafiche e gli strumenti di facility) per cui io suggerisco di prendere in considerazione una soluzione alternativa. Come detto nel post precedente si può affrontare la problematica in Excel magari con integrazione di Visual Basic. Ciò permette di avere i dati sottomano (anche le elaborazioni intermedie) ed è possibile istantaneamente modificare un parametro ed ottenere come variano i risultati finali in modo da ottimizzare i parametri di input. Valuta tu comunque la scelta ottimale in base alle esigenze e conoscenze. Bye
|
||
|
Willy
|
||
![]() |
||
Post Reply
|
|
|
Tweet
|
| Forum Jump | Forum Permissions ![]() You cannot post new topics in this forum You cannot reply to topics in this forum You cannot delete your posts in this forum You cannot edit your posts in this forum You cannot create polls in this forum You cannot vote in polls in this forum |