PRÁCTICA 1 - BrunoErickFríasReséndiz
PRÁCTICA 1 - BrunoErickFríasReséndiz
PRÁCTICA 1 - BrunoErickFríasReséndiz
Grupo A
Algoritmos y Programación
Práctica 1
ID: 00445605
Ingeniería Mecatrónica
10 septiembre 2021
EJERCICIO 1
Objetivo: Reconocer el funcionamiento de las diversas secuencias de PRINT.
Descripción del problema: Realizar un programa en donde se prueben las
diversas secuencias de PRINT (una por PRINT) y su comportamiento, así como
los 8 ejemplos de PRINT con x y.
Pseudocódigo:
DATOS DE ENTRADA
PEDIR x
PEDIR y
PROCESO
DATOS DE SALIDA
IMPRIMIR Hola a todos
IMPRIMIR
Hola
a
todos
IMPRIMIR “FRESKO” es una tienda
IMPRIMIR C:\\algoritmos\\practica1.docx
IMPRIMIR “x”
IMPRIMIR x
IMPRIMIR “x=”;x
IMPRIMIR “x=\t”;x
IMPRIMIR “x=”, x
IMPRIMIR x + y
IMPRIMIR “x + y = ”;x + y
IMPRIMIR x;“ + ”;y;“ = ”;x + y
Diagrama de flujo:
INICIO
PEDIR
x,y
IMPRIMIR
Hola a todos
Hola
todos
C:\\algoritmos\\practica1.docx
IMPRIMIR
“x”
“x=”; x
“x=\t”;x
“x=”, x
x+y
“x + y = ”;x + y
FIN
Programa en GAMBAS
Public Sub Main()
Dim x As Byte
Dim y As Byte
Conclusiones
1. En mi opinión, la importancia de este programa es que nos ayuda a
comprender visualmente cómo trabajan las diferencias secuencias de
PRINT.
DATOS DE SALIDA
suma
resta
multiplicación
división
div
módulo
potencia
Diagrama de flujo:
INICIO
PEDIR
x,y
CALCULAR
suma = x + y
resta = x – y
multiplicación = x*y
división = x/y
div = x\y
módulo = x mod y
potencia = xy
IMPRIMIR
suma
resta
multiplicación
división
div
módulo
potencia
FIN
Programa en GAMBAS
Public Sub Main()
Dim x As Integer
Dim y As Integer
Dim suma As Integer
Dim resta As Integer
Dim multiplicacion As Integer
Dim division As Single
Dim di As Integer
Dim modu As Integer
Dim potencia As Integer
suma = x + y
resta = x - y
multiplicacion = x * y
division = x / y
di = x \ y
modu = x Mod y
potencia = x ^ y
Print
Print x; " + "; y; " = "; suma
Print x; " - "; y; " = "; resta
Print x; " x "; y; " = "; multiplicacion
Print x; " / "; y; " = "; division
Print x; " DIV "; y; " = "; di
Print x; " MOD "; y; " = "; modu
Print x; " ^ "; y; " = "; potencia
End
Prueba de escritorio
PANTALLA
MEMORIA
𝒙 𝒚 𝒔𝒖𝒎𝒂 𝒓𝒆𝒔𝒕𝒂 𝒎𝒖𝒍𝒕𝒊𝒑𝒍𝒊𝒄𝒂𝒄𝒊𝒐𝒏 𝒅𝒊𝒗𝒊𝒔𝒊𝒐𝒏 𝒅𝒊 𝒎𝒐𝒅𝒖 𝒑𝒐𝒕𝒆𝒏𝒄𝒊𝒂
𝟎 𝟎 𝟎 𝟎 𝟎 𝟎. 𝟎 𝟎 𝟎 𝟎
10 5 15 5 50 2 2 0 100000
Conclusiones
1. En mi opinión, la importancia de este programa radica en que podemos
realizar las operaciones básicas matemáticas en el lenguaje de GAMBAS.
DATOS DE SALIDA
x1
x2
Diagrama de flujo:
INICIO
PEDIR
a,b,c
CALCULAR
x1 = (- b + (b * b - 4 * a * c) ^ 0.5) / (2 * a)
x2 = (- b - (b * b - 4 * a * c) ^ 0.5) / (2 * a)
IMPRIMIR
x1
x2
FIN
Programa en GAMBAS
Public Sub Main()
Dim a As Short
Dim b As Short
Dim c As Short
Dim x1 As Single
Dim x2 As Single
x1 = (- b + (b * b - 4 * a * c) ^ 0.5) / (2 * a)
x2 = (- b - (b * b - 4 * a * c) ^ 0.5) / (2 * a)
Print
Print "La raíz 1 es "; x1
Print "La raíz 2 es "; x2
End
Prueba de escritorio
PANTALLA
MEMORIA
𝒂 𝒃 𝒄 𝒙𝟏 𝒙𝟐
𝟎 𝟎 𝟎 𝟎. 𝟎 𝟎. 𝟎
7 21 -28 1 -4
Conclusiones
1. En mi opinión, la importancia de este programa es que podemos
practicar la sintaxis de las operaciones matemáticas complejas,
tomando en cuenta el orden y jerarquía de las operaciones en GAMBAS.
PEDIR x
PEDIR y
PROCESO
DETERMINAR
Si x > y (1)
Si x < y (2)
Si x = y (3)
SALIDA
Si x > y (1)
IMPRIMIR
x es mayor que y
Si x < y (2)
IMPRIMIR
x es menor que y
Si x = y (3)
IMPRIMIR
INICIO
PEDIR
x,y
sí ¿x > y?? no
sí ¿x < no
IMPRIMIR
y?
x es mayor
que y
IMPRIMIR IMPRIMIR
x es Ambas edades
menor son iguales
que y
FIN
Programa en GAMBAS
Public Sub Main()
Dim x As Byte
Dim y As Byte
If x > y Then
Print x; " es mayor que "; y
Else If x < y
Print x; " es menor que "; y
Else
Print "Ambas edades son iguales"
Endif
End
Prueba de escritorio
PANTALLA
MEMORIA
𝒙 𝒚
𝟎 𝟎
31 45
Conclusiones
1. En mi opinión, la importancia de este programa es que utilizamos los
operadores lógicos y una de las sintaxis de la familia IF.
Pseudocódigo:
DATOS DE ENTRADA
PEDIR c
PEDIR x
PEDIR y
PROCESO
DETERMINAR
Si c = 1 (1)
CALCULAR
pie = Int(((x * 100 / 2.54) + ( y / 2.54)) / 12)
pul = Int(((x * 100 / 2.54) + (y / 2.54)) – 12*pi)
ó
Si c = 2 (2)
CALCULAR
met = Int(x*0.3048)
cen = (Frac(x*0.3048) + (y*0.0254))
ó
Si c = 3 (3)
CALCULAR
mil = x / 1.609344
ó
Si c = 4 (4)
CALCULAR
kil = x * 1.609344
ó
Si c = 5 (5)
CALCULAR
lib = x / 0.45359237
ó
Si c = 6 (6)
CALCULAR
kilo = x * 0.45359237
ó
Si c >= 7 (7)
SALIDA
Si c = 1 (1)
IMPRIMIR
El resultado es x metros con y centímetros son pie pies con pul pulgadas
Si c = 2 (2)
IMPRIMIR
El resultado es x pies con y pulgadas son met metros con cen centímetros
Si c = 3 (3)
IMPRIMIR
El resultado es x kilómetros son mil millas
Si c = 4 (4)
IMPRIMIR
El resultado es x millas son kil kilómetros
Si c = 5 (5)
IMPRIMIR
El resultado es x kilogramos son lib libras
Si c = 6 (6)
IMPRIMIR
El resultado es x libras son kilo kilogramos
Si c >= 7 (7)
IMPRIMIR
Selección no válida, reintente
Diagrama de flujo:
INICIO
PEDIR
x,y
sí ¿c = no
1?
CALCULAR
CALCULAR sí ¿c = no
3?
met = Int(x*0.3048)
cen = (Frac(x*0.3048) +
(y*0.0254))
IMPRIMIR
El resultado es x CALCULAR
metros con y
mil = x / 1.609344
B
centímetros son
pie pies con pul
pulgadas
IMPRIMIR
El resultado es x pies
con y pulgadas son
met metros con cen
centímetros
IMPRIMIR
El resultado es x
kilómetros son mil
millas
A
B
sí ¿c = no
4?
CALCULAR
sí ¿c = no
5?
kil = x * 1.609344
sí ¿c = no
CALCULAR 6?
lib = x / 0.45359237
IMPRIMIR
CALCULAR
El resultado es x
millas son kil kilo = x * 0.45359237 IMPRIMIR
kilómetros
Selección no válida,
reintente
IMPRIMIR
El resultado es x
kilogramos son lib
libras
IMPRIMIR
El resultado es x
libras son kilo
kilogramos
FIN
Programa en GAMBAS
Public Sub Main()
Dim c As Byte
Dim x As Single
Dim y As Single
Dim pie As Single
Dim pul As Single
Dim met As Single
Dim cen As Single
Dim mil As Single
Dim kil As Single
Dim lib As Single
Dim kilo As Single
Print
Print "Introduzca el número del convertidor deseado"
Input c
If c = 1 Then
Print "Introduzca valor de metros"
Input x
Print "Introduzca valor de centímetros"
Input y
pie = Int(((x * 100 / 2.54) + (y / 2.54)) / 12)
pul = Int(((x * 100 / 2.54) + (y / 2.54)) - 12 * pie)
Print
Print "El resultado es "; x; " metros con "; y; " centímetros son "; pie; "
pies con "; pul; " pulgadas."
Else If c = 2 Then
Print "Introduzca valor de pies"
Input x
Print "Introduzca valor de pulgadas"
Input y
met = Int(x * 0.3048)
cen = Int((Frac(x * 0.3048) + (y * 0.0254)) * 100)
Print
Print "El resultado es "; x; " pies con "; y; " pulgadas son "; met; " metros
con "; cen; " centímetros."
Else If c = 3 Then
Print "Introduzca valor de kilómetros"
Input x
mil = x / 1.609344
Print
Print "El resultado es "; x; " kilómetros son "; mil; " millas."
Else If c = 4 Then
Print "Introduzca valor de millas"
Input x
kil = x * 1.609344
Print
Print "El resultado es "; x; " millas son "; kil; " kilómetros."
Else If c = 5 Then
Print "Introduzca valor de kilogramos"
Input x
lib = x / 0.45359237
Print
Print "El resultado es "; x; " kilogramos son "; lib; " libras."
Else If c = 6 Then
Print "Introduzca valor de libras"
Input x
kilo = x * 0.45359237
Print
Print "El resultado es "; x; " libras son "; kilo; " kilogramos."
Else
Print "Selección no válida, reintente"
Endif
End
Prueba de escritorio
PANTALLA
MEMORIA
𝒄 𝒙 𝒚 𝒎𝒆𝒕 𝒄𝒆𝒏
𝟎 𝟎. 𝟎 𝟎. 𝟎 𝟎. 𝟎 𝟎. 𝟎
2 10 2 3 9
Conclusiones
1. En mi opinión, la importancia de este programa radica en que para
realizarlo, debemos poner en práctica todo lo aprendido anteriormente,
tal como la sintaxis del ELSE-IF, las operaciones matemáticas complejas,
así como los operadores relacionales.
PROCESO
DETERMINAR
Si x <= 4 (1)
CALCULAR
total10 = (x*y)*0.90
ó
Si x >= 5 AND x <= 9 (2)
CALCULAR
total20 = (x*y)*0.80
ó
Si x >= 10 (3)
CALCULAR
total40 = (x*y)*0.60
SALIDA
Si x <= 4 (1)
IMPRIMIR
Usted comprará x computadoras con el siguiente costo $ y el total es $ x * y se le aplicará
el 10% de descuento
El total con descuento del 10% es: total10
ó
Si x >= 5 AND x <= 9 (2)
IMPRIMIR
Usted comprará x computadoras con el siguiente costo $ y el total es $ x * y se le aplicará
el 20% de descuento
El total con descuento del 20% es: total20
ó
Si x >= 10 (3)
IMPRIMIR
Usted comprará x computadoras con el siguiente costo $ y el total es $ x * y se le aplicará
el 40% de descuento
El total con descuento del 40% es: total40
Diagrama de flujo:
INICIO
PEDIR
x,y
sí ¿x <= no
4?
CALCULAR
¿x >= 5
total10=(x*y)*0.90
sí AND no
x <= 9?
El total con
descuento del 10% IMPRIMIR IMPRIMIR
es: total10
Usted comprará x Usted comprará x
computadoras con el computadoras con el
siguiente costo $ y el siguiente costo $ y el
total es $ x * y, se le total es $ x * y se le
aplicará el 20% de aplicará el 40% de
descuento" descuento"
FIN
Programa en GAMBAS
Public Sub Main()
Dim x As Byte
Dim y As Single
Dim total10 As Single
Dim total20 As Single
Dim total40 As Single
total10 = (x * y) * 0.90
total20 = (x * y) * 0.80
total40 = (x * y) * 0.60
If x <= 4 Then
Print "Usted comprará "; x; " computadoras con el siguiente costo $"; y; ", el total
es $"; x * y; ", se le aplicará el 10% de descuento"
Print "El total con descuento del 10% es"
Print "$"; total10
Else If x >= 5 And x <= 9 Then
Print "Usted comprará "; x; " computadoras con el siguiente costo $"; y; ", el total
es $"; x * y; ", se le aplicará el 20% de descuento"
Print "El total con descuento del 20% es"
Print "$"; total20
Else
Print "Usted comprará "; x; " computadoras con el siguiente costo $"; y; ", el total
es $"; x * y; ", se le aplicará el 40% de descuento"
Print "El total con descuento del 40% es"
Print "$"; total40
Endif
End
Prueba de escritorio
PANTALLA
MEMORIA
𝒙 𝒚 𝒕𝒐𝒕𝒂𝒍𝟐𝟎
𝟎 𝟎. 𝟎 𝟎. 𝟎
7 2500 14000
Conclusiones
1. En mi opinión, la importancia de este programa es que a través de él,
podemos utilizar los operadores lógicos básicos, en este caso, AND y;
seguir practicando el uso del ELSE-IF
Pseudocódigo:
DATOS DE ENTRADA
PEDIR zona
PEDIR minu
PEDIR hora
PROCESO
DETERMINAR
Si (zona = 1 ) y ((hora >= 22) o (hora <= 6)) (1)
CALCULAR
totalmin = (minu*2)
desc = totalmin*0.20
total = totalmin - desc
ó
DETERMINAR
Si (zona = 1) y ((hora >= 7) o (hora <= 21)) (2)
CALCULAR
totalmin = (minu*2)
total = totalmin
ó
DETERMINAR
Si (zona = 2) y ((hora >= 22) o (hora <= 6)) (3)
CALCULAR
totalmin = (minu*2.5)
desc = totalmin*0.20
total = totalmin - desc
ó
DETERMINAR
Si (zona = 2) y ((hora >= 7) o (hora <= 21)) (4)
CALCULAR
totalmin = (minu*2.5)
total = totalmin
ó
DETERMINAR
Si (zona = 3) y ((hora >= 22) o (hora <= 6)) (5)
ó
CALCULAR
totalmin = (minu*4.5)
desc = totalmin*0.20
total = totalmin - desc
ó
DETERMINAR
Si (zona = 3) y ((hora >= 7) o (hora <= 21)) (6)
CALCULAR
totalmin = (minu*4.5)
total = totalmin
ó
DETERMINAR
Si (zona = 4) y ((hora >= 22) o (hora <= 6)) (7)
CALCULAR
totalmin = (minu*3.5)
desc = totalmin*0.20
total = totalmin - desc
ó
DETERMINAR
Si (zona = 4) y ((hora >= 7) o (hora <= 21)) (8)
CALCULAR
totalmin = (minu*3.5)
total = totalmin
ó
Si zona = 5 (5)
DETERMINAR
Si (zona = 5) y ((hora >= 22) o (hora <= 6)) (9)
CALCULAR
totalmin = (minu*6)
desc = totalmin*0.20
total = totalmin - desc
ó
DETERMINAR
Si (zona = 5) y ((hora >= 7) o (hora <= 21)) (10)
CALCULAR
totalmin = (minu*6)
total = totalmin
SALIDA
Si (zona = 1 ) y ((hora >= 22) o (hora <= 6)) (1)
IMPRIMIR
Llamada a América del Norte
totalmin
desc
total
ó
Si (zona = 1) y ((hora >= 7) o (hora <= 21)) (2)
IMPRIMIR
Llamada a América del Norte
totalmin
total
ó
Si (zona = 2) y ((hora >= 22) o (hora <= 6)) (3)
IMPRIMIR
Llamada a América central
totalmin
desc
total
ó
Si (zona = 2) y ((hora >= 7) o (hora <= 21)) (4)
IMPRIMIR
Llamada a América central
totalmin
total
ó
Si (zona = 3) y ((hora >= 22) o (hora <= 6)) (5)
IMPRIMIR
Llamada a América del Sur
totalmin
desc
total
ó
Si (zona = 3) y ((hora >= 7) o (hora <= 21)) (6)
IMPRIMIR
Llamada a América del Sur
totalmin
total
ó
Si (zona = 4) y ((hora >= 22) o (hora <= 6)) (7)
IMPRIMIR
Llamada a Europa
totalmin
desc
total
ó
Si (zona = 4) y ((hora >= 7) o (hora <= 21)) (8)
IMPRIMIR
Llamada a Europa
totalmin
total
ó
Si (zona = 5) y ((hora >= 22) o (hora <= 6)) (9)
IMPRIMIR
Llamada a Asia
totalmin
desc
total
ó
Si (zona = 5) y ((hora >= 7) o (hora <= 21)) (10)
IMPRIMIR
Llamada a Asia
totalmin
total
Diagrama de flujo:
INICIO
PEDIR
sí ¿zona no
= 1?
sí ¿hora >= no
22 o hora sí ¿zona no
<=6? = 2?
CALCULAR CALCULAR
totalmin
(minu*2)
= totalmin =
sí
¿hora >=
no
B
(minu*2) 22 o hora
desc = <=6?
total =
totalmin*0.20 totalmin
total =
totalmin - desc
CALCULAR
CALCULAR
IMPRIMIR
IMPRIMIR totalmin =
totalmin =
Llamada a (minu*2.5)
Llamada a (minu*2.5)
América
América desc =
del Norte total =
del Norte totalmin*0.20
totalmin
totalmin
totalmin total =
Desc totalmin - desc
total
total
IMPRIMIR
IMPRIMIR
Llamada a
Llamada a
América
América
central
central
totalmin
totalmin
Desc
total
total
A
B
sí ¿zona no
= 3?
sí ¿hora >= no
22 o hora sí ¿zona no
<=6? = 4?
CALCULAR CALCULAR
totalmin
(minu*4.5)
= totalmin =
sí
¿hora >=
no
D
(minu*4.5) 22 o hora
desc = <=6?
total =
totalmin*0.20 totalmin
total =
totalmin - desc
CALCULAR
CALCULAR
IMPRIMIR
IMPRIMIR totalmin =
totalmin =
Llamada a (minu*3.5)
Llamada a (minu*3.5)
América
América desc =
del Sur total =
del Sur totalmin*0.20
totalmin
totalmin
totalmin total =
Desc totalmin - desc
total
total
IMPRIMIR
IMPRIMIR
Llamada a
Europa Llamada a
Europa
totalmin
totalmin
Desc
total
total
C
A C
D
sí ¿zona no
= 5?
¿hora >=
sí 22 o hora no
<=6? IMPRIMIR
“Introduce
una zona
válida”
CALCULAR CALCULAR
totalmin = totalmin =
(minu*6) (minu*6)
desc = total =
totalmin*0.20 totalmin
total =
totalmin - desc
IMPRIMIR
IMPRIMIR
Llamada a
Asia Llamada a
Asia
totalmin
totalmin
Desc
total
total
FIN
Programa en GAMBAS
Public Sub Main()
Dim zona As Byte
Dim minu As Single
Dim hora As Byte
Dim totalmin As Single
Dim desc As Single
Dim total As Single
Print
Print "Ingresa el número del área a la que deseas llamar"
Input zona
Print "Ingresa el número de minutos que deseas llamar"
Input minu
Print "Ingresa la hora a la que estás llamando"
Input hora
Print
Print
If zona = 1 Then
Print "Llamada a América del Norte"
totalmin = minu * 2
Print minu; " Minutos\t" "$\t"; totalmin
If hora <= 6 Or hora >= 22 Then
desc = totalmin * 0.20
Print "Descuento\t" "$\t"; desc
total = totalmin - desc
Print "TOTAL\t\t" "$\t"; total
Else
Print "TOTAL\t\t" "$\t"; totalmin
Endif
Else If zona = 2 Then
Print "Llamada a América Central"
totalmin = minu * 2.5
Print minu; " Minutos\t" "$\t"; totalmin
If hora >= 22 Or hora <= 6 Then
desc = totalmin * 0.20
Print "Descuento\t" "$\t"; desc
total = totalmin - desc
Print "TOTAL\t\t" "$\t"; total
Else
Print "TOTAL\t\t" "$\t"; totalmin
Endif
Else If zona = 3 Then
Print "Llamada a América del Sur"
totalmin = minu * 4.5
Print minu; " Minutos\t" "$\t"; totalmin
If hora >= 22 Or hora <= 6 Then
desc = totalmin * 0.20
Print "Descuento\t" "$\t"; desc
total = totalmin - desc
Print "TOTAL\t\t" "$\t"; total
Else
Print "TOTAL\t\t" "$\t"; totalmin
Endif
Else If zona = 4 Then
Print "Llamada a Europa"
totalmin = minu * 3.5
Print minu; " Minutos\t" "$\t"; totalmin
If hora >= 22 Or hora <= 6 Then
desc = totalmin * 0.20
Print "Descuento\t" "$\t"; desc
total = totalmin - desc
Print "TOTAL\t\t" "$\t"; total
Else
Print "TOTAL\t\t" "$\t"; totalmin
Endif
Else If zona = 5 Then
Print "Llamada a Asia"
totalmin = minu * 6
Print minu; " Minutos\t" "$\t"; totalmin
If hora >= 22 Or hora <= 6 Then
desc = totalmin * 0.20
Print "Descuento\t" "$\t"; desc
total = totalmin - desc
Print "TOTAL\t\t" "$\t"; total
Else
Print "TOTAL\t\t" "$\t"; totalmin
Endif
Else
Print "Zona no válida, reingrese por favor"
Endif
End
Prueba de escritorio
PANTALLA
MEMORIA
𝒛𝒐𝒏𝒂 𝒎𝒊𝒏𝒖 𝒉𝒐𝒓𝒂 𝒕𝒐𝒕𝒂𝒍𝒎𝒊𝒏 𝒅𝒆𝒔𝒄 𝒕𝒐𝒕𝒂𝒍
𝟎 𝟎. 𝟎 𝟎 𝟎. 𝟎 𝟎. 𝟎 𝟎. 𝟎
4 15 23 52.5 10.5 42
Conclusiones
1. En mi opinión, la importancia de este programa es que a través de él,
podemos utilizar los operadores lógicos básicos, en este caso, AND y;
OR, además, seguir practicando el uso del ELSE-IF y las operaciones
matemáticas básicas.
Pseudocódigo:
DATOS DE ENTRADA
PEDIR x
PROCESO
DETERMINAR
Si x = “A” o x = “a” (1)
ó
Si x = “B” o x = “b” (2)
ó
Si x = “C” o x = “c” (3)
ó
Si x ≠ “A”, “a”, “B”, “b”, “C”, “c” (4)
SALIDA
Si x = “A” o x = “a” (1)
IMPRIMIR
Clasificación: Todo público
ó
Si x = “B” o x = “b” (2)
IMPRIMIR
Clasificación: Adolescentes y Adultos
ó
Si x = “C” o x = “c” (3)
IMPRIMIR
Clasificación: Adultos
ó
Si x ≠ “A”, “a”, “B”, “b”, “C”, “c” (4)
IMPRIMIR
CLASIFICACIÓN NO VÁLIDA
Diagrama de flujo:
INICIO
PEDIR
sí ¿x = “A” no
OR “a”?
IMPRIMIR
Clasificación: ¿x = “B”
Todo público sí no
OR “b”?
IMPRIMIR
Clasificación:
sí ¿x = “C”
Adolescentes OR “c”?
no
y Adultos
IMPRIMIR IMPRIMIR
Clasificación: CLASIFICACIÓN
Adultos NO VÁLIDA
FIN
Programa en GAMBAS
Public Sub Main()
Dim x As String
MEMORIA
𝒙
𝑵𝑼𝑳𝑳
4 bytes + 1 byte = 5 bytes
Conclusiones
1. En mi opinión, la importancia de este programa radica en que se pone
en práctica la variable STRING y además, para identificar qué tipo de
datos se pueden poner en este tipo de variable.
Pseudocódigo:
DATOS DE ENTRADA
PEDIR tam
PEDIR jar
PEDIR cer
PROCESO
DETERMINAR
Si tam = 1 (1)
preciotam= 10.00
ó
Si tam = 2 (2)
preciotam = 15.00
ó
Si tam = 3 (3)
preciotam = 20.00
ó
Si tam >= 4 (4)
DETERMINAR
Si jar = 1 (5)
preciojar = 6.00
ó
Si jar = 2 (6)
preciojar =8.00
ó
Si jar = 3 (7)
preciojar = 12.00
ó
Si jar >= 4 (8)
DETERMINAR
Si cer = 1 (9)
preciocer = 4.00
ó
Si cer = 2 (10)
preciocer =6.00
ó
Si cer = 3 (11)
preciocer = 11.00
ó
Si cer >= 4 (12)
CALCULAR
total = preciotam + preciojar + preciocer
SALIDA
Si tam = 1 (1)
IMPRIMIR
Precio del tamaño: $10.00
ó
Si tam = 2 (2)
IMPRIMIR
Precio del tamaño: $15.00
ó
Si tam = 3 (3)
IMPRIMIR
Precio del tamaño: $20.00
ó
Si tam >= 4 (4)
IMPRIMIR
Selección no válida
Si jar = 1 (5)
IMPRIMIR
Precio del jarabe: $6.00
ó
Si jar = 2 (6)
IMPRIMIR
Precio del jarabe: $8.00
ó
Si jar = 3 (7)
IMPRIMIR
Precio del jarabe: $12.00
ó
Si jar >= 4 (8)
IMPRIMIR
Selección no válida
Si cer = 1 (9)
IMPRIMIR
Precio del cereal: $4.00
ó
Si cer = 2 (10)
IMPRIMIR
Precio del cereal: $6.00
ó
Si cer = 3 (11)
IMPRIMIR
Precio del cereal: $11.00
ó
Si cer >= 4 (12)
IMPRIMIR
Selección no válida
IMPRIMIR
Tu total es: total
Diagrama de flujo:
Programa en GAMBAS
Public Sub Main()
Dim tam As Byte
Dim jar As Byte
Dim cer As Byte
Dim preciotam As Single
Dim preciojar As Single
Dim preciocer As Single
Dim total As Single
MEMORIA
𝒕𝒂𝒎 𝒋𝒂𝒓 𝒄𝒆𝒓 𝒑𝒓𝒆𝒄𝒊𝒐𝒕𝒂𝒎 𝒑𝒓𝒆𝒄𝒊𝒐𝒋𝒂𝒓 𝒑𝒓𝒆𝒄𝒊𝒐𝒄𝒆𝒓 𝒕𝒐𝒕𝒂𝒍
𝟎 𝟎 𝟎 𝟎. 𝟎 𝟎. 𝟎 𝟎. 𝟎 𝟎. 𝟎
3 2 2 20.00 8.00 6.00 34.00
Conclusiones
1. En mi opinión, la importancia de este programa radica en que se pone
en práctica la variable SINGLE y, además, nos pide pensar en una manera
más simple de poder realizar cualquier combinación entre las variables.
Pseudocódigo:
DATOS DE ENTRADA
PEDIR x
PEDIR y
PROCESO
DETERMINAR
Si (NOT (x=6) OR (x=7)) AND (NOT (y = 2)) (1)
ó
Si ((x = 6) OR (x = 7)) AND (y=2) (2)
SALIDA
Si (NOT (x=6) OR (x=7)) AND (NOT (y = 2)) (1)
IMPRIMIR
TRABAJAS
ó
Si ((x = 6) OR (x = 7)) AND (y=2) (2)
IMPRIMIR
NO TRABAJAS
Diagrama de flujo:
INICIO
PEDIR
¿(NOT (x=6)
sí OR (x=7)) AND no
(NOT (y=2))?
IMPRIMIR IMPRIMIR
TRABAJAS NO TRABAJAS
FIN
Programa en GAMBAS
Public Sub Main()
Dim x As Byte
Dim y As Byte
Print "\t\t\t\tDESPERTADOR"
Print
Print "DÍA"
Print "1 =\t" "LUNES"
Print "2 =\t" "MARTES"
Print "3 =\t" "MIÉRCOLES"
Print "4 =\t" "JUEVES"
Print "5 =\t" "VIERNES"
Print "6 =\t" "SÁBADO"
Print "7 =\t" "DOMINGO"
Print
Print "Status"
Print "1 = \t" "TRABAJAS"
Print "2 = \t" "NO TRABAJAS"
Print
Print "Introduce el número del día de la semana"
Input x
Print
Print "Introduce el número de tu status"
Input y
Print
If (Not (x = 6) Or (x = 7)) And (Not (y = 2)) Then
Print
Print "TRABAJAS"
Else
Print
Print "NO TRABAJAS"
Endif
End
Prueba de escritorio
PANTALLA
MEMORIA
𝒙𝒚
𝟎𝟎
3 2
Conclusiones
1. En mi opinión, la importancia de este programa es que podemos
apreciar la diferencia entre el funcionamiento del IF-ELSE y el ELSE-IF,
además del uso de los operadores lógicos como OR o AND.
1. Selley H., J. Sintaxis de Gambas. 5 septiembre 2021, de AyP, Anáhuac. Sitio web:
https://lab.anahuac.mx/~hselley/ayp/about.html
4. Apuntes de la materia.