Ejemplos de Funciones QBasic

Autor                

    

Print "101010101010101"

Print "010101010101010"

Print "101010101010101"

Print "010101010101010"

Print "101010101010101"

Print "010101010101010"

vv = 3

hh = 3

Color 11: Locate vv, hh: Print "JUAN"

vv = 4

hh = 3

Color 11: Locate vv, hh: Print "SCHWARZMANN"

End


Colores

0 - negro 1 - azul 2 - verde

3 - cian 4 - rojo 5 - magenta

6 - marrón 7 - blanco 8 - gris

9 - L-Azul 10 - L-verde 11 - L-cian

12 - L-rojo 13 - L-Magenta 14 - Amarillo

15 - Brt. Blanco 16 - B-negro 17 - B-azul

18 - B-verde 19 - B-cian 20 - B-rojo

21 - B-magenta 22 - B-marrón 23 - B-blanco

24 - B-gris 25 - B-L-Azul 26 - B-L-verde

27 - B-L-cian 28 - B-L-rojo 29 - B-L-Magenta

30 - B-Amarillo 31 - B-Brt.Blanco-PHREADD


Texto de Colores


count = 1

y = 1

For x = 1 To 30

    count = count + 1

    Color x

    Locate count, y: Print "Color"; x; "i este color es !"

    If count > 23 Then count = 1: y = 30

Next


SEPARAR LAS LETRAS DE UN TEXTO

Dim TextoI$(90) REM Redimensiona la matrix (sin dimensionar solo admite 10 caracteres) Dim T$(90) Input "ESCRIBA UN TEXTO; ", NB$ LT = Len(NB$) Print LT For I = 1 To LT TextoI$ = Mid$(NB$, I, 1) T$(I) = TextoI$ Next For I = 1 To LT Print T$(I) Next
TRADUCIR TEXTOS A BINARIO
se puede completar añadiendo las minúsculas

Dim TextoI$(90) Dim T$(90) Cls Input "ESCRIBA UN TEXTO EN MAYUSCULAS ", NB$ LT = Len(NB$) Cls Color 7 Print NB$ For I = 1 To LT TextoI$ = Mid$(NB$, I, 1) T$(I) = TextoI$ Next For I = 1 To LT Color 3 If T$(I) = "A" Then A$ = "01000001" Print A$ ElseIf T$(I) = "B" Then B$ = "01000010" Print B$ ElseIf T$(I) = "C" Then C$ = "01000011" Print C$ ElseIf T$(I) = "D" Then D$ = "01000100" Print D$ ElseIf T$(I) = "E" Then E$ = "01000101" Print E$ ElseIf T$(I) = "F" Then F$ = "01000110" Print F$ ElseIf T$(I) = "G" Then G$ = "01000111" Print G$ ElseIf T$(I) = "H" Then H$ = "01001000" Print H$ ElseIf T$(I) = "I" Then I$ = "01001001" Print I$ ElseIf T$(I) = "J" Then J$ = "01001010" Print J$ ElseIf T$(I) = "K" Then K$ = "01001011" Print K$ ElseIf T$(I) = "L" Then L$ = "01001100" Print L$ ElseIf T$(I) = "M" Then M$ = "01001101" Print M$ ElseIf T$(I) = "N" Then N$ = "01001110" Print N$ ElseIf T$(I) = "O" Then O$ = "01001111" Print O$ ElseIf T$(I) = "P" Then P$ = "01010000" Print P$ ElseIf T$(I) = "Q" Then Q$ = "01010001" Print Q$ ElseIf T$(I) = "R" Then R$ = "01010010" Print R$ ElseIf T$(I) = "S" Then S$ = "01010011" Print S$ ElseIf T$(I) = "T" Then t$ = "01010100" Print t$ ElseIf T$(I) = "U" Then U$ = "01010101" Print U$ ElseIf T$(I) = "V" Then V$ = "01010110" Print V$ ElseIf T$(I) = "W" Then W$ = "01010111" Print W$ ElseIf T$(I) = "X" Then X$ = "01011000" Print X$ ElseIf T$(I) = "Y" Then Y$ = "01011001" Print Y$ ElseIf T$(I) = "Z" Then Z$ = "01011010" Print Z$ ElseIf T$(I) = " " Then Color 8 AA$ = "00100000" Print AA$ End If Next


Dibuja Figuras Geométricas


Screen 12

0

Print "1. Cuadrado"

