martes, 14 de abril de 2009
lunes, 13 de abril de 2009
RESUMEN CAPITULO 5
5.1. ESTRUCTURAS DE CONTROL
Las estructuras de control controlan el flujo de ejecución de un programa o función. Las estructuras de control permiten combinar instrucciones o sentencias individuales en una simple unidad lógica con un punto de entrada y un punto de salida.
Las instrucciones o sentencias se organizan en tres tipos de estructuras de control que sirven para controlar el flujo de la ejecución: secuencia, selección (decisión) y repetición.
Una sentencia compuesta es un conjunto de sentencias encerradas entre llaves ({ y }) que se utiliza para especificar un flujo secuencial.
El control fluye de la sentencia1 a la sentencia2 y así sucesivamente. Sin embargo, existen problemas que requieren etapas con dos o más opciones o alternativas a elegir en función del valor de una condición o expresión.
5.2. LA SENTENCIA if
En C, la estructura de control de selección principal es una sentencia it. La sentencia it tiene dos alternativas o formatos posibles. El formato más sencillo tiene la sintaxis siguiente:
5.3. SENTENCIA if DE DOS ALTERNATIVAS: if-else
Un segundo formato de la sentencia if es la sentencia if-else. Este formato de la sentencia if tiene la siguiente sintaxis:
5.4. SENTENCIAS if-else ANIDADAS
Hasta este punto, las sentencias if implementan decisiones que implican una o dos alternativas. Una sentencia if es anidada cuando la sentencia de la rama verdadera o la rama falsa, es a su vez una sentencia if. Una sentencia if anidada se puede utilizar para implementar decisiones con varias alternativas o multi-alternativas.
La ejecución de la sentencia if anidada se realiza como sigue: se comprueba la primera condición (x > O); si es verdadera, num_pos se incrementa en 1 y se salta el resto de la sentencia if. Si la primera condición es falsa, se comprueba la segunda condición (x <>
5.4.1. Sangría en las sentencias if anidadas
El formato multibiturcación se compone de una serie de sentencias if anidadas, en cada línea se puede escribir una sentencia if.
5.4.2. Comparación de sentencias if anidadas y secuencias de sentencias if
Los programadores tienen dos alternativas: 1) usar una secuencia de sentencias if; 2) una única sentencia if anidada. Por ejemplo, la sentencia if del Ejemplo 5.7. se puede reescribir como la siguiente secuencia de sentencias if:
5.5. SENTENCIA DE CONTROL switch
La sentencia switch es una sentencia C que se utiliza para seleccionar una de entre múltiples alternativas. La sentencia switch es especialmente útil cuando la selección se basa en el valor de una variable simple o de una expresión simple denominada expresión de control o selector. El valor de esta expresión puede ser de tipo int o char, pero no de tipo float ni double.
5.5.1. Caso particular de case
Está permitido tener varias expresiones case en una alternativa dada dentro de la sentencia switch. Por ejemplo, se puede escribir:
5.5.2. Uso de sentencias switch en menús
La sentencia if - else es más versátil que la sentencia switch y se pueden utilizar unas sentencias if else anidadas o multidecisión, en cualquier parte que se utilice una sentencia case. Sin embargo, normalmente, la sentencia switch es más clara. Por ejemplo, la sentencia switch es idónea para implementar menús.
Un menú en un programa de computadora hace la misma función: presentar una lista de alternativas en la pantalla para que el usuario elija una de ellas.
5.6. EXPRESIONES CONDICIONALES: EL OPERADOR ?:
Las sentencias de selección (if y switch) consideradas hasta ahora, son similares a las sentencias previstas en otros lenguajes, tales como Pascal y Fortran 90. C tiene un tercer mecanismo de selección, una expresión que produce uno de dos valores, resultado de una expresión lógica o booleana (también denominada condición). Este mecanismo se denomina expresión condicional. Una expresión condicional tiene el formato C ? A : B y es realmente una operación ternaria (tres operandos) en el que C, A y B son los tres operandos y ? : es el operador.
Se evalúa condición, si el valor de condición es verdadera (distinto de cero) entonces se devuelve como resultado el valor de expresión1 si el valor de condición es falsa (cero) se devuelve como resultado el valor de expresion2.
Una aplicación del operador condicional (?:) es llamar a una de dos funciones según el valor de la variable.
5.7. EVALUACIÓN EN CORTOCIRCUITO DE EXPRESIONES LÓGICAS
Cuando se evalúan expresiones lógicas en C se emplea una técnica denominada evaluación en cortocircuito. Este tipo de evaluación significa que se puede detener la evaluación de una expresión lógica tan pronto como su valor pueda ser determinado con absoluta certeza. Por ejemplo, si el valor de (soltero == ‘s‘) es falso, la expresión lógica (soltero == ‘s’) && (sexo ‘h’) && (edad > 18) && (edad <= 45) será falsa con independencia de cual sea el valor de las otras condiciones. La razón es que una expresión lógica del tipo falso && (...) debe ser siempre falsa, cuando uno de los operandos de la operación AND es falso. En consecuencia no hay necesidad de continuar la evaluación de las otras condiciones cuando (soltero == ‘s’) se evalúa a falso.
El compilador C utiliza este tipo de evaluación. Es decir, la evaluación de una expresión lógica de la forma, a && a. se detiene si la subexpresión a de la izquierda se evalúa a falsa.
C realiza evaluación en cortocircuito con los operadores && y , de modo que evalúa primero la expresión más a la izquierda de las dos expresiones unidas por && o bien por . Si de esta evaluación se deduce la información suficiente para determinar el valor final de la expresión (independiente del valor de la segunda expresión), el compilador C no evalúa la segunda expresión.
miércoles, 18 de marzo de 2009
EJERCICIO
Realizar un programa que despliegue los siguientes datos; cada dato en una línea diferente y a doble espacio:
nombre
dirección
teléfono
escuela
carrera
#include
main()
RESUMEN 3.1 AL 3.5
3.1. ESTRUCTURA GENERAL DE UN PROGRAMA EN C
De un modo más explícito, un programa C puede incluir:
• Directivas de preprocesador:
• Declaraciones globales;
• La función main (); mt main ()
• Funciones definidas por el usuario;
• Comentarios del programa
La directiva #include de la primera línea es necesaria para que el programa tenga salida. Se refiere a un archivo externo denominado stdio.h en el que se proporciona la información relativa a la función printf ( ). Obsérvese que los ángulos <> no son parte del nombre del archivo; se utilizan para indicar que el archivo es un archivo de la biblioteca estándar C.
La segunda línea es un comentario, identificado por los caracteres /* y */. Los comentarios se incluyen en programas que proporcionan explicaciones a los lectores de los mismos. Son ignorados por el compilador.
La tercera línea contiene la cabecera de la función main ( ), obligatoria en cada programa C. Indica el comienzo del programa y requiere los paréntesis ( ) a continuación de main ( ).
La cuarta y séptima línea contienen sólo las llaves { y } que encierran el cuerpo de la función main ( ) y son necesarias en todos los programas C.
La quinta línea contiene la sentencia printf (“Bienvenido a la programación en C\n”);
Advertencia
El programa más corto de C es el «programa vacío» que no hace nada.
La sentencia return 0; no es obligatoria en la mayoría de los compiladores, aunque algunos emiten un mensaje de advertencia si se omite.
3.1.1. DIRECTIVAS DEL PROCESADOR
Todas las directivas del procesador comienzan con el signo del libro o <> (#), que indica al compilador que lea las directivas antes de compilar la parte (función) principal del programa. Las directivas son instrucciones el compilador. Las directivas no son generalmente sentencias, obsérvese que su línea no termina en punto y coma, sino instrucciones que se dan al compilador antes de que el programa se compile. Aunque las directivas pueden definir macros, nombres de constantes, archivos fuente adicionales, etc., su uso mas frecuente en C es la inclusión de archivos de cabecera.
Existen archivos de cabecera estándar que se utilizan ampliamente, tales como stdio.h, stdlib.h, math.h, string.h y se utilizaran otros archivos de cabecera definidos por el usuario para diseño estructurado.
Los archivos de cabecera (archivos con extensión .h contienen código fuente C) se sitúan en un programa C mediante la directiva de preprocesador #include con una instrucción que tiene el siguiente formato:
Nombrearch debe ser un archivo de texto ASCII (su archivo fuente) que reside en su disco el archivo de cabecera mas frecuente es stdio.h.
3.1.2. DECLARACIONES GLOBALES
3.1.3. FUNCIÓN MAIN ( )
Cada programa C tiene una función main () que es el punto de entrada al programa. Su estructura es:
Las sentencias incluidas entre las llaves {. . . } se denominan bloque. Un programa debe tener sólo una función main ( ) . Si se intenta hacer dos funciones main ( ) se produce un error. Además de la función main ( ), un programa C consta de una colección de funciones.
Una función C es un subprograma que devuelve un único valor, un conjunto de valores o realiza alguna tarea específica tal como E/S.
En un programa corto, el programa completo puede incluirse totalmente en la función main ( ).
Un programa largo, sin embargo, tiene demasiados códigos para incluirlo en esta función. La función main ( ) en un programa largo consta prácticamente de llamadas a las funciones definidas por el usuario. El programa siguiente se compone de tres funciones: obtenerdatos ( ), alfabetizar ( ) y verpalabras ( ) que se invocan sucesivamente.
Todas las funciones tienen nombre y reciben una lista de valores. Se puede asignar cualquier nombre a su función, pero normalmente se procura que dicho nombre describa el propósito de la función. En C. las funciones requieren una declaración o prototipo en el programa:
Una declaración de función indica al compilador el nombre de la función por el que ésta será invocada en el programa. Si la función no se define, el compilador informa de un error. La palabra reservada void significa que la función no devuelve un valor.
3.1.5. COMENTARIOS
Todo el texto situado entre las dos secuencias es un comentario ignorado por el compilador.
3.2. CREACIÓN DE UN PROGRAMA
· Utilizar un editor de texto para escribir el programa y grabarlo en un archivo. Este archivo constituye el código fuente de un programa.
· Compilar el código fuente. Se traduce el código fuente en un código objeto (extensión .obj) (lenguaje máquina entendible por la computadora). Un archivo objeto contiene instrucciones en lenguaje máquina que se pueden ejecutar por una computadora. Los archivos estándar C y los de cabecera definidos por el usuario son incluidos (include) en su código fuente por el preprocesador. Los archivos de cabecera contienen información necesaria para la compilación, corno es el caso de stdio.h que contiene información scanf y de printf ( ).
· Enlazar el código objeto con las bibliotecas correspondientes. Una biblioteca C contiene código objeto de una colección de rutinas o funciones que realizan tareas, como visualizar informaciones en la pantalla o calcular la raíz cuadrada de un número. El enlace del código objeto del programa con el objeto de las funciones utilizadas y cualquier otro código empleado en el enlace, producirá un código ejecutable. Un programa C consta de un número diferente de archivos objeto y archivos biblioteca.
Para crear un programa se utilizan las siguientes etapas:
1. Definir su programa.
2. Definir directivas del preprocesador.
3. Definir declaraciones globales.
4. Crear main ( ).
5. Crear el cuerpo del programa.
6. Crear sus propias funciones definidas por el usuario.
7. Compilar, enlazar, ejecutar y comprobar su programa.
8. Utilizar comentarios.
3.3. EL PROCESO DE EJECUCIÓN DE UN PROGRAMA EN C
Un programa de computadora escrito en un lenguaje de programación (por ejemplo, C) tiene forma de texto ordinario. Se escribe el programa en una hoja de papel y a este programa se le denomina prograi texto o código fuente. Considérese el ejemplo sencillo:
La Figura 3.3 muestra el método de edición de un programa y la creación del programa en un disco, en un archivo que se denomina archivo de texto (archivo fuente). Con la ayuda de un editor de texto se puede editar el texto fácilmente, es decir, cambiar, mover, cortar, pegar y borrar texto. Se puede ver, normalmente, una parte del texto en la pantalla y se puede marcar partes del texto a editar con ayuda de un ratón o el teclado. El modo de funcionamiento de un editor de texto y las órdenes de edición asociadas varían de un sistema a otro.
Se comienza escribiendo el archivo fuente con el editor. Se compila el archivo fuente y se comprueban mensajes de errores. Se retorna al editor y se fijan los errores de sintaxis. Cuando el compilador tiene éxito, el enlazador construye el archivo ejecutable. Se ejecuta el archivo ejecutable. Si se encuentra un error, se puede activar el depurador para ejecutar sentencia a sentencia. Una vez que se encuentra la causa del error, se vuelve al editor y se repite la compilación. El proceso de compilar, enlazar y ejecutar el programa se repetirá hasta que no se produzcan errores.
· Etapas del proceso
· El código fuente (archivo del programa) se crea con la ayuda del editor de texto.
· El compilador traduce el archivo texto en un archivo objeto.
· El enlazador pone juntos a diferentes archivos objetos para poner un archivo ejecutable.
· El sistema operativo pone el archivo ejecutable en la memoria central y se ejecuta el programa.
Rara vez los programas funcionan bien la primera vez que se ejecutan. Los errores que se producen en los programas han de ser detectados, aislados (fijados) y corregidos. El proceso de encontrar errores se denomina depuración del programa. La corrección del error es probablemente la etapa más difícil, siendo la detección y aislamiento del error las tareas más difíciles.
1. Violación (no cumplimiento) de las reglas gramaticales del lenguaje de alto nivel en el que se escribe el programa.
2. Los errores en el diseño del algoritmo en el que está basado el programa.
Los errores de sintaxis son aquellos que se producen cuando el programa viola la sintaxis, es decir, las reglas de gramática del lenguaje. Errores de sintaxis típicos son: escritura incorrecta de palabras reservadas, omisión de signos de puntuación (comillas, punto y coma...). Los errores de sintaxis son los más fáciles de fijar, ya que ellos son detectados y aislados por el compilador.
• Punto y coma después de la cabecera main O.
• Omisión de punto y coma al final de una sentencia.
• Olvido de la secuencia */ para finalizar un comentario.
• Olvido de las dobles comillas al cerrar una cadena.
•Etc.
pero resulta que el tercer asterisco (operador de multiplicación) es en realidad un signo + (operador suma). El compilador no produce ningún mensaje de error de sintaxis ya que no se ha violado ninguna regla de sintaxis y, por tanto, el compilador no detecta error y el programa se compilará y ejecutará bien, aunque producirá resultados de valores incorrectos ya que la fórmula utilizada para calcular el peso contiene un error lógico.
Los errores de regresión son aquellos que se crean accidentalmente cuando se intenta corregir un error lógico. Siempre que se corrige un error se debe comprobar totalmente la exactitud (corrección) para asegurarse que se fija el error que se está tratando y no produce otro error.
Los compiladores emiten mensajes de error o de advertencia durante las fases de compilación, de enlace o de ejecución de un programa.
· Errores fatales. Son raros. Algunos de ellos indican un error interno del compilador. Cuando ocurre un error fatal, la compilación se detiene inmediatamente, se debe tomar la acción apropiada y a continuación se vuelve a iniciar la compilación.
· Errores de sintaxis. Son los errores típicos de sintaxis, errores de línea de órdenes y errores de acceso a memoria o disco. El compilador terminará la fase actual de compilación y se detiene.
· Advertencias (warning). No impiden la compilación. Indican condiciones que son sospechosas, pero son legítimas como parte del lenguaje.
«Las pruebas nunca se terminan, sólo se detienen y no existen garantías de que se han encontrado y corregido todos los errores de un programa>. Dijkstra ya predijo a principios de las setenta una máximas que siempre se ha de tener presente en la construcción de un programa: «Las pruebas sólo muestran la presencia de errores, no su ausencia. No se puede probar que un programa es correcto (exacto) sólo e puede mostrar que es incorrecto».
jueves, 12 de febrero de 2009
GUIA EXAMEN
COMPUTADORA:
Es un dispositivo eléctrico, utilizado para procesar información y obtener resultados, capaces de ejecutar cálculos y tomar dediciones a velocidades más rápidas que el hombre.
HARDWARE:
Es el equipo físico o los dispositivos asociados con una computadora.
SOFTWARE:
Conjunto de instrucciones dadas, el conjunto de instrucciones que indica a la computadora aquello que debe hacer.
DISPOSITIVOS DE ALMACENAMIENTO:
Memoria principal, memoria ROM, procesador, microprocesador
Secundarios: diskette, cd, dvd. Cinta magnética.
LENGUAJE DE PROGRAMACIÓN:
Sirve para escribir programas que permiten la comunicación usuario/maquina.
INTERPRETE:
Convierte las instrucciones escritas en lenguaje de programación en las instrucciones escritas en lenguaje maquina que esta puede entender.
LENGUAJE MAQUINA:
Un sistema de codificación nativo de la maquina y la escritura de programas secuénciales de 0 y 1.
ENSAMBLADORES:
Son programas que traducen otros programas escritos en códigos neumático en instrucciones numéricos en lenguaje maquina que son compatibles y legibles por la maquina.
COMPILADORES:
Son programas de alto nivel como C, JAVA, que ocupan ser traducidos a código maquina.
LENGUAJE C:
Es el lenguaje de programación general asociado de método universal al sistema operativo UNIX.
Ventajas: poderoso, flexible, operacional, se utiliza en programas preferenciales, puede ser escrito para un tipo de computadoras.
ELEMENTOS DEL DIAGRAMA DE FLUJO O SÍMBOLOS:
ALGORITMO:
Es un método para resolver un problema mediante una serie de pasos precisos, definidos y finitos. Su estructura: entrada – proceso – salida
PSEUDOCÓDIGO:
Es un lenguaje de especificaciones de algoritmos. Es una herramienta de programación en la que las instrucciones se escriben en palabras similares al ingles o español, que faciliten tanto la escritura como la lectura de programas.
DIAGRAMA (NS):
Es un diagrama de flujo en el que se omiten las flechas de unión y las cajas son continuas. Las acciones sucesivas se escriben en cajas sucesivas y como en los diagramas de flujo, se pueden escribir diferentes acciones en cajas.