apuntes logica de prog

Click here to load reader

Post on 17-Jan-2016

224 views

Category:

Documents

0 download

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