Download taller realizado para el primer corte
Document related concepts
Transcript
FACULTAD DE INGENIERÍA ________________________________________________________________________________ TALLER REALIZADO PARA EL PRIMER CORTE PRESENTADO POR: KENDRIS JOHANA RODRÍGUEZ GÓMEZ CÓD.: 93110209973 UNIVERSIDAD DE LA GUAJIRA FACULTAD DE INGENIERÍA DE SISTEMA PROGRAMA INGENIERÍA DE SISTEMAS RIOHACHA, LA GUAJIRA 2012 FACULTAD DE INGENIERÍA ________________________________________________________________________________ TALLER REALIZADO PARA EL PRIMER CORTE TALLER PRESENTADO EN LA ASIGNATURADE ALGORITMO Y POOI PARA LA PROFESORA: SANDY ROMERO CUELLO UNIVERSIDAD DE LA GUAJIRA FACULTAD DE INGENIERÍA DE SISTEMA PROGRAMA INGENIERÍA DE SISTEMAS RIOHACHA, LA GUAJIRA 2012 FACULTAD DE INGENIERÍA ________________________________________________________________________________ CONTENIDO 1) Que es un lenguaje de programación 2) Tipos de lenguaje de programación 3) Que es el lenguaje de C++ 4) Características 5) Tipos de datos, conceptos y ejemplos 6) Estructura de un programa en C++, identifique cada parte 7) Que es una librería, cuales son las mas utilizadas 8) Como se lee, ejemplo 9) Como se escribe, ejemplo 10) Como se asigna, ejemplo 11) Como se representan los condicionales en C++ 12) Cinco (5) ejemplos de programas sencillos en C++ 13) Operadores lógicos, aritméticos y relacionales en C++ FACULTAD DE INGENIERÍA ________________________________________________________________________________ TALLER DEL PRIMER CORTE 1) QUE ES UN LENGUAJE DE PROGRAMACIÓN? Un lenguaje de programación es aquel elemento dentro de la informática que nos permite crear programas mediante un conjunto de instrucciones, operadores y reglas de sintaxis; que pone a disposición del programador para que este pueda comunicarse con los dispositivos hardware y software existentes. Un lenguaje de programación es un conjunto limitado de palabras y de símbolos que representan procedimientos, cálculos, decisiones y otras operaciones que pueden ejecutar una computadora. A pesar de que en este trabajo parte de la división de lenguajes de programación en imperativos y declarativos. Para que un conjunto de circuitos desempeñen una tarea determinada y nos dé el resultado que nosotros esperamos, nuestro lenguaje deberá ser traducido en lenguaje binario cuyo alfabeto es el 0 y el 1, mediante las herramientas desarrolladas para llevar para llevar a cabo esta tarea, las cuales reciben el nombre de traductores. 2) TIPOS DE LENGUAJE DE PROGRAMACIÓN Los lenguajes de programación se pueden clasificar atendiendo a varios criterios: • Según el nivel de abstracción • Según la forma de ejecución Según el paradigma de programación que poseen cada uno de ellos Según su nivel de abstracción Lenguajes Maquina: están escritos en lenguajes directamente inteligibles por la maquina (computadora), ya que sus instrucciones son cadenas binarias (0 y 1). En informática, cualquier lenguaje artificial que puede utilizarse para definir una secuencia de instrucciones para su procesamiento por un ordenador o computadora. Es complicado definir qué es y qué no es un lenguaje de programación. Se asume generalmente que la traducción de las instrucciones a un código que comprende la computadora debe ser completamente sistemática. Normalmente es la computadora la que realiza la traducción. FACULTAD DE INGENIERÍA ________________________________________________________________________________ EJEMPLO: Respuesta de ALEGSA: Te voy a dar un ejemplo de código o lenguaje máquina: 00000 1001110 LOAD 11110 00001 10110100 STOR 10100 00010 10011110 LOAD 11110 00011 11010100 ADD 10100 00100 10111111 STOR 11111 00101 00000000 HALT Lenguajes de bajo nivel: Los lenguajes de bajo nivel son lenguajes de programación que se acercan al funcionamiento de una computadora. El lenguaje de más bajo nivel por excelencia es el código máquina. Los lenguajes de bajo nivel, también llamados lenguajes ensambladores, permiten al programador escribir instrucciones de un programa usando abreviaturas del inglés, también llamadas palabras nemotécnicas, tales como: ADD, DIV, SUB, etc. Un programa escrito en un lenguaje ensamblador tiene el inconveniente de que no es comprensible para la computadora, ya que, no está compuesto por ceros y unos. Para traducir las instrucciones de un programa escrito en un lenguaje ensamblador a instrucciones de un lenguaje máquina hay que utilizar un programa llamado ensamblador, como se muestra en la siguiente figura: EJEMPLO: Código Operación Dirección 00010101 00010111 00010110 10000001 10000010 10000011 Inst. En lenguaje Ensamblador LOAD A ADD B STORE C FACULTAD DE INGENIERÍA ________________________________________________________________________________ Lenguajes de medio nivel: Minoritariamente en algunos textos se diferencian algunos lenguajes como de medio nivel, como el lenguaje C, ya que tienen ciertas características que los acercan a los lenguajes de bajo nivel, como gestión de punteros de memoria y registros, pero con sintaxis, vocabulario y gramática de alto nivel. Permiten un mayor grado de abstracción pero al mismo tiempo mantienen algunas cualidades de los lenguajes de bajo nivel. EJEMPLO: C puede realizar operaciones lógicas y de desplazamiento con bits, tratar todos los tipos de datos como lo que son en realidad a bajo nivel (números), etc. Lenguajes de alto nivel: permite al programador escribir las instrucciones de un programa utilizando palabras o expresiones sintácticas muy similares al inglés. Por ejemplo, en C se pueden usar palabras tales como: case, if, for, while, etc. para construir con ellas instrucciones como: if( numero > 0 ) printf( "El número es positivo" ) que traducido al castellano viene a decir que: si numero es mayor que cero, entonces, escribir por pantalla el mensaje: "El número es positivo". Ésta es la razón por la que a estos lenguajes se les considera de alto nivel, porque se pueden utilizar palabras de muy fácil comprensión para el programador. En contraposición, los lenguajes de bajo nivel son aquellos que FACULTAD DE INGENIERÍA ________________________________________________________________________________ están más cerca del "entendimiento" de la máquina. Otros lenguajes de alto nivel son: Ada, BASIC, COBOL, FORTRAN, Pascal, etc. Otra característica importante de los lenguajes de alto nivel es que, para la mayoría de las instrucciones de estos lenguajes, se necesitarían varias instrucciones en un lenguaje ensamblador para indicar lo mismo. De igual forma que, la mayoría de las instrucciones de un lenguaje ensamblador, también agrupa a varias instrucciones de un lenguaje máquina. EJEMPLOS: - Java - BASIC - C - Visual Basic - C++ - Pascal - COBOL FORTRAN - PROLOG - LISP - PL/I - SMALLTALK – ADA. • Según la forma de ejecución Lenguajes compilados: Antes de poder utilizarse el programa debe utilizarse un traductor llamado “compilador” que se encarga de traducir (“compilar”) el programa original (“código fuente”) al programa equivalente escrito en lenguaje de máquina o ensamblador (“binario”). Los binarios son los programas ejecutables y los únicos necesarios para el funcionamiento del programa. FACULTAD DE INGENIERÍA ________________________________________________________________________________ Un compilador es un programa que permite traducir el código fuente de un programa en lenguaje de alto nivel, a otro lenguaje de nivel inferior (típicamente lenguaje de máquina). De esta manera un programador puede diseñar un programa en un lenguaje mucho más cercano a como piensa un ser humano, para luego compilarlo a un programa más manejable por una computadora. EJEMPLO: FACULTAD DE INGENIERÍA ________________________________________________________________________________ Lenguajes interpretados: Cada vez que se usa el programa debe utilizarse un traductor llamado “intérprete” que se encarga de traducir (“interpretar”) las instrucciones del programa original (“código fuente”) a código máquina según van siendo utilizadas. Para el funcionamiento del programa siempre es necesario disponer del código original y del intérprete. EJEMPLO: Java Script (todas las plataformas) Logo (Linux, Windows y Mac) Lenguaje de programación R Lisp Lua Lush (Lisp para gráficos Linux) FACULTAD DE INGENIERÍA ________________________________________________________________________________ Diferencias entres lenguajes compilados e interpretados ● Los lenguajes compilados se compilan una vez y se utilizan cuantas veces se desee sin necesidad de volver a utilizar el compilador. Los lenguajes interpretados son interpretados, valga la redundancia, cada vez que se ejecutan y necesitan siempre del intérprete. ● Los compiladores analizan todo el programa y no generan resultados si no es correcto todo el código. Los intérpretes analizan las instrucciones según las necesitan y pueden iniciar la ejecución de un programa con errores e incluso terminar correctamente una ejecución de un programa con errores siempre que no haya sido necesario el uso de las instrucciones que contienen dichos errores. ● Un compilador traduce cada instrucción una sola vez. Un intérprete debe traducir una instrucción cada vez que la encuentra. ● Los binarios son compilados para una arquitectura específica y no pueden ser utilizados en otras arquitecturas no compatibles (aunque pueden existir distintos compiladores para generar binarios para diferentes arquitecturas). Un lenguaje interpretado puede ser utilizado en cualquier arquitectura que disponga de un intérprete sin necesidad de cambios. ● Los lenguajes compilados son más eficientes que los interpretados y además permiten distribuir el programa en forma confidencial mediante binarios. ● Es más sencillo empaquetar lenguajes interpretados dentro de otros lenguajes, como Java Script dentro de HTML. según el paradigma de programación: Un paradigma de programación representa un enfoque particular o filosofía para la construcción del software. Si bien puede seleccionarse la forma pura de estos paradigmas a la hora de programar, en la práctica es habitual que se mezclen, dando lugar a la programación multiparadigma. Los diferentes paradigmas de programación son: Algorítmico, Imperativo o Por procedimientos. El más común y está representado, por ejemplo, por C o por BASIC. Describe la programación en términos del estado del programa y sentencias que cambian dicho estado. Los programas imperativos son un conjunto de instrucciones que le indican al computador cómo realizar una tarea. La implementación de hardware de la mayoría de computadores es imperativa ya que el hardware está diseñado para ejecutar código de máquina que es imperativo. FACULTAD DE INGENIERÍA ________________________________________________________________________________ Declarativo o Predicativo Basado en la utilización de predicados lógicos (lógico) o funciones matemáticas (funcional), su objetivo es conseguir lenguajes expresivos en los que no sea necesario especificar cómo resolver el problema (programación convencional imperativa), sino qué problema se desea resolver. Los intérpretes de los lenguajes declarativos tienen incorporado un motor de inferencia genérico que resuelve los problemas a partir de su especificación. Lógico. Un ejemplo es PROLOG. El mecanismo de inferencia genérico se basa en los procedimientos de deducción de formulas válidas en un sistema axiomático Funcional. Representado por la familia de lenguajes LISP (en particular Scheme), ML o Haskell. El mecanismo de inferencia genérico se basa en la reducción de una expresión funcional a otra equivalente simplificada. ● Orientado a Objetos. Cada vez más utilizado, sobre todo en combinación con el imperativo. De hecho los lenguajes orientados a objetos permiten la programación imperativa. Algunos ejemplos de lenguajes orientados a objetos son C++, Java, Python. Usa objetos y sus interacciones para diseñar aplicaciones y programas de computadora. Está basado en varias técnicas, incluyendo herencia, modularidad, polimorfismo y encapsulamiento. 3) QUE ES EL LENGUAJE DE C++ C++ es un lenguaje imperativo orientado a objetos derivado del C. En realidad un supe conjunto de C, que nació para añadirle cualidades y características de las que carecía. El resultado es que como su ancestro, sigue muy ligado al hardware subyacente, manteniendo una considerable potencia para programación a bajo nivel, pero se la han añadido elementos que le permiten también un estilo de programación con alto nivel de abstracción. El lenguaje de programación C++ fue creado en los años 80 por Bjarne Stroustrup basando en el lenguaje C. El C++ es un lenguaje orientado a objetos al que se le añadieron características y cualidades de las que carecía el lenguaje C. El C++ depende mucho del hardware, es uno de los lenguajes más potentes porque nos permite programar a alto y a bajo nivel, es complicado porque debemos hacerlo nosotros mismos casi todo. El nombre fue propuesto por Rick Masciatti. El C++ es una extensión del lenguaje C. Este lenguaje es un lenguaje de programación mixto, se le puede compilar. Una de las ventajas que nos ofrece es que es mucho más sencillo de aprender para los programadores que ya conocen el lenguaje C. FACULTAD DE INGENIERÍA ________________________________________________________________________________ Un ejemplo de programa en C++, el clásico Hola mundo A continuación se cita un programa de ejemplo Hola mundo escrito en C++: /* Esta cabecera permite usar los objetos que encapsulan los descriptores stdout y stdin: cout(<<) y cin(>>)*/ #include <iostream> using namespace std; int main() { cout << "Hola mundo" << endl; return 0; } 4) CARACTERÍSTICAS Las principales características del Lenguaje C son: 1.-Tiene un conjunto completo de instrucciones de control. 2.-Permite la agrupación de instrucciones. 3.-Incluye el concepto de puntero (variable que contiene la dirección de otra variable). 4.-Los argumentos de las funciones se transfieren por su valor. - E/S no forma parte del lenguaje, sino que se proporciona a través de una biblioteca de funciones. Permite la separación de un programa en módulos que admiten compilación independiente. Originalmente el Lenguaje C estuvo muy ligado al sistema operativo UNIX como se había mencionado antes que, en su mayor parte, está escrito en C. Más adelante se comenzó a utilizar en otros sistemas operativos para programar editores, compiladores, etc. Aunque se le conoce como un lenguaje de programación de sistemas, no se adapta mal al resto de aplicaciones. De hecho, hoy en día un alto porcentaje de software para ordenadores personales está escrito en Lenguaje C. Por ejemplo, el sistema operativo MS-DOS. Algunas de las características más importantes que definen el lenguaje y que han permitido que sea tan popular, como lenguaje de programación son: FACULTAD DE INGENIERÍA ________________________________________________________________________________ Tamaño pequeño. Uso extensivo de llamadas a funciones. Comandos breves (poco tecleo). Lenguaje estructurado. Programación de bajo nivel (nivel bit) Implementación de apuntadores uso extensivo de apuntadores para la memoria, arreglos, estructuras y funciones Las diversas razones por la cual se ha convertido en un lenguaje de uso profesional son: El uso de constructores de alto nivel El poder manejar actividades de bajo-nivel. El generar programas eficientes. La posibilidad de poder ser compilado en una variedad de computadoras, con pocos cambios (portabilidad). Un punto en contra es que tiene una detección pobre de errores, lo cual en ocasiones es problemático para los principiantes FACULTAD DE INGENIERÍA ________________________________________________________________________________ 5) TIPOS DE DATOS, CONCEPTOS Y EJEMPLOS Enteros Nombre int Rango Máximo = 2,147,483,647 Mínimo = -2,147,483,648 Unsigned (sin signo) Máximo = 4294967295 Mínimo = 0 Espacio en memoria 4 bytes Máximo = 32767 Mínimo = -32768 short long long Unsigned (sin signo) Máximo = 65,535 Mínimo = 0 Máximo = 9,223,372,036,854,775,807 Mínimo = 9,223,372,036,854,775,808 Unsigned (sin signo) Máximo = 18,446,744,073,709,551,616 Mínimo = 0 2 bytes 8 bytes Reales (coma flotante) Nombre Rango float Exponente Máximo = 10^37 Exponente Mínimo = 10^-37 double Exponente Máximo = 10^308 Exponente Mínimo = 10^-308 Espacio en memoria 4 bytes 8 bytes FACULTAD DE INGENIERÍA ________________________________________________________________________________ Caracteres Nombre char Rango Máximo = 255 Mínimo = 0 Espacio en memoria 1 byte INT: El especificador de tipo int, junto con sus variantes short y long en sus versiones signed y unsigned, identifican a los enteros. Sintaxis: [Signed | unsigned] int <identificador>; El especificador int se utiliza para definir un dato tipo número entero. Junto con sus variantes short y long en sus versiones signed y unsigned, dan lugar a las combinaciones autorizadas que se indican en la tabla, los sinónimos se deben a los valores que (salvo indicación en contrario) se suponen por defecto. EJEMPLO: FACULTAD DE INGENIERÍA ________________________________________________________________________________ 6) ESTRUCTURA DE UN PROGRAMA EN C++, IDENTIFIQUE CADA PARTE Todo programa escrito en C consta de una o más funciones, una de las cuales se llama main. El programa siempre comenzará por la ejecución de la función main. Cada función debe contener: Una cabecera de la función, que consta del nombre de la función, seguido de una lista opcional de argumentos encerrados con paréntesis. Una lista de declaración de argumentos, si se incluyen estos en la cabecera. Una sentencia compuesta, que contiene el resto de la función. Los argumentos son símbolos que representan información que se le pasa a la función desde otra parte del programa. (También se llaman parámetros a los argumentos). Cada sentencia compuesta se encierra con un par de llaves, {.....}. Las llaves pueden contener combinaciones de sentencias elementales (denominadas sentencias de expresión) y otras sentencias compuestas. Así las sentencias compuestas pueden estar anidadas, una dentro de otra. Cada sentencia de expresión debe acabar en punto y coma (;). Los comentarios pueden aparecer en cualquier parte del programa, mientras estén situados entre los delimitadores /*................ */ (por ejemplo: /*esto es un ejemplo*/). Los comentarios son útiles para identificar los elementos principales de un programa o simplemente para orientar a un posible usuario de ese código. La mejor forma de aprender un lenguaje es programando con él. El programa más sencillo que se puede escribir en C es el siguiente: main() { } FACULTAD DE INGENIERÍA ________________________________________________________________________________ Como podemos imaginar, este programa no hace nada, pero contiene la parte más importante de cualquier programa C y además, es el más pequeño que se puede escribir y que se compila correctamente. En él se define la función main, que es la que ejecuta el sistema operativo al llamar a un programa C. El nombre de una función C siempre va seguida de paréntesis, tanto si tiene argumentos como si no. La definición de la función está formada por un bloque de sentencias, que esta encerrado entre llaves { }. Un programa algo más complicado, pero que hace algo, es el siguiente: #include <stdio.h> main() { /* Este es mi primer programa en C*/ printf("Bienvenido a la programación en lenguaje C\n"); return 0; } Con él visualizamos el mensaje Bienvenido a la programación en lenguaje C en el terminal. La primera línea indica que se tengan en cuenta las funciones y tipos definidos en la biblioteca stdio (standard input/output). Estas definiciones se encuentran en el fichero de encabezado (header) stdio.h. En la función main se incluye una primera sentencia que llama a la función printf. Ésta toma como argumento (encerrado entre paréntesis) una cadena de caracteres limitados por dobles comillas " " y la imprime en la salida habitual, que generalmente es el terminal en el que trabajamos. El símbolo \n indica un cambio de línea. La segunda sentencia, return 0, termina el programa y devuelve un valor (cero) al sistema operativo (por lo general es cero si la ejecución fue correcta y se usan valores distintos de cero para indicar diversos errores que pudieron ocurrir). Si bien no es obligatorio terminar el programa con un return, es conveniente indicarle FACULTAD DE INGENIERÍA ________________________________________________________________________________ a quien lo haya invocado, sea el Sistema Operativo o algún otro programa, si la finalización ha tenido éxito o no. De cualquier manera, en este caso, si sacamos esa sentencia el programa, éste funcionará exactamente igual, pero al ser compilado, el compilador nos advertirá de la falta de retorno. La inclusión de comentarios en un programa es una saludable práctica, como lo reconocerá cualquiera que haya tratado de leer un listado hecho por otro programador o por sí mismo, varios meses atrás. Para el compilador, los comentarios son inexistentes, por lo que no generan líneas de código, permitiendo abundar en ellos tanto como se desee. En el lenguaje C se toma como comentario todo carácter entre los símbolos: /* */. Cada sentencia de programa queda finalizada por el terminador ";", que indica al compilador el fin de la misma. Esto es necesario ya que sentencias complejas pueden llegar a tener más de un renglón, y habrá que avisar al compilador donde termina. Es perfectamente lícito escribir cualquier sentencia abarcando los renglones que la misma necesite; por ejemplo podría ser: Printf ("Bienvenido a la programación en lenguaje C\n"); Un programa en C es simplemente un fichero de caracteres que contiene un conjunto de instrucciones que un programa especial, el compilador o traductor, se encarga de transformar en un código que la computadora puede ejecutar (código objeto). En general, un programa suele estar compuesto de tres partes: el encabezamiento, que especifica las declaraciones globales de los datos y sus tipos, que vamos a manejar a lo largo del programa; la función principal, que se suele llamar main, y define la estructura del programa. las funciones o subrutinas auxiliares, que realizan las operaciones necesarias; son llamadas por la rutina principal, la función main. Se suelen colocar después de esta función. FACULTAD DE INGENIERÍA ________________________________________________________________________________ Encabezamiento main( ) { variables locales sentencias } f1( ) { variables locales sentencias } ... ... … fn( ) { variables locales sentencias } cout << "Hello World!"; Esta línea es una instrucción C + +. Una declaración es una expresión simple o compuesto que en realidad puede producir algún efecto. De hecho, esta instrucción realiza la única acción que genera un efecto visible en nuestro primer programa. cout es el nombre de la secuencia de salida estándar en C + +, y el significado de toda la declaración es insertar una secuencia de caracteres (en este caso el Hola Mundo) en el flujo de salida estándar (cout, que usualmente corresponde a la pantalla). cout se declara en el iostream estándar de archivos en el estándar de espacio de nombres, así que por eso teníamos que incluir ese archivo específico y para declarar que íbamos para utilizar este espacio de nombres específico a principios de nuestro código. FACULTAD DE INGENIERÍA ________________________________________________________________________________ 7) QUE ES UNA LIBRERÍA, CUALES SON LAS MAS UTILIZADAS Son grupos de funciones que permiten realizar determinadas operaciones, al principio de los programas tendremos que llamar a las librerías necesitarías según las acciones que debe realizar el programa. La orden que llama a las librerías es, # include < nombre de la Liberia > Una biblioteca (o librería) C es una colección de bibliotecas utilizadas en el lenguaje de programación C. Las bibliotecas más comunes son la librería estándar de C y la ISO y estándar ANSI C provee las especificaciones de los estándares, las cuales son ampliamente compartidas entre bibliotecas. La biblioteca ANSI C estándar incluye rutinas para la entrada y salida de archivos, alojamiento de memoria y operaciones con datos comunes como funciones matemáticas, funciones de cadenas y funciones de hora y fecha. FACULTAD DE INGENIERÍA ________________________________________________________________________________ C++ no llega al nivel de simplicidad de su antecesor C, pero al igual que aquél, tampoco dispone de utilidades o funciones para entrada o salida implementadas en el propio lenguaje, de modo que estas y otras muchas, como manejo de cadenas de caracteres (strings), manejo de ficheros, funciones matemáticas Etc. son implementadas en forma de librerías externas. Una librería es un conjunto de recursos (algoritmos) prefabricados, que pueden ser utilizados por el programador para realizar determinadas operaciones. Las declaraciones de las funciones utilizadas en estas librerías, junto con algunas macros y constantes predefinidas que facilitan su utilización, se agrupan en ficheros de nombres conocidos que suelen encontrarse en sitios predefinidos. Por ejemplo, en los sistemas UNIX, en /usr/include. Estos ficheros se suelen llamar "de cabecera", porque es tradición utilizar las primeras líneas del programa para poner las directivas #include que los incluirá en el fuente durante la fase de preprocesador. Las más utilizadas: El estándar ANSI C define un conjunto de funciones, así como tipos relacionados y macros, que son proporcionados para la implementación. Todas las librerías son declaradas en un fichero cabecera. Para que sea visible al programa, se añade el comando del preprocesador #include. Por ejemplo: #include <stddef.h>; Cada fichero de cabecera se denomina librería. En la siguiente lista mostraremos la Librería junto con la Descripción: assert.h Contiene una macro para el diagnóstico dentro de los programas. ctype.h Contiene varias funciones para comprobación de tipos y transformación de caracteres. errno.h Contiene varias macros usadas para informar de errores. limits.h Contienen varias macros que definen constantes para el tamaño de tipo enteros. float.h Contienen varias macros que definen constantes para el tamaño de tipo flotante. FACULTAD DE INGENIERÍA ________________________________________________________________________________ locale.h Contienen varias macros, funciones y tipos para unidades locales, como unidad monetaria, tiempo, dígitos, etc. math.h Contiene una macro y varias funciones matemáticas. setjmp.h Contienen declaraciones que proporcionan una forma de evitar la secuencia normal de llamada y regreso de funciones. signal.h Contiene un tipo, dos funciones y varias macros para manejar condiciones excepcionales que aparecen durante la ejecución, tal como una señal de interrupción de una fuente externa o un error en la ejecución. stdarg.h Contiene un tipo y tres macros que proporcionan recursos para recorrer una lista de argumentos de función de tamaño y tipo desconocido. stddef.h Contiene varios tipos y macros que también están definidas en otras librerías, como size_t. stdio.h Contiene tipos, macros y funciones para la realización de tareas de E/S. stdlib.h Contiene tipos, macros y funciones para la conversión numérica, generación de números aleatorios, búsquedas y ordenación, gestión de memoria y tareas similares. string.h Contiene tipos, macros y funciones para la manipulación de cadenas de caracteres. time.h Contiene tipos, macros y funciones para la la manipulación de información sobre fechas y horas. ALGUNAS LIBRERÍAS ESTÁNDAR DE C++ Librería fstream: Flujos hacia/desde ficheros. Permite la manipulación de archivos desde el programar, tanto leer como escribir en ellos. Librería iosfwd: Contiene declaraciones adelantadas de todas las plantillas de flujos y sus typedefs estándar. Por ejemplo ostream. Librería iostream: Parte del a STL que contiene los algoritmos estándar, es quizá la mas usada e importante (aunque no indispensable). Librería list: Parte de la STL relativa a contenedores tipo list; listas doblemente enlazadas. FACULTAD DE INGENIERÍA ________________________________________________________________________________ Librería math: Contiene los prototipos de las funciones y otras definiciones para el uso y manipulación de funciones matemáticas. Librería memory: Utilidades relativas a la gestión de memoria, incluyendo asignado res y punteros inteligentes (auto_ptr). Librería new: Manejo de memoria dinámica Librería numeric: Parte de la librería numérica de la STL relativa a operaciones numéricas. Librería ostream: Algoritmos estándar para los flujos de salida. Librería queue: Parte de la STL relativa a contenedores tipo queue (colas de objetos). Librería stdio: Contiene los prototipos de las funciones, macros, y tipos para manipular datos de entrada y salida. Librería stdlib: Contiene los prototipos de las funciones, macros, y tipos para utilidades de uso general. Librería string: Parte de la STL relativa a contenedores tipo string; una generalización de las cadenas alfanuméricas para albergar cadenas de objetos. Librería typeinfo: Mecanismo de identificación de tipos en tiempo de ejecución. Librería vector: Parte de la STL relativa a los contenedores tipo vector; una generalización de las matrices unidimensionales C/C++. Es digno de mención que aunque generalmente las librerías no aportan ninguna característica al lenguaje (se supone que son utilidades auxiliares que no forman parte del lenguaje propiamente dicho), una pequeña porción de la Librería Estándar C++ sí aporta características que se consideran pertenecientes a este, de forma que deben estar presentes los ficheros de cabecera correspondientes si se desea usarlas. En concreto se refieren a los siguientes elementos: FACULTAD DE INGENIERÍA ________________________________________________________________________________ Operadores new, new, delete y delete. Clase type_info que corresponde al mecanismo RTTI de identificación de tipos en tiempo de ejecución representado por el operador typeid. Rutinas de inicio y terminación. Las excepciones estándar lanzadas por los algoritmos anteriores. 8) Como se lee, ejemplo 11) Como se representan los condicionales en C++ Leer tres números diferentes e imprimir el número mayor. FACULTAD DE INGENIERÍA ________________________________________________________________________________ 12) Cinco (5) ejemplos de programas sencillos en C++ 1. Crear un programa en C que lea dos números y que escriba el mayor de los dos. #include <stdio.h> int main(){ double x,y; printf("Escribe el primer número"); FACULTAD DE INGENIERÍA ________________________________________________________________________________ scanf("%lf",&x); printf("Escribe el segundo número"); scanf("%lf",&y); if(x>y) printf("El mayor es %f",x); else if(y>x) printf("El mayor es %f",y); else printf("Son iguales"); } 2. Escribir un programa en C que lea números enteros indefinidamente hasta que llegue el número 0 #include <stdio.h> int main(){ int x; int suma=0; do{ } scanf("%i",&x); suma+=x; }while (x!=0); printf ("Suma= %i",suma); 3. Intentar escribir un programa en C que lea tres números e indique el tipo de triángulo que forman (isósceles, equilátero, escaleno). Comprobar que los números realmente formen un triángulo, sino emitir el error. #include <stdio.h> int main(){ int x,y,z; printf ("Escribe el primer lado"); scanf("%i",&x); printf ("\nEscribe el segundo lado"); FACULTAD DE INGENIERÍA ________________________________________________________________________________ scanf("%i",&y); printf ("\nEscribe el tercer lado"); scanf("%i",&z); printf("\n\n\n"); //Saltar tres líneas /*Comprobación de si es un triángulo, damos por hecho que los números son positivos */ if ((x+y>z) && (x+z>y) && (y+z)>x){ if (x==y && x==z) printf ("Equilátero"); else if (x==y || x==z || y==z) printf ("Isósceles"); else printf("Escaleno"); } else printf("Esos números no forman un triángulo"); } 4. Crear un programa en C que lea un número e indique si es par o no #include <stdio.h> int main(){ int x; printf("Escribe el número (sin decimales"); scanf("%i",&x); if(x%2==0) printf("Es par"); else printf("Es impar"); } 5. Crear un programa C que lea cantidades y precios y al final indique el total de la factura. Primero se pregunta: Introduzca la cantidad vendida Tras lo cual el usuario introducirá un número entero positivo. Después se pregunta: Introduzca el precio que será un número decimal positivo. La lectura termina cuando en la cantidad se introduzca un cero. Si es así se escribirá el total. FACULTAD DE INGENIERÍA ________________________________________________________________________________ #include <stdio.h> int main(){ int n; double precio, total=0; do{ do{ printf("\nIntroduzca la cantidad vendida: "); scanf("%d",&n); if(n<0) printf("Cantidad no valida"); }while(n<0); if (n>0){ printf("Introduzca el precio: "); do{ scanf("%lf",&precio); if(precio<0) printf("Precio no valido"); else total+=n*precio; }while(precio<0); } }while(n!=0); printf("Total vendido = %.2f", total); } 6. Crear un programa que escriba dos columnas de números, en la primera se colocan los números del 1 al 100, en la segunda los números del 100 al 1 #include <stdio.h> int main(){ int col1=1, col2=100; while(col1<=100){ printf("%d\t\%d\n",col1,col2); col1++; col2--; } FACULTAD DE INGENIERÍA ________________________________________________________________________________ } 7. Leer tres números y escribir el mayor de los tres #include <stdio.h> int main(){ double x,y,z; //Lectura de datos printf("Escribe el primer número"); scanf("%lf",&x); printf("Escribe el segundo número"); scanf("%lf",&y); printf("Escribe el tercer número"); scanf("%lf",&z); } if(x>y && x>z) { //El mayor es x if(y>z) printf("\t%lf\t%lf\t%lf", x, y, z); else printf("\t%lf\t%lf\t%lf", x, z, y); } else if (y>x && y>z) { //El mayor es y if (x>z) printf("\t%lf\t%lf\t%lf", y, x, z); else printf("\t%lf\t%lf\t%lf", y, z, x); } else { //El mayor es z if (x>y) printf("\t%lf\t%lf\t%lf", z, x, y); else printf("\t%lf\t%lf\t%lf", z, y, x); } 13) Operadores lógicos, aritméticos y relacionales en C++ Operadores aritméticos Lista de operadores aritméticos con su significado + Suma - Resta * Producto / Cociente de una división % Resto de una división FACULTAD DE INGENIERÍA ________________________________________________________________________________ Estos operadores se usan en las expresiones para asignar valores a variables. Igual que en algebra tienen una jerarquía. ( ) Todo lo que esta entre paréntesis se * / % Multiplicación, división y modulo tiene la + - tienen la jerarquía mas baja. evalúa primero misma jerarquía Los operadores que tiene más jerarquía se evalúan primero. Si en una expresión los operadores tienen la misma jerarquía se evalúa de izquierda a derecha. La jerarquía también se llama precedencia. Ejemplo. x = 5 + 3 * 10 El resultado es: primero se evalúa el operador * x = 5 + 30 y después + x = 35 a división y la multiplicación tienen la misma jerarquía, pero en orden de izquierda a derecha están primero las multiplicaciones así la evaluación será. x= 15 * 7 / 2 x= 105 / 2 x= 52.5 Con los paréntesis se altera la jerarquía al asociar operados. Ejemplo. a = (b * a) /2 en este caso aun sin paréntesis ese es el orden de evaluación. b = (5 + 3) * 10 FACULTAD DE INGENIERÍA ________________________________________________________________________________ el resultado será evaluando lo que esta entre paréntesis primero. b = 8 * 10 b = 80 Operadores lógicos ! Not (no lógico): Este operador es denominado también negación lógica y se representa en el texto escrito por la palabra inglesa NOT (otros lenguajes utilizan directamente esta palabra para representar el operador en el código). Sintaxis ! expresion-cast && And (y lógico): También denominado por su nombre en inglés (generalmente en mayúsculas) AND lógico. Devuelve un valor lógico true si ambos operados son ciertos. En caso contrario el resultado es false. Sintaxis Expr-AND-logica && expresion-OR-inclusive || Or (ó lógico): Este operador binario devuelve true si alguno de los operandos es cierto. En caso contrario devuelve false. Sintaxis Expr-OR-logica || expresion-AND-logica Los operadores lógicos entre valores lógicos &&, ||,!; la relación de desigualdad !=; algunos de los operadores lógicos entre bits (&, |, ^, ~) y sus expresiones compuestas (&=, |=, ^=), tienen una representación realmente difícil de leer, con la desventaja adicional que sus símbolos no siempre están fácilmente accesibles en ordenadores con teclados distintos del estándar USA. Para resolver este problema, el Estándar C++ ha introducido nuevas formas para su representación; las denominamos formas explícitas o naturales, en razón de que se parecen más a las palabras correspondientes del lenguaje natural. Las nuevas formas constituyen palabras-clave, y la tabla de equivalencias es la siguiente: FACULTAD DE INGENIERÍA ________________________________________________________________________________ Palabra clave Símbolo Descripción && Operador Y lógico or || Operador O lógico not ! Operador negación lógica bitand & Operador AND entre bits xor ^ Operador OR exclusivo entre bits bitor | Operador OR inclusivo entre bits compl ~ Operador complemento a uno de bits and_eq &= Asignación compuesta (AND entre bits) xor_eq ^= Asignación compuesta (XOR entre bits) or_eq |= Asignación compuesta (OR entre bits) not_eq != Operador relacional de desigualdad and Operadores relacionales == Igual a != No igual a > Mayor que < Menor que >= Mayor o igual que <= Menor o igual que FACULTAD DE INGENIERÍA ________________________________________________________________________________ Se utilizan para establecer una relación entre dos valores. Luego compara estos valores entre si y esta comparación produce un resultado de certeza o falsedad (verdadero o falso). Los operadores relacionales comparan valores del mismo tipo (numéricos o cadenas). Estos tienen el mismo nivel de prioridad en su evaluación. Los operadores relaciónales tiene menor prioridad que los aritméticos. Ejemplos: Si a = 10, b = 20, c = 30 a+b>c a-b<c a-b=c a*b<>c Falso Verdadero Falso Verdadero Ejemplos no lógicos: a<b<c 10 < 20 < 30 T > 5 < 30 (no es lógico porque tiene diferentes operados)