apuntes logica comp

Download Apuntes Logica Comp

Post on 18-Jul-2015

24 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

Clase 1: Generalidades de la programacin de computadoras. 01/07/08Objetivos de la clase: Al final de la clase los alumnos y alumnas sern capaces de: Comprender y aplicar los conceptos generales de la programacin Aplicar el concepto de procesamiento de datos. Identificar la diferencia entre lenguajes de alto y bajo nivel. Definir y aplicar los conceptos de compiladores e intrpretes Estructura de la clase: Conceptos bsicos de programacin. Los lenguajes de programacin. Conceptos bsicos de programacin: PROGRAMACION: Se llama programacin a la creacin de un programa de computadora PROGRAMA: Es un conjunto concreto de instrucciones que la computadora debe seguir para procesar datos y convertirlos en informacin. CARACTERISTICAS DE UN PROGRAMA: Debe ser confiable y funcional Advertir errores de entrada obvios y comunes Documentado adecuadamente Ser comprensible Codificado en el lenguaje apropiado Conceptos bsicos de programacin: COMPUTADORA: Maquina electrnica que funciona casi a la velocidad de la luz y es capaz de procesar datos para convertirlos en informacin til al ser humano.

Fig. 1 Procesamiento de datos. Lenguajes de programacin: Un lenguaje de programacin es un lenguaje que puede ser utilizado para controlar el comportamiento de una mquina, particularmente una computadora. Consiste en un conjunto de reglas sintcticas y semnticas que definen su estructura y el significado de sus elementos, respectivamente. Un lenguaje de programacin permite a un programador especificar de manera precisa: sobre qu datos una computadora debe operar, cmo deben ser estos almacenados y transmitidos y qu acciones debe tomar bajo una variada gama de circunstancias. Todo esto, a travs de un lenguaje que intenta estar relativamente prximo al lenguaje humano o natural, tal como sucede con el lenguaje Lexico. Lenguajes de alto y bajo nivel: lenguaje de bajo nivel Es el tipo de lenguaje que cualquier computadora es capaz de entender. Se dice que los programas escritos en forma de ceros y unos estn en lenguaje de mquina, porque esa es la versin del programa que la computadora realmente lee y sigue.

lenguajes de alto nivel Son lenguajes de programacin que se asemejan a las lenguas humanas usando palabras y frases fciles de entender. En un lenguaje de bajo nivel cada instruccin corresponde a una accin ejecutable por el ordenador, mientras que en los lenguajes de alto nivel una instruccin suele corresponder a varias acciones. Ejemplo de Lenguaje de bajo nivel:

Ejemplo de lenguaje de alto nivel:

Interpretes y compiladores: Los compiladores, los intrpretes y los ensambladores se encargan de traducir lo que haya escrito en lenguaje de alto nivel (cdigo fuente) y lo convierten a cdigo objeto (casi ejecutable).

Tarea: Investigar sobre las generaciones de los lenguajes de programacin.

PRACTICA 1 : LOS ALGORITMOSProfesor: Lic. Salomn Aquino Objetivos: Al final de la clase los alumnos y alumnas sern capaces de: Comprender y aplicar el concepto de algoritmos.. Elaborar algoritmos narrados y en pseudocodigo. Algoritmo: es una serie de operaciones detalladas a ejecutar paso a paso, que conducen a la resolucin de problemas. Es un conjunto de reglas para resolver determinado problema describiendo de forma lgica su solucin. Cada una de las acciones de que consta un algoritmo es denominada sentencia y stas deben ser escritas en trminos de cierto lenguaje comprensible para el computador, que es el lenguaje de programacin. Para disear un algoritmo se debe comenzar por identificar las tareas ms importantes para resolver el problema y disponerlas en el orden en que han de ser ejecutadas. Criterios que debe satisfacer un algoritmo (caractersticas): 1. Entrada. Son cero o ms cantidades las cuales son externamente sustituidas. 2. Salida. Al menos una cantidad es producida. 3. Exactitud/precisin. Cada instruccin debe ser clara y sin ambigedad. 4. Finito. Terminar despus de un nmero finito de pasos. 5. Eficiente. Cada instruccin puede ser verificada por una persona con una prueba manual que satisfaga los requerimientos planteados por el problema. Tipos De algoritmos: a) Algoritmos Narrados. b) Algoritmos enPseudocdigo

Algoritmos narrados: Este algoritmo es caracterizado porque sigue un proceso de ejecucin comn y lgico, describiendo textualmente paso a paso cada una de las actividades a realizar dentro de una actividad determinada. Ejemplo 1 Algoritmo para asistir a clases: 1. Levantarse 2. Baarse 3. Vestirse 4. Desayunar 5. Cepillarse los dientes 6. Salir de casa 7. Tomar el autobs 8. Llegar a la universidad. 9. Buscar el aula 10. Ubicarse en un asiento Ejemplo 2 Receta para hacer huevos picados 1. Se coloca aceite o margarina en la cacerola 2. Se pica cebolla, chile y tomate 3. Se ponen a frer, con un poco de sal

