Вы находитесь на странице: 1из 38

Algoritmos, continuación

Metodología para la solución de problemas


por medio de computadora
Esta fase está dada por el enunciado del problema, el cual requiere una definición clara y
precisa. Es importante que se conozca lo que se desea que realice la computadora;
mientras esto no se conozca del todo no tiene mucho caso continuar con la siguiente etapa.

• Análisis del Problema

Una vez que se ha comprendido lo que se desea de la computadora, es necesario definir:


• Los datos de entrada.
• Cual es la información que se desea producir (salida)
• Los métodos y fórmulas que se necesitan para procesar los datos.

Una recomendación muy práctica es el de colocarse en el lugar de la computadora y


analizar qué es lo que se necesita que se ordene y en qué secuencia para producir los
resultados esperados
Datos
• El dato es una representación simbólica (numérica, alfabética,
algorítmica, entre otros.), un atributo o característica de una entidad.
Los datos describen hechos empíricos, sucesos y entidades.
• Los datos pueden consistir en números, palabras, valores fijos,
datos estadísticos o proposiciones descriptivas.
• Los datos se consideran que son la base de la información relevante
que se utiliza en la toma decisiones, reducción de la incertidumbre o
la realización de cálculos.
• En programación, un dato es la expresión general que describe
las características de las entidades sobre las cuales opera un
algoritmo.
Tipos de datos
Todos los datos tienen un tipo asociado con ellos. Un dato puede ser
un simple carácter, tal como ‘b’, un valor entero tal como 35. El tipo
de dato determina la naturaleza del conjunto de valores que puede
tomar una variable.
Datos Simples
Datos Numéricos: Permiten representar valores escalares de forma
numérica, esto incluye a los números enteros y los reales. Este tipo de datos
permiten realizar operaciones aritméticas comunes.

Datos lógicos: Son aquellos que solo pueden tener dos valores (cierto o
falso) ya que representan el resultado de una comparación entre otros
datos (numéricos o alfanuméricos).

Datos alfanuméricos (string): Es una secuencia de caracteres alfanuméricos


que permiten representar valores identificables de forma descriptiva, esto
incluye nombres de personas, direcciones, etc. Es posible representar
números como alfanuméricos, pero estos pierden su propiedad
matemática, es decir no es posible hacer operaciones con ellos. Este tipo
de datos se representan encerrados entre comillas.
Datos estructurados
Los arreglos son un tipo de datos estructurados, muy utilizados cuando se
trabaja co mnatrices

Los apuntadores (punteros), son variables puntero que te ayudan a llevar el


control, por ejemplo en una lista enlazada. Ejemplo. Struct (*ptr).x == 3;
Información
Es un conjunto organizado de datos procesados, que constituyen un mensaje que
cambia el estado de conocimiento del sujeto o sistema que recibe dicho mensaje.
Ejemplo:
Guayaquil (dato)
Ciudad de Guayaquil (información)
Banco de Guayaquil
Calle Guayaquil

Un dato por sí mismo no constituye información, es el procesamiento de los datos lo que nos
proporciona información

Ejemplo de dato: Paraguay


Ejemplo de información:
• Calle Paraguay
• País Paraguay
• Edificio Paraguay
Constantes y Variables
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

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

Utilización de 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 ...
Chequear una condición: if i<10 then ...
Participar en una expresión: n := (Max - Min) div i
Diferencias entre constantes y variables

• Las constantes ya reciben un valor inicial en su declaración.


• Las variables primero se declaran, se inician y luego se usan.
• Las constantes, una vez declaradas mantienen su valor durante toda
la ejecución del programa, en cambio, las variables pueden cambiar
su valor tantas veces como deseen.
• Además de cambiar su valor, las variables también pueden cambiar
de tamaño en tiempo de ejecución (punteros).
Ejemplo de Constantes y variables
const
Min = 0;
Max = 100;
iva = 12;
var
i : integer;
begin
i := Min;
while i < Max do
begin
writeln(i);
i := i + iva
end
end.
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 + 3) + c

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.
Ejemplos de expresiones
¿Cuál es el resultado de las siguientes expresiones?

