Temas de Examen
Temas de Examen
Temas de Examen
Programa: Es el conjunto de instrucciones escritas de algn lenguaje de programacin y que ejecutadas secuencialmente resuelven un problema especifico. Organizacin fsica de una computadora
CPU Dispositivos de Entrada Unida de Control Unidad Arit.-Log. Memoria Dispositivos de Salida
3 UCE Sede Santo Domingo Tercera generacin: Los lenguajes de alto nivel sustituyen las instrucciones simblicas por cdigos independientes de la mquina, parecidas al lenguaje humano o al de las Matemticas. Cuarta generacin: se ha dado este nombre a ciertas herramientas que permiten construir aplicaciones sencillas combinando piezas prefabricadas. Hoy se piensa que estas herramientas no son, propiamente hablando, lenguajes. Algunos proponen reservar el nombre de cuarta generacin para la programacin orientada a objetos. Quinta generacin: se llama as a veces a los lenguajes de la inteligencia artificial, aunque con el fracaso del proyecto japons de la quinta generacin el nombre ha cado en desuso.
Cdigo de ensamble
1.3Definicin de Algoritmo
La palabra algoritmo se deriva de la traduccin al latn de la palabra rabe alkhowarizmi, nombre de un matemtico y astrnomo rabe que escribi un tratado sobre manipulacin de nmeros y ecuaciones en el siglo IX. Un algoritmo es una serie de pasos organizados que describe el proceso que se debe seguir, para dar solucin a un problema especfico.
1.6 Metodologa para la solucin de problemas por medio de computadora 1.7 Definicin del Problema
Esta fase est dada por el enunciado del problema, el cual requiere una definicin clara y precisa. Es importante que se conozca lo que se desea que realice la computadora; mientras esto no se conozca del todo no tiene mucho caso continuar con la siguiente etapa.
1.10 Codificacin
La codificacin es la operacin de escribir la solucin del problema (de acuerdo a la lgica del diagrama de flujo o pseudocodigo), en una serie de instrucciones detalladas, en un cdigo reconocible por la computadora, la serie de instrucciones detalladas se le conoce como cdigo fuente, el cual se escribe en un lenguaje de programacin o lenguaje de alto nivel.
1.12 Documentacin
Es la gua o comunicacin escrita es sus variadas formas, ya sea en enunciados, procedimientos, dibujos o diagramas. A menudo un programa escrito por una persona, es usado por otra. Por ello la documentacin sirve para ayudar a comprender o usar un programa o para facilitar futuras modificaciones (mantenimiento). La documentacin se divide en tres partes: Documentacin Interna Documentacin Externa Manual del Usuario Documentacin Interna: Son los comentarios o mensaje que se aaden al cdigo fuente para hacer ms claro el entendimiento de un proceso. Documentacin Externa: Se define en un documento escrito los siguientes puntos: Descripcin del Problema Nombre del Autor Algoritmo (diagrama de flujo o pseudocodigo) Diccionario de Datos Cdigo Fuente (programa) Manual del Usuario: Describe paso a paso la manera como funciona el programa, con el fin de que el usuario obtenga el resultado deseado.
1.13 Mantenimiento
Se lleva a cabo despus de terminado el programa, cuando se detecta que es necesario hacer algn cambio, ajuste o complementacin al programa para que siga trabajando de manera correcta. Para poder realizar este trabajo se requiere que el programa este correctamente documentado.
6 UCE Sede Santo Domingo Las dos herramientas utilizadas comnmente para disear algoritmos son: Diagrama de Flujo Pseuducodigo
Indica la entrada y salida de datos por teclado. Smbolo de proceso y nos indica la asignacin de un valor en la memoria y/o la ejecucin de una operacin aritmtica. Smbolo de decisin indica la realizacin de una compracin de valores
Se utiliza para representar los subprogramas. Conector dentro de pgina. Representa la continuidad del diagrama dentro de la Misma pgina. Conector fuera de pgina. Representa la continuidad del diagrama en otra pgina. Lectura / escritura de dato en un diskette
O lgico.
Multidocumento.
Recomendaciones para el diseo de Diagramas de Flujo Se deben usar solamente lneas de flujo horizontal y/o vertical. Se debe evitar el cruce de lneas utilizando los conectores. Se deben usar conectores solo cuando sea necesario. No deben quedar lneas de flujo son conectar. Se deben trazar los smbolos de manera que se puedan leer de arriba hacia abajo y de izquierda a derecha. Todo texto escrito dentro de un smbolo deber ser escrito claramente, evitando el uso de muchas palabras.
2.2 Pseudocodigo
Mezcla de lenguaje de programacin y espaol (o ingles o cualquier otro idioma) que se emplea, dentro de la programacin estructurada, para realizar el diseo de un programa. En esencial, el pseudocodigo se puede definir como un lenguaje de especificaciones de algoritmos. Es la representacin narrativa de los pasos que debe seguir un algoritmo para dar solucin a un problema determinado. El pseudocodigo utiliza palabras que indican el proceso a realizar. Ventajas de utilizar un Pseudocodigo a un Diagrama de Flujo Ocupa menos espacio en una hoja de papel Permite representar en forma fcil operaciones repetitivas complejas Es muy fcil pasar de pseudocodigo a un programa en algn lenguaje de programacin. Si se siguen las reglas se puede observar claramente los niveles que tiene cada operacin.
8 UCE Sede Santo Domingo Inicio Leer Nombre,Hrs,Precio Calcular Salario = Hrs * Precio Calcular Imp = Salario* 0.15 Calcular Neto = Salario + Imp Escribir Nombre, Imp, SNeto Fin
3. Introduccin a la Programacin en C
Evolucin histrica del lenguaje C A mediados de los aos 60s, Martin Richards dise el lenguaje BCPL con la finalidad de usarlo para escribir software de sistemas operativos y compiladores. En 1969, Ken Thompson escribi el Lenguaje B, en Bell Laboratories, con el objetivo de recodificar UNIX (escrito hasta ese momento en lenguaje ensamblador) usando un lenguaje de alto nivel ms portable y flexible. Durante los siguientes aos, Dennis Ritchie modific el lenguaje B, llegando a crear el lenguaje C y reescribiendo el sistema UNIX en dicho lenguaje; aadi caractersticas nuevas, como son el diseo de tipos y las estructuras de datos. En 1978, Dennis Ritchie y Brian Kernighan publicaron la primera edicin del libro El lenguaje de programacin C. Este libro fue durante aos la especificacin informal del lenguaje. El lenguaje descrito en la primera edicin de este libro, fue conocido como "el C de Kernighan y Ritchie" o simplemente "K&R C". En este libro se introdujeron nuevas caractersticas al lenguaje: los tipo de datos struct, long int y unsigned int; los operadores =+ y =- fueron sustituidos por += y -=. A mediados de los aos 80, Bjarne Stroustrup (tambin de los laboratorios Bell), crea el lenguaje C++, un lenguaje basado en C, con numerosas caractersticas adicionales, siendo la principial que est orientado a objetos. Si bien se han creado muchos lenguajes basados en C, C++ es el que ha permanecido ms asociado a C. En los aos siguientes a la publicacin del C de Kernighan y Ritchie, se aadieron al lenguaje muchas caractersticas no oficiales, que estaban presentes en algunos compiladores y no en otros. Fue por ello que en 1989 ANSI (American National Standards Institute) public el primer estndar oficial de C, que es conocido como ANSI C. En este estndar se tomaron muchas de las funcionalidades no oficiales y se agregaron funcionalidades nuevas como los prototipos de funcin, y un preprocesador mejorado. Tambin se cambi la sintaxis de la declaracin de parmetros de funciones, para que incluyeran el tipo junto con el nombre.
9 UCE Sede Santo Domingo Al ao siguiente, en 1990 se public la estandarizacin ISO del lenguaje. Este estndar es bsicamente el estndar ANSI, con unas pocas modificaciones de formato. A este estndar se lo conoce, entonces, como C89, o C90, y se trata del mismo lenguaje. Basndose en el estndar ANSI que estaba en preparacin, en 1988 Kernighan y Ritchie publicaron la segunda edicin de su libro, que es an hoy utilizada como una de las referencias principales del lenguaje. Durante los siguientes aos, el lenguaje C permaneci sin demasiados cambios. Sin embargo, como haba sucedido antes, los distintos compiladores fueron incorporando caractersticas adicionales, que otros compiladores no tenan, siendo C++ la principal influencia. Fue por ello que a finales de los noventa se decidi revisar el estndar de C, lo que llev a la publicacin del estndar C99. Este estndar incluye varias nuevas caractersticas como son: las funciones inline; la posibilidad de declarar variables en cualquier parte del cdigo; los comentarios de una sola lnea utilizando //; los tipos de datos long long int, bool y complex, entre otras. An hoy el proceso de evolucin del lenguaje sigue avanzando, y desde 2007 se est trabajando en el armado de un nuevo estndar. BORLAND Borland Software Corporation (anteriormente Borland International, Inc.) es una compaa de software, ubicada en Austin, Texas, Estados Unidos. Fue fundada en 1983 por Niels Jensen, Ole Henriksen, Mogens Glad y Philippe Kahn. Borland naci en 1983 cuando el joven dans Anders Hejlsberg lleg a un acuerdo con Philip Khan para vender el compilador de Pascal que Anders haba creado para ordenadores personales. Turbo Pascal fue un compilador con un concepto de "entorno", revolucionario en aquella poca. Costaba unos 50 dlares estadounidenses y tena unas posibilidades excepcionales en la poca: inclua extensiones que eliminaban todos los inconvenientes que provocaron el ensayo de Brian Kernighan Por qu Pascal no es mi lenguaje preferido. Especialmente todas las limitaciones al acceso directo a memoria y a la mquina (ensamblador integrado). Borland sac ms tarde compiladores para otros lenguajes como Prolog (Turbo Prolog) y Basic (Turbo BASIC). Pero el ms popular y que arraig fue el del lenguaje de programacin C, Turbo C. En competencia con Microsoft, Borland lleg a colocarse en los primeros puestos en el sector de compiladores. Perdi ese lugar antes de salir Windows 95. La versin para Windows de Turbo Pascal era considerada un buen producto. Pero la programacin para Windows peda a gritos un entorno ms cmodo. Mientras tanto, Microsoft se estaba comiendo el mercado con Visual Basic. Cuando Delphi sali en la primavera del ao 1995, ya haba perdido mucho terreno. As como Delphi surge como la evolucin para MS Windows del Turbo Pascal, otro tanto sucedi con el Turbo C que dio lugar al C++Builder. La compaa tambin lanz JBuilder, un IDE Java (1996).
10 UCE Sede Santo Domingo Varios productos de Borland estn tambin disponibles para GNU/Linux, entre ellos Interbase, JBuilder y Kylix que integraba Delphi y C++Builder (aunque Kylix fue abandonado tras la versin 3.0). En septiembre de 2006 se relanz la gama de productos Turbo (Turbo C++, Turbo C#, Turbo Delphi), como versiones reducidas de sus herramientas estrella (Delphi, C++Builder) para Windows
Creador: Dennis Ritchie (Laboratorios Bell) el 1972, cuando trabajaba junto con Ken Thompson en el diseo del sistema operativo UNIX. El C se cre como herramienta para programadores, en consecuencia su principal objetivo es ser un lenguaje til. Caractersticas: El C es un lenguaje de programacin de alto nivel (alto nivel quiere decir prximo al lenguaje humano), pero con caractersticas de bajo nivel (bajo nivel= prximo al lenguaje mquina). Es de ALTO NIVEL porque es racional, estructurado y fcil de aprender. Es de BAJO NIVEL porque permite trabajar con bits, registros de la C.P.U. y posiciones de memoria.
Porqu el C? El lenguaje C es poderoso y flexible: la mayor parte del sistema operativo UNIX est escrito en C. Incluso estn escritos en C los compiladores e intrpretes de otros lenguajes, como FORTRAN, APL, PASCAL, LISP, LOGO y BASIC. El lenguaje C es amistoso porque es lo suficientemente estructurado para ejercer buenos hbitos de programacin. Es el lenguaje de programacin ms utilizado por el programador de sistemas. Estructura de un programa en C: El C es un lenguaje compilado, vamos a ver que es esto grficamente:
CDIGO FUENTE
COMPILAR
CDIGO OBJETO
LINKAR
PROGRAMA EJECUTABLE
CDIGO FUENTE: es el programa que nosotros escribimos, se graba con la extensin CPP CDIGO OBJETO: es el programa fuente pero traducido a lenguaje mquina (sucesin de ceros y unos), se graba con la extensin OBJ
11 UCE Sede Santo Domingo PROGRAMA EJECUTABLE: es el programa objeto ms las libreras del C, se graba con la extensin EXE. Y no necesita el programa que hemos utilizado para crearlo, para poder ejecutarlo. El cdigo Objeto que genera un compilador de C, es casi tan eficiente (rpido) como si lo hubiramos escrito en lenguaje ENSAMBLADOR (lenguaje de programacin ms prximo al lenguaje mquina). ES UN LENGUAJE PARA PROGRAMADORES Algunos otros lenguajes estn hechos para no-programadores (BASIC, COBOL, ...) El lenguaje C est influenciado, diseado y probado por programadores profesionales. Proporciona: Una visin prxima a la mquina Pocas restricciones Pocas pegas Conjunto reducido de palabras clave Estructuracin en bloques Funciones independientes Recursos para el encapsulamiento de datos Permite alcanzar casi la eficiencia del cdigo ensamblador, junto con la estructuracin propia de lenguajes como ALGOL, MODULA-2. Se dise para la programacin de sistemas Los programas son muy transportables Actualmente se usa para otros propsitos
12 UCE Sede Santo Domingo } Cada funcin tiene la siguiente estructura: <tipo> Nombre de la funcin(<Declaraciones de parmetros>) { <Declaraciones locales> <sentencias> } Una funcin consta de encabezamiento y un cuerpo: Encabezamiento. Contiene cualquier tipo de dato que tomar la funcin, el nombre de la funcin, y entre parntesis la declaracin de los parmetros, si existieran. Cuerpo. Est delimitado por las llaves, {}, que indican el bloque de cdigo y consiste en un grupo de sentencias, cada una de las cuales termina en punto y coma. Una funcin se identifica cuando un nombre va seguido de parntesis, dentro de los cuales puede o no haber parmetros. Los programas se construyen con: Comentarios. Ordenes para el preprocesador de macros. Definiciones de funciones. Expresiones formadas con constantes, variables, funciones y operadores. Sentencias. LOS COMENTARIOS Son lneas que ignora el compilador pero sirven para documentar los programas: Empiezan con: /* terminan con: */ pueden abarcar varias lneas, no se pueden anidar /* ej1.c Indica el menor de dos enteros ledos */ ... ... ... scanf("%d%d", &n1, &n2); /* aqu se leen dos valores enteros */ ... ...