Download taller realizado para el primer corte

Document related concepts

Programación funcional wikipedia , lookup

Racket (lenguaje de programación) wikipedia , lookup

Rust (lenguaje de programación) wikipedia , lookup

Haxe wikipedia , lookup

Lisp wikipedia , lookup

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)