Title: Introducci
1Introducción a la programación
2Introducción a la programación
- Los programas son escritos por programadores, es
decir, seres humanos que le dicen al computador,
paso a paso, exáctamente qué es lo que quieren
que haga. - La programación tiene un poco de ciencia y poco
de arte, de ahí que varios programadores pueden
hacer la misma tarea de diferentes formas. - A pesar de ello, hay un número claramente
identificable de pasos que siempre están
involucrados en el proceso de desarrollo de
programas.
3Ciclo de vida del software
- Pasos involucrados en el desarrollo de programas
- Definir el problema
- Planear la solución
- Construir la solución
- Codificar
- Depurar
- Probar
- Mantener la solución
4Definir el problema
- Identificar claramente
- Qué es lo que se quiere hacer?
- Cuáles son los objetivos a alcanzar?
- A esta actividad también se le conoce como
análisis
5Planear la solución
- Aquí ya se sabe lo que se quiere hacer, pero hay
que planear cómo hacerlo. - Se requiere un plan detallado, con todas las
especificaciones que guiarán los pasos
siguientes. - También se le llama Etapa de Diseño, dividida en
- Diseño Global
- Diseño Detallado
- El producto final es una descripción detallada de
los pasos a llevar a cabo este conjunto de pasos
se conoce como algoritmo.
6Construir la solución
- Aquí se convierte el plan en un programa
computacional, con los siguientes pasos - Codificar traducir los algoritmos a un lenguaje
de programación - Depurar consiste en localizar y remover los
errores que pueda contener el programa
codificado. - Probar Se pone a prueba el programa, para ver si
realmente hace lo que se quiere. Es decir, se
comparan los resultados que éste arroja con los
que debiera arrojar.
7Mantener la solución
- Como todo producto, un programa (o sistema) debe
ser mantenido, adaptándolo a cambios del medio
ambiente o agregándole nuevas capacidades que
antes no tenía. - Este conjunto de pasos permite producir programas
de manera más o menos eficiente. Puede requerirse
volver a alguno de los pasos anteriores en caso
de errores o cambios de diseño.
8Algoritmos
- Es un conjunto finito de pasos (instrucciones)
bien definidos, dispuestos en una secuencia tal
que lleve a la solución de un problema
específico. - Algunos ejemplos de algoritmos son recetas de
cocina, etiquetas de envases, direcciones de
amigos, mapas de ruta, etc.
9Algoritmos
- Ejemplo Instrucciones de uso del champú en la
etiqueta. - Humedezca el cabello
- Aplique el champú
- Frote hasta obtener abundante espuma
- Enjuague
- Repita
10Algoritmos
- El nivel en que presentamos un algoritmo depende
de la audiencia. - Las indicaciones de un algoritmo incluyen sentido
común. Una interpretación literal del ejemplo
anterior haría repetir el lavado de pelo
continuamente hasta que se acabe la botella. - Lo que en realidad quiere expresar es que REPITA
si es necesario.
11- Los computadores interpretan sus instrucciones
muy literalmente. Por esto se debe indicar los
pasos en forma detallada, aún cuando un paso sea
muy obvio. - Un algoritmo es una idea abstracta, independiente
de cualquier máquina que pueda ejecutarlo. - Un programa de computador es una implementación
de un algoritmo en un lenguaje de programación
particular.
12Carcaterísticas de un algoritmo
- Debe realizar el proceso requerido
- Ser completo, es decir, entregar los resultados
en todas las circunstancias - Ser preciso, no debe tener resultados ambiguos
- Correcto
- La solución debe entregarse en un número finito
de pasos - Simple y claro.
13- Algoritmo del lavado de pelo
- Humedezca el cabello
- Aplique el champú
- Frote hasta obtener espuma
- Enjuague
- Si es necesario, Ir al paso 2. Sino Ir al paso 6
- Termine.
14- Problema
- Tenemos datos de niños recién nacidos, entre
ellos sexo, peso, estatura y día de nacimiento.
Se pide determinar el total de varones con un
peso superior a 3900 kg indicar el total de
damas con una estatura mayor que 50 cm.
15- Solución
- Tomar tarjeta
- Es sexo masculino?
- Si ir a 3
- No Ir a 6
- Es peso gt 3900 gr.?
- Si ir a 4
- No ir a 8
- Contabilizar hombre
- Ir a 8
- Es estatura gt 50 cm?
- Si Ir a 7
- No Ir a 8
- Contabilizar mujer
- Hay más fichas?
- Si Ir a 1
- No Ir a 9
- Resultados
- Fin.
16Algoritmos
- Ejercicio 1
- Transformar una cantidad en pesos chilenos en su
equivalente en dólares.
17- Ejercicio 2
- La densidad del hombre en Kg. por litro es 0.97.
El volumen de la persona se calcula con la
fórmula - Volumen peso/0.97
- Haga un algoritmo que lea el peso de una persona
y calcule su volumen.
18Algoritmos
- Ejemplo Calcular las raíces de una ecuación de
segundo grado ax2bxc0 - Dados los valores de a,b y c gt encuentre x1 y
x2 - Para resolver este problema se debe seguir los
siguientes pasos
19Algoritmos
- Inicio
- Leer los coeficientes a, b y c.
- Si a0 la ecuación lineal, entonces se debe
calcular y escribir un aviso. - Sino, es cuadrática por lo tanto se debe calcular
las raíces con los siguientes pasos - Calcular el discriminante (b2 - 4ac)
20Algoritmos
- Si el discriminante es negativo entonces las
raíces son imaginarias, por lo tanto se debe
escribir un mensaje indicándolo. - Sino, si el discriminante es 0, entonces existe
una única solución real, la cual se debe
escribir. - Sino (discriminante positivo), las raíces son
reales, entonces calcular x1 y x2 según la
fórmula. - Escribir el valor de x1 y x2
- Terminar.
21Diagramas de flujo
- Representación Gráfica de la lógica de un
programa. - Esta definido por un conjunto de símbolos, los
cuales están conectados mediante flechas que
indican el flujo de los datos.
22(No Transcript)
23- Con estos elementos se puede identificar
- Qué pasos se llevan a cabo (Símbolos)
- En qué orden se ejecutan (Líneas)
24- La construcción de los diagramas se realiza
utilizando los elementos antes descrito y
dependerá de lo que se quiera implementar, la
manera de dibujar dichos elementos, es decir se
puede construir - secuencias
- selección
- iteración
25SECUENCIA
26Lee un valor desde el teclado
Escribir Ingrese un entero
Escribe a la pantalla
Leer(num)
num ? num1
ENTRADA/SALIDA
27Selector
valor n
valor 1
valor 2
acción n
acción 1
acción 2
SELECCION
28Iteración
29- Condiciones
- a) SI condición ENTONCES
- acción
- FIN_SI
- SI condición ENTONCES
- acción1
- SINO
- acción2
- FIN_SI
30FALSO
VERDADERO
edadgt18
SI edadgt18 ENTONCES ESCRIBIR(Mayor) SINO
ESCRIBIR(Menor) FIN_SI
Menor
Mayor
31- REPITA-HASTA
- HACER
- acción1
- acción2
- ...
- acciónN
- MIENTRSA condición
32b) MIENTRAS-HACER MIENTRAS condición
HACER acción1 acción2 ... acciónN FIN_MIEN
TRAS
33Diagramas de N-S
- Diagramas de Nassi - Schneiderman
- Compuesto no por líneas si no por cajones uno
sobre el otro, que indican la secuencia de
acciones a realizar. - Al igual que los diagramas de flujo, es posible
representar 3 acciones - secuencia
- selección
- iteración
34Secuencia
35SELECCION
36ITERACION
37Pseudolenguaje
38Pseudolenguaje
- Para escribir algoritmos de computador es
conveniente usar pseudolenguaje o pseudocódigo,
el cual posee sentencias precisas, tales como - LEER
- ESCRIBIR
- SI-ENTONCES-SINO
- MIENTRAS-HACER
- REPITA-HASTA
- etc.
39Pseudolenguaje
- 1.- Estructura de un algoritmo en pseudolenguaje
- ALGORITMO nombre_algoritmo
- DECLARO
- CONSTANTE nombre_constvalor
- VARIABLE nombre_valor tipo_de_dato
- INICIO
- ltcuerpo del algoritmogt
- FIN
40Pseudolenguaje
- 2.- Acciones en cuerpo del algoritmo
- De entrada
- LEER (variable)
- LEER (var1, var2, var3)
Lee desde el teclado
Escribe en la pantalla
- De salida
- ESCRIBIR(variable)
- ESCRIBIR(var1,var2,var3)
- ESCRIBIR(El resultado es, var)
- De asignación asocia un valor a una variable
- variable ? valor
41Pseudolenguaje
- 3.- Condiciones
- a) SI condición ENTONCES
- acción
- FIN_SI
- b) SI condición ENTONCES
- acción1
- SINO
- acción2
- FIN_SI
- c) SI condición ENTONCES
- INICIO
- Acción1
- Acción2
- ...
- AcciónN
- FIN
- SINO
- INICIO
- Acción1
- Acción2
- ...
- AcciónN
- FIN
- FIN_SI
42Pseudolenguaje
4.- Iteraciones
- HACER-MIENTRAS
- HACER
- acción1
- acción2
- ...
- acciónN
- MIENTRAS condición
- b) MIENTRAS-HACER
- MIENTRAS condición HACER
- acción1
- acción2
- ...
- acciónN
- FIN_MIENTRAS
43Pseudolenguaje
Uso del SI-ENTONCES. Ejemplo 1 Hacer un
algoritmo en pseudocódigo que indique si una
persona es mayor o menor de edad.
- INICIO
- ESCRIBIR(Ingrese su edad)
- LEER(edad)
- SI edadgt18 ENTONCES
- ESCRIBIR(Es mayor de edad)
- SINO
- ESCRIBIR(Es menor de edad)
- FIN_SI
- FIN
44Ejemplo 2 Hacer un algoritmo que lea un número e
indique si es positivo o negativo
- INICIO
- ESCRIBIR(Ingrese un número)
- LEER(num)
- SI numgt0 ENTOCES
- ESCRIBIR(Es positivo)
- SINO
- SI numlt0 ENTONCES
- ESCRIBIR(Es negativo)
- SINO
- ESCRIBIR(Es el neutro)
- FIN_SI
- FIN_SI
- FIN
45Ejemplo 3 cálculo de la ecuación de 2do. grado
- INICIO
- LEER (a,b,c)
- SI a0 ENTONCES
- ESCRIBIR( Ecuación lineal, el resultado es,
-c/b) - SINO
- discriminante ?(b2 - 4ac).
- SI discriminante lt 0 ENTONCES
- ESCRIBIR( Las raíces son imaginarias)
- SINO
- SI discriminante 0 ENTONCES
- ESCRIBIR( existe única raíz -b/(2a))
- SINO
- x1 ? (-b SQRT(discriminante))/(2
a)) - x2 ? (-b SQRT(discriminante))/(2a))
- ESCRIBIR(las raices son x1, x2)
- FIN_SI
- FIN_SI
- FIN_SI
- FIN
46Pseudolenguaje
- Uso de REPITA-HASTA
- Ejemplo 1 Haga un algoritmo que lea
repetitivamente números enteros y termine cuando
se ingrese el 0. - INICIO
- HACER
- LEER(num)
- MIENTRAS (numltgt0)
- FIN
47Pseudolenguaje
- Uso de un contador
- Ejemplo 2 Haga una algoritmo que lea 10 números
enteros y escriba en pantalla los positivos. - INICIO
- i?0
- HACER
- i?i1
- LEER(num)
- SI numgt0 ENTONCES
- ESCRIBIR (num)
- FIN_SI
- MIENTRAS (ilt10)
- FIN
48- Ejemplo 3 Haga un algoritmo que lea números
enteros e indique cuántos positivos se
ingresaron. El programa debe terminar cuando se
haya ingresado 10 números positivos o cuando se
haya ingresado el 0. - INICIO
- cont ? 0
- HACER
- LEER(a)
- SI agt0 ENTONCES
- cont ? cont1
- FIN_SI
- MIENTRAS (a ltgt 0 AND cont ltgt 10)
- FIN
El y lógico en pseudolenguaje es AND
49Tipos de Datos
- Aritméticos
- ENTERO conjunto de números enteros
- REAL conjunto de números reales
- Lógicos
- BOOLEANO puede tener dos valores
Verdadero o Falso - Texto
- CARACTER Letras A-Z, a-z
- dígito 0-9
- signo,-,_, etc.
- STRING Secuencia de caracteres
50ALGORITMO define_edad DECLARO edad
ENTERO INICIO ESCRIBIR(Ingrese su
edad) LEER(edad) SI edadgt18
ENTONCES ESCRIBIR(Es mayor de
edad) SINO ESCRIBIR(Es menor de
edad) FIN_SI FIN
51- Ejemplo 2 Cálculo del perímetro de una
circunferencia - ALGORITMO perimetro_cincunf
- DECLARO
- CONSTANTE pi3.1415
- VARIABLE radio,perim real
- INICIO
- ESCRIBIR(ingrese el radio de la
circunferencia) - LEER(radio)
- perim ? 2 pi radio
- ESCRIBIR(El perímetro es, perim)
- FIN
-
52Ejemplo 3 Haga un algoritmo en pseudocódigo que
lea nombre, edad y sexo de una persona. Si es
hombre mayor de 45 años recibe un bono de 10000
pesos, si es mujer mayor de 35 recibe un bono de
20000.
- ALGORITMO bono
- DECLARO VARIABLES
- nombre STRING
- edad ENTERO
- sexo CARACTER
- bono REAL
53- INICIO
- bono ? 0
- LEER(nombre, edad, sexo)
- SI edadgt45 AND sexoM ENTONCES
- bono?10000
- SINO
- SI edadgt35 AND sexoF ENTONCES
- bono ?20000
- FIN_SI
- FIN_SI
- ESCRIBIR(nombre, recibe , bono)
- FIN
54Operadores
Símbolo Significado Operandos Resultado
Adición enteros,reales Entero, real
- Sustracción Enteros, reales Entero, real
multiplicación Enteros, reales Entero, real
/ división Enteros, reales Cuociente real
DIV división enteros Cuociente de la división entera
MOD división enteros Resto de la división entera
55Operadores
Relacionales
Símbolo Significado Operandos Resultado
Igualdad aritmético lógico
ltgt Desigualdad aritmético lógico
lt Menor que aritmético lógico
lt Menor o igual que aritmético lógico
gt Mayor que aritmético lógico
gt Mayor o igual que aritmético lógico
56Operadores
Lógicos ( o booleanos)
Símbolo Significado Operandos Resultado
AND y lógico lógicos lógico
OR o lógico lógicos lógico
NOT negación lógicos lógico
57Tablas de verdad
V AND V V
V AND F F
F AND V F
F AND F F
V OR V V
V OR F V
F OR V V
F OR F F
NOT V F
NOT F V
58Precedencia
NOT 1 (mayor)
/ div mod AND 2
- OR 3
ltgt gt gt lt lt 4
- Ejemplo
- 4 58 Primero se desarrolla el producto
(58), porque tiene mayor precedencia que . - a/b/c Se interpreta como (a/b)/c. Cuando los
operadores tienen la misma precedencia se
desarrolla de izquierda a derecha.
59- Ejemplo Un algoritmo tiene las siguientes
declaraciones - DECLARO
- a, b, c ENTERO
- x,y REAL
- s STRING
- letra CARACTER
- sigo BOOLEANO
- Diga se las siguientes instrucciones son
correctas o falsas - 1.- c ? xy FALSA
- 2.- c ? a/b FALSA
- 3.- sigo ? FALSO FALSA
- 4.- letra ?3 VERDADERA
- 5.- a ? x MOD b FALSA
60Ejercicos
- Evaluar las siguientes expresiones aritméticas
- 2 3 4 5
- 15 DIV 4 4
- 15 DIV ( 4 4 )
- 8 MOD 3 DIV 2
- 2 3 4 - 5
- 80 / 5 / 3
- 4 / 2 3
- -x y / z (-x) (y / z)
- (8 7 gt 15) AND (4 lt 5) OR (3 lt 2 4)
- x lt y OR y gt x
61Ejercicios
- Se tienen 3 variables booleanas a, b y c
- a ?Falso
- b ?Verdadero
- c ?Verdadero
- Determine el valor de b para las siguientes
asignaciones - b ?(altgtc) OR (agtc)
- b ?a OR NOT b OR c
- b ?(altb) AND (c OR a)
62Programación
- Programación Modular
- Existe complejidad en los problemas que se
manejan comúnmente, por lo tanto se usa la
sentencia Dividir para Vencer, es decir
dividir el problemas en subproblemas mas simples
de enfrentar, para hacer esto existe la
programación modular. - Exige uso de abstracción.
63Programación
64EJEMPLO
65(No Transcript)