Issuu on Google+

INFORMÁTICA 1 532219

Facultad de Ingeniería Departamento de Ciencias de la Información

CLASE 1

Programación de Parciales y Final Contenido Programático

Presentación Profesor Presentación de la Asignatura Objetivo General Objetivos Específicos Evaluación

Breve Historia de los Algoritmos Muhammad Ibn Musa Al-Khwarizmi (siglos VIII-IX) Algorithms for solving algebraic Equations Máquina de Turing - Modelo matemático abstracto que formaliza el concepto de Algoritmo A Brain Teaser A fox, a chicken, a sack of grain an you are on an one side of a river. You have a boat to cross the river, but you must cross the river with only one of them at a time. If you leave the fox with the chicken, she will eat it. If you leave the chicken with the grain, she will eat it. How can you cross the river with the fox, the chicken and athe sack of the grain? Se tienen dos jarras A y B de capacidades 3 y 7 litros, respectivamente, sobre las cuales se pueden efectuar las siguientes acciones: Llenar totalmente cualquiera de las dos jarras, vaciar una de las dos jarras en la otra hasta que la jarra origen esté vacía o hasta que la jarra destino esté llena y vaciar el contenido de una jarra (esté llena o no) en un sifón. Cómo se puede dejar en la jarra A un solo litro, utilizando solamente las anteriores codiciones.

Definición Algorithm is a systematic method of solving a certain kind of problem Secuencia de instrucciones o pasos que es llevada a cabo de forma mecánica y sistemática por un actor que se desenvuelve en un ambiente o entorno dado, para resolver un problema determinado en un tiempo finito. Secuencia lógica de pasos que nos llevan paso a paso y sin ambigüedades a la solución de una tarea, proyecto o ejercicio. DATOS

PROCESAMIENTO

Valores no relacionados No tomar decisiones No sacar conclusiones

INFORMACIÓN Valores relacionados Permite tomar decisiones Permite sacar conclusiones

Análisis del Problema Definir el problema con total precisión (“La abstracción es la capacidad mental superior que tiene todo ser humano para poder deducir la esencia de un concepto o situación determinada” . Ana Iris Rodríguez) Especificar los datos de partida necesarios para la solución del mismo (Especificaciones de Entrada) Especificar la información que debe proporcionarse en la solución del problema (Especificaciones de Salida)

ANÁLISIS DEL PROBLEMA DEFINICIÓN DEL PROBLEMA (abstracción)

ESPECIFICACIONES DE ENTRADA

ESPECIFICACIONES DE SALIDA


INFORMÁTICA 1 532219

Facultad de Ingeniería Departamento de Ciencias de la Información

CLASE 1

Propiedades Su lógica de construcción debe ser independiente de cualquier lenguaje de programación Simplicidad Definido: sin ambigüedades Preciso: orden específico de sentencias Finito: principio y fin Efectivo: funciona y funciona de acuerdo a los requerimientos Representación de los datos Diagramas de flujo ( ejemplo )

Pseudocódigo (ejemplo) Inicio algoritmo Nombre /* Comentarios de bloque Comentarios de bloque */ // Comentarios de línea Variables IMPRIMA (“titulo de solicitud”) LEA (variable) Sentencias de asignacion IMPRIMA (“titulos " + variables) Fin algoritmo Nombre

Eficiencia: capacidad para lograr un fin, empleando los mejores medios posibles Eficacia: capacidad de lograr el efecto que se desea o se espera, sin que priven para ello los recursos o los medios empleados Efectividad: cuantificación del logro de la meta LOGICA PROCESAL

LOGICA DIRECCIONAL

EFICIENCIA

EFICACIA

INSUMOS

PRODUCTO PROCESO

Cantidad Calidad Espacio Tiempo

RESULTADO Expectativas Máximo de efectos deseados y mínimo de efectos indeseados

http://www.monografias.com/trabajos11/veref/veref.shtml. La verdad sobre eficiencia, eficacia y efectividad. Parte de una imagen del trabajo de González M. Juan carlos. Febrero 2002


Facultad de Ingeniería Departamento de Ciencias de la Información

INFORMÁTICA 1 532219 CLASE 2

