Vous êtes sur la page 1sur 57

PROBLEMAS QUE

INVOLUCREN CÁLCULOS
MATEMÁTICOS Y
FÓRMULAS
PENSAMIENTO
ALGORÍTMICO PARA
MODELAR PROBLEMAS
¿QUÉ ES UN ALGORITMO?

“Formalmente definimos un
algoritmo como un conjunto de
pasos, procedimientos o acciones
que nos permiten alcanzar un
resultado o resolver un
problema”
ETAPAS DE DESARROLLO Y DISEÑO DEL
PROGRAMA

Problema

Análisis Desarrollar Prueba y


Codificar la
Profundo del una solución corrección de
solución
Problema (algoritmo) la solución

Etapa 1 Etapa 2 Etapa 3 Etapa 4


CARACTERÍSTICAS DE LOS ALGORITMOS

 Preciso
 Los pasos a seguir en el algoritmo deben ser precisados
claramente.

 Determinado
 El algoritmo, dado un conjunto de datos idénticos de entrada,
siempre debe arrojar los mismos resultados

 Finito
 El algoritmo, independientemente de la complejidad del
mismo, siempre debe ser de longitud finita.
MÓDULOS O SECCIONES DE UN ALGORITMO

Algoritmo

Módulo I Módulo II Módulo III


Datos de Procesamiento Impresión de
Entrada de Datos Resultados
DIAGRAMAS DE FLUJO (DF)

 Es la representación gráfica de un algoritmo.

 Muestra gráficamente los pasos o procesos a seguir


para alcanzar la solución de un problema.

 Si el DF está completo y correcto, el paso del mismo


a un lenguaje de programación es relativamente
simple y directo.
SÍMBOLOS PARA CONSTRUCCIÓN DE
DIAGRAMAS DE FLUJO

 Elipse . Marcar el inic io y f in del DF

 Paralelogramo . Introducir datos de entr ada (expresa


lectura)

 Rectángulo . Representar proc esos . En su interior se


expresan asignaciones, operaciones aritméticas, etc.

 Salida d e Datos. Impresión de un resultado en pantalla


o impresora. (expresa escritura)

 F lec has . utilizadas para expresar la direc c ión del f lujo


del diagrama

 Proceso predefinido – indica un proceso predefinido


como llamar a una función
SÍMBOLOS PARA CONSTRUCCIÓN DE
DIAGRAMAS DE FLUJO

No  Rombo. Símbolo utilizado para


representar una decisión o
condición a evaluar.
Si  En su interior se almacena una
condición, y dependiendo del
resultado de la evaluación de la
misma se sigue por una de las
Si No ramas alternas.
 Se usa en la estructura selectiva Si-
entonces y en las estructuras
repetir y mientras
SÍMBOLOS PARA CONSTRUCCIÓN DE
DIAGRAMAS DE FLUJO

 Conector. Símbolo utilizado para expresar


conexión dentro de una misma página

 Conector fuera de página. Símbolo para


expresar conexión entre páginas diferentes
SÍMBOLOS PARA CONSTRUCCIÓN DE
DIAGRAMAS DE FLUJO

 Decisión múltiple. En su
interior se almacena un
selector ,y dependiendo
del valor que tome ira por
alguna de las ramas
alternas.

 Ciclos. También usado en


estructuras repetitivas.
REGLAS PARA LA CONSTRUCCIÓN DE DFS

1. Todo DF deber tener un inicio y un fin


2. Las líneas utilizadas para la dirección del flujo del
diagrama deben ser rectas, verticales y
horizontales.
3. Todas las líneas utilizadas para indicar la
dirección del flujo del diagrama deben estar
conectadas.
4. El DF debe ser construido de arriba hacia abajo
(top-down) y de izquierda a derecha (left-right)
REGLAS … (CONT.)

5. La notación utilizada en el diagrama de flujo debe