a) 3 + 6 * 14 = 87
b) 8+7*3+4*6 = 53
c) –4 * 7 + 2 ^ 3 / 4 – 5 = -31
d) 8+7*3+4*6 = 53
e) –2 ^ 3 = -8
f) (33 + 3 * 4) / 5 =9
g) 2^2*3 =12
h) 3 + 2 * (18 – 4 ^ 2) =7
i) 16 * 6 – 3 * 2 = 90
Operaciones 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.
Formas de asignación:

Donde: Expresión o valor puede ser aritmética o lógica, o una


constante o variable.
Ejemplo incorrecto Ejemplo Correcto
2x + 3 = y y = 2* x + 3
2*x + 3 = y y es el nombre de la variable
y = 2x + 3 2* x + 3 es la expresión
pi=3.14
x=pi/12
m= m+1
suma=suma+2
Reglas de asignación
1. Una variable en el lado derecho de una sentencia de asignación debe tener un
valor antes de que la sentencia de asignación se ejecute. Hasta que un
programa le da un valor a una variable, esa variable no tiene valor.

Ejemplos:
Si x no tiene un valor antes de ejecutar y = x + 1, se producirá un error lógico.
x = 2;
y = x + 1;

Si a, b y c no tienen un valor antes de ejecutar z = a + b + c, se producirá un error lógico.


a = 3 , b = 4, c = 8;
z = a + b + c;

m=0
m= m+1
m= m+1
m= m+5
Print (m)
2. En la izquierda de una sentencia de asignación solo pueden existir variables o una variable que
buscamos su resultado:

Ejemplo incorrecto Ejemplo Correcto


Sueldo + comisión = Nsueldo Nsueldo = Sueldo + comisión
2*x+4=y y = 2* x + 4

Ejemplo en pseudocódigo

3. Al lado derecho del igual puede haber una constante,


una variable o una expresión. Por consiguiente es válido
lo siguiente:
Sueldo=400
Aumento = Sueldo * 0.20
Nsueldo = Sueldo + Aumento
4. La asignación es una operación cambiante. Esto significa
que si la variable tenía asignado un valor anteriormente,
ésta cambia, conservando ahora el nuevo valor.

5. Estas variables pueden tomar únicamente valores que


correspondan al mismo tipo. Es decir, una variable
declarada como variable tipo carácter solo puede tomar
valores de tipo carácter.
Ejercicio 1: ¿Cuál es el valor final de a, b y c?.

var entero a, b, c;
a = 10, b = 15, c = 20; a b c
a=a+b 25
b=b+8 23
c=c+a 45
a=a+5 30
b=b+3 26
c=c+2 47
a=a–b 4
b=a–b -22
c=a–b 4-(-22)=26
imprimir ( a, b, c) 4 -22 26
Ejercicio 2:

var entero a, b, c;
a = 5, b = 10, c = 15; a b c
a=a+b 15
b = b -2 8
c=b+c 23
a=b-5 3
b = b *2 16
c=c*3 69
a=a–b -13
b=c–b 53
c=a+b 40
imprimir ( a, b, c) -13 53 40
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 = 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 baribal producto producto = a*b*c Entero o real
5 Decrementar le valor de i en 3 i=i-3 Entero
6 La variable y tomara el valor de las variables x y z y=x+z Entero o real
Otros ejemplos
• Sumar dos números cualesquiera a la variable m
m=a+b
• Disminuir un valor de 100 al producto de dos números, en la variable p
p=a*b-100
• Aumentar a la variable x, el cuadrado de dos números y almacenarlo en y
y=x*(a+b)^2
• Asignar en z, la semisuma de dos números
z=(a+b)/2
• Aumentar el triple de la suma, del cuadrado de dos números en la variable valor
Valor=3*(a+b)^2
• Disminuir en 20, al producto de dos números que están dividiendo a la suma de
otros dos números, y almacenar el resultado en la variable total.
total=((a*b)-20)/(x+y)
Contadores y acumuladores
Contador
• 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.
Ejemplos
Contador  0
pi 3.1416
Contador ← contador + constante
Contador = 0 + pi
Imprimir contador 3.1416
Ejemplo de contador
Cont=0 multi=1
cont=cont +1
multi= multi +1
cont=cont +1
cont=cont +1 multi=multi +1
cont=cont +1 multi=multi + 1
cont=cont +1
cont=cont +1 print (multi)
cont=cont +1
cont=cont +1
cont=cont +1
print (cont)
Acumulador
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.
Acumulador de suma:
Inicialización: Inicializar con el elemento neutro de la operación.
acumulador← 0
acumulador← acumulador + variable