Ejercicios Desarrollar cada uno de los siguientes ejemplos utilizando los procedimientos de desarrollo de algoritmos, hasta ahora, vistos en clase 1. 2. Calcular el área de un círculo 3. Determinar si un numero n es par o impar 4. Determinar el valor del perímetro de un rectángulo 5. Calcular el índice de masa corporal de una persona (IMC = peso(kg) / altura2(m2)

Ejemplo Calcular el área de un círculo Inicio 1. Conocer qué es el área (geométrica) El área es la magnitud geométrica que mide la extensión de un cuerpo en dos dimensiones 2. Conocer cómo se determinar el área geométrica de un círculo AreaCirculo = Radio2 3. Conocer el valor de P = 3.141592

Radio

4. Cononcer el concepto de radio El segmento que une el centro de la circunferencia con cualquier punto de ella 5. Determinar que, para calcular el área de un círculo, es necesario conocer el valor del radio 6. Aplicar la fórmula AreaCirculo = Final

Radio2


Facultad de Ingeniería Departamento de Ciencias de la Información

Elementos de Construcción de un Algoritmo Inicio del Algoritmo Terminación del algoritmo Comentarios Declaración de variables Asignación de valores Funciones de impresión

Inicio y terminación de un algoritmo Inicio del algoritmo INICIO ALGORITMO Nombre

INFORMÁTICA 1 532219 CLASE 2

Comentarios Documentación interna del algoritmo Párrafo o bloque — Más de una línea Inicia con /* Finaliza con */ Línea Inicia con // finaliza al terminar una línea Documentar variables INICIO ALGORITMO Suma_enteros

CUERPO DEL ALGORITMO

Final del algoritmo FIN ALGORITMO Nombre FIN ALGORITMO Suma_enteros

Tipos de Datos Numéricos Enteros (entero) Flotantes (flotante) Dobles (doble) Caracter (caracter) Booleano o lógico (booleano) Cadena (cadena)

De acuerdoa la convenci[on del curso, los nombres de los tipos de datos se deben escribir en minúsculas

Variables Son espacios de memoria reservados para guardar datos que pueden variar durante la aplicación de un algoritmo. El tipo de la variable depende del tipo de dato que pueda guardar. Declaración de una variable Tipo_de_variable nombre_de_la_variable = valor_inicial_del_dato; El tipo de variable depende del tipo de dato que va a guardar la variable. Respecto al nombre de las variables: Por convención del curso, los nombres de las variables se deben escribir en letras minúsculas Sin restricción en su longitud Deben ser auto-documentadas Solo pueden contener caracteres alfabéticos (a..z A..Z), numéricos (0..9), caracter subrayado (_) No pueden incluir en su nombre caracteres especiales (! “ # $ % & / ( ) = ? ¡ „ ¿ {[}]…) No pueden incluir palabras reservadas para el lenguaje de programación en el que se están programado los algoritmos Sensibles a mayúsculas y minúsculas


INFORMÁTICA 1 532219

Facultad de Ingeniería Departamento de Ciencias de la Información

CLASE 2

Constantes Son variables que después de habérseles asignado una valor, éste no cambia durante el proceso de aplicación del algoritmo. Expresiones Conjunto de valores, variables, constantes y operadores relacionados matemáticamente o lógicamente, asignados a una variable.

Salida Entrega resultados al usuario mediante dispositivos estándar de salida: Pantalla Ejemplo: Ejemplo: Impresora IMPRIMA (“Sarah Elisa”); Edad = 2; IMPRIMA (“Sarah Elisa tiene ”+edad+” años”);

IMPRIMA (“Texto”); IMPRIMA (variable); IMPRIMA (“Texto”+variable);

Sarah Elisa

Sarah Elisa tiene 2 años

Símbolo +: CONCATENACIÓN Símbolo ; : SEPARADOR DE INSTRUCCIONES Entrada Asignaciones Desde archivos Desde el teclado u otros dispositivos externos

Ejemplo: IMPRIMA (“Digite su nombre : “); LEA (el_nombre); IMPRIMA (“Su nombre es “+el_nombre); Digite su nombre: Fabian Su nombre es Fabian

Dato digitado desde el teclado

LEA (variable);

Asignación Operación que permite determinar y otorgar, a una variable, el valor de una expresión. Variable = expresión; El símbolo de asignación es

=


INFORMÁTICA 1 532219

Facultad de Ingeniería Departamento de Ciencias de la Información

Estructura General de un Algoritmo Inicio del algoritmo Los comentarios pueden ser insertados en cualquier parte del algoritmo

Declaración de variables La asignación de valores hace parte de las instancias del cuerpo del algoritmo La aplicación de funciones de entrada y salida hace parte de las instancias del cuerpo del algoritmo

Cuerpo del algoritmo

La aplicación de funciones especiales hace parte de las instancias del cuerpo del algoritmo

Final del algoritmo Operadores Son símbolos que establecen una relación aritmética, lógica o relacional entre datos. OPERADORES RELACIONALES

OPERADORES ARITMÉTICOS Nombre

Nombre

Símbolo

Sintaxis

>

a>b

>=

a>=b

<

a<b

Menor o igual que

<=

a<=b

Igual a

==

a==b

Diferente de

!=

a!=b

Símbolo

Sintaxis

Suma

+

a+b

Mayor que

Resta

-

a-b

Mayor o igual que

Multiplicación

*

a*b

Menor que

División

/

a/b

Módulo

%

a%b

OPERADORES LÓGICOS Nombre

Símbolo

Sintaxis

JERARQUÍA DE OPERADORES

Exp1&&Exp2

1er lugar

()

||

Exp1||Exp2

2do lugar

+ - (unarios)

!

!Exp

Y (AND)

&&

O (OR) NO (NOT)

3er

*/%

4to

+ - (binarios)

5to

< <= > >=

6to

== !=

7to

&&

8vo

!

9no

||

10o

=


INFORMÁTICA 1 532219

Facultad de Ingeniería Departamento de Ciencias de la Información ESTRUCTURA SECUENCIAL Indica la ejecución consecutiva de acciones. Esta composición no es conmutativa. Ejemplo: INICIO ALGORITMO Suma int dato1=0; int dato2=0; int dato3=0; int suma=0; IMPRIMA (“Digite el primer número”); LEA (dato1); IMPRIMA (“Digite el segundo número”); LEA (dato2); IMPRIMA (“Digite el tercer número”); LEA (dato3); suma = dato1+ dato2 + dato3; IMPRIMA (“La suma de “+dato1+” , “+dato2+” , “+dato3+” es “+suma); FIN ALGORITMO Suma

PRUEBA DE ESCRITORIO Es una herramienta de verificación del algoritmo mediante la asignación de valores a las especificaciones de entrada y el seguimiento de su comportamiento, bajo las condiciones propuestas por las estructuras que lo componen. Ejemplo: INICIO ALGORITMO Suma // inicialización de variables int dato1=0; int dato2=0; int suma=0; // Captura de datos IMPRIMA (“Digite el primer número”); LEA (dato1); IMPRIMA (“Digite el segundo número”); LEA (dato2); // calculos suma = dato1+ dato2 ; // entrega de resultados IMPRIMA (“La suma de “+dato1+” y “+dato2+” es “+suma); FIN ALGORITMO Suma

Prueba de Escritorio INICIO ALGORITMO Suma dato1

dato2

suma

0

0

0

Salida

Digite el primer número

3

0

0 Digite el segundo número

3

4

0

3

4

7 La suma de 3 y 4 es 7

FIN ALGORITMO Suma

Ejercicios 1. Desarrollar una algoritmo que calcule la edad cumplida de una persona, dados el nombre completo y el año de la fecha de nacimiento e imprima estos datos. 2. Desarrollar una algoritmo que calcule el valor, en centímetros, de una medida dada en metros e imprimirla 3. Capturar los valores de tres números y calcular su media e imprimirla. 4. Desarrollar un algoritmo que capture valores de temperaturas en grados Fahrenheit y los convierta a grados Centígrados. La formula de conversión en la siguiente: F 32 C 1 .8 5. Escriba un algoritmo que calcule la altura desde la que cae un objeto que tarda t segundos en llegar al suelo. El tiempo lo introduce el usuario por teclado. La formula a utilizar:

a

1

2

2

gt , siendo g

9 . 81 m / s

2


Informática 1 - parte 1