Sei sulla pagina 1di 15

Captulo 1

INTRODUCCIN A LOS LENGUAJES DE PROGRAMACIN


Un Computador sin programas no es capaz de hacer casi nada; es el programa el que da vida al computador y lo deja preparado para realizar una tarea especfica, como puede ser el clculo de una nmina o llevar la contabilidad de una empresa. Para lograr un programa de cierta calidad es necesario conocer a fondo un lenguaje de programacin de alto nivel y tener una idea muy clara tanto de lo que se quiere realizar como de la forma de llevarlo a cabo. Esto puede quedar un poco lejos del alcance de un principiante, pero lo importante es empezar programando pequeas aplicaciones mediante un lenguaje que sea accesible. Un lenguaje de programacin es como un intermediario entre el mundo de las personas y el mundo binario del computador, permite indicar al computador lo que se desea que haga, pero eso s, siempre que se sigan de forma estricta las normas impuestas por el lenguaje de programacin y que la solucin que se ha pensado para resolver el problema sea vlida. Con esto se quiere decir que no se debe ser ambicioso a la hora de realizar programas por uno mismo (sobre todo si se es novato) y realizar pequeos programas que adems de suponer un buen entretenimiento, permitan conocer un poco ms la forma en la que se programa y en la que funciona el computador. Hay que ser consciente de las limitaciones de cada uno y no pensar nunca en que el problema queda resuelto comprando el mejor computador, ya que si queremos darle un uso serio ser necesario disponer de un programa de cierta calidad y que funcione sin problemas, ya que la mayora de las veces, quedar fuera de nuestro alcance y necesitaremos recurrir a los programas hechos por especialistas en el tema, la solucin al problema es un conjunto armado por un computador y un programa y nunca una de las dos variables por separado.

Captulo I Introduccin al lenguaje C++

1.1

QUE SIGNIFICA PROGRAMAR?

La programacin como comunicacin con una mquina es un arte. No por el hecho que, los que programan puedan ser considerados artistas sino porque la programacin es una prctica muy parecida a la creacin de una obra de arte. Basta con realizar una simple comparacin. Qu es lo necesario para pintar un retrato? Pues aparte del artista; un modelo; pinturas, lienzo y pinceles y la capacidad para hacerlo. En programacin resumiendo, son los algoritmos, herramientas y tcnicas. La realizacin de un programa es parecida a una obra de arte; tambin requiere estos tres ingredientes Capacidad de crear el algoritmo Unas herramientas de desarrollo adecuadas El buen uso de los lenguajes de programacin.

La enseanza de la informtica suele obviar uno de los tres ingredientes esenciales, las herramientas. La consecuencia es que quien se inicia a descubrir la programacin necesita horas y horas de lucha con el computador completamente innecesarias. Una vez que el cdigo est escrito es necesario compilar y enlazar; en ingls, build and link. Compila el compilador y enlaza el linker. En Conclusin programar es crear un programa! 1.2 HERRAMIENTAS PARA SOLUCIN LGICA DE UN PROBLEMA.

Programar no ha sido siempre fcil ni mucho menos, anteriormente era ms complicado y trabajoso, pues siempre que se deseaba programar algo haba que empezar desde el principio. Con el avance de las tcnicas informticas, el hombre se ha provisto de una serie de herramientas para facilitar esta tarea, as tenemos por ejemplo 1. DIAGRAMAS ESTRUCTURALES DEL PROGRAMA 2. ESTRUCTURAS DE CONTROL 3. ESTRUCTURAS DE DATOS 4. LENGUAJE DE DEFINICIN DEL PROGRAMA

Captulo I Introduccin al lenguaje C++

1.2.1 DIAGRAMAS ESTRUCTURALES DEL PROGRAMA Una forma alterna de enfocar la solucin a un problema es dibujar un diagrama estructural del programa, en el cual se muestran las relaciones entre un programa y sus procesos. Un diagrama estructural es una representacin grfica de la relacin entre un programa y sus procesos. Proporciona una documentacin visual de la estructura en conjunto de la solucin de un problema. 1.2.2 ESTRUCTURAS DE CONTROL Las estructuras de control se usan para mostrar la lgica de una solucin. operacin debe terminarse. Una estructura de control muestra las condiciones que controlan, o determinan, si una Podemos decir que las estructuras de control son los Es este modo las estructuras de control son las medios por los cuales organizamos y decidimos si se ejecutan o no diversas partes de la solucin y bajo qu condiciones. problema. Existen tres estructuras de control: herramientas que utilizamos para organizar y controlar la solucin lgica de un

