Unidad 1: Estructura general de un algoritmo


1. Definición de un algoritmo

Un algoritmo consiste en una lista ordenada de operaciones que tienen el propósito de buscar la solución a un problema en matemática, informática y disciplinas afines. Se trata de una serie de instrucciones o reglas establecidas que, por medio de una sucesión de pasos, permiten arribar a un resultado o solución.

Todo algoritmo debe obedecer a la estructura básica de un sistema, es decir: entrada, proceso y salida.
• ENTRADA: Corresponde al insumo, a los datos necesarios que requiere el proceso para ofrecer los resultados esperados.
• PROCESO: Pasos necesarios para obtener la solución del problema o la situación planteada.
• SALIDA: Resultados arrojados por el proceso como solución.


2. Elementos de un algoritmo

Todo algoritmo debe un cumplir unas determinadas características como los son:
• Un algoritmo debe ser preciso e indicar el orden de realización de cada paso.
• Un algoritmo debe estar definido. Si se prueba un algoritmo dos veces, se debe obtener el mismo resultado cada vez. (prueba de escritorio)
• Un algoritmo debe ser finito. el algoritmo se debe terminar en algún momento; o sea, debe tener un número finito de pasos. 
• Un algoritmo debe ser legible: El texto que lo describe debe ser claro, tal que permita entenderlo y leerlo fácilmente.
• Un algoritmo debe definir tres partes: Entrada, Proceso y Salida.

Ejemplo: El algoritmo de receta de cocina se tendrá
 Entrada:  Ingredientes y utensilios.
 Proceso:  Elaboración de la receta en la cocina.
• Salida:  Terminación del plato (por ejemplo, Pollo al horno).


3. Datos y tipos de datos

Para programar, es necesario identificar a qué tipo de datos pertenecen cada una de las variables o constantes, ya sean estos números, letras, palabras, frases, entre otros y cada uno corresponde a un tipo de dato, que requerirá de una manipulación específica para obtener los resultados deseados.

Tipos de datos principales

Tipo

Subtipo

Descripción

Variables

Valores

Numéricos

Enteros

Este tipo dato corresponde a aquellas variables que exclusivamente pueden recibir VALORES SIN PARTE DECIMAL.

nroEstudiantes

año

nroLados

40

 

2015

 

3

Reales

Este tipo de dato, en cambio corresponde a aquellas variables cuyos VALORES TIENEN PARTE DECIMAL.

sueldo

área

valorRadio

354,25

 

12,56

 

3,0

Texto

Caracter

En este tipo de dato se encuentran todos los caracteres conocidos, una letra, un número, un símbolo especial.

 

paralelo

opción

 

'A'

 

'1'

Cadenas

Constituyen conjuntos de caracteres, es decir la UNIÓN DE VARIOS CARACTERES, que pueden ser palabras o frases. El valor de este tipo de datos se encierra generalmente entre comillas (" ").

dirección

nombre

estadoCivil

"Calle Juan León Mera"

 

"Sandra Vásquez"

 

"soltero"

Lógicos

Boolean

Los booleanos o tipos de datos lógicos, únicamente reciben dos valores: true o false. Se utilizan generalmente como banderas, para identificar si se realizó o no un proceso.

valorlogico

true



4. Constantes y variables

Constante
Una constante es un dato numérico o alfanumérico que no cambia durante la ejecución del programa.

Ejemplo:
pi = 3.1416, sueldo_básico=400, valor_iva=12, tarifa_bus=0.30, velocidad_luz=3000000 Km/s
Gravedad=9,81, grados_ebullicion_agua=100

Variable
Una variable es un espacio en la memoria de la computadora que permite almacenar temporalmente un dato durante  la  ejecución de un  proceso,  su  contenido puede cambiar durante  la ejecución del programa.
Para poder reconocer una variable en la memoria de la computadora, es necesario darle un nombre con el cual podamos identificarla dentro de un algoritmo.

Ejemplo: 
area = pi * radio ^ 2 ‘Las variables son : el radio, el área y la constate es pi
Suma=a+b, Multi=a+1

