Title: Presentaci
1Programación de Computadores Lenguaje Pascal
Sesión 1 Algoritmos ProfEridan Otto
2Programación de Computadores Lenguaje Pascal
Sesión 1 Algoritmos
- TEMARIO
- El Ramo Programación de Computadores
- Análisis y resolución de problemas
- Pseudocódigo
- Entrada y salida de datos
- Asignación
- Estructuras de control Secuencia
3Programación de Computadores Lenguaje Pascal
El Ramo Programación de Computadores
- Es un ramo básico para la mayoría de las carreras
de la Universidad - Se dicta simultáneamente a distintos cursos, éste
es el Paralelo 8. - Consta de 4 horas de cátedra 2 horas de ayudantía
- Tiene sesiones prácticas de Laboratorio de 2
horas semanales - Evaluación
- 3 certámenes (30 cada uno)
- Laboratorios (10 total)
- Para que estos porcentajes tengan validez deben
tener sobre 55 como promedio en los certámenes y
también en los laboratorios. - Fechas Importantes
-
4Programación de Computadores Lenguaje Pascal
El Ramo Programación de Computadores
- Información General
- BibliografíaK. Jensen, N. Wirth. Pascal User
Manual and ReportISO Pascal Standard. Spriger
Verlag, 4 edition, 1991. - Sitio WEB del ramohttp//www.inf.utfsm.cl/ccastr
o/IWI-131 - Sito WEB con las claseshttp//angelfire.lycos.com
/linux/eotto/ - Correo del profesor eotto_at_inf.utfsm.cl
- Clases Lu 1-2, C203 Mi 1-2 , C364
- Horario de consultas por confirmar.
- Horario ayudantíapor confirmar.
- Horario de laboratorios por confirmar.
-
5Programación de Computadores Lenguaje Pascal
El Ramo Programación de Computadores
- Temas de la Asignatura
- 1. Algoritmos análisis y resolución de
problemas, pseudocódigo. - 2. Estructura de un programa PASCAL
encabezado, declaraciones, cuerpo del programa. - 3. Declaraciones identificadores, definición
de constantes, declaración de variables,
comentarios. - 4. Tipos de datos simples tipos estándares
INTEGER, REAL, BOOLEAN, CHAR. Compatibilidad de
tipos, reglas de precedencia de los operadores,
tipos definidos por el usuario, tipo enumerado,
tipo sub-rango. - 5. Sentencias básicas asignación, entrada de
datos, salida de datos. - 6. Estructuras de control secuencia, acción
simple, acciones compuestas selección,
sentencias IF THEN ELSE, IF THEN, CASE OF
repetición, sentencias WHILE, REPEAT, FOR. -
6Programación de Computadores Lenguaje Pascal
El Ramo Programación de Computadores
- Temas de la Asignatura
- 7. Subprogramas diseño y estructura de
programas, PROCEDURE, FUNCTION, parámetros por
valor y por referencia, variables locales y
globales. - 8. Tipos de datos estructurados ARRAY,
algoritmos de búsqueda, algoritmos de
ordenamiento, STRING. - 9. Tipos de datos estructurados RECORD.
- 10. Archivos archivos de caracteres (texto),
archivos enteros/reales, archivos de registros. -
7Programación de Computadores Lenguaje Pascal
Algoritmos Análisis y resolución de problemas
Qué es la programación?
- Es el proceso de planificar una secuencia de
instrucciones que ha de seguir una computadora. - Para escribir dicha secuencia debemos seguir
cierto procedimiento, que se compone de dos
fases - Fase de resolución del problema
- Fase de implementación
- Un problema se define como una situación en la
cual un individuo desea hacer algo, pero
desconoce el curso de la acción necesaria para
lograr lo que quiere (Newell y Simon, 1972). - Una situación en la cual un individuo actúa con
el propósito de alcanzar una meta, utilizando
para ello alguna estrategia en particular (Chi y
Glaser, 1983).
8Programación de Computadores Lenguaje Pascal
Algoritmos Análisis y resolución de problemas
- Fase de Resolución del problema
- Análisis Comprender el problema, establecer su
ámbito y las herramientas necesarias para
resolverlo. - Solución general (Algoritmo) Desarrollar una
secuencia lógica de pasos que resuelva el
problema. - Prueba Seguir los pasos para ver si la solución
resuelve verdaderamente el problema. - Fase de Implementación
- Solución específica (Programa) Traducir el
algoritmo a un lenguaje de programación. - Prueba Hacer que la computadora siga las
instrucciones. Comprobar los resultados y hacer
las correcciones necesarias. - Uso Utilizar el programa.
9Programación de Computadores Lenguaje Pascal
Algoritmos Análisis y resolución de problemas
Resolución del problema
Implementación
Análisis
Solución general (Algoritmo)
Solución específica (Programa)
Prueba
Prueba
Uso
10Programación de Computadores Lenguaje Pascal
Algoritmos Análisis y resolución de problemas
Qué es un algoritmo?
Un algoritmo esencialmentes es una secuencia de
pasos permitida y estructurada que permite
realizar operaciones con datos, transformándolos
(Ej, ordenándolos, haciendo cálculos repetitivos,
obteniendo estadísticas, seleccionando, etc) para
llegar al resultado.
Algoritmo
Resolución
Problema
Corresponde al proceso de construcción de un
algoritmo para alcanzar la meta propuesta
Corresponde a una serie de operaciones a realizar
sobre los datos, lograda por medio de una
adecuada combinación de instrucciones
11Programación de Computadores Lenguaje Pascal
Algoritmos Análisis y resolución de problemas
Qué es un algoritmo?
- Es una sucesión de acciones que hay que
realizar, completamente prefijada, y su correcta
ejecución lleva a una solución segura del
problema como, por ejemplo, realizar una raíz
cuadrada o hacer una torta.
Es importante diferenciar entre el diseño mismo
del algoritmo, y su ejecución ya sea realizada
por una máquina o por un ser humano.
Entrada
Salida (resultado)
Ejecución
Datos
Datos Manipulados
Algoritmo
Corresponde a una serie de operaciones realizadas
sobre los datos, entregando otros datos como
salida. El algoritmo dirige el proceso de
ejecución.
Problema
12Programación de Computadores Lenguaje Pascal
Algoritmos Análisis y resolución de problemas
Características de una algoritmo
- Debe ser preciso, indicando un orden de
ejecución. - Debe ser definido, es decir, debe dar el mismo
resultado todas la veces que se ejecute con los
mismos parámetros. - Debe ser finito, es decir, debe terminar en algún
momento según un criterio de parada.
Ejemplo Encender un Automóvil
1. Poner la llave. 2. Asegurarse que la marcha
está neutra. 3. Presionar el pedal del
acelerador. 4. Girar la llave hasta la posición
arranque. 5. Si el motor arranca antes de 6
seg, dejar la llave en la posición
encendido. 6. Si el motor no arranca antes de 6
seg, volver al paso 3 (como máximo 5 veces). 7.
Si el auto no parte, llevarlo al taller.
13Programación de Computadores Lenguaje Pascal
AlgoritmosPseudocódigo
Pseudocódigo, para poder indicar, por ejemplo, a
un computador que realice alguna acción sobre
los datos, se debe tener una especie de lenguaje
conocido previamente por el programador y por la
máquina. En este curso se verá PASCAL, pero
antes, se debe entender que un algoritmo no
depende del lenguaje mismo. El pseudocódigo es un
lenguaje o una convención en español, que permite
expresar lo que queremos que se haga para llegar
a la meta. En esta clase y en la próxima se
realizarán y solucionarán problemas, es decir, se
diseñarán Algoritmos usando pseudocódigo. Diagram
as de flujo, permiten expresar el algoritmo por
medio de ciertas gráficas que ayudan a comprender
mejor su mecánica.
14Programación de Computadores Lenguaje Pascal
AlgoritmosPseudocódigo entrada y salida de datos
Definición, dato Es una estructura que se
almacena en la memoria del computador y es
representada Por un tipo de datos. En adelante se
hablará de Variables.
Definición, tipo dedato para comenzar, antes de
programar en PASCAL, usaremos sólo los siguientes
tipos para variables - ENTERO, ej -1, 0 ,1,
1000, -253 - REAL, ej -1.001, 1E-10, 2.35 -
CARÁCTER, ej a,A,1 - BOOLEANO
VERDADERO,FALSO
- Definición, variable es un dato que a lo largo
de la ejecución del algoritmo puede ir cambiando
de valores, siempre manteniendo su tipo.
Ejemplos - Contador ENTERO ( variable de tipo
ENTERO ) - raizCuadrada REAL ( variable de tipo
REAL) - letraMinuscula CARACTER ( variable de tipo
CARACTER) - ValorVerdad BOOLEANO( variable de tipo
lógico)
15Programación de Computadores Lenguaje Pascal
AlgoritmosPseudocódigo entrada y salida de datos
Cómo comunicarnos con el computador?
Pantalla
Teclado
Es el dispositivo estándar de salida de datos
Es el dispositivo estándar de entrada de datos
Es
Instrucción en Pseudocódigo escribir(texto,variab
le1,variable2,....) NOTAlas variables de
tipo BOOLEANA no se pueden desplegar directamente
por la pantalla
Instrucción en Pseudocódigo ingresar(texto,variab
le1,variable2,....) NOTAlas variables de tipo
BOOLEANA no se pueden ingresar directamente por
teclado
16Programación de Computadores Lenguaje Pascal
AlgoritmosPseudocódigo entrada y salida de datos
Ejemplo Realizar un algoritmo que solicite
ingresar por pantalla el valor aproximado de pi,
un número entero que corresponde al radio de un
círculo y despliegue por pantalla, del área del
círculo.
Valor de Pi
salida
Algoritmo
Entrada
Valor radio
Valor del área
ALGORITMO area VARIABLES pi REAL
radioENTERO INICIO ingresar(por favor
ingrese valor de pi,pi) ingresar(por favor
ingrese valor del radio,radio)
escribir(Area del circulo,piradioradio) FIN.
Pantalla
por favor ingrese valor de pi
3.141516
por favor ingrese valor del radio
2
Area del circulo 12.566
Entrada
salida
Teclado
17Programación de Computadores Lenguaje Pascal
AlgoritmosAsignación
Definición, asignaciónes la operación de dar
valor a una variable o modificarla. Se va a
representarla con el símbolo lt-- una flecha
apuntando a la izquierda. En pseudocódigo, el
formato de una asignación es nombre de la
variable ??expresión algunos ejemplos A ? 100
significa que a la variable A se le ha asignado
el valor 100, ahora A vale 100. suma ? 510
asigna el valor 15 a la variable suma, a través
de una asignación aritmética. x ? z v
asigna el valor de la suma de las variables z y v
a la variable x. El resultado depende de los
valores que se asignen PREVIAMENTE a z y a v
Toda asignación es destructiva. Esto quiere decir
que el valor que tuviera antes la variable se
pierde y se reemplaza por el nuevo valor
asignado, así cuando se ejecuta esta secuencia B
? 25B ? 100B ? 77el valor final que toma B
será 77 pues los valores 25 y 100 han sido
destruidos. (o reemplazados en una parte de la
memoria principal del computador)
18Programación de Computadores Lenguaje Pascal
Algoritmos, pseudocódigoAsignación
Cuando una variable aparece a ambos lados del
símbolo de asignación como C ? C 1 Significa
incremento del valor que c ya tiene más uno.
Siempre inicializar las variables al comenzar el
programa con cero u otro valor (dependiendo del
problema). En una asignación, se puen hacer
muchas más cosas que una suma, dependiendo del
tipo de datos, se pueden combinar operadores,
formando expresiones. Para ENTERO, algunos
operadores son ,- ,, DIV,RESTO Para REAL,
algunos operadores son ,- ,,
/,REDONDEAR(),TRUNCAR() Para CARACTER, algunos
operadores son CODIGO() ,CAR() Para BOOLEANO,
algunos operadores son AND,OR,NOT Para agrupar
operaciones, se usan (,) Ejemplo C ? A(B(C
DIV D))
19Programación de Computadores Lenguaje Pascal
Algoritmos, pseudocódigoAsignación
Recuerdo no se pueden asignar valores a una
variable de un tipo diferente al suyo.Entonces,
qué valor aparece por pantalla en el siguiente
algoritmo, si se digita en teclado
20? ALGORITMO incrementa VARIABLES
entrada,salida ENTERO INICIO ingresar(por
favor ingrese valor inicial ,entrada)
salida?---1 entrada?----2entrada
salida?---salida entrada escribir(numero
impar,salida) FIN.
20Programación de Computadores Lenguaje Pascal
Algoritmos, pseudocódigo. Estructura de control
Secuencia Diagrama de flujo para el ejemplo
anterior
Inicio
La ejecución un paso tras otro de un algoritmo
sigue una cierta pauta o estructura, la primera a
estudiar es la secuencial. Esto quiere decir que
se ejecutan las instrucciones o sentencias en
orden, una tras otra, empezando por la primera
del algoritmo, acabando por la última. Un
conjunto de instrucciones se puede agrupar en
bloques, con un comienzo y un final. La
estructura de control secuencia, significa que
estos bloques se van ejecutando uno tras
otro. Este enfoque se llama refinamiento
sucesivo o enfoque estructurado de
programación. Esto es, ir descomponiendo el
algoritmo de acciones generales hasta llegar al
nivel de instrucciones o sentencias.
20
Ingresar entrada
salida?---1
entrada?-2entrada
salida?salida entrada
escribir salida
gt41 gt gt
Fin
21Programación de Computadores Lenguaje Pascal
- Algoritmos, pseudocódigo.
- Estructura de control Secuencia
- Ej Desarrolle un algoritmo que entregue la edad
de dos hermanos,sabiendo que el padre tiene 40
años, la diferencia de edad con el primer hijo es
de 35 años, y que el segundo tiene el doble de la
edad de su hermano. - Una primera aproximación al problema podría ser
- Calcular la edad del hermano menor
- Calcular la edad del hermano mayor
- Escribir en pantalla los resultados
- A este nivel, no se ha llegado aún al
pseudocódigo, solo se definen grandes tareas a
realizar, que a su vez pueden dividirse en tareas
secuenciales más simples - Asignar a edad hermano menor edad del padre
menos la diferencia - Asignar a edad del hermano mayor 2(edad
hermano menor) - Escribir en pantalla edad hermano menor
- Escribir en pantalla edad hermano mayor
- En este segundo refinamiento se aprecian ya
algunas opreaciones más precisas, y cercanas a la
solución. - Finalmente se formaliza el algoritmo
22Programación de Computadores Lenguaje Pascal
Algoritmos, pseudocódigo. Estructura de control
Secuencia
ALGORITMO edades VARIABLES edadHermanoMay,
edadHermanoMen ENTERO diferencia
ENTERO INICIO Diferencia ?--35 edadHermanoMen
?--- 40 - diferencia edadHermanoMay?----2
edadHermanoMen escribir(Edad hermano menor
, edadHermanoMen ) escribir(Edad hermano
mayor , edadHermanoMay ) FIN.
Asignación
Secuencia de inicialización
Estructura de Control Secuencial
Secuencia de cálculos
Secuencia de salida
23Fin Clase 1