Print "2. Rectangulo"

Print "3. Triangulo"

Input "Elegir "; f

If f = 1 Then GoTo 1 Else If f = 2 Then GoTo 2 Else If f = 3 Then GoTo 3 Else GoTo 4


1

Cls

Line (400, 400)-(200, 200), 12, B

GoTo 1000

End

2

Cls

Line (400, 400)-(100, 200), 14, B


GoTo 1000

End

3

Cls

Line (150, 100)-(100, 200), 10

Line Step(0, 0)-(200, 200), 10

Line Step(0, 0)-(150, 100), 10


GoTo 1000

End

4 Print "Inentalo de nuevo..."

GoTo 1000

End

100 Print "Inentalo de nuevo...."

1000 Input " Continuar (s/n) "; m$

If m$ = "s" Then GoTo 0 Else If m$ = "n" Then GoTo 2000 Else GoTo 100

2000 Print "fin"

End



Número de mes

Ejemplo de la función  " Select Case"


Cls

Entrada:

Input "Escribe el número del mes: ", mes

Select Case mes

    Case 1

        Print "Enero"

    Case 2

        Print "Febrero"

    Case 3

        Print "Marzo"

    Case 4

        Print "Abril"

    Case 5

        Print "Mayo"

    Case 6

        Print "Junio"

    Case 7

        Print "Julio"

    Case 8

        Print "Agosto"

    Case 9

        Print "Septiembre"

    Case 10

        Print "Octubre"

    Case 11

        Print "Noviembre"

    Case 12

        Print "Diciembre"

    Case Else

        Print "Mes no válido"

End Select

GoTo Entrada


Otro ejemplo con ELSEIF

Cls

Input "Escribe el número del mes: ", mes

If mes = 1 Then

    Print "Enero"

ElseIf mes = 2 Then

    Print "Febrero"

ElseIf mes = 3 Then

    Print "Marzo"

ElseIf mes = 4 Then

    Print "Abril"

ElseIf mes = 5 Then

    Print "Mayo"

ElseIf mes = 6 Then

    Print "Junio"

ElseIf mes = 7 Then

    Print "Julio"

ElseIf mes = 8 Then

    Print "Agosto"

ElseIf mes = 9 Then

    Print "Septiembre"

ElseIf mes = 10 Then

    Print "Octubre"

ElseIf mes = 11 Then

    Print "Noviembre"

ElseIf mes = 12 Then

    Print "Diciembre"

Else

    Print "Mes no válido"

End If

Print "FIN"


Ejemplo de la función "For Count"

Dim TxtDay(7) As String

Dim TxtMonth(12) As String


Data Domingo,lunes,Martes,Miercoles,Jueves,Viernes,Sabado

Data Enero,Febrero,Marzo,Abril,Mayo,Junio,Julio

Data Agosto,Septiembre,Octubre,Noviembre,Diciembre


For Count = 0 To 6

    Read TxtDay(Count)

Next Count

For Count = 0 To 11

    Read TxtMonth(Count)

Next Count


For Count = 0 To 6

    Print TxtDay(Count)

Next Count

For Count = 0 To 11

    Print TxtMonth(Count)

Next Count


Analiza el archivo creado en el juego hundir Barcos

Rem Extrae la jugada del archivo "Barcofile.txt", dibujando tablero y barcos ++++ contando las + en cada fila

declare sub (A$,C$)

Dim bacofila(10) As String


Dim barcocolum(10) As String

Dim Shared mi.mar(0 To 9, 0 To 9)





For Count = 0 To 9

    A1$ = "A" + Str$(Count)

    A$ = Mid$(A1$, 1, 1) + Mid$(A1$, 3, 1)

    Call Barcolee(A$, C$)

Next Count

C$ = "0"


For Count = 0 To 9

    A1$ = "B" + Str$(Count)

    A$ = Mid$(A1$, 1, 1) + Mid$(A1$, 3, 1)

    Call Barcolee(A$, C$)

Next Count

C$ = "0"


For Count = 0 To 9

    A1$ = "C" + Str$(Count)

    A$ = Mid$(A1$, 1, 1) + Mid$(A1$, 3, 1)

    Call Barcolee(A$, C$)

Next Count

C$ = "0"


For Count = 0 To 9

    A1$ = "D" + Str$(Count)

    A$ = Mid$(A1$, 1, 1) + Mid$(A1$, 3, 1)

    Call Barcolee(A$, C$)

