apuntes logica de prog
Post on 17-Jan-2016
224 views
Embed Size (px)
DESCRIPTION
c++TRANSCRIPT
A. Conceptos Bsicos
a. Introduccin
i. De los problemas a los programas
ii. Breves prcticas de la programacin
b. Definicin de lenguaje
c. Definicin de Algoritmo
d. Algoritmos Cotidianos
e. Definicin de lenguajes algortmicosB. Metodologa para la Solucin de Problemas por Medio de Computadoras
a. Definicin del Problema
b. Anlisis de los Datos
c. Diseo de la solucin
d. Prueba y depuracinC. Tcnicas para la Formulacin de Algoritmos
a. Diagramas de Flujo
b. Pseudo cdigo
c. Diagramas Estructurados (nassi-scheneiderman)
1.- Caractersticas del lenguaje C
2.- Estructura de un programa en C
2.1.- Estructura
2.2.- Comentarios
2.3.- Palabras clave
2.4.- identificadores
3.- Tipos de datos
3.1.- Tipos
3.2.- Calificadores de tipo
3.3.- Las variables
3.4.- Dnde se declaran ?
3.5.- Constantes
3.6.- Secuencias de escape
3.7.- Inclusin de ficheros
4.- Operadores aritmticos y de asignacin
4.1.- Operadores aritmticos
4.2.- Operadores de asignacin
4.3.- Jerarqua de los operadores
5.- Salida / Entrada
5.1.- Sentencia printf()
5.2.- Sentencia scanf()
6.- Operadores relacionales
7.- Sentencias condicionales
7.1.- Estructura IF...ELSE
7.2.- Estructura SWITCH
8.- Operadores lgicos
9.- Bucles
9.1.- Sentencia WHILE
9.2.- Sentencia DO...WHILE
9.3.- Sentencia FOR
9.4.- Sentencia BREAK
9.5.- Sentencia CONTINUE
10.- Funciones
10.1.- Tiempo de vida de los datos
10.2.- Funciones
10.3.- Declaracin de las funciones
10.4.- Paso de parmetros a una funcin
11.- Arrays
11.1.- Vectores
11.2.- Matrices
12.- Punteros
12.1.- Declaracin
12.2.- Operadores
12.3.- Asignacin
12.4.- Aritmtica de direcciones
13.- Estructuras
13.1.- Concepto de estructura
13.2.- Estructuras y funciones
13.3.- Arrays de estructuras
13.4.- Typedef
14.- Ficheros
14.1.- Apertura
14.2.- Cierre
14.3.- Escritura y lectura
15.- Gestin dinmica de memoria
15.1.- Funciones
15.2.- Estructuras dinmicas de datos
16.- Programacin grfica
16.1.- Conceptos bsicos
16.2.- Funciones
Bibliografa
Turbo C/C++ Manual de Referencia
Herbert Schildt
Mc Graw Hill
Programacin C
Byron S. Gottfried
Mc Graw Hill
Metodologa de la Programacin (Algoritmos, Diagramas de Flujo y Programas)
Osvaldo Cair
Computec
D. Conceptos Bsicos
Concepto de algoritmo y lenguaje de programacin
Antes de iniciar, es necesario conocer los conceptos principales que son de uso necesario para la solucin de problemas por medio de computadoras.
Algoritmo: es un conjunto finito de instrucciones que, cuando se ejecutan, efectan una tarea particular.
Un algoritmo es un sistema definido de instrucciones, finito en nmero, para lograr una cierta tarea que, dado un sistema de entradas, d lugar a un cierto estado reconocible. El concepto de un algoritmo es ilustrado a menudo por el ejemplo de una receta, aunque muchos algoritmos son mucho ms complejos; los algoritmos tienen a menudo pasos que repitan (iteren) o requieran decisiones (tales como lgica o comparacin) hasta que se termina la tarea
Diversos algoritmos pueden terminar la misma tarea con un diverso sistema de instrucciones en ms o menos el mismo tiempo, espacio, o esfuerzo que otros. Por ejemplo, tenemos dos diversas recetas para hacer una ensalada de papa, una puede tener cscara antes de cocer la papa, mientras que la otra presenta los pasos al revs, ambas hacen que los pasos se repitan con todas las papas y termina cuando la ensalada esta lista.
Ejecutando correctamente un algoritmo no solucionar el problema si el algoritmo es daado o no es apropiado para el problema. Por ejemplo, la ejecucin del algoritmo de la ensalada de papa fallar si no tenemos papas, incluso si todos los movimientos de preparar la ensalada se realizan como si las papas estuvieran all.
Algoritmos Formales
Los algoritmos son esenciales para la manera en que la computadora procesa la informacin, porque un programa de computadora es esencialmente un algoritmo que dice a la computadora el camino especifico (en qu orden especfico) para realizar una tarea especificada, tal como calcular el cheque o impresin de las boletas de los estudiantes. As, un algoritmo se puede considerar una secuencia de las operaciones que se pueden realizar.
Para cualquier proceso, el algoritmo debe ser definido: especificado de una manera que se aplique en todas las circunstancias posibles que podran presentarse. Es decir, cualquier paso condicional se debe tratar sistemticamente, caso-por-caso; los criterios para cada caso deben ser claros (y computables).
Porque un algoritmo es una lista exacta de pasos exactos, la orden al computar ser casi siempre crtica al funcionamiento del algoritmo. Las instrucciones deben de ser, generalmente, enumeradas explcitamente, y se describen como desde inicio hasta fin.
Implementando Algoritmos
Un algoritmo es un mtodo o un procedimiento para realizar una tarea (tal como solucionar un problema en matemticas, encontrar el producto ms fresco de un supermercado, o manipulacin de la informacin en general).
Los algoritmos se implementan como programas de computadora pero tambin pueden ser implementados para otros medios, tales como estar adentro de una red nerviosa (por ejemplo, el cerebro humano implementando aritmtica), o en circuitos elctricos o en un dispositivo mecnico.Lenguaje algortmico: Es una representacin, en cualquier forma (diagrama de flujo, pseudocdigo o cualquier otra), de un algoritmo.
Lenguaje de Programacin:
Los lenguajes de programacin son lenguajes especiales que ayudan al usuario a comunicarse con la computadora. Establecen una comunicacin entre el humano (que prefiere usar palabras, el sistema decimal) y la computadora, que trabaja solo con nmeros binarios (0's y 1's). Tipos de Lenguajes: Lenguaje de mquina: El lenguaje de mquina est orientado hacia la mquina que est constituida por varios arreglos de "bits".Este lenguaje es fcil de entender por la computadora, pero difcil para el usuario. Es el lenguaje original de la computadora el cual es generado por el "software", y no por el programador.
Lenguaje de bajo nivel: Es un lenguaje de programacin bien cercano al lenguaje de mquina.Es difcil de entender por las personas y requiere que los programadores codifiquen las instrucciones con muchos detalles. Ejemplo: lenguaje ensamblador.
Lenguaje de alto nivel: Es un lenguaje que se asemeja ms al lenguaje humano que a un lenguaje de mquina o ensamblador. Es ms fcil escribir programas en este lenguaje, pero luego deben ser traducidos por compiladores o intrpretes para que la computadora los entienda.
Procesadores de lenguajes
Programas traductores: Son los que traducen instrucciones de lenguajes de programacin de alto nivel al cdigo binario del lenguaje de la mquina.
Ejemplos de programas traductores Compilador: Es un programa que traduce un lenguaje de alto nivel al lenguaje de mquina de una computadora. Segn va ejecutando la traduccin, coteja los errores hechos por el programador. Traduce un programa una sola vez, generalmente, y es cinco veces ms rpido que los programas intrpretes. Ejemplos: ALGOL, BASIC, COBOL, FORTRAN, PASCAL y PL/1.
Intrprete: Es un programa que traduce un lenguaje de alto nivel al lenguaje de mquina de una computadora. El programa siempre permanece en su forma original (programa fuente) y traduce cuando est en la fase de ejecucin instruccin por instruccin. Ejemplo: BASIC
Ensamblador: Es un programa de bajo nivel que traduce el lenguaje de ensamble a lenguaje de mquina. Utiliza letras del alfabeto para representar los diferentes arreglos del cdigo binario de la mquina. Los programadores de ensamble deben conocer profundamente la arquitectura y el lenguaje de mquina de su computadora. El programa ensamblador traduce cada instruccin de ensamble escrita por el programador a la instruccin en lenguaje de mquina binario equivalente. En general, las instrucciones ("software") de un sistema se escriben en este lenguaje. Ejemplos: Sistema operativo y Sistemas de manejo de base de datos.
Ejemplos de lenguajes de alto nivel: Lenguaje C: Fue desarrollado a principios de la dcada de los 70 en Bell Laboratories por Brian Kernigham y Dennis Ritchie. Ellos necesitaban desarrollar un lenguaje que se pudiera integrar con UNIX, permitiendo a los usuarios hacer modificaciones y mejoras fcilmente. Fue derivado de otro lenguaje llamado BCPL.
Lenguaje C++: Fue desarrollado por Bjarne Stroustrup en los Bell Laboratories a principios de la dcada de los '80. C++ introduce la programacin orientada al objeto en C. Es un lenguaje extremadamente poderoso y eficiente.C++ es un super conjunto de C.
Programacin orientada al objeto: Las metas de la programacin orientada al objeto es mejorar la productividad de los programadores haciendo ms fcil de reusar y extender los programas y manejar sus complejidades.De esta forma, se reduce el costo de desarrollo y mantenimiento de los programas.En los lenguajes orientados al objeto los datos son considerados como objetos que a su vez pertenecen a alguna clase.A las operaciones que se definen sobre los objetos son llamados mtodos. Ejemplo de programas orientados al objeto: Visual BASIC y C++.
E. Metodologa para la Sol