Utilización de las variables:
Una vez declarada e iniciada una variable, es el momento de utilizarla. Esta es la parte que presenta un mayor abanico de posibilidades. A continuación tenemos unas cuantas:
Incrementar su valor:         i := i + 1
Controlar un bucle:         for i:=1 to 10 do ...
Determinar una condición: if i<10 then ...
Participar en una expresión: n := (Max - Min) div i       max=100, min=70   i=4


5. Expresiones

Las expresiones son combinaciones de constantes, variables, símbolos de operación, paréntesis y nombres de funciones especiales. Las mismas ideas son utilizadas en notación matemática tradicional; por ejemplo:
a + (b + gravedad) + c = 24.3

a=6,2
b=3,3
c=5

Una expresión consta de operandos y operadores. Según sea el tipo de objetos que manipulan, las expresiones se clasifican en:
Aritméticas,
Relacionales,
Lógicas,
Carácter.

Ejemplo: 

¿Cuál es el resultado de las siguientes expresiones?

3 / 6 * 14                 = 7
(8 + 7) * 3 + 4 * 6          = 69
–4 * (7 + 2) ^ 3 / 4 – 5 = -734
8 + 7 * 3 / 4 * 6          = 39,5
(–2 ^ 3)^2           = 64
33 + 3 * 4 / 5           = 35,4
2 ^ 2 * 3 + 5         =  17
3 + 2 * (18 – 4 ^ 3) =  -89
16 * (6 – 4) * 2+ 6         =  70
50*iva_ec+sueldo_basicoec =  406



6. Operación de asignación

Definición
Son el modo de asignar valores a una variable,
Se representan con el símbolo u operador “igual” ( = ) ;
Se conoce como instrucción o sentencia de asignación cuando se refiere a un lenguaje de programación.


Utilización
El signo igual (=) significa que el computador va a realizar lo que está a la derecha del igual y lo va a almacenar en la variable que se encuentre a la izquierda de este.

Operadores de asignación
Los siguientes operadores sólo pueden modificar variables y matrices de D. Los objetos de datos del núcleo y las constantes no se pueden modificar utilizando los operadores de asignación de D. Los operadores de asignación tiene el mismo significado que en ANSI-C.

=

define el operando de la izquierda igual al valor de la expresión de la derecha 

+=

aumenta el operando de la izquierda por el valor de la expresión de la derecha 

-=

reduce el operando de la izquierda por el valor de la expresión de la derecha 

*=

multiplica el operando de la izquierda por el valor de la expresión de la derecha 

/=

divide el operando de la izquierda por el valor de la expresión de la derecha 

%=

modula el operando de la izquierda por el valor de la expresión de la derecha 

|=

OR a nivel de bits del operando de la izquierda con el valor de la expresión de la derecha 

&=

AND a nivel de bits del operando de la izquierda con el valor de la expresión de la derecha 

^=

XOR a nivel de bits del operando de la izquierda con el valor de la expresión de la derecha 

<<=

desplaza el operando de la izquierda hacia la izquierda el número de bits especificado por el valor de la expresión de la derecha 

>>=

desplaza el operando de la izquierda hacia la derecha el número de bits especificado por el valor de la expresión de la derecha 


Ejemplos de asignación

No

Sentencia

Solución

Tipo de dato

1

Asignar el valor de 5.2 a la variable promedio

Promedio = 5.2

Real

2

Incrementar el valor de j en 10

j = 0

j = j + 10

j = j + 10

Entero

3

Asignar la suma de dos valores a la variable suma

suma = a + b

Entero o real

4

Asignar el producto de tres valores a la variable producto

producto = a*b*c

Entero o real

5

Decrementar el valor de i en 3

i = i – 3

I = i - 3

I = i - 3

Print i -9

Entero

6

La variable y tomará el valor de las variables x y z

y = x + z

Entero o real














7. Acumuladores y Contadores

Acumuladores
Es una variable en la memoria que se incrementará en una unidad, en dos o tres, cada vez que se ejecute el proceso.
La inicialización consiste en poner el valor inicial de la variable que representa al contador. Generalmente se inicializa con el valor 0.
 El contador también se utiliza para llevar la cuenta de determinadas acciones que se pueden solicitar durante la resolución de un problema.

Ejemplo: 
Contador ← 0
pi ← 3.1416
Contador ← contador + constante
Contador = 0 + pi
Imprimir contador   3.1416

Acumuladores
Un acumulador  es una variable en la memoria que tiene como propósito almacenar cantidades variables.
La principal diferencia con el contador es que el incremento o decremento de cada suma o producto es variable en lugar de ser constante como el contador.

Ejemplo: 
Acumulador de suma
Inicialización: Inicializar con el elemento neutro de la operación.
acumulador← 0
acumulador← acumulador + 10
acumulador← acumulador + 50

Acumulador de producto:
Inicialización: Inicializar con el elemento unitario de la operación.
acumulador← 1
acumulador← acumulador * variable


8. Compilación y errores

En un programa podemos encontrarnos con distintos tipos de errores pero a grandes rasgos podemos decir que todos los errores pertenecen a una de las siguientes categorías.

Errores de sintaxis
Los errores de sintaxis son aquellos que se producen cuando el programa no cumple con las reglas de la gramática del lenguaje. Este tipo de errores son más fáciles de detectar.

Ejemplo: 
Escritura incorrecta de palabras reservadasprintf (Ingrese número), #include “stdio.h”
Omisión de signos de puntuación (comillas, punto y coma…)  suma=suma+i;
Puntos y comas después de la cabecera “main()”   
Olvido del carácter llave de apertura o cierre ({,})          if(a>b) { printf(“El mayor es:”, a);
}
Omisión de puntos y coma al final de una sentencia      

Errores lógicos
Errores lógicos: Estos son errores del programador en el diseño del algoritmo y posterior programa. Estos errores son más difíciles de encontrar y aislar.

Ejemplo: 
Celsius = Fahrenheit * temperatura;
Es una sentencia perfectamente legal en C++ pero la ecuación no responde a ningún cálculo válido para obtener el total de grados Celsius.
La fórmula correcta sería:
Fahrenheit = (centígrados * 1.8)+32;

Errores semánticos
Se dan cuando un programa, a pesar de no generar mensajes de error, no produce el resultado esperado. Esto puede deberse, a un algoritmo incorrecto o a la omisión de una sentencia.

Ejemplo: 
a=1, suma=0;
float num;
printf(“ingrese un número”);
scanf(&f, b);
suma= a * b

Errores de ejecución
Aparecen durante la ejecución del programa y su origen puede ser diverso. En ocasiones pueden producirse por un uso incorrecto del programa por parte del usuario

Ejemplo: 
Por ejemplo si el usuario ingresa una cadena cuando se espera un número.
En otras ocasiones pueden deberse a errores de programación
Realizar una división por cero.
división=división / 0       #Error
Intentar leer un archivo y el mismo se encuentra dañado.


9. Operadores: Aritméticos lógicos y de comparación.

Son un símbolo que permiten manipular los valores de las variables y/o de los operadores.

Operadores  matemáticos aritméticos
Existen operadores aritméticos  binarios y unarios.
+ : Suma de dos o más valores o variables.
- : Resta de dos o más valores o variables.
* : Multiplicación de dos o más valores o variables.
/ : División de dos o más valores o variables.
% : Modulo (obtención del residuo de una división) de dos o más valores o variables.
// ; div : devuelve la parte entera de una división 
Los unarios:
++ : Aumenta el valor de una variable en una unidad.   for (i=0;i<=10; i++)
-- : Disminuye el valor de una variable en una unidad.  For(i=10; i>=1;i--)
- : Cambia el signo de una variable, es como multiplicar por -1

Ejemplo: 

Operador Aritmético

Operación

Ejemplo

Resultado

**

Potencia

3**2

9

*

Multiplicación

5.25*3

15.75

/

División

17/4

4.25

+

Suma

58+79

137

-

Resta

25.96 -11.25

14.71

Mod  ; %

Módulo (residuo)

21 mod 2

1

div

División entera

19 div 3

6


Jerarquía de los operadores aritméticos

1

()

2

%

3

^

4

*   /

5

div

6

+    -



Operadores lógicos
Son operadores de unión, también llamados compuertas lógicas, estos operadores pueden unir dos o más pares de valores comparados por medio de los operadores relaciones:

Operador

Ejemplo

Se lee

Jerarquía

!

!a

No

1

&&

a && b

Y

2

# o ||

a||b

O

3


Ejemplo: 

p

Q

p˄q

Conjunción

p˅q

Disyunción

~p

~q

1

1

1

1

0

0

1

0

0

1

0

1

0

1

0

1

1

0

0

0

0

0

1

1



Operadores  relacionales o de comparación
Son operadores que se encargan de unir y comparar dos o más valores
!= : diferente a, distinto, no es igual
== : igual
> : mayor que    
< : menor que
>= : mayor igual que
<= : menor igual que

Estos operadores se usan para comparar valores de variables por pares es decir, no se pueden comparar más de 2 valores al mismo tiempo:
a > b > c //Error
(a > b) && (b > c) //Correcto

Operador

Operación

Ejemplo

Resultado

==

Igual que

“lalo” == “lola”

Falso

< >

Diferente a

‘x’ < > ‘y’

Verdadero

< 

> 

Menor que

 

Mayor que

14 < 25

 

35 > 10

½= =0.5

Verdadero

 

Verdadero

Verdadero

< =

>=

Menor o igual que

 

Mayor o igual que

5 <= 6

 

15 >= 7

18>=18

18>18

Verdadero

 

Verdadero

Verdadero

Falso



Actividades: Unidad 1

Tarea: Algoritmos Cotidianos (08/12/20)

Escribir los pasos necesarios en lenguaje natural, para los siguientes casos:
1. Pasos para cambiar un foco quemado del tumbado o techo de la casa.
- Apagar el interruptor 
- Conseguir un foco nuevo
- Buscar una escalera o silla
- Ubicar la escalera o silla debajo del foco dañado
- Con cuidado subirse en la silla o escalera y retirar el foco quemado
- Colocar el nuevo foco 
- Probarlo encendiendo el interruptor
2. Pasos para subir un closet grande al tercer piso. (no cabe en las puertas de ingreso)
- Analizar el mejor lugar por donde poderlo subir, atravesó de cuerdas o plataformas. 
- Tener un espacio despejado y seguro antes de subirlo 
- Amarrar el closet lo mejor posible 
- Subirlo con cuidado 
3. Pasos para conectarse a las clases sincrónicas del pre, tanto en computadora como en celular, tómese en cuenta que los equipos son totalmente nuevos.
Para computadora: 
- Instalar un navegador compatible con los servicios de google 
- Ingresar a la página web https://meet.google.com 
- En el apartado iniciar sesión, ingresar con las credenciales institucionales proporcionadas por la uteq
- Verificar las clases disponibles, si no encuentra ninguna, revise en su correo institucional, si su maestro ha enviado un link de invitación para una 
- Ingresar a la clase 
Para teléfono móvil: 
- Ingrese en el apartado configuraciones y diríjase a cuentas 
- Seleccione agregar nueva cuenta 
- Ingrese sus credenciales institucionales proporcionadas por la UTEQ
- Configure su perfil de trabajo 
- Una vez configurado, necesita descargar las aplicaciones Meet, Calendario, y Gmail a través de Play Store de su perfil de trabajo 
- Ingrese a Meet e inicie una clase
4. Pasos para cepillarse los dientes.
- Diríjase al baño o busque una fuente de agua y un recipiente 
- Agregue un poco de pasta a su cepillo 
- Con movimientos suaves, empiece a cepillar sus dientes de arriba hacia abajo
- Asegúrese de cepillar todas las zonas, por alrededor de 2 minutos
- Una vez termino, enjuague su boca con agua 
- Para una limpieza mas profunda use hilo dental o a su vez enjuague bucal
5. Descargar contenido de un mensaje de cuenta de correo.
- Ingrese a su navegador y abra su correo electrónico 
- Selección el mail del que quiere descargar el contenido 
- Si solo desea archivos adjuntos, puede descargarlos seleccionando la flecha hacia abajo sobre elemento que desee 
- Si desea el correo electrónico, puede aplastar las teclas Control+P, y dar click en el 
“Guardar como PDF”


Comentarios