Beruflich Dokumente
Kultur Dokumente
Introducin
Variables y Expresiones Aritmticas
Tipos, operadores y expresiones
Control de flujos
Operaciones de Entrada y Salida
Estructura de Bloques
Arreglos
Funciones
Consideraciones
Introduccin
El lenguaje de programacin que veremos a continuacin es el
C++
Lenguaje
. Este lenguaje pertenece a la clase de lenguajes
comunmente llamados hbridos, pues soportan dos filosofas
distintas de programacin: la primera la que veremos a lo largo
de este curso: la programacin estructurada; la segunda de estas
filosofas es la programacin orientada a objetos, POO.
El lenguaje C++ es algo as como una versin mejorada del lenguaje
C, con lo cual cualquier programa escrito en el lenguaje C tambin es un
programa C++. El Lenguaje C++ es un lenguaje de programacin de
propsito general, es decir, es posible escribir cualquier tipo de
programas con l, incluyendo programas especficos de tipo
matemticos.
Comencemos.
La nica forma de aprender un nuevo lenguaje de programacin es
escribiendo algunos programas en l y describirlo a partir de estos.
Imprimir las palabras
Mundo, esto es "C++".
=>
Hola
#include <iostream.h>
main()
{
cout
}
<<
"Hola
Mundo,
esto
es
\"C++\"\n";
\t hace que los valores de los dos enteros fahr y celsius se impriman
como valores enteros con una tabulacin (\t) entre ellos. El ciclo while
funciona de la siguiente manera: se prueba la condicin entre parntesis
(fahr <= maxima). De ser verdadera, el cuerpo del ciclo (definido
entre llaves) se ejecuta. El cuerpo del ciclo puede tener una o mas
proposiciones, si solo tiene una, no es necesario encerrarla entre llaves
como por ejemplo:
while(i < j) i=i*2;
verdadera, el cuerpo del ciclo (en este caso un simple cout) se ejecuta.
Despus el incremento de avance: fahr=fahr+20; se ejecuta y la
condicin se vuelve a evaluar. El ciclo termina si la condicin es falsa. Tal
como con el while, el cuerpo del ciclo puede ser una proposicin sencilla
o un grupo de proposiciones encerradas entre llaves. La inicializacin, la
condicin y el incremento pueden ser cualquier expresin. La eleccin
entre el while y el for es arbitraria y se basa en aquello que parezca ms
claro. El for es por lo general apropiado para ciclos en los que la
inicializacin y el incremento son expresiones sencillas y lgicamente
relacionadas, puesto que es mas compacto que el while y mantiene
reunidas en un lugar a las proposiciones que controlan el ciclo.
Una observacin final antes de dejar el tema de conversiones de
temperaturas. Es una mala prctica poner "nmeros mgicos" como 300
y 20 en un programa, ya que proporciona muy poca informacin a quien
tenga que leer el programa y son difciles de modificar en forma
sistemtica.
Una lnea #define define un nombre simblico o constante simblica,
como una cadena de caracteres especial:
#define nombre texto de reemplazo
#include <iostream.h>
#define MAXIMA 300 // TEMPERATURA FAHRENHEIT MAXIMA
#define MINIMA 0 // TEMPERATURA FAHRENHEIT MINIMA
#define PASO 20 // TAMAO DEL INCREMENTO
/* Imprime la tabla Faherenheit-Celsius */
main()
{
int fahr;
for(fahr = MINIMA ;fahr <= MAXIMA; fahr = fahr + PASO)
cout << fahr << "\t" << (5.0/9.0)*(fahr-32.0);
}
*Ntese que no hay punto y coma despus de la lnea #define.
Todo lo visto, debe servir para orientarlos en la filosofa del lenguaje,
en el estilo y estructuracin. Ahora dejaremos un poco estas
ejemplificaciones y seremos ms concretos en los aspectos de este
lenguaje.
double
int
struct
break
else
long
switch
case
enum
register
typedef
char
extern
return
union
const
float
short
unsigned
continue
for
signed
void
default
goto
sizeof
volatile
do
if
static
while
asm
_cs
_ds
_es
catch
friend
operator
public
class
inline
overload
template
_ss
cdecl
far
huge
delete
new
private
this
interrupt
near
pascal
throw
try
virtual
catch
LONGITUD RANGO
void
------
char
8 bits
-128 a 127
unsigned char
8 bits
0 a 255
signed char
8 bits
-128 a 127
enum
16 bits
-32.768 a 32.767
int
16 bits
-32.768 a 32.767
unsigned int
16 bits
0 a 65.535
signed int
16 bits
-32.768 a 32.767
short int
16 bits
-32.768 a 32.767
16 bits
0 a 65.535
16 bits
-32.768 a 32.767
long int
32 bits
-2.147.483.648 a 2.147483.647
unsigned long
32 bits
0 a 4.294.967.295
32 bits
-2.147.483.648 a 2.147483.647
float
32 bits
double
64 bits
long double
80 bits
Las constantes.
Enteros decimales
Enteros octales
Enteros hexadecimal
int
123
012
0x1a o 0X1A
long
1234567l L
0123456l L
0x1al L 0X1ABl L
unsigned
1234u U
012u U
0x1au 0X1AU
unsigned long
12345678 ul UL
0123456ul UL
0x1aul UL 0X1Aul
UL
\\ diagonal invertida
\b retroceso
\? interrogacin
\f avance de hoja
\ apstrofe
\n avance de linea
\" comillas
\r regreso de carro
\t tabulador horizontal
\v tabulador vertical
\0 caracter nulo
Tipo
float
123.45f
F
1.234e+34
Tipo double
123.478283829232lf lF 1.23478283e+200
Tipo long double
1.267282749502238737362732LF
o
Lf
1.26727495e+450
5. Otra forma de definir las secuencias de escape a travs de constantes
de enumeracin. Las constantes de enumeracin se definen del
siguiente modo:
Ejemplos:
#define BELL \007 // caracter campana usando
secuencias de escape en octal
#define BELL \x7 // caracter campana usando secuencias
de escape en hexadecimal
#define BELL \a // caracter campana usando secuencias
de escape
int ENTERO=-237;
float PI=3.141592;
double PI_D=3.1415926536;
long double E=2.71828182845904523536
char msg[]="Hola mundo, esto es C++";
Operadores.
1. Aritmticos.
Los operadores aritmticos son:
expr1
de
asignacin
expr2
son
dos
expresiones.
expresiones,
entonces:
Ejemplos:
x *= (y + 1); x = x * (y + 1);
x += 2; x = x + 2;
Aqu una lista mas completa:
+= , -= , *= , /= , %= , &= , ^= , |= , <<= , >>= .
6. El operador ternario ?.
Es equivalente a:
x=10;
if(x > 9)
y = 100;
else
y = 200;
Control de flujos
Las proposiciones de control de flujo de un lenguaje especifican el
orden en que se realiza el procesamiento. Ya hemos visto algunas,
aqu completaremos el conjunto y seremos especficos en sus
declaraciones.
Proposiciones y bloques.
Una expresin como x = 0 i++ o cout << ... se convierte en una
proposicin cuando va seguida de un punto y coma, como en:
x = 0;
i++;
cout << .... ;
En C o C++, el punto y coma es un terminador de proposicin. Las
llaves { } se emplean para agrupar declaraciones y proposiciones dentro
Ejemplo:
if(a<b)
z=a;
[else
z =b;]
if(n >0) {
if(a < b)
z = a;
}
else
z = b;
Else-if.
La construccin es:
if(expresin)
proposicin1;
else if(expresin)
proposicin2;
else if(expresin)
proposicin3;
else
proposicin4;
Switch.
La proposicin switch es una decisin mltiple que prueba si una
expresin coincide con uno de un nmero de valores constantes (casos)
enteros, y traslada el control adecuadamente:
switch(expresin) {
case exp-constante :
proposicin1;
case exp-constante :
proposicin2;
case exp-constante :
proposicin3;
default : proposicin4;
}
Dentro
de
cada
case
y
como
proposicin final, debe ir la proposicin
break, para que la seleccin culmine
con la ocurrencia del caso nico que se
ha cumplido. La clausula default es
opcional
Operaciones de entrada/salida
El archivo de cabecera iostream.h, est definido en C++ y se usa
para las operaciones de entrada y salida. Por ejemplo:
cout << "Me gusta Turbo C++.\n";
muestra en pantalla "Me gusta Turbo C++." Seguido por la
combinacin de un salto de carro y salto de lnea. En C++, el smbolo
<< tiene un cometido ms amplio sigue siendo el operador de
desplazamiento a la izquierda, pero cuando se usa como se muestra en
este ejemplo, tambin es un operador de salida. La palabra cout es un
identificador que esta asociado a la pantalla. Al igual que C, C++
permite la redireccin de la E/S, pero por lo que respecta a esta
explicacin, asumiremos que cout se refiere a la pantalla. Se puede usar
cout y el smbolo << para mostrar cualquiera de los tipos de datos
incorporados o predefinidos, adems de las cadenas de caracteres.
Si nuestro programa requiere que ingresemos algo desde el teclado,
procedemos por ejemplo:
cin >> i;
El nmero se lee a travs del teclado usando la sentencia cin. El
identificador cin se refiere al teclado. En general se usa cin >> para
cargar un valor en una variable cualquiera de los tipos bsicos de datos
o cadenas.
Uso de los manipuladores.
El sistema de E/S de C++ incluye una forma de alterar los
parmetros de formato de E/S. Para esto se usan unas funciones
Manipulador
Propsito
Entrada/Salida
dec
Entrada/Salida
endl
Salida
ends
Salida
flush
Vaciado de un flujo.
Salida
hex
Entrada/ Salida
oct
Entrada/ Salida
Entrada/Salida
setbase(int
base)
Salida
setfill(int c)
setiosflag(long
f)
Entrada/Salida
ws
Entrada
Estructura de Bloques
C o C++ no es un lenguaje estructurado en bloques, puesto que las
funciones no se pueden definir dentro de otras funciones. Por otra parte
las variables (incluyendo la inicializacin) pueden seguir a la llave
izquierda que indica cualquier proposicin compuesta, no solo la que
inicia a una funcin. Las variables pueden declaradas de esta manera,
cualquier nombre idntico de variables de bloques ms externos, son
totalmente distintas, y permanecen hasta que se encuentra la llave
derecha que se corresponde con la inicial. Por ejemplo en:
if(n > 0) {
int i;
for(i=0;i < n;++i)
.......
}
i=3;
La i del bloque if-else se declara al entrar al bloque y se destruye al salir
de l, es por ello que no tiene nada que ver la variable i externa al
bloque.
Inicializacin
La inicializacin de una variable puede llevarse a cabo en el momento
de su declaracin. Para ello se procede a declararla y luego el signo igual
y los valores de inicializacin, por ejemplo:
int i=0;
char letra='A';
double sala=200.39;
En ausencia de declaracin explcita, se garantiza que las variables
externas y estticas se inicializan en 0; las variables automticas y tipo
registro tienen valores iniciales indefinidos (basura).
Arreglos o Arrays
En C o C++ existe una fuerte relacin entre apuntadores y arreglos.
Tan fuerte que deben discutirse simultneamente. Cualquier operacin
que se pueda llevar a cabo por indexacin de un arreglo, tambin puede
realizarse con apuntadores (punteros). La versin con apuntadores ser
por lo general ms rpida, pero ms difcil de entender para los no
iniciados en este lenguaje.
Por lo pronto veremos, el formato para la declaracin de arreglos es:
especificador-categora-almacenamiento especificador-de-tipo
tipo_de_arreglo nombre[tamao];
tipo_de_arreglo
Funciones
En el lenguaje C++ una funcin proporciona una forma conveniente
de encapsular algunos clculos, que se pueden emplear despus sin
preocuparse
de
su
implantacin.
Con
funciones
diseadas
adecuadamente, es posible ignorar como se realiza un trabajo; es
suficiente saber qu hace. El lenguaje C++ hace que el uso de las
funciones sea fcil, conveniente y eficiente.
Una definicin de funcin tiene la siguiente forma:
tipo_de_retorno
nombre_de_funcion(declaracin_de_parmetros_formales)
{
declaraciones;
proposiciones;
}
/******************Archivo
potencia.cpp**********************/
#include <iostream.h>
3.
4.
5.
6.
7.
8.
9.
10.
11.
return 0;
12.
13.
14.
15.
16.
17.
18.
19.
20.
return i;
}
10:
Llamada
la
funcin
4. Advertencia.. \MIO\POTENCIA.CPP
'potencia()' sin un prototipo.
10:
Llamada
la
funcin
#include <iostream.h>
void mostrar(int num[10]);
main(void)
{
int t[10],i;
for(i=0;i < 10;++i) t[i]=i;
mostrar(t);
return 0;
}
/*********mtodo 1***********/
void mostrar(int num[10])
{
int i;
for(i=0;i < 10;i++) cout << num[i];
}
/*********mtodo 2***********/
void mostrar(int num[]) //reemplazamos el prototipo y la funcin
{
int i;
for(i=0;i < 10;i++) cout << num[i];
}
/*********mtodo 3***********/
void mostrar(int &num) //reemplazamos el prototipo y la funcion
{
int i;
for(i=0;i < 10;i++) cout << num[i];
}
for
<stdio.h>
<iostream.h>
<ctype.h>
<conio.h>
void main(void)
{
int b,c,dd,mm,aa;
char nombre[30],sal='N'; // vector de 30 caracteres
for(b=0;(b <= 4) && (sal != 'S');b++) // flexibilidad del ciclo
{
gets(nombre);
cout << "\t\t" << nombre <<"\n"; //\t tabulacin
//LEER Y MOSTRAR LA FECHA EN CUALQUIER FORMATO DD/MM/AA, DD-
MM-AA, ETC..
cout << "Ingresar fecha : ";
cin >> dd >> c >> mm >> c >> aa;
cout << "\t\t" << dd << c << mm << c << aa << "\n";
// GETCHE() LEE DE A UN CARACTER CON ECO.
maysculas.
cout
<<
"Salir
sal=toupper(getche()); //
S
o
toupper(char
N
c)
?:
";
convierte a
}
delFunciones relacionadas
alloc.h
assert.h
Define assert().
bios.h
conio.h
Funciones
consola.
de
entrada/salida
complex.h
Funciones
complejos
de
manipulacin
ctype.h
dir.h
dos.h
directa
de
por
nmeros
errno.h
fcntl.h
float.h
graphics.h
io.h
Funciones de entrada/salida.
iostream.h
Funciones de entrada/salida.
iomanip.h
limits.h
locale.h
math.h
Funciones matemticas.
mem.h
process.h
setjmp.h
share.h
signal.h
stdargs.h
stddef.h
stdio.h
stdlib.h
Funciones variadas.
string.h
sys/stat.h
sys/timeb.h
por
el
sys/types.h
time.h
values.h
Varias
constantes
implantacin.
dependientes
de
la
void clreol(void);
void delline(void);
void insline(void);
void textattr(int
atributo);
void textcolor(int
color);
activa.
void
textbackground(int
color);
void highvideo(void);
void lowvideo(void);
void normvideo(void);
Muestra
original.
int wherex(void);
int wherey(void);
void textmode(int
modo);
el
texto
en
la
intensidad
M_E 2.71828182845904523536
M_LOG2E 1.44269504088896340736
M_LOG10E 0.434294481903251827651
M_LN2 0.693147180559945309417
M_LN10 2.30258509299404568402
M_PI 3.14159265358979323846
M_PI_2 1.57079632679489661923
M_PI_4 0.785398163397448309616
M_1_PI 0.318309886183790671538
M_2_PI 0.636619772367581343076
M_1_SQRTPI 0.564189583547756286948
M_2_SQRTPI 1.12837916709551257390
M_SQRT2 1.41421356237309504880
M_SQRT_2 0.707106781186547524401
Consideraciones
Para mas referencias a las funciones disponibles consultar la ayuda de
Turbo C++.
Para mas bibliografia, consultar cualquier libro de Progamacin C++
de cualquier autor.