ser independiente del lenguaje de programación.
6. Poner comentarios que expresen o ayuden a
entender lo que hicimos.
7. Utilizar los conectores adecuados cuando se
requiera usar más de un hoja para su construcción
y numerar las páginas.
8. NO puede llegar MAS DE UNA línea a un Símbolo.
EJEMPLO DE DIAGRAMA DE FLUJO

Inicio

Num1
Num2

Suma = num1 + num2

si
no
suma>=20
“La suma es “La suma es
mayor o menor que
igual a 20” 20”

Fin
EJERCICIOS

 Determinar el procedimiento paso a paso (algoritmo) para hacer las


siguientes tareas.

1. Cambiar una llanta


2. Hacer una llamada telefónica
3. Describir un algoritmo para intercambiar los contenidos de dos tazas
de líquido. Suponga que dispone de una tercera taza para conser var
el contenido de cualquier taza de manera temporal. Cada taza
deberá enjuagarse antes de que cualquier líquido nuevo se vier ta en
ella.
4. Escribe un algoritmo para calcular la resistencia de los siguientes
resistores conectados en serie: n resistores, cada uno con una
resistencia de 56 ohmios, m resistores, cada uno con la resistencia
de 33 ohmios, y p resistores, cada uno con una resistencia de 15
ohmios. Nota que la resistencia total de los resistores conectados en
serie es la suma de todas las resistencias individuales.
5. Escribe un algoritmo para calcular el número menor de billetes en
dólares necesarios para pagar una factura de una cantidad TOTAL.
Por ej. Si TOTAL fuera $97, los billetes consistirían en uno de $50,
dos de $20, uno de $5 y dos de $1 . (suponer que solo existen billetes
de $100, $50, $20, $10, $5, y $1 .)
PRECEDENCIA DE
OPERADORES
OPERADORES ARITMÉTICOS

OPERADOR SIGNIFICADO EJEMPLO PRIORIDAD


^ Potencia 4^3 Más Alta 1
* Multiplicación 8.34 * 7 2

/ División 15 / 4 2

MOD Módulo o Residuo 17 MOD 3 = 2 2

DIV ó \ División Entera 17 DIV 3 = 5 2

+ Suma 125.6 + 234 3

- resta 65.4 - 32.3 Más Baja 3


Cuando ya no se pueden aplicar más prioridades, se resuelve de izquierda a derecha.
EXPRESIONES LÓGICAS O BOOLEANAS

 Están constituidas por:


 Números
 constantes o variables y
 operadores lógicos o relacionales.
 El valor que pueden tomar estas expresiones es el de
Verdadero o Falso.
 Se utilizan frecuentemente en las estructuras
selectivas (condicionales) y en las repetitivas (ciclos)
OPERADORES RELACIONALES

Operador Operación Ejemplo Resultado

Igual que ‘hola’ = ‘ lola’ FALSO


=
Diferente a ‘a’ <> ‘b’ VERDADERO
<>
Menor que 7 < 15 VERDADERO
<
Mayor que 22>11 VERDADERO
>
Menor o Igual que 15 <= 22 VERDADERO
<=
Mayor o Igual que 35 >= 20 VERDADERO
>=
NOTA

 Cuando se utilizan los operadores de relación con


operandos lógicos, falso es menor que verdadero.

 Ej. FALSO > VERDADERO


respuesta: FALSO
OPERADORES LÓGICOS

Operador Lógico Jerarquía Expresión Lógica Significado


(mayor) No P NO P
NO No es cierto que P
Es FALSO que P
P y Q P Y Q
Y P sin embargo Q
P o Q Po Q
O o P o Q o ambas
(menor) Mínimo P o Q
TABLA DE VERDAD DE OPERADORES
LÓGICOS

P Q ~P ~Q P o Q P y Q
VERDADERO VERDADERO FALSO FALSO VERDADERO VERDADERO

VERDADERO FALSO FALSO VERDADERO VERDADERO FALSO

FALSO VERDADERO VERDADERO FALSO VERDADERO FALSO

FALSO FALSO VERDADERO VERDADERO FALSO FALSO