Acumulador de producto:
Inicialización: Inicializar con el elemento unitario de la operación.
acumulador← 1
acumulador← acumulador * variable
Ejemplo de acumulador
suma=0 multi=1
suma=suma + 10 multi = multi * 10
suma=suma + 20 multi = multi * 20
suma=suma + 100 multi = multi * 100
suma =suma + 1000 multi = multi *1/2
suma = suma + 250 Print (multi)
print (suma)
Errores en la compilación de programas

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
Tipos de errores
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.

Los errores de sintaxis típicos son:


• Escritura incorrecta de palabras reservadas
• Omisión de signos de puntuación (comillas, punto y coma…)
• Puntos y comas después de la cabecera “main()”
• Olvido del carácter llave de apertura o cierre ({,})
• Omisión de puntos y coma al final de una sentencia
• Olvido de la doble barra inclinada antes de un comentario
• Olvido de las dobles comillas al cerrar una cadena.
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, Es una sentencia perfectamente legal en C++
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; 98.6


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.
a=1, suma=0;
float num;
printf(“ingrese un número”);
Scanf (&f, num);

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

Por ejemplo si el usuario ingresa una cadena cuando se espera un número.

En otras ocasiones pueden deberse a errores de programación


• Si una función intenta acceder a la quinta posición de una lista de 3 elementos
6 20 4

• Realizar una división por cero.


división=división / 0 #Error

• Intentar leer un archivo y el mismo se encuentra dañado.


Operadores

Son un símbolo que permiten manipular los valores de las


variables y/o de los operadores.
Operadores matemáticos o aritméticos
Permiten realizar cualquier operación aritmética, (suma, resta, multiplicación,
división, potenciación).

Existen operadores aritméticos binarios y unarios.


Los binarios son:
+ : 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.
Los unarios:
++ : Aumenta el valor de una variable en una unidad.
-- : Disminuye el valor de una variable en una unidad.
- : Cambia el signo de una variable, es como multiplicar por -1
Ejemplos

Operador Aritmético Operación Ejemplo Resultado


Jerarquía de los
** Potencia 3**2 9 operadores aritméticos
* Multiplicación 5.25*3 15.75 1 {},[],()
/ División 17/4 4.25 2 %
+ Suma 58+79 137 3 ^
- Resta 25.96 -11.25 14.71 4 * /
Mod Módulo (residuo) 21 mod 2 1 5 div
div División entera 19/3 6 6 + -
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 (<>)


> : 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 14 < 25 Verdadero
> Mayor que 35 > 10 Verdadero
½= =0.5
<= Menor o igual que 5 <= 6 Verdadero
>= Mayor o igual que 15 >= 7 Verdadero
18>=18 Verdadero
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 AND (Y) todas las condiciones deben ser verdaderas para que se
ejecute una acción.

|| : Operador OR (O) de todas las condiciones solo una debe ser verdadera y con
ello hace una determinada acción.

! : Operador NOT (NO) se niega la afirmación para cambiar su valor, es decir cambia
de verdadero a falso y de falso a verdadero.

Operador Ejemplo Se lee Jerarquía


! !a No 1
& A&&b Y 2
# o || A||b O 3
p˄q p˅q
p q ~p ~q
Conjunción Disyunción

V V V V F F

V F F V F V

F V F V V F

F F F F V V
Ejercicios
Dados los siguientes ejercicios, resolver cada caso aplicando las reglas
correspondientes:

a=5, b=16 x=6, b=7.8


~(15 > = 7 ** 2) o (43 – 8 * 2 div 4 < > 3 * 2 div 2)
(a ** 2) > (b * 2) (x * 5 + b** 3 / 4) < = (x** 3 div b)
25 > 32 474.552 216 49 16 6
Falso 30 118.638 27 15>=49 4 3
148.638 <= 27 Falso 39 <> 3
Falso Verdadero o Verdadero
Verdadero

Вам также может понравиться