3.2.3 Condicionales «if-else» – Ejercicios para Tarea

Instrucciones: Para cada uno de los siguientes ejercicios sobre Algoritmos secuenciales y decisiones, describa un algoritmo en diagrama de flujo o seudocódigo y realice dos pruebas de escritorio.

Los ejercicios son básicos para estructuras de control con condicionales «If-else«. Para resolver los ejercicios se recomienda enfocarse en la parte de casos o condiciones del problema.

[ condicional ] [ and/or/not ] [ por casos ] [ en serie ] [ en árbol ] [ ejemplos ]


1. Un comerciante compra un artículo a un costo dado. Determine el precio al cual debe venderlo si desea ganar el 15%.


2. Un alumno desea saber cual será su calificación final en cierta materia. Dicha calificación se compone de lo siguiente:

60% corresponde al examen escrito.
20% corresponde a las lecciones
15% corresponde a las tareas.
5% corresponde a las prácticas en el laboratorio

El dato del examen escrito es un valor entre 0 y 100 y los otros datos son valores entre 0 y 10. La calificación final debe ser un valor entre 0 y 20.


3. En un almacén se descuenta 20% del precio al cliente si el valor a pagarse es mayor a $200. Dado un valor de precio, muestre lo que debe pagar el cliente.


4. En un almacén se rebaja 10% del precio al cliente si compra mas de 20 artículos y 5% si compra hasta 20 artículos pero más de 10. Dado el precio unitario de un artículo y la cantidad adquirida, muestre lo que debe pagar el cliente .


5. Una frutería ofrece las manzanas con descuento según la siguiente tabla:

Dado el precio por kilo, y el peso, determinar cuánto pagará una persona que compre manzanas es esa frutería.

kilos comprados Descuento %
0 – 2 0%
2.01 – 5 10%
5.01 – 10 15 %
10.01 en adelante 20%

6. En un circuito eléctrico hay tres interruptores, los cuales pueden estar en estado cerrado(1) o abierto(0).

interruptores como lógica para encender foco
Interruptores de focos

Para que un equipo funcione, se requiere que al menos dos estén cerrados. Si los datos son el estado de los interruptores, determine si el equipo funcionará.

 


7. Ingrese tres números correspondientes a un conjunto y tres números correspondientes a otro conjunto.

Muestre los números que corresponden a la intersección de los dos conjuntos.

Sugerencia: Usa una variable para cada elemento del conjunto

conjunto  A = [4 5 7 ]
conjunto  B = [2 7 9]
intersección  A ∩ B = 7

8. Dados los 9 elementos de una matriz cuadrada, encuentre el valor de su determinante sea diferente de cero.

matriz = \begin{pmatrix}a & b & c \\ d & e & f \\ g & h & i \end{pmatrix}

10. En el ejercicio anterior, suponga que la matriz está asociada a un sistema de tres ecuaciones lineales. Ingrese las constantes de las tres ecuaciones y encuentre el valor de las variables.


Triángulo simple
Triángulo simple

11. Lea los valores de los lados de un triángulo. Determine y muestre un mensaje correspondiente a su tipo (1. EQUILÁTERO, 2. ISÓSCELES, O 3. ESCALENO)

 


12. Lea las tres dimensiones de un bloque rectangular.

Bloque y circulo
Bloque y circulo

Encuentre las tres diagonales de sus caras diferentes y determine si pudiera atravesar por un orificio circular de diámetro dado.

[ condicional ] [ and/or/not ] [ por casos ] [ en serie ] [ en árbol ] [ ejemplos ]

3.2.1 Condicionales «if-else» múltiple o con varios casos

[ condicional ] [ conector and/or/not ] [ por casos ] [ en serie ] [ en árbol ]

..


Condicionales «if-else» múltiple o con varios casos

Referencia: Van Rossum 4.1 p19, Rodríguez 3.5 p42, Downey 5.7

condicionales multiples en serieExisten problemas en los que una variable puede tomar diferentes valores conforme al cumplimiento de diferentes condiciones o casos.

Un ejemplo es cuando se realizan ventas por volumen, el descuento depende de la cantidad del producto que se vende.

Cuando la variable resultado del condicional puede tener varios valores, se puede adoptar una forma simple del problema al dividirla por casos, empezando por el caso básico y se modifica la variable resultado lo modifica cuando se revisan los casos siguientes.

