1. ¿QUE ES C++?
Sirve para programar introduciendo códigos que el programa reconoce y ejecuta
por medio de su interfaz, Antes de hablar de C++, es necesario explicar que un
lenguaje de programación es una herramienta que nos permite comunicarnos e
instruir a la computadora para que realice una tarea específica. Cada lenguaje de
programación posee una sintaxis y un léxico particular, es decir, forma de
escribirse que es diferente en cada uno por la forma que fue creado y por la forma
que trabaja su compilador para revisar, acomodar y reservar el mismo programa
en memoria. Existen muchos lenguajes de programación de entre los que se
destacan los siguientes:
C Grado de desarrollo: 50% (a fecha de 3 de Junio de 2005) ▶
C++ Grado de desarrollo: 25% (a fecha de 19 de junio, 2005) ▶
Basic
Ada Grado de desarrollo: 75% (a fecha de 2 jun 2005) ▶
Java Grado de desarrollo: 50% (a fecha de 3 de Noviembre de 2011) ▶
Pascal Grado de desarrollo: 25% (a fecha de 21:57 25 nov 2008 (UTC)) ▶
Python Grado de desarrollo: 50% (a fecha de 3 de Junio de 2005) ▶
Fortran
Smalltalk
C++ es un lenguaje de programación orientado a objetos que toma la base del
lenguaje C y le agrega la capacidad de abstraer tipos como en Smalltalk.
La intención de su creación fue el extender al exitoso lenguaje de programación C
con mecanismos que permitieran la manipulación de objetos. En ese sentido,
desde el punto de vista de los lenguajes orientados a objetos, el C++ es un
lenguaje híbrido [¿por? fusionar con el siguiente].
Posteriormente se añadieron facilidades de programación genérica, que se sumó
a los otros dos paradigmas que ya estaban admitidos (programación estructurada
y la programación orientada a objetos). Por esto se suele decir que el C++ es un
lenguaje de programación multiparadigma.
Herramientas Necesarias
2. Las principales herramientas necesarias para escribir un programa en C++ son las
siguientes:
Un equipo ejecutando un sistema operativo.
Un compilador de C++
Windows MingW (GCC para Windows) o MSVC (compilador de microsoft con
versión gratuita)
Linux (u otros UNIX): g++
Mac (con el compilador Xcode)
Un editor cualquiera de texto, o mejor un entorno de desarrollo (IDE)
Windows:
Microsoft Visual C++ (conocido por sus siglas MSVC). Incluye compilador y posee
una versión gratuita (versión express)
Bloc de notas (no recomendado)
Editor Notepad++
DevCpp (incluye MingW - en desuso, no recomendado, incluye también un
compilador)
Code::Blocks
Linux (o re-compilación en UNIX):
Gedit
Kate
KDevelop
Code::Blocks
SciTE
GVim
Mac:
Xcode (con el compilador trae una IDE para poder programar)
Tiempo para practicar
3. Paciencia
Adicional
Inglés (Recomendado)
Estar familiarizado con C u otro lenguaje derivado (PHP, Python, etc.). Es
recomendable tener conocimientos de C, debido a que C++ es una mejora de C,
tener los conocimientos sobre este te permitirá avanzar más rápido y comprender
aún más. También, hay que recordar que C++, admite C, por lo que se puede
programar (reutilizar), funciones de C que se puedan usar en C++.
Aunque No es obligación aprender C, es recomendable tener nociones sobre la
programación orientada a objetos en el caso de no tener conocimientos previos de
programación estructurada. Asimismo, muchos programadores recomiendan no
saber C para saber C++, por ser el primero de ellos un lenguaje imperativo o
procedimental y el segundo un lenguaje de programación orientado a objetos.
Consejos iniciales antes de programar
Con la práctica, se puede observar que se puede confundir a otros programadores
con el código que se haga. Antes de siquiera hacer una línea de código, si se
trabaja con otros programadores, ha de tenerse en cuenta que todos deben
escribir de una forma similar el código, para que de forma global puedan corregir
el código en el caso de que hubieran errores o rastrearlos en el caso de haberlos.
También es muy recomendable hacer uso de comentarios (comenta todo lo que
puedas, hay veces que lo que parece obvio para ti, no lo es para los demás) y
tratar de hacer un código limpio y comprensible, especificando detalles y haciendo
tabulaciones, aunque te tome un poco más de tiempo, es posible que más
adelante lo agradezcas tú mismo.
LIBRERÍA DE C++
Es una colección de clases y funciones, escritas en el núcleo del lenguaje. La
biblioteca estándar proporciona varios contenedores genéricos, funciones para
utilizar y manipular esos contenedores, funciones objeto, cadenas y flujos
genéricos.
#include "stdio.h"
FUNCIONES
fclose
4. Cierra un fichero a través de su puntero.
fopen, freopen, fdopen
Abre un fichero para lectura, para escritura/reescritura o para adición.
remove
Elimina un fichero.
rename
Cambia al fichero de nombre.
rewind
Coloca el indicador de posición de fichero para el stream apuntado por stream al
comienzo del fichero.
tmpfile
Crea y abre un fichero temporal que es borrado cuando cerramos con la función
fclose().
clearerr
Despeja los indicadores de final de fichero y de posición de fichero para el stream
apuntado por stream al comienzo del fichero.
feof
Comprueba el indicador de final de fichero.
ferror
Comprueba el indicador de errores.
fflush
Si stream apunta a un stream de salida o de actualización cuya operación más
reciente no era de entrada, la función fflush envía cualquier dato aún sin escribir al
entorno local o a ser escrito en el fichero; si no, entonces el comportamiento no
está definido. Si stream es un puntero nulo, la función fflush realiza el despeje
para todos los streams cuyo comportamiento está descrito anteriormente.
fgetpos
Devuelve la posición actual del fichero.
5. fgetc
Devuelve un carácter de un fichero.
fgets
Consigue una cadena de caracteres de un fichero.
fputc
Escribe un carácter en un fichero.
fputs
Escribe una cadena de caracteres en un fichero.
ftell
Devuelve la posición actual del fichero como número de bytes.
fseek
Sitúa el puntero de un fichero en una posición aleatoria.
fsetpos
Cambia la posición actual de un fichero.
fread
lee diferentes tamaños de datos de un fichero.
fwrite
Envía, desde el array apuntado por puntero, hasta nmemb de elementos cuyo
tamaño es especificado por tamaño. El indicador de posición de ficheros es
avanzado por el número de caracteres escritos correctamente. Si existe un error,
el valor resultante del indicador de posición de ficheros es indeterminado.
getc
Devuelve un carácter desde un fichero.
getchar
Igual que getc.
gets
6. Lee caracteres de entrada hasta que encuentra un salto de línea, y los almacena
en un único argumento.
printf, fprintf, sprintf
snprintf
Usados para imprimir salidas de datos.
vprintf
También utilizado para imprimir salidas.
perror
Escribe un mensaje de error a stderr.
putc
Devuelve un carácter de un fichero.
putchar, fputchar
Igual que putc(stdout).
scanf, fscanf, sscanf
Utilizado para introducir entradas.
vfscanf, vscanf, vsscanf
También utilizado para introducir entradas.
setbuf
Esta función es equivalente a la función setvbuf pasando los valores _IOFBF para
modo y BUFSIZ para tamaño, o (si acumulador es un puntero nulo), con el valor
_IONBF para modo.
setvbuf
Sólo puede ser usada después de que el stream apuntado por stream ha sido
asociado con un fichero abierto y antes de otra operación cualquiera es llevada
acabo al stream. El argumento modo determina cómo stream será almacenado
según lo siguiente: _IOFBF ocasiona la entrada/salida a ser completamente
almacenado; _IOLBF ocasiona la entrada/salida a almacenar por líneas; _IONBF
ocasiona la entrada/salida a no ser almacenado. Si acumulador no es un puntero
nulo, el array al que es apuntado puede ser usado en vez de la acumulación
7. adjudicada por la función setvbuf. El argumento tamaño especifica el tamaño del
array.
tmpnam
Genera una cadena de caracteres que es un nombre válido para ficheros y que no
es igual al nombre de un fichero existente. La función tmpnam genera una cadena
diferente cada vez que es llamada, hasta un máximo de TMP_MAX veces. Si la
función es llamada más veces que TMP_MAX, entonces el comportamiento de la
función está definido según la implementación del compilador.
puts
Imprime una de cadena de caracteres.
#include "stdlib.h"
atof (ascii to float)
cadena de caracteres a coma flotante
atoi
cadena de caracteres a entero
atol (C Standard Library) (ascii to long)
cadena de caracteres a entero tamaño largo
strtod
cadena de caracteres a coma flotante tamaño doble
strtol
cadena de caracteres a entero largo
strtoul
cadena de caracteres a entero largo sin signo (positivo)
rand
Genera un número pseudo-aleatorio
srand
Establece la semilla para el generador de números pseudo-aleatorios
8. malloc, calloc, realloc
Reservan memoria dinámica del heap
free
Liberan memoria devolviéndola al heap
abort
terminar ejecución anormalmente
atexit
registrar una función callback callback para la salida del programa
exit
terminar ejecución del programa
getenv
recuperar una variable de entorno
system
ejecutar un comando externo
bsearch
búsqueda binaria en un array
qsort
ordena un vector usando quicksor
abs, labs
valor absoluto
div, ldiv
división entera o euclidiana
#include <string.h>
memcpy
copia n bytes entre dos áreas de memoria que no deben solaparse
9. memmove
copia n bytes entre dos áreas de memoria; al contrario que memcpy las áreas
deben solaparse
memchr
busca un valor a partir de una dirección de memoria dada y devuelve un puntero a
la primera ocurrencia del valor buscado o null si no se encuentra
memcmp
compara los n primeros caracteres de dos áreas de memoria
memset
sobre escribe un área de memoria con un patrón de bytes dado
strcat
añade una cadena al final de otra
strncat
añade los n primeros caracteres de una cadena al final de otra
strchr
localiza un carácter en una cadena, buscando desde el principio
strrchr
localiza un carácter en una cadena, buscando desde el final
strcmp
compara dos cadenas alfabéticamente ('a'!='A')
strncmp
compara los n primeros caracteres de dos cadenas numéricamente ('a'!='A')
strcoll
compara dos cadenas según la colación actual ('a'=='A')
strcpy
copia una cadena en otra
10. strncpy
copia los n primeros caracteres de una cadena en otra
strerror
devuelve la cadena con el mensaje de error correspondiente al número de error
dado
strlen
devuelve la longitud de una cadena
strspn
devuelve la posición del primer carácter de una cadena que no coincide con
ninguno de los caracteres de otra cadena dada
strcspn
devuelve la posición del primer carácter que coincide con alguno de los caracteres
de otra cadena dada
strpbrk
encuentra la primera ocurrencia de alguno de los caracteres de una cadena dada
en otra
strstr
busca una cadena dentro de otra
strtok
parte una cadena en una secuencia de tokens
strxfrm
transforma una cadena en su forma de colación (??)
strrev
invierte una cadena
#include <ctype.h>
tolower: Convierte un carácter, en un parámetro entero ch, a minúscula.
toupper: Convierte un carácter, en un parámetro entero ch, a mayúscula
11. #include <locale.h>
localeconv: La función localeconv asigna los componentes de un objeto con tipo
struct lconv con valores apropiados para el
formateo de cantidades numéricas (monetarias y otras) según las reglas de la
localidad actual.
setlocale La función setlocale selecciona la porción apropiada de la localidad del
programa especificado por los argumentos
categoria y localidad. La función setlocale puede ser usada para cambiar o
preguntar la localidad actual total del
programa o porciones de ello.
#include <math.h>
acos
arcocoseno
asien
arcoseno
atan
arcotangente
atan2
arcotangente de dos parámetros
ceil
menor entero no menor que el parámetro
cos
coseno
cosh
coseno hiperbólico
exp(double x)
12. función exponencial, computa ex
abs
valor absoluto
floor
mayor entero no mayor que el parámetro
fmod
residuo de la division de flotantes
frexp
fracciona y eleva al cuadrado.
ldexp
tamaño del exponente de un valor en punto flotante
log
logaritmo natural
log10
logaritmo en base 10
modf
obtiene un valor en punto flotante íntegro y en partes
pow(x,y)
eleva un valor dado a un exponente, xy
sin
seno
sinh
seno hiperbólico
sqrt
raíz cuadrada
13. tan
tangente
tanh
tangente hiperbólica
#include <setjmp.h>
longjmp: Restaura el entorno guardado por la invocación más reciente de la
función setjmp en la misma
invocación del programa, con el argumento correspondiente entorno
setjmp: Guarda su entorno de llamadas en el argumento entorno para uso
posterior por la función longjmp
#include <signal.h>
raise: La función envía la señal señal al programa en ejecución.
signal:La función signal retorna el valor de func para la llamada más reciente a
signal para la señal especificada, señal, si la operación fue realizada con éxito
#include <time.h>
char * asctime(struct tm *)
Recibe una variable de tipo puntero a estructura tm (struct tm*) y devuelve una
cadena de caracteres
clock_t clock (void)
Devuelve el número de pulsos de reloj desde que se inició el proceso
char * ctime(time_t *)
Recibe una variable de tipo puntero a time_t (time t*) y devuelve una cadena con
el mismo formato que asctime()
double difftime(time_t, time t)
14. Recibe dos variables de tipo time_t, calcula su diferencia y devuelve el resultado
(double) expresado en segundos.
struct tm *gmtime(time_t *)
Recibe un puntero a una variable de tiempo (time_t*) y devuelve su conversion
como fecha/hora UTC a struct tm a través de un puntero.
struct tm *localtime(time_t *)
Similar funcionalidad a gmtime(), pero devuelve la conversión como fecha/hora
LOCAL.
time_t mktime(struct_tm *)
Inversamente a gmtime() y localtime(),l recibe un puntero a struct tm (struct tm*) y
devuelve su conversión al tipo time t.
time_t time(time_t *)
Devuelve la fecha/hora (time_t) actual o -1 en caso de no ser posible. Si el
argumento que se le pasa no es NULL, también asigna la fecha/hora actual a
dicho argumento.
size_t strftime(char *,size_t,char *,struct tm *)
Formatea la información pasada mediante la estructura (struct tm*) mediante el
formato indicado en una cadena (char*) e imprime el resultado sobre otra cadena
(char*) hasta un límite de caracteres (size_t).
Otras librerias que no tienen funciones asociadas. Pero tienen macros constantes
y/o estructuras.
· #include <assert.h>
· #include <errno.h>
· #include <float.h>
· #include <limits.h>
· #include <stdarg.h>
· #include <stddef.h>
RESUMEN DE LIBRERIAS
15. Ø 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.
Ø locale.h Contienen varias macros, funciones y tipos para unidades locales,
como unidad monetaria, tiempo, dígitos, etc.
Ø math.h Contiene un 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.
TIPOS DE VARIABLES DE C++
En programación, una variable es un espacio de memoria reservado para
almacenar un valor que corresponde a un tipo de dato soportado por el lenguaje
16. de programación. Una variable es representada y usada a través de una etiqueta
(un nombre) que le asigna un programador o que ya viene predefinida.
Es recomendable que una variable no puede tener espacios, caracteres
especiales (acentos, signos), tiene que empezar con una letra.
Como declarar una variable en C++
C++ maneja varios tipos de variables: numéricas, de caracteres y boolean (cierto o
falso) esencialmente.
Para declarar una variable numérica llamada peso que inicie con un valor de 0,
escribimos esto: int peso=0;
Para declarar una variable numérica llamada distancia que inicie con un valor de
2.67, escribimos esto: float distancia=2.67;
Para declarar una variable de carácter llamada inicial, con un valor de R,
escribimos esto: char inicial=’R';
Para declarar una variable boolean llamada terminado, que empiece como falso,
escribimos esto: bool terminado=false;
Las variables que podemos declarar en C++; son las siguientes:
Para variables numéricas sin decimales se usa: int
Para variables numéricas con decimales se usa: float
Para variables de un solo caracter se usa: char
Para variables boolean se usa: bool
Como declarar varias variables en C++
Solo se pone el tipo de dato (int, float, char, bool) y separamos las variables con
comas.
int num=0, peso=16, altura=10;
Siempre va un punto y coma (;) al final de la declaración de variables.