4. Cuando ya estn fritos, se echan los huevos 5. Se bate y se deja cocer 6. Se sirve caliente en un plato Ejercicios: Elabore un algoritmo narrado para los casos siguientes: 1. Cambiar un vidrio roto de una ventana 2. Preparar una taza de te 1. Hacer palomitas de maz 4. Poner la mesa para la comida 5. Ir al cine Algoritmos en Pseudocdigo Pseudo = falso. El pseudo cdigo no es realmente un cdigo sino una imitacin y una versin abreviada de instrucciones reales para las computadoras. Es una tcnica para diseo de programas que permite definir las estructuras de datos, las operaciones que se aplicarn a los datos y la lgica que tendr el programa de computadora para solucionar un determinado problema. Utiliza un pseudolenguaje muy parecido a nuestro idioma, pero que respeta las directrices y los elementos de los lenguajes de programacin. Se concibi para superar las dos principales desventajas de los flujogramas: lento de crear y difcil de modificar sin un nuevo redibujo. Ejemplo 1 Disear un algoritmo que lea cuatro variables y calcule e imprima su producto, suma y media aritmtica. inicio leer (a, b, c, d) producto 30 + 2 Paso III. 10 > 32 Respuesta FALSO

Operadores Lgicos. Se utilizan para evaluar dos o ms relaciones, estos operadores son AND, OR y NOT, siempre devuelven como resultado un 0 (falso) o 1 (verdadero). Se evalan primero las relaciones y luego se evalan las operaciones entre s tomando en cuenta los operadores lgicos. El Operador AND. Se evalan primero las expresiones aritmticas, luego las relacionales y lgicas. Con el operador and, para que la respuesta sea verdadera, ambas relaciones deben ser verdaderas, de lo contrario, con una que sea falsa, el resultado de la evaluacin es falso. En C se utiliza && para representar el operador AND. Ejemplo 1: 3 > 5 and 3 < 10; en Lenguaje C se representa por 3 > 5 && 3 < 10;

Para este ejemplo, la primera relacin da como resultado FALSO (pues 3 no es mayor que 5) mientras que la segunda relacin da como resultado VERDADERO (3 es menor que 10). El siguiente paso es evaluar los resultados con el operador lgico, en otras palabras FALSO and VERDADERO esta evaluacin da como resultado FALSO. Si el resultado de las dos evaluaciones diera como resultado VERDADERO, entonces el resultado seria VERDADERO. Ejemplo 2: 5 > 2 and 10 9; en Lenguaje C se representa por 5 > 2 && 10 >= 9; En esta expresin las dos evaluaciones dan como resultado un valor VERDADERO, por lo que al evaluar VERDADERO and VERDADERO da como resultado VERDADERO.

El Operador OR. En este caso, al evaluar las expresiones aritmticas y luego las relacionales y lgicas; para que la respuesta sea verdadera, una de las relaciones debe ser VERDADERA, si todas las evaluaciones son FALSAS, el resultado de la evaluacin es falso. En C se utiliza || para representar el operador OR.

El Operador NOT. Este operador tiene la funcin de cambiar el valor de verdad al penltimo resultado obtenido de evaluar la expresin. Si al final se obtiene not (verdadero), el resultado ser FALSO; y si es not (falso), el resultado ser VERDADERO. En C se utiliza ! para representar dicho operador.

Ejemplo 1: Not(99 >= 50 or 10 > = 75); en Lenguaje C se representa !( 99 >= 50 || 10 >= 75) Al evaluar esta expresin, notamos que en la primera parte nos da un verdadero y en la segunda nos da un falso. De verdadero or falso obtenemos verdadero y finalmente not de verdadero nos da como resultado un FALSO. Jerarqua general de operadores en Lenguaje C.

ASOCIATIVIDAD En una expresin tal como 3 * 4 + 5 el compilador realiza primero la multiplicacin por tener el operador * prioridad ms alta - y luego la suma, por tanto, produce 17. Para forzar un orden en las operaciones se deben utilizar parntesis. 3 * (4 + 5) produce 27, ya que 4 + 5 se realiza en primer lugar. La asociatividad determina el orden en que se agrupan los operadores de igual prioridad; es decir, de izquierda a derecha o de derecha a izquierda. Por ejemplo, X y + z se agrupa como ( x y ) + z Ya que y +, con igual prioridad, tienen asociatividad de izquierda a derecha. Sin embargo, x = y = z se agrupa como x = ( y = z ) dado que su asociatividad es de derecha a izquierda.

Uso de Parntesis Los parntesis se pueden utilizar para cambiar el orden usual de evaluacin de una expresin determinada por su prioridad y asociatividad. Las subexpresiones entre parntesis se evalan en primer lugar segn el modo estndar y los resultados se combinan para evaluar la expresin completa. Si los parntesis estn anidados, es decir, un conjunto de parntesis contenido en otro, se ejecutan en primer lugar los parntesis ms internos. Por ejemplo, considrese la expresin ( 7 * (10 5) % 3 ) * 4 + 9 La subexpresin (10 5) se evala primero, produciendo (7 * 5 % 3) * 4 + 9 A continuacin se evala de izquierda a derecha la subexpresin (7 * 5 % 3) y obtenemos (35 % 3) * 4 + 9 luego 2 * 4 + 9 donde se realiza la multiplicacin y obtenemos 8 + 9 lo que produce un resultado final de 17. Ejercicio 1.

A continuacin se muestran expresiones algebraicas en base a las cuales usted