Para estos casos se usan estructuras de control para selección en forma anidada en forma de serie o en forma de árbol.

[ condicional ] [ conector and/or/not ] [ por casos ] [ en serie ] [ en árbol ]

..


Condicionales múltiples en serie

condicionales en serieEjemplo 3. Un almacén rebaja 10% del precio de un producto si se adquieren más de 20 unidades y 5% si adquieren hasta 20 unidades pero más de 10, no hay descuento para cantidades menores o iguales a 10 unidades.

Con el precio unitario del producto y la cantidad adquirida, realice un algoritmo para mostrar el valor a pagar.

 

 

Desarrollo:

Para seguir una forma ordenada del problema, se dividen los casos de cantidad en segmentos de recta numérica.

El aplicar los descuentos consiste en evaluar los intervalos de cantidad y escribirlos como casos con condicionales.

Las instrucciones de condicionales en Python se muestran como:

# Ejemplo 3.Descuentos en productos por precio y cantidad.

# Ingreso
valor = float(input('Valor del producto: '))
cantidad = float(input('cantidad del producto: '))

# Procedimiento
descuento = 0
if (cantidad > 10 and cantidad<=20):
    descuento = 0.05
if(cantidad > 20):
    descuento = 0.10

pagar = valor*cantidad*(1-descuento)

# Salida
print(pagar)

[ condicional ] [ conector and/or/not ] [ por casos ] [ en serie ] [ en árbol ]

..


Condicionales múltiples en árbol

condicionales en árbol, estructuras de controlOtra forma de resolver el problema del ejemplo anterior, consiste en generar un camino por cada caso para asignar el valor a la variable de salida.

Cada camino es parte de un condicional.

Siguiendo ésta idea, el diagrama de flujo anterior se reorganiza y muestra como:

condicionales en árbol, estructuras de control

Las instrucciones en Python sobre condicionales para el ejercicio son:

# Ejemplo 3.Descuentos en productos por precio y cantidad.

# Ingreso
valor = float(input('Valor del producto: '))
cantidad = float(input('cantidad del producto: '))

# Procedimiento
descuento = 0
if (cantidad>10):
    if (cantidad<=20):
        descuento = 0.10
    else:
        descuento = 0.05
else:
    descuento = 0.0

pagar = valor*cantidad*(1-descuento)

# Salida
print(pagar)

Referencia: Elementos esenciales para programación: Algoritmos y Estructuras de Datos Latin Project. Primera Edición 2014. Sección 4.1.2 p.66

[ condicional ] [ conector and/or/not ] [ por casos ] [ en serie ] [ en árbol ]

3.2 Condicionales «if-else» – Estructura de selección

[ condicional ] [ conector and/or/not ] [ por casos ] [ en serie ] [ en árbol ]

..


Condicionales «if-else» – Estructura de selección

Referencia: Van Rossum 4.1 p19, Rodríguez 3.4.1 p26, Downey 5.5

Las estructuras de selección son un tipo de estructuras de control que permiten decidir que acción seguir a partir de una condición.

Diagrama de Flujo Condicional
Estructura Condicional

Cuando se puede escoger entre dos caminos, se debe tomar una decisión entre las opciones. En estos casos se utilizan los «Condicionales» que son estructuras de selección.

El condicional más simple está conformado por solo dos caminos, se formula una pregunta simple que compara al menos dos variables mediante expresiones de comparación, tales como:

a=b a>b a<b
a<=b a>=b etc…

El condicional en diagramas de flujo se representa por un rombo, la expresión se escribe dentro del rombo. Por convención, hacia la derecha del rombo se grafica el caso que la expresión resultada verdadera (V), y hacia abajo o la izquierda se grafica la acción cuando el resultado es falso (F) Una forma de recordar esta convención es extender la mano derecha en señal de verdad, y al extender la mano izquierda, nos queda el lado el lado falso.

Para mostrar la aplicación de un condicional en un algoritmo se utilizan los siguientes ejemplos:


Ejemplo 1. Condicionales para aplicar descuentos

Un almacén aplica un descuento del 10% a quienes han comprado en productos más de 100 dólares. Condicional, diagrama de flujo, algoritmo if else Realice un algoritmo que permita realizar esta operación directamente en la caja registradora. Desarrollo: El descuento lo puede aplicar el cajero, o se puede incorporar el algoritmo a la máquina registradora. La variable de ingreso es el valor de compra, el procedimiento debe determinar el valor a pagar, que se presenta al final como variable de salida. El diagrama de flujo que representa el algoritmo es el diagrama 1, las instrucciones en un archivo de Python se adjunta a continuación:

# Ejemplo 1.Descuentos en productos de precio alto.

# Ingreso
valor = float(input('Valor del producto: '))

# Procedimiento
if valor >100:
    descuento = 0.10
else:
    descuento = 0
pagar = valor*(1-descuento)

# Salida
print(pagar)
Diagrama de Flujo Condicionales – Ejercicio 2

la ejecución el archivo Python:

Valor del producto: 120
108.0
>>>

Otra forma de expresar el algoritmo en diagrama de flujo, con el punto de vista del dueño del almacén, quien prefiere que no exista descuento inicia con cero (0) y se modifica solo si cumple con la condición de que adquiera más de 100 dólares (diagrama 2):

Las instrucciones en Python se escriben como:

# Ejemplo 1.Descuentos en productos de precio alto.

# Ingreso
valor = float(input('Valor del producto: '))

# Procedimiento
descuento = 0
if valor >100:
    descuento = 0.10
pagar = valor*(1-descuento)

# Salida
print(pagar)

En el caso que el condicional modifique una variable solo en el caso de cumplir una condición, no es necesario graficar una acción. En estos casos, se debe escribir la expresión en la forma que permita que el lado sin acción quede del lado falso.

[ condicional ] [ conector and/or/not ] [ por casos ] [ en serie ] [ en árbol ]

..


Condicional con varias preguntas – Conectores and/or/not

Cuando se debe incluir más de una pregunta en un condicional, se utilizan los operadores lógicos.

En diagramas de flujo o seudo-código, las expresiones usan las mismas conectivas que en la notación de lógica matemática (and, or, not).

Conectiva símbolo operador
Conjunción and
Disyunción or
Negación not( ) , !

Ejemplo 2. Condicional para aplicar descuentos por volumen o cantidad comprada.

Condicional, diagrama de flujo, algoritmo if elseUn almacén aplica el descuento del 15% para artículos de valor mayor a 8 dólares y que incluyan más de 10 artículos.

Desarrollo: Para el ejercicio se requieren dos variables de ingreso: valor y cantidad. El descuento se aplica con la expresión:

(valor > 8) ∧ (cantidad > 10)

Para el procedimiento se continúa de igual forma que en el ejercicio anterior:

Instrucciones en Python

# Ejemplo 2.Descuentos en productos de precio alto.

# Ingreso
valor = float(input('Valor del producto: '))
cantidad = float(input('cantidad del producto: '))

# Procedimiento
if (valor>8 and cantidad>10) :
    descuento = 0.10
else:
    descuento = 0

pagar = valor*cantidad*(1-descuento)

# Salida
print(pagar)

resultado del algoritmo:

Valor del producto: 10
cantidad del producto: 15
135.0
>>>

Referencia: Elementos esenciales para programación: Algoritmos y Estructuras de Datos Latin Project. Primera Edición 2014. Sección 4.1. p.62

[ condicional ] [ conector and/or/not ] [ por casos ] [ en serie ] [ en árbol ]

3.1 Estructuras de Control en programación

[ Estructuras de control ] [ Condicional ] [ Bucle while ] [ Bucle for ]

..


Estructuras de Control en programación

Referencia: Van Rossum 4 p19, Rodriguez 3.4 p26, Downey 5.5

Las estructuras de control en programación permiten realizar acciones ordenadas en el algoritmo por bloques o secciones de instrucciones, facilitando la escritura y lectura.

Estructura Básica

Diagrama de Flujo Básico
Diagrama de Flujo Básico

Toda solución a un problema (algoritmo) puede ser planteado usando una estructura básica ordenada, compuesta por:

  • Inicio
  • ingreso
  • procedimiento
  • salida
  • fin

Las estructuras de control se usan como una forma lógica y ordenada de plantear un algoritmo, para que sea legible por otras personas. Así el algoritmo también será modular semejante a las piezas de un Lego.

Los diagramas de flujo muestran de forma gráfica la estructura lógica y ordenada de un algoritmo.

Las estructuras o bloques se podrán reutilizar en otros algoritmos (funciones(variables)) para evitar escribirlos nuevamente y solo realizar llamadas sobre sus nombres y parámetros.


[ Estructuras de control ] [ Condicional ] [ Bucle while ] [ Bucle for ]


Bloque de Inicio en Python

Permite dar las indicaciones iniciales para la solución de un problema, tales como la referencias o comentarios (#), traer o importar las herramientas, conocidas como librerías , definir sus propias herramientas (funciones), etc.

comentarios o referencias:

# 1ra Eval. II Termino 2014
# Tema 1

Librerías para cálculo numérico, por ejemplo: Numpy

import numpy as np
c = np.sqrt((a**2)+(b**2))

Librerías para uso de aleatorios: random

import random as rnd
dado = int(rnd.random.random()*6)+1

Librerías para uso de vectores y Matrices: Numpy

import numpy as np
tabla= np.zeros(5,dtype=int)
tabla= np.zeros(shape=(3,5), dtype=float)

entre muchas otras para gráficas, manejo de datos, ecuaciones algebraicas, sonido, etc.


Bloque de Ingreso en Python

Sección donde se pide o ingresa los datos necesarios para resolver el problema, es decir se obtienen los valores de las variables, etc.

Ejemplo: Pedir un número entero por teclado

a = int(input('pregunta: '))

Ejemplo: ingresar un número real por teclado

a = float(input('pregunta: '))

Ejemplo: ingresar un texto o palabra por teclado

a = input('pregunta: ')

Bloque de Procedimiento en Python

Donde se resuelve el problema con los datos ingresados. Aquí es donde más se usan las estructuras de control de operaciones, se desarrolla por bloques.

En cada bloque, la sangría o «indentación» indica dependencia del bloque.

Condicionales

Permite seleccionar una operación como resultado de una condición establecida.estructura condicional if else

if (Condicion):
    Verdadero
else:
    Falso

Ejemplo en Python:

if (a>b):
    a = a+3
else:
    b = b-2

Lazo o bucle: Mientras Repita

permite repetir un bloque de operaciones controlado por una condición.

Estructura Mientras Repita
Estructura Mientras Repita
while (condicion):
    operaciones

Ejemplo en Python:

a=50
while (a<100):
    a = a+5

Lazo o Bucle: Repita-Hasta

Se interpreta como: ejecutar «hasta» que se cumpla la condición.

Estructura Repita hasta
Estructura Repita hasta
while not(condicion):
    operaciones

Ejemplo en Python:

a=50
while not(a<100):
    a = a+5

Bloque de Salida en Python

Presenta los resultados encontrados al desarrollar la solución al problema.

Ejemplo: para mostrar una variable o un mensaje

print('Resultado: ')
print(variable)
print('mensaje:', respuesta)

En las siguiente secciones se dan más detalles, junto al desarrollo de los ejercicios.

[ Estructuras de control ] [ Condicional ] [ Bucle while ] [ Bucle for ]

2.6 Caracteres y cadenas (Strings) para el manejo de texto

Referencia: Van Rossum 3.1.2 p11, Rodriguez 5.6.1 p59, Downey 2.9

El manejo de texto en computadoras, se conoce con el nombre técnico de «cadenas de caracteres» o «strings» en los libros en inglés. teclado, cada tecla es una letra o caracter

Una letra del alfabeto, un número, un signo de puntuación, en general: todos los símbolos que están disponibles en el teclado del computador son un dibujo a ser presentado o usado en una pantalla, impresora, etc.

Cada dibujo se identifica con un número y cada dibujo se lo conoce como «caracter» o en idioma inglés «character».

La tabla «caracteres» y su número de identificación estandarizado se conoce como Tabla de códigos ASCII (American Standard Code for Information Interchange).

Para visualizar el concepto, por ejemplo se obtiene el código ASCII de un caracter:

>>> ord('a')
97

El proceso contrario para obtener el caracter de un código ASCII es:

>>> chr(97)
'a'

Concatenar para formar palabras

Los símbolos o caracteres se agrupan para formar palabras, frases, párrafos, por lo que internamente se convierten en vectores numéricos de los dibujos o símbolos. A esta agrupación se la conoce como «cadenas» o «strings».

La agrupación de caracteres se conoce como «concatenar». En Python se usa el símbolo «+» para denotar concatenación.

Ejemplo:

>>> a = 'Hola'
>>> b = '¿que tal?'
>>> c =  a+b
>>> c
'Hola¿que tal?'

La operación c = a+b
debe leerse como: "c almacena a concatenado con b",
diferenciando la acción de las operaciones matemáticas de igualdad y suma.

Operaciones y algoritmos con cadenas de caracteres o Strings

Las operaciones y algoritmos con cadenas de caracteres se desarrollan en la Unidad 4.

Cadenas de caracteres/strings – vector de letras en Python

Cadenas de caracteres/strings – Ejercicios resueltos en Python

Cadenas de caracteres/strings – Ejercicios


Otros símbolos con significado diferente al alfabeto, o un caracter en notación matemática.

2.5 Acumuladores ejemplo – Algoritmo de la secuencia de Fibonacci

Referencia: Van Rossum 3.2 p16, Rodriguez 6.10.1 p176, Downey 18.4

Un ejemplo del uso del acumulador en programación es el algoritmo para generar la secuencia de Fibonacci. En la actividad se deberán identificar el valor inicial y el valor de cambio (aumento o disminución) del nuevo valor de la secuencia. Se plantea responder algunas preguntas para seguimiento de aprendizaje.

  1. Para esta actividad, observe el video desde el minuto 3:50 hasta 6:40:
    El misterio de las matemáticas. Video NOVA
  2. Describa la secuencia de Fibonacci en un párrafo.
  3. ¿Puede programar la secuencia de Fibonacci? usando solo las operaciones básicas de suma y/o resta.
  4. Describa las operaciones en Python y compruebe sus resultados.

MatemáticasTV. El gran misterio de las Matemáticas. 28 may 2016. YouTube

Ejemplo de desarrollo

Se adjunta otro ejercicio resuelto usando acumuladores en programación con la secuencia de Fibonacci como referencia de lo que se puede continuar aplicando en un tema.

1Eva_IIT2002_T4 cociente de Fibonacci

Solución propuesta: s1Eva_IIT2002_T4 cociente de Fibonacci

Tutorial: S02T1 Lazos/Bucles y Acumuladores


¿Qué es la serie de Fibonacci? y ¿qué tiene que ver con el número áureo?

BBC Mundo 2021-Abril-21

 

2.4 Contadores y acumuladores – Ejercicios resueltos

Ejercicios resueltos sobre contadores y acumuladores en programación con Python.

1Eva_IIIT2003_T2 Verificar números triangulares

Solución propuesta: s1Eva_IIIT2003_T2 Verificar números triangulares

1Eva_IIT2002_T4 Cociente de fibonacci

Solución propuesta: s1Eva_IIT2002_T4 Cociente de fibonacci

1Eva_IIT2003_T2 Sumar términos de progresión geométrica

Solución propuesta: s1Eva_IIT2003_T2 Sumar términos de progresión geométrica

1Eva_IIT2002_T1 Crea tablas de multiplicar con strings del 1 a n

Solución propuesta: s1Eva_IIT2002_T1a Crea tablas de multiplicar con strings del 1 a n

1Eva_IIT2002_T3 Conjetura de Ullman

Solución propuesta: s1Eva_IIT2002_T3 Conjetura de Ullman

1Eva_IIT2012_T1 Sucesión de Padovan

Solución propuesta: s1Eva_IIT2012_T1 Sucesión de Padovan

Otros ejercicios de contadores y acumuladores pueden ser encontrados en Evaluaciones – ejercicios por Temas en la sección de acumuladores.

2.3 Contadores y Acumuladores en programación

Referencia: Rodríguez 3.3.1 p24, Van Rossum 9.3.3 p73,  Downey 22.9

¿Qué es un contador  en programación? ¿Qué es un acumulador en programación? Son conceptos de uso cotidiano que son el resultado de la suma de una serie de números. Los conceptos se puede explicar con los siguientes ejemplos:

.. [ contador ] [ acumulador]  || [ Operaciones ]


¿Qué es un contador en programación?

Al visitar el departamento de servicio al cliente en una empresa, los clientes para obtener un turno deben tomar un ticket. Un letrero electrónico indica el número del cliente que se está atendiendo, luego éste número cambia incrementándose en 1 para anunciar el siguiente turno a ser atendido.

contadores y acumuladores en programación
El ejemplo de uso práctico de un contador permite observar dos características:

  • Siempre tienen un valor inicial
  • El valor nuevo del contador es el resultado del valor anterior más una constante.

Al inicio del día, el contador de tickets debe ser inicializado, de preferencia con 0. Cuando un puesto de atención está listo para atención, el contador se incrementa en uno, se escucha una alerta y el cliente se puede acercar con el ticket del primer turno.

Las características descritas en forma algorítmica se escriben como:

contador ← 0
contador ← contador + 1

La expresión de la segunda línea se puede leer como: «valor nuevo” de contador es el resultado del «valor anterior» incrementando en 1.

Desde luego que los contadores  puede sumarse un valor diferente a 1, pero siempre será un valor constante, como cuando se cuenta de dos en dos. contador decreciente en programación

La variable contador también pueden tener cambios de forma ascendente, o disminuir desde un valor inicial (decreciente).

Un ejemplo de contador decreciente se observa en cronometro del microondas para calentar alimentos. El valor inicial son los segundos que permanecerá encendido. El contador de tiempo disminuye en uno cada segundo y al llegar a 0 se apaga el microondas.

Ejemplo de contador con instrucciones en Python:

>>> contador = 0
>>> contador = contador + 1
>>> contador
1

.. [ contador ] [ acumulador] || [ Operaciones ]


¿Qué es un acumulador en programación?

Un acumulador en programación es una versión ampliada de un contador. El acumulador  tiene las mismas características que un contador excepto el valor de incremento que es un valor variable. acumulador en programación como ahorro

Por ejemplo, una cuenta de ahorros puede representarse en un algoritmo mediante un acumulador, pues quien ahorra no siempre lo hará con una cantidad fija en la cuenta: un día deposita 10, otro día deposita 30, otro deposita 5.

Con el ejemplo de ahorro, se puede determinar que en el acumulador no siempre se añade un valor positivo, pues cuando se hace un retiro, se puede interpretar como que el valor añadido es negativo.

Las características descritas para forma algorítmica se escriben como:

acumulador ← 0
acumulador ← acumulador + X

La expresión del literal b se para una cuenta puede leer como: «saldo nuevo” de acumulador es el «saldo anterior» de acumulador considerando el deposito (+x) o retiro (-x).

Recuerde que:

El concepto de asignar es usado en algoritmos “=” carece de sentido matemático.

Si tomamos como ejemplo el acumulador, si se expresa como una igualdad, se interpretaría como:

acumulador = acumulador + X
acumulador - acumulador = X
0 = X

Cuando en el algoritmo se quiere expresar en realidad es una asignación, por lo que se utiliza el símbolo “←”

acumulador ← acumulador + X

Esta aclaración permite formalizar la diferencia de comparación de igualdad “=” usada dentro de los condicionales.

Ejemplo de acumulador en Python:

>>> acumulador = 0
>>> acumulador = acumulador + 4.5
>>> acumulador
4.5
>>> acumulador = acumulador - 1.3
>>> acumulador
3.2

En la siguiente página se presentan algunos ejemplos y ejercicios resueltos sobre contadores y acumuladores de exámenes anteriores.

[ contador ] [ acumulador] || [ Operaciones ]

2.2 Operaciones básicas matemáticas y lógicas en Python

Referencia: Rodriguez 5.6.3 p59, Van Rossum 10.6 p85,  Downey 2.6

Para los ejercicios iniciales en programación se muestran algunas operaciones numéricas básicas a partir de algunas variables: asignación, cociente, residuo, lógicas, aleatorias, etc.

[ asignación ] [ cociente ] [ residuo ] [ lógicas ] [ aleatorio ] || [ tipos de datos ] [ contador ] [ acumulador ]

..


Asignación de valores

En algoritmos se usan las expresiones de asignación para denotar la intención de resolver operaciones y cuyo resultado se almacena en una variable simple, por lo que se expresan de la forma:

c ← a + b
d ← x2 + y2

Debe observar que las asignaciones no son expresiones de igualdad, como las usadas en matemáticas, por lo que su símbolo corresponde a una flecha que apunta el sentido donde se almacena el resultado.

[ asignación ] [ cociente ] [ residuo ] [ lógicas ] [ aleatorio ] || [ tipos de datos ] [ contador ] [ acumulador ]

..


Cociente ó división entera

Se usa solo la parte entera de una división. Ejemplo: Cinco manzanas para dos envases de desayunos

>>> a = 5
>>> b = 2
>>> c = a//b    
>>> c
2

division entera con manzanas

[ asignación ] [ cociente ] [ residuo ] [ lógicas ] [ aleatorio ] || [ tipos de datos ] [ contador ] [ acumulador ]

..


Residuo de a para b

El residuo representa las manzanas que no completan un envase de desayuno.

>>> a = 5
>>> b = 2
>>> c = a%b
>>> c
1

Exponente a^b

Operaciones de base y exponente

>>> c = a**b
>>> c    
25

Raíz cuadrada \sqrt{a^2 + b^2}

>>> import math
>>> c = math.sqrt((a**2) + (b**2))
>>> c
5.385164807134504

[ asignación ] [ cociente ] [ residuo ] [ lógicas ] [ aleatorio ] || [ tipos de datos ] [ contador ] [ acumulador ]

..


Operaciones Lógicas

Operación Python
y p Λ q p and q
o p V q p or q
negación ⌉p not(p)

Suponga que p es verdadero y q es falso

>>> p = 1
>>> q = 0
>>> p and q
0
>>> p or q
1
>>> not(p)
False

[ asignación ] [ cociente ] [ residuo ] [ lógicas ] [ aleatorio ] || [ tipos de datos ] [ contador ] [ acumulador ]
..


Número Aleatorio entero

Número entero obtenido por ejemplo al lanzar un dado de seis caras

>>> import random as rnd
>>> dado = int(rnd.random()*6) +1
>>> dado
4

[ asignación ] [ cociente ] [ residuo ] [ lógicas ] [ aleatorio ] || [ tipos de datos ] [ contador ] [ acumulador ]

2.1 Tipos de datos numéricos en programación

[ Escalares ] [ Vectores ] [ Matrices ] [ Listas ] || [ Operaciones ]
..


Referencia: Van Rossum 3.2 p9, Rodríguez 5.6.1 p58, Downey 2.1

1. Datos numéricos ESCALARES

Las variables numéricas de un solo valor o elemento utilizadas en un algoritmo se clasificarán en enteras, reales, complejas y lógicas.

1.1 Variables numéricas tipo entero

numero escalar una manzanaEs el tipo de variable usada para contar el número de estudiantes presentes en un aula de clases, pasajeros en un bus, barco o avión.

Los datos numéricos enteros indican la cantidad de elementos: una manzana, cuatro manzanas en un canasto, etc.

numero escalar varias manzanas

La variable numérica recomendada a usar en los casos es la tipo entera, pues siempre los decimales serían cero.

Ejemplo de tipo de datos numéricos enteros en Python: int()

>>> a = int(input('escriba un entero: '))
>>> b = 5
>>> c = a*b
>>> type(a)
<class 'int'>

1.2 Variables tipo Real

Este tipo de variable se usa para escribir por ejemplo el precio de un producto que incluye los centavos, el peso de un producto en Kg, el número π.

En estos casos, al escribir con decimales, se los considera como variable tipo real. Ejemplos: $9.99, $89.32, 1.268Kg, 3.1416

Ejemplo de tipo de datos numéricos reales en Python: float()

>>> g = float(input('escriba un real')
>>> valor = 3.1415927
>>> type(valor)
<class 'float'>

Float Double Int Tómalo o Déjalo

1.3 Variables tipo Compleja

El tipo de dato numérico usado usado para representar números complejos, aquellos que tienen parte imaginaria (raiz(-1)). En Python se definen en dos partes como: complex(real,imaginaria)

>>> w = complex(1,.5)
>>> w
(1+0.5j)
>>> type(w)
<class 'complex'>
>>> w.real
1.0
>>> w.imag
0.5
>>> w.conjugate()
(1-0.5j)

1.4 Variables tipo Booleana

Se usan en lógica matemática como valor verdadero 1 y falso 0.

Tienen aplicaciones como en asistencia a clases:
presente=0, presente=1,
y pueden sustituir símbolos como √ para asistencia y X para una ausencia de una clase.

>>> tarea = True
>>> type(tarea)
<class 'bool'>
>>> leccion = False
>>> aprender = tarea and leccion
>>> aprender
False
>>> asiste = tarea or leccion
>>> asiste
True
>>> esperanza = not(leccion)
>>> esperanza
True
>>> examen = 1
>>> leccion = 1
>>> tarea = 0
>>> aprendizaje = leccion and tarea
>>> aprendizaje
0
>>> estudia = leccion or tarea
>>> estudia
1
>>> aprueba = examen and leccion and tarea
>>> aprueba
0

Para el desarrollo de algoritmos  básicos se describirán solo estos tipos numéricos como grupos principales. Para el caso de lenguajes de programación se definirán otros subtipos: entero, entero largo, real, real doble, etc. que se describirán durante el desarrollo del curso

[ Escalares ] [ Vectores ] [ Matrices ] [ Listas ] || [ Operaciones ]
..


2. VECTORES en programación

Usados por ejemplo para tabular la cantidad e manzanas en los arboles de un huerto como control de producción por árbol.

La fila de un huerto es el vector, cada árbol es el índice del vector, la cantidad de manzanas producidas es el valor de cada casilla del vector.

huerto
árbol 1 2 3
manzanas 15 18 17

tamaño del vector=3

Por ejemplo, en el huerto, el árbol con la etiqueta 2 tiene 18 manzanas.

huerto = [15,18,17]
huerto[2] = 18

En realidad en programación el primer índice será el cero, asunto a tomar en cuenta cuando se usan los índices entre la programación y el uso diario de identificadores. Es semejante cuando culturalmente se numeran los pisos de un edificio como planta baja, primer piso, segundo piso

índices = [0,1,2,..]
huerto = [15,18,17]
huerto[1] = 18

en el ejemplo el vector se encuentra formado por números enteros.

ARREGLOS

Arreglos de una dimensión o vectores, requieren importar numpy. Las librerías numpy incorporan muchas operaciones de vectores y matrices usadas en otros cursos como álgebra lineal (http://blog.espol.edu.ec/matg1049/)

Vectores – Arreglos de una dimensión

Por ejemplo: las notas de 1ra, 2da y 3ra evaluación se pueden escribir en un vector.

vector = \begin{pmatrix}7.2 \\ 8.4 \\ 9.23\end{pmatrix}
>>> import numpy as np
>>> vector = np.array([7.2, 8.4, 9.23])
>>> type(vector)
<class 'numpy.ndarray'>

Para el caso de calificaciones, se pueden usar números reales como elementos del vector.

Los vectores pueden contener escalares de tipo entero, real o complejo, como se usan en matemáticas.

El tema se desarrolla en la Unidad 4 con ejemplos y ejercicios.

[ Escalares ] [ Vectores ] [ Matrices ] [ Listas ] || [ Operaciones ]

..


2 Matrices – Arreglos de dos dimensiones

Una matriz Matriz o arreglo puede ser desde un sistema de ecuaciones, una tabla de goles de un campeonato o una hoja de calendario.

Se usan índices para filas y columnas. Para ele ejemplo las filas representan las semanas y las columnas el nombre del día.

El valor de una casilla se determina por el nombre de la matriz y sus correspondientes fila y columna.

matriz = \begin{pmatrix}1.2 && 2.45 && 5.3 \\ 0.3 && 1.75 && 4.89\end{pmatrix}

Matrices requieren importar numpy

>>> matriz=numpy.array([[1.2, 2.45, 5.3],
                        [0.3, 1.75, 4.89]])
>>> type(matriz)
<class 'numpy.ndarray'>
>>> matriz
array([[ 1.2 , 2.45, 5.3 ],
       [ 0.3 , 1.75, 4.89]])

las matrices de igual manera pueden contener valores de de tipo entero, real o complejo, etc. acorde al problema a realizar.

El tema se  desarrolla mucho más en la unidad 4  en el enlace:

4.2 Matrices en programación – Arreglos de dos dimensiones en Python

[ Escalares ] [ Vectores ] [ Matrices ] [ Listas ] || [ Operaciones ]

..


3. LISTAS

Otra forma de agrupar datos como en vectores y matrices son las listas.
Para uso de matemáticas, cálculo numérico o álgebra lineal se recomienda usar arreglos, pues las operaciones de las librerías (numpy) están optimizadas para el uso de arreglos.

Ejemplo de un vector de números enteros como lista:

>>> vector = [1,4,2,1]
>>> type(vector)
<class 'list'>

Ejemplo de una matriz como lista:

>>> matriz = [[1,2,3,4],
              [5,6,7,8]]
>>> type(matriz)
<class 'list'>
>>> matriz[0][2]
3
>>>

En el caso de vectores y matrices numéricos es preferible usar arreglos por la disponibilidad de operaciones numéricas, algebraicas disponibles en la librería Numpy.

[ Escalares ] [ Vectores ] [ Matrices ] [ Listas ] || [ Operaciones ]