ESTRUCTURAS DE CONTROL Secuenciacin Repeticin Seleccin Agrupamiento de uno o ms pasos que son manejados como uno solo Repeticin de una secuenciacin. Seleccin de una secuenciacin. Tabla 1.1 Herramientas de control ms conocidas

1.2.2.1

Secuenciacin.-

Es un agrupamiento de una o ms operaciones que

describe qu o cmo hacer alguna tarea. 1.2.2.2 realizarse. La prueba consiste en formular una pregunta; si la respuesta es s, entonces se ejecuta la secuenciacin indicada. Repeticin.- La estructura de repeticin est diseada para controlar la

repeticin de una secuenciacin. Adems debe probar si una repeticin deber

Captulo I Introduccin al lenguaje C++

El proceso se repite hasta que la respuesta a la pregunta sea no. Despus se ejecuta la operacin que sigue a la repeticin. 1.2.2.3 Seleccin.La estructura de seleccin nos permite determinar cul de

los diversos cursos posibles de accin se escoge. La forma ms simple de la estructura de seleccin es el enunciado if / else. 1.2.3 ESTRUCTURAS DE DATOS Las estructuras de datos nos proporcionan una manera precisa de ver cmo diferentes datos se almacenan en la memoria de la computadora, y ms que eso, el tipo de estructura de datos define que operaciones estn permitidas y cules no para los diferentes datos. Una estructura de datos es algo parecido a un modelo por ejemplo para los tipos de datos numricos estn permitidas las operaciones aritmticas y de comparacin, para los datos tipo carcter no est permitidas las operaciones aritmticas, pero s estn permitidas las operaciones de comparacin. OPERACIONES SOBRE LOS DATOS
Operaciones aritmticas Suma Resta Multiplicacin Divisin Races cuadradas Tablas Vectores Operaciones con caracteres Comparar Leer Escribir Construir palabras Lneas Pginas Volmenes

Tabla 1.2 Operaciones sobre los diferentes datos en C++

1.2.4 LENGUAJE DE DEFINICIN DEL PROGRAMA El lenguaje de definicin del programa o llamado tambin pseudolenguaje (lenguaje falso), ya que se parece un poco al lenguaje de programacin y un poco al lenguaje natural, a pesar de no ser ninguno de los dos anteriores es una manera muy razonablemente precisa de describir cmo las estructuras de control controlan las operaciones sobre los datos.

Captulo I Introduccin al lenguaje C++

En la ingeniera de software Un Lenguaje de Definicin de Programa, o PDL se utiliza para describir las soluciones a un problema antes de escribir dichas soluciones en un lenguaje de computadora. Es as que la utilizacin de: La palabra Programa (main) para mostrar que estamos describiendo la lgica para un programa 1.3 { } Comienza y termina la cabecera del programa HERRAMIENTAS DE PROGRAMACIN ACTUALES

En la actualidad existen herramientas de programacin se pueden dividir en varios tipos que lo revisaremos brevemente as tenemos: 1.3.1 Generadores de programas Son herramienta se encarga de generar el cdigo fuente o incluso directamente el cdigo ejecutable de la aplicacin. Estas herramientas normalmente se encuentran orientadas a la generacin de aplicaciones de gestin y estn disponibles en diversos lenguajes. 1.3.2 Depuradores Son programas que permiten seguir la ejecucin de otro programa, paso a paso. y comprobar en todo momento diversos parmetros de su funcionamiento como son las variables, el estado de los ficheros, las operaciones de entrada y salida, etc. Normalmente se basan en una pantalla en la que se representa toda la informacin til para la supresin de los errores que se hayan podido cometer durante la programacin. 1.3.3 Optimizadores de cdigo Son programas que realizan un estudio estadstico de la ejecucin de otros programas, permitiendo a la vez comprobar cules son las partes ms utilizadas de dichos programas. Mediante este tipo de herramientas se pueden comparar los tiempos de ejecucin y el tamao del cdigo de las distintas versiones de un programa para elegir de esta forma la que mejores resultados proporcione en lo que respecta a la velocidad de ejecucin y al tamao del mismo.

Captulo I Introduccin al lenguaje C++

1.3.4 Traductores de lenguajes Son programas que permiten traducir de un cdigo fuente, por ejemplo PASCAL, a otro cdigo fuente, como puede ser C++, para poder adaptar programas de unos a otros, permitiendo de esta forma que funcionen con otros computadores y sistemas operativos. 1.3.5 Libreras Son herramientas que dispone el programador, ya que suelen ser un recurso del mismo lenguaje de programacin al que acompaan. Estas libreras pueden ser de propsito general. Por ejemplo, existen libreras especializadas en la realizacin de interfaces de usuario y otras que suministran funciones para el manejo de ventanas, ratn e iconos. Tambin existen libreras especializadas en el manejo de grficos, operaciones matemticas, estadsticas, etc. 1.3.6 La inteligencia artificial y los sistemas expertos La inteligencia artificial y los sistemas expertos han revolucionado ciertos aspectos de la informtica de los actuales das. Aunque es una ciencia relativamente reciente ya est dando sus primeros frutos. Si pensamos en lo que el futuro puede depararnos llegar un da en el que podremos ceder completamente todo nuestro trabajo a ese potente aliado que es el computador.

1.3.7 Biblioteca estndar de C++


Seguramente en el compilador que ha estado utilizando, sea Visual C++, Dev C++ o cualquier otro que no sea muy viejo, es decir anterior al ao de 1998, le ha estado marcando algunos Warnings a la hora de compilar su cdigo fuente, trate de corregirlos. Uno de ellos que quiz no sepa a que se refiere es: #warning This file includes at least one deprecated or antiquated header... To disable this warning use -Wno-deprecated. Este warning est presente en el compilador GCC, y aparece debido a los archivos de cabecera que hemos empleado hasta este momento. En el estndar de C++ las bibliotecas dejan de utilizar el .h, es decir que en lugar de utilizar <iostream.h>, ahora tendr que escribirse <iostream>, en vez de <iomanip.h> ser <iomanip>.

Captulo I Introduccin al lenguaje C++

A pesar que esto tiene varias ventajas, que tal vez no vea en este momento, se tendra que colocar std antes de cada llamada a una funcin de la biblioteca, debido a que toda la biblioteca estndar de C++ est definida en el espacio de nombres llamado std. Con esto, tendramos que hacer una llamada a escribir en pantalla con la instruccin std::cout. Para evitar esto, y por consiguiente hacer menos extenso el cdigo a escribir, podemos emplear la directriz using, indicando al compilador el espacio de nombres donde est referenciado. Por ejemplo, el siguiente programa es la nueva versin de uno de los programas escritos.
#include <iostream> using namespace std; int main(){ cout<< Saludos <<endl; return 0; }

Para tener una idea de las capacidades aportadas por la biblioteca estndar, presento la siguiente tabla en donde se clasifican las libreras de acuerdo a su funcionalidad.

BIBLIOTECAS ESTNDAR DE C++ 5


ENTRADA/SALIDA <stdio> E/S de la biblioteca de C++ <stdlib> Funciones de clasificacin de caracteres <wchar> E/S de caracteres extendidos <fstream> Flujos para trabajo con ficheros en disco <iomanip> Manipuladores <ios> Tipos y funciones bsicos de E/S <iosfwd> Declaraciones adelantadas de utilidades de E/S <iostream> Objetos y operaciones sobre flujos estndar de E/S <istream> Objetos y operaciones sobre flujos de entrada <ostream> Objetos y operaciones sobre flujos de salida <sstream> Flujos para trabajar con cadenas de caracteres <streambuf> Bferes de flujos CADENAS <ctype> Examinar y convertir caracteres <stdlib> Funciones de cadena estilo C++ <string> Funciones de cadena estilo C++ <wchar> Funciones de cadena de caracteres extendidos estilo C++ <wctype> Clasificacin de caracteres extendidos <string> Clases para manipular cadenas de caracteres CONTENEDORES <bitset> Matriz de bits <deque> Cola de dos extremos de elementos de tipo T <list> Lista doblemente enlazada de elementos de tipo T <map> Matriz asociativa de elementos de tipo T <queue> Cola de elementos de tipo T

Captulo I Introduccin al lenguaje C++

<set> <stack> <vector> ITERADORES <iterator> ALGORITMOS <algorithm> <cstdlib> NMEROS <cmath> <complex> <cstdlib> <numeric> <valarray> DIAGNSTICOS <cassert> <cerrno> <exception> <stdexcept>

Conjunto de elementos de tipo T (contenedor asociativo) Pila de elementos de tipo T Matriz de elementos de tipo T Soporte para iteradores Algoritmos generales (buscar, ordenar, contar, etc.) bsearch y qsort Funciones matemticas Operaciones con nmeros complejos Nmeros aleatorios estilo C++ Algoritmos numricos generalizados Operaciones con matrices numricas Macro ASSERT Tratamiento de errores estilo C++ Clase base para todas las excepciones Clases estndar utilizadas para manipular excepciones

UTILIDADES GENERALES <ctime> Fecha y hora estilo C++ <functional> Objetos funcin <memory> Funciones para manipular bloques de memoria <utility> Manipular pares de objetos LOCALIZACIN <clocale> <locale> Control estilo C++ de las diferencias culturales Control de las diferencias culturales

SOPORTE DEL LENGUAJE <cfloat> Limites numricos en coma flotante de estilo C++ <climits> Limites numricos estilo C++ <csetjmp> Salvar y restaurar el estado de la pila <csignal> Establecimiento de manejadores para condiciones excepcionales (tambin conocidos como seales) <cstdarg> Lista de parmetros de funcin de longitud variable <cstddef> Soporte de la biblioteca al lenguaje C++ <cstdlib> Definicin de funciones, variables y tipos comunes <ctime> Manipulacin de la hora y fecha <exception> Tratamiento de excepciones <limits> Limites numricos <new> Gestin de memoria dinmica> <typeinfo> Identificadores de tipos durante la ejecucin

1.4

PASOS PARA LA SOLUCIN DE PROBLEMAS Intentar abreviar el proceso pasando

Cada paso deber seguirse cuidadosamente. solucin. 1.4.1 Comprender el problema

demasiado aprisa por los primeros pasos aumenta la posibilidad de errores en la

Para entender los requerimientos del problema y obtener los resultados esperados. Se debe de determinar: 1. La fuente y el tipo de datos para la entrada 2. La interaccin de los datos y su transformacin 3. El destino y el formato de la salida

Captulo I Introduccin al lenguaje C++

1.4.2 Disear una solucin Para disear una solucin puede escribirse como una secuenciacin organizando la informacin. 1.4.3 Probar el diseo Ser claros en la lgica utilizada es decir eliminar esta interrogante S realizamos la secuenciacin obtendremos la salida deseada? De lo contrario debemos regresar al paso anterior y resolver el problema si no se cumple con esta etapa no tendremos los resultados esperados 1.4.4 Traducir el diseo a un lenguaje de programacin Conocido como codificacin, o sea convertir o traducir un diseo a un lenguaje de programacin. Siempre tomando en cuenta las reglas de organizacin y puntuacin del lenguaje de programacin C++ 1.4.5 Preparar el problema en el lenguaje seleccionado Corresponde a la edicin creacin y/o modificacin del texto con la utilizacin de un Ambiente Integrado de Desarrollo IDE del sistema como C++ 1.4.6 Compilacin del programa El traductor o compilador, nos indicar si hemos empleado correctamente la organizacin y la puntuacin. Si existen errores se debe regresar al paso anterior 1.4.7 Correr el programa y comprobar los resultados Correr es sinnimo de probar la lgica y determinar si es correcta, probar el programa con datos sean grandes y/o pequeos, en el caso de existir problemas o resultados errneos se debe revisar tanto la sintaxis como la semntica. 1.4.8 Depurar si es necesario (debug) Depurar significa Debugging, depuracin o eliminacin de errores y se determina por que razn es causado el error Mal entendido del lenguaje de programacin regresar a Traducir el diseo a un lenguaje de programacin Por el diseo defectuoso regresar a probar el diseo o por falta de comprensin del problema regresar a Comprender el problema.

Captulo I Introduccin al lenguaje C++

10

Ejemplo: Dado un conjunto finito C de nmeros, se tiene el problema de encontrar el nmero ms grande. Sin prdida de generalidad se puede asumir que dicho conjunto no es vaco y que sus elementos estn numerados como C1,C2, Cn Es decir, dado un conjunto C={C0,C1,,Cn} se pide encontrar m tal que x<=m para todo elemento x que pertenece al conjunto C. Para encontrar el elemento mximo, se asume que el primer elemento (C0) es el mximo; luego, se recorre el conjunto y se compara cada valor con el valor del mximo nmero encontrado hasta ese momento. En el caso que un elemento sea mayor que el mximo, se asigna su valor al mximo. Cuando se termina de recorrer la lista, el mximo nmero que se ha encontrado es el mximo de todo el conjunto. DESCRIPCIN FORMAL El algoritmo puede ser escrito de una manera ms formal en el siguiente pseudocdigo: ALGORITMO ENCONTRAR EL MXIMO DE UN CONJUNTO

SOBRE LA NOTACIN:

IMPLEMENTACIN
En lenguaje C++: int max(int c[], int n) {

Captulo I Introduccin al lenguaje C++

11

int i, m = c[0]; for (i = 1; i < n; i++) if (c[i] > m) m = c[i]; return m; }

1.5 En

HERRAMIENTAS RPIDAS PARA SOLUCIN DE PROBLEMAS EN C++ general un problema de informacin es posible entenderlo, analizarlo y

descomponerlo en todos sus componentes o partes que de una u otra manera intervienen tanto en su planteamiento como en su solucin. Una herramienta rpida que nos permite descomponer en partes un problema para su solucin, es el llamado modelo de solucin, este consiste de una pequea caja que contiene los tres elementos ms bsicos en que se puede descomponer cualquier problema sencillo de informacin, estas tres partes son: LA PRIMERA PARTE Son todos los datos que el computador ocupa para resolver el problema, estos datos son almacenados internamente en la memoria del computador en las llamadas variables de entrada. LA SEGUNDA PARTE Son todas las operaciones generalmente algebraicas necesarias para solucionar el problema, generalmente esta parte del modelo es una formula (o igualdad matemtica, Ejemplo ( X= y + 5). LA TERCERA PARTE Es el resultado o solucin del problema que generalmente se obtiene de la parte de operaciones del modelo y dichos datos estn almacenados en las llamadas variables de salida. En resumen para todo problema sencillo de informacin es necesario plantearse las siguientes preguntas: Que datos necesita conocer el computador para resolver el problema y en cuales variables de entrada se van a almacenar? Que procesos u operaciones debe realizar el computador para resolver el problema planteado. Que informacin o variables de salida se van a desplegar en pantalla para responder al problema planteado originalmente?

Captulo I Introduccin al lenguaje C++

12

EJERCICIOS PROPUESTOS PARA EXAMEN Un problema puede tener ms de una solucin correcta. En base a este criterio

construir un modelo de solucin que resuelva los siguientes ejercicios. EJEMPLO DE MODELO DE SOLUCIN
Calcular el rea de un tringulo con la formula rea igual a base por altura sobre dos area= base*altura/2

Variable(s) de Entrada.

Proceso u Operacin

Variable(s) de Salida.

base area altura

base * altura / 2

area

Calcule el voltaje de un circuito dada una intensidad I y una resistencia R. Formula (V=IR)
Variable(s) de Entrada. Proceso u Operacin Variable(s) de Salida.

Calcule la frecuencia de una onda que circula con un tiempo t. Formula (F=1/t)
Proceso u Operacin Variable(s) de Salida.

Variable(s) de Entrada.

Calcule la potencia de un circuito con un voltaje V y una intensidad I. Formula (f = VI)


Proceso u Operacin Variable(s) de Salida.

Variable(s) de Entrada.

Captulo I Introduccin al lenguaje C++

13

Calcular la corriente de un circuito con un voltaje de 15v y una resistencia de 6 ohms. Formula (I= V/R)

Variable(s) de Entrada.

Proceso u Operacin

Variable(s) de Salida.

Evaluar el factorial de cualquier numero usando la formula: n!=n!-1


Proceso u Operacin Variable(s) de Salida.

Variable(s) de Entrada.

Se desea instalar un cable de red, el cliente pide 30 pies, considerando que se venden en metros, cuantos deber comprar.

Variable(s) de Entrada.

Proceso u Operacin

Variable(s) de Salida.

Evaluar la funcin Y=3x2+2x-5 para cualquier valor de x.(caso normal).


Proceso u Operacin Variable(s) de Salida.

Variable(s) de Entrada.

Captulo I Introduccin al lenguaje C++

14

1.7

PREGUNTAS DE REPASO PARA EXAMEN

Indique el concepto de lenguajes de alto y bajo nivel

______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________

Indique la diferencia entre compilador e intrprete

______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________

Qu es una librera

______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________

Qu es un intrprete

____________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________

Qu es un compilador

____________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ Complete

Est formado de un conjunto de smbolos y reglas sintcticas y semnticas que definen su estructura y el significado de sus elementos y expresiones ______________________________

Es una descripcin o un conjunto de instrucciones que permiten habilitar a la mquina para que realice un trabajo determinado___________________________________

Es un lenguaje de especificacin de algoritmos que se aproxima al lenguaje natural su nombre es ____________________________________

Depende mucho del hardware, es uno de los lenguajes ms potentes porque nos permite programar a alto y a bajo nivel, pero debemos hacerlo nosotros mismos casi todo hablamos del lenguaje _________________________________

Captulo I Introduccin al lenguaje C++

15

Indique las herramientas para solucin lgica de un problema que usted conoce?

______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ Qu es programar?

______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ Que son los diagramas estructurales de un programa

______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ Qu es una estructura de datos

______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ Cuales son las herramientas de programacin actuales que usted conoce

______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ Qu es la inteligencia artificial y los sistemas expertos

______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ Que significa compilacin de un programa?

______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________

Con un ejemplo explique un de modelo de solucin de problemas computacionales.

______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________

Potrebbero piacerti anche