Next Count

C$ = "0"


For Count = 0 To 9

    A1$ = "E" + Str$(Count)

    A$ = Mid$(A1$, 1, 1) + Mid$(A1$, 3, 1)

    Call Barcolee(A$, C$)

Next Count

C$ = "0"


For Count = 0 To 9

    A1$ = "F" + Str$(Count)

    A$ = Mid$(A1$, 1, 1) + Mid$(A1$, 3, 1)

    Call Barcolee(A$, C$)

Next Count

C$ = "0"


For Count = 0 To 9

    A1$ = "G" + Str$(Count)

    A$ = Mid$(A1$, 1, 1) + Mid$(A1$, 3, 1)

    Call Barcolee(A$, C$)

Next Count

C$ = "0"


For Count = 0 To 9

    A1$ = "H" + Str$(Count)

    A$ = Mid$(A1$, 1, 1) + Mid$(A1$, 3, 1)

    Call Barcolee(A$, C$)

Next Count

C$ = "0"


For Count = 0 To 9

    A1$ = "I" + Str$(Count)

    A$ = Mid$(A1$, 1, 1) + Mid$(A1$, 3, 1)

    Call Barcolee(A$, C$)

Next Count

C$ = "0"


For Count = 0 To 9

    A1$ = "J" + Str$(Count)

    A$ = Mid$(A1$, 1, 1) + Mid$(A1$, 3, 1)

    Call Barcolee(A$, C$)

Next Count

C$ = "0"




restaura (coord$)



Sub Barcolee (A$, C$)

    Rem lectura archivo Barcofile.txt

    cc = Val(C$)

    Barcofile$ = "Barcofile.txt"

    Open Barcofile$ For Input As #1


    Do While Not EOF(1)

        Line Input #1, linea$

        If linea$ = A$ Then cc = cc + 1: C$ = Str$(cc): Print linea$; C$


    Loop

    Close #1



End Sub


Sub restaura (coord$)



    Rem pinta tablero


    Palette 1, 8

    Palette 12, 36

    For v = 3 To 12

        Color 15: Locate v, 8: Print Chr$(62 + v)

        For h = 10 To 28 Step 2

            Color 15: Locate 2, h - 1: Print (h / 2) - 5

            Color 9: Locate v, h: Print "ú"

        Next

    Next


    Rem restaura situacion jugada


    For h = 0 To 9

        For v = 0 To 9

            ' Select Case mi.mar(h, v)

            '    Case 0: c = 10: sim$ = "ú" :   Case Else:

            c = mi.mar(h, v) + 8: sim$ = Mid$(Str$(mi.mar(h, v)), 2, 1)

            'End Select

            Locate v + 3, (h * 2) + 10: Color c, 1: Print sim$

        Next

    Next



    Barcofile$ = "Barcofile.txt"

    Open Barcofile$ For Input As #1


    Do While Not EOF(1)

        Line Input #1, coord$


        letra$ = UCase$(Mid$(coord$, 1, 1))

        num = Val(Mid$(coord$, 2, 1))

        Rem  ccc = prueba(coord$)

        Rem ccc = 1 Then Print , , "" Else

        v = Asc(letra$) - 65

        h = num

        vv = v + 3

        hh = (h * 2) + 10

        Rem Select Case mi.mar(v, h)


        Color 12: Locate vv, hh: Print "+"

        Rem End Select

    Loop

    Close #1

End Sub



Mensual


Dim DF(30)

Dim CANT(30)

DECLARE SUB MESES



DT = 1

CaNTotal = 0

cont = 0


n = 0

DF(n) = 1


FECHA:

If DF(n) = 0 Then

    GoTo ENTER1

Else

    n = n + 1

    Input "Fechas ? ", DF(n)

    Print DF(n)


    If DF(n) = 0 Then GoTo ENTER1


    Input "Cant Pagada? ", CP

    CANT(n) = CP

    If DF(n) > 9 Then Print " Dia-"; DF(n); "= "; CANT(n)

    If DF(n) < 10 Then Print " Dia- "; DF(n); "= "; CANT(n)


    GoTo FECHA

End If


ENTER1:


n = n - 1

CaNTotal = 0



For I = 1 To n


    CaNTotal = CANT(I) + CaNTotal


Next


Rem MENSUAL


Rem _FullScreen

Mensualfile$ = "Mensual.txt"                                Rem "abro fichero Mensual.txt"