JERARQUÍA DE TODOS LOS OPERADORES

Operadores Jerarquía
() (mayor)
^
* , / , div, mod
+,-
=, <> ,< , > , <= , >=
NO
Y
O (menor)
EJERCICIOS

 NO (15 >= 7^2) O (43-8*2 div 4 <> 3*2 div 2)

 (15 >= 7 *3 Y 8 > 3 Y 15 > 6) O NO (7*3 < 5 + 12 * 2


div 3 ^ 2)

 NO ((7*3 div 2*4) > (15/2*6>=15*2/17=15))

 NO((3^2*56 >= (45+3)/2^2) Y (NO(16/4mod3<345)))


NOTA 2

No se puede realizar la comparación entre un


valor lógico y un numérico utilizando un
operador relacional.
TRADUCCIÓN DE FÓRMULAS MATEMÁTICAS A
LINEALES

 (((b^y – x)^(1/2))/(2*x))/(y*x^2+x)

 (cos(a+x)/((sin(a-
x)/(a*x^2))+x^(1/2)))–y^(1/2)

 (80/4)+9*4-12/(2+1)

 ((e^3+2)/(44^12-65))/(sin(32+
21^(1/2))
C o n c e pto s
f u n d a m e n t al e s
para la

TIPOS DE DATOS c o n s t r uc c ió n
d e a l g o r i t mo s ,
d i a g r am a s d e
flujo y
programas
TIPOS DE DATOS

Los datos a pueden clasificarse en:


Tipo de Dato Descripción Ejemplo
Numéricos Enteros y reales 128 1528 -714 -1500 89
Caracteres simples y Carácter simple
Cadenas de caracteres “a” “B” “$” “8” “#” “+”
Aunque este tipo de datos
puede almacenar números Cadena de caracteres
Alfanuméricos
además de caracteres, no “abcdef” “Carlos Lopez”
pueden ser usados para
“$9#%7” “Rosario”
realizar operaciones
aritméticas “272-724-05-85”

Lógicos Se encuentran los Los datos que pueden tomar


Booleanos. son los valores: verdadero
(true) o falso (false)
VISUAL BASIC: TIPOS DE DATOS
IDENTIFICADORES

 Los datos a procesar por una computadora, deben


almacenarse en casillas o celdas de memoria para
su posterior utilización ( cairó, 2005 )
 Identificador entonces es el nombre que se le da a
las casillas de memoria.
 Los identificadores se definen de acuerdo a ciertas
reglas.
VARIABLES

 Una variable contiene un valor que puede cambiar a


lo largo de la ejecución de un programa
 Toda variable tiene los siguientes atributos.
 Un Nombre,  (identificador)
 Un Tipo de Dato  Determina qué clase de valores puede
almacenar la variable (si es Entero, Real,
Carácter, etc)
 y un Valor.

 El nombre de una variable debe iniciar por una letra,


puede tener hasta 255 caracteres y debe ser único.
 Los nombres de las variables no pueden ser palabras
reservadas del lenguaje
DECLARACIÓN DE VARIABLES (VB)

Antes de utilizar una variable es necesario declarar su


tipo utilizando el comando DIM (o una de las palabras
Public, Private o Static)

 Ejemplo (en lenguaje de programación Visual Basic):


 Dim suma As Integer
 Suma=0
‘variable llamada suma de tipo entero y con
valor cero
 Dim nombre As String
 Nombre = “Juan” ‘Variable de tipo carácter
llamada nombre y almacena el valor “Juan”
CONSTANTE

 Es un dato cuyo valor permanece inalterable durante


la ejecución del programa.
 Las constantes también deben ser declaradas al
inicio del código con su palabra reservada o
instrucción.
 Algunas constantes vienen predefinidas en el
lenguaje de programación.
 Ejemplo:
 Public Const IVA As Single = 0.15
 CONST PI = 3.14159265
BLOQUE DE ASIGNACIÓN

 Se utiliza para asignar valores o expresiones a una variable.

 En el diagrama de flujo se representa con un Rectángulo

 Va r i a b l e  e x p r e s i ó n o v a l o r Var  a + b

 Donde: expresión puede ser aritmética o lógica, o una


constante o variable.
EJEMPLO

 Suponiendo que las 1. I  0


variables: 2. I  I + 1
 I, ACUM y J son de tipo 3. ACUM  0
entero, 4. J  5^2 div 3
 REA y SUM de tipo real 5. CAR  ‘a’
 BAND de tipo Booleano 6. ACUM  J div I
 Considerar que hay que 7. REA  ACUM/3
realizar las siguientes
asignaciones: 8. BAND  (8>5)y(15<2^3)
9. SUM  ACUM*5/J^2
10. I  I*3
11. REA  REA/5
12. BAND  BAND o (I=J)
13. I  REA
14. CAR  J
# I ACUM J REA SUM BAND CAR
1

10

11

12

13

14
Entradas,
Salidas,

DIAGRAMAS DE FLUJO Procesos,


Estructuras de
Decisión e
Iterativas
BLOQUE DE LECTURA DE DATOS (INPUT)

 Este bloque permite recoger


(leer) un valor introducido por el
usuario, que se guardará en una
variable de cualquier tipo de
dato (booleano, numérico o
alfanumérico) con el fin de hacer
uso de ella en el diagrama de
flujo. N1

Leer N1;

calif,
matricula

Leer calif, matricula;


BLOQUE DE ASIGNACIÓN

 Este bloque se utiliza para evaluar


expresiones matemáticas desde
asignación de valores a variables hasta
ecuaciones complejas.
 Este bloque admite variables cuyo tipo
de dato pueda ser Booleano, numérico
o alfanumérico.
CtoTotal  0

CtoTotal= 0

Total  n1^2 + n2 * 3 + 5 / 2

Total = n1^2+n2*3+5/2
BLOQUE DE SALIDA DE DATOS (OUTPUT)

 Permite mostrar en
pantalla o en impresora
suma
el resultado de variables
o de una cadena de
Escribir suma
caracteres o una
combinación de ambas.
“La suma es
mayor que 20”

Escribir “La suma es mayor que 20”

“La suma es” +


suma

Escribir “La suma es” + suma


EJEMPLO:

 Construya un diagrama de flujo tal que dado como dato una


frase, la imprima en pantalla.

Pseudocódico
Inicio
Escribir “Introduce una frase”;
Leer frase;
Escribir frase;
fin
ESTRUCTURAS DE CONTROL SELECTIVAS

Utilizadas cuando en el desarrollo de la


solución de un problema debemos tomar una
decisión, para establecer un proceso o señalar
un camino alternativo a seguir.
Las estructuras de control selectivas pueden
clasificarse de la sig. forma:
 SI ENTONCES (Estructura selectiva simple)
 SI ENTONCES / SINO (Estructura selectiva doble)
 SI MULTIPLE (Estructura selectiva múltiple)
SI…ENTONCES

 Donde:
 CONDICIÓN expresa la
NO condición(es) a evaluar
Exp.
Lógica  OPERACIÓN expresa la
operación(es) que se van a
SI realizar si la condición resulta
verdadera
OPERACIONES
SI…ENTONCES…SINO…
 Si condición entonces
 Hacer operación 1;
 Sino
SI NO
Exp.  Hacer operación 2;
Lógica
 Fin Si

OPERACIÓN 1 OPERACIÓN 2
ESTRUCTURAS DE CONTROL ITERATIVAS

 Son estructuras de código en las cuales una expresión lógica


determina la ejecución reiterada de un bloque de código.

 A las instrucciones o sentencias que controlan la iteración de un


bloque de código se les conoce con el nombre de “bucle”

 Existen el:
 Bucle While (Pseint : Mientras)
 Bucle For (Pseint: Para)
 Bucle do…While (Pseint: Repetir …. Hasta Que)
 Bucle Loop (usado en Raptor para cualquiera de los casos anteriores)

 Dependiendo del tipo de problema a resolver se deberá de usar


alguna de estas formas.
ESTRUCTURAS DE CONTROL ITERATIVAS EN
RAPTOR

 En RAPTOR para manejar ciclos el bucle


utilizado es el Loop.
 Un bucle puede ser de dos tipos.
 Bucle de comparación al inicio y
 bucle de comparación al final
BUCLE DE COMPARACIÓN AL INICIO.

Bucle de comparación al inicio


 Es aquel en el cual la expresión lógica se resuelve al
inicio del ciclo, de tal forma que el código dentro de
este puede ejecutarse una , varias o ninguna vez.
 En este tipo de bucle el código dentro del ciclo se
ejecutará siempre y cuando la expresión lógica se
cumpla
EJEMPLO

 While expresiónLógica
 Uso de contador
 Instrucciones a ejecutar si la expresión lógica es True
 End While

Pseudocódigo:
i  0
While i < 5
i  i + 1
Write “El valor de i
es:”, i
End While
BUCLE DE COMPARACIÓN AL FINAL.

Bucle de comparación al final


 Es aquél en el cual la expresión lógica se resuelve al
final del proceso de tal forma que el código interno
puede ejecutarse al menos una vez, y luego varias
siempre y cuando la expresión lógica se cumpla.
EJEMPLO DE LOOP (CICLIO)

 Do
 Instrucciones a ejecutar si la expresión
lógica se cumple
 Uso de contador
 While expresiónLógica

Pseudocódigo:
cont  1
Do
Write “El valor de cont
es:”,cont
cont  cont + 1
While cont <= 5
ERRORES COMUNES

1 2 3

[1] Count never gets modified and is always equal to 1.


[2] Count is reset to 1 on every execution of the loop and therefore never becomes greater than 100.
[3] The Decision expression will never evaluate to "yes"
6 POSIBLES VARIACIONES DE CICLOS
CONTROLADOS POR CONTADORES

1 2 3
6 POSIBLES VARIACIONES DE CICLOS
CONTROLADOS POR CONTADORES

4 5 6
INPUT LOOPS

Preguntar al usuario
por adelantado,
cuantos valores
introducirá. Luego,
ese valor puede ser
usado para
implementar un
ciclo basado en
contador.

Que el usuario introduzca un


valor especial que signifique
que el usuario ha terminado
de introducir datos.
"RUNNING SUM" LOOPS

 Otro uso de los ciclos es para cuando se


desea ir acumulando una suma de valores

 Para crear un “Acumulador” (running sum)


se deben agregar 2 sentencias más al ciclo
o loop:

1. Inicializar una variable antes de iniciar el


ciclo asignándole el valor de Cero.
 Ejemplo: suma  0

2. Un bloque de asignación , dentro del loop,


que acumule o sume cada valor individual a
la variable del acumulador o running sum.
 Ejemplo: suma  suma + valor
TIPS

 Necesitas hacer algo o no hacerlo?


 Selección
 Necesitas hacer una cosa u otra pero no ambas?
 Selección
 Necesitas hacer una de varias cosas diferentes?
 Selección en cascada (selección múltiple)
 Necesitas hacer lo mismo más de una vez?
 Loop (ciclos)
 Sabes cuantas veces necesitas repetir algo?
 Loop basado en contador (ciclo basado en contador)
Bibliografía

CAIRÓ, OSVALDO. METODOLOGÍA DE LA


PROGRAMACIÓN, ALGORITMOS, DIAGRAMAS DE
FLUJO Y PROGRAMAS. 3ª ED. ALFAOMEGA .
MEXICO 2005

RAMÍREZ, FELIPE. INTRODUCCIÓN A LA


PROGRAMACIÓN, ALGORITMOS Y SU
IMPLEMENTACIÓN EN VB.NET, C#, JAVA Y C++. 2ª
ED. ALFAOMEGA , MEXICO 2007

DR. WAYNE BROWN. PROGRAMMING CONTROL


STRUCTURES

Vous aimerez peut-être aussi