Rem Open Mensualfile$ For Output As #1     "Abro archivo nuevo  Mensual.txt"

Open Mensualfile$ For Append As #1           Rem "Abro archivo  Mensual.txt para añadir"

MESES                                                                 Rem "subrutina MESES"

Print " "; DF$

Print #1, DF$


Print "" 

For I = 1 To n


    Print " Dia-"; DF(I); "= "; CANT(I)

    Print #1, "Dia-:"; DF(I); "="; CANT(I) 


Next


Print " --------------"

Print " Pagado= -"; CaNTotal

Print " Concepto1="; 200

Print " Concepto2="; 300

Print " Concepto3="; 400

Mensualidad = 900 - CaNTotal

Print " --------------"

Print " Mensual = "; Mensualidad


Print #1, " --------------"

Print #1, " Pagado= -"; CaNTotal

Print #1, " Servicio="; 200

Print #1, " Sueldo  ="; 300

Print #1, " Nogalera="; 400

Print #1, " --------------"

Print #1, " Mensual = "; Mensualidad


Close #1

End


Sub MESES

    NB$ = Date$


    LT = Len(NB$)


    TextoI$ = Mid$(NB$, 4, 2) Rem dia

    dia$ = TextoI$


    TextoI$ = Mid$(NB$, 1, 2) Rem mes

    mes$ = TextoI$



    TextoI$ = Mid$(NB$, 7, 10) Rem ano

    ano$ = TextoI$


    For I = 1 To 12


        If mes$ = "01" Then

            A$ = "Enero"


        ElseIf mes$ = "02" Then

            A$ = "Febrero"


        ElseIf mes$ = "03" Then

            A$ = "Marzo"



        ElseIf mes$ = "04" Then

            A$ = "Abril"


        ElseIf mes$ = "05" Then

            A$ = "Mayo"


        ElseIf mes$ = "06" Then

            A$ = "Junio"


        ElseIf mes$ = "07" Then

            A$ = "Julio"


        ElseIf mes$ = "08" Then

            A$ = "Agosto"


        ElseIf mes$ = "09" Then

            A$ = "Septiembre"


        ElseIf mes$ = "10" Then

            A$ = "Octubre"


        ElseIf mes$ = "11" Then

            A$ = "Noviembre"


        ElseIf mes$ = "12" Then

            A$ = "Diciembre"


        End If

    Next

    Cls



      Print " "

    Print " "; A$; " / "; ano$

    Print #1, " "

    Print #1, " "; A$; " / "; ano$

End Sub



MENU



Cls

For k = 10 To 65

    Locate 2, k: Print Chr$(222)

    Locate 23, k: Print Chr$(222)

    Locate 4, k: Print Chr$(222)

    Locate 20, k: Print Chr$(222)

Next

For k = 2 To 23

    Locate k, 10: Print Chr$(222)

    Locate k, 65: Print Chr$(222)

Next

Locate 3, 35: Print "M E N U"

Locate 6, 15: Print "[1] "

Locate 8, 15: Print "[2] "

Locate 10, 15: Print "[3] "

Locate 12, 15: Print "[4] "

Locate 14, 15: Print "[5] Salir"

Locate 21, 15: Input "Opción? "; op11233


Función para fijar el redondeo de un numero a 1 o dos decimales

num = 25.564789

total = round(num)

Print total

Function round# (num As Double)

    'WARNING: USE "#" at the end of constant values,

    'or else you will get rounding errors:

    ' "num = .45"  >> "num = .449999988079071

    ' "num = .45#" >> "num = .45"

    '   dp  redondea el numero de decimales

    dp = 2

    Dim exp1 As Long, num2 As Long

    exp1 = 10 ^ dp: num2 = num * exp1: round# = num2 / exp1


End Function





Dibuja un rectangulo

Screen 12

Line (30, 20)-(300, 20), 12

Line (30, 80)-(300, 80), 12

Line (30, 20)-(30, 80), 12

Line (300, 20)-(300, 80), 12


Screen 12

Entrada:

Input "Px "; p1   Rem Px Py coordenadas punto de comienzo

Input "Py "; p2

Input "Altura     "; p3

Input "Longitud "; p4

Cls

Line (p2, p1)-(p4, p1), 7

Line (p2, p3)-(p4, p3), 7

Line (p2, p1)-(p2, p3), 7

Line (p4, p1)-(p4, p3), 7

Print p1; p2; p3; p4





Inicio Entrada antigua