ENCABEZADO
/
|
<
|
\
El listado 1.1 muestra un programa que despliega en la pantalla del monitor el mensaje: El
Lenguaje C++ es poderoso
// PRIMER.CPP
//
// Despliega un mensaje en la pantalla.
#include <stdio.h>
void main(void)
{
printf("El lenguaje C++ es poderoso\n");
}
Generalmente estos archivos son incluidos en las primeras lneas de los archivos que
contienen el cdigo fuente en C++.
El compilador de C++ desplegar un mensaje de error cuando se trate de utilizar una
funcin sin antes haber incluido el archivo de cabecera que contiene el prototipo de ella.
Los archivos de cabecera son incluidos con el instructivo INCLUDE cuando se ejecuta el
del compilador.
1.3.- Comentarios
En el C++ existen dos formas de manejar los comentarios:
La primera sirve para escribir comentarios que abarcan varias lneas, y utiliza los caracteres
/* para marcar el inicio de un comentario, y los caracteres */ para marcar el final, como se
ve en los siguientes ejemplos:
/* Este es un pequeo comentario */
/* Este es otro comentario, pero a diferencia del
anterior, utiliza varias lneas.
Observe que tambin puede incluir lneas en blanco (como la anterior y la siguiente).
*/
La segunda forma solo sirve para comentarios que abarcan una lnea o parte de ella, y
utiliza los caracteres // al principio del comentario. El fin del comentario queda marcado
por el fin de la lnea, como se muestra a continuacin:
// Este es un comentario de una lnea,
// y este es otro.
void main(void)
Los comentarios de una sola lnea pueden anidarse dentro de los comentarios de varias
lneas, como por ejemplo:
/* El principio del comentario de varias lneas.
// Primer comentario de una sola lnea.
// Segundo comentario de una sola lnea.
*/ Fin del comentario de varias lneas.
Aqu, se est definiendo la constante simblica VALMAX, cuyo valor ser el entero 1000.
La directiva #define tambin sirve para declarar macros, las cuales incluyen una ms
instrucciones del Lenguaje C++, como:
#define CUBO(N) ((N)*(N)*(N))
Obsrvese que al final de la primera lnea se escribi una diagonal invertida (\), la cual
sirve como enlace.
1.6.- Identificadores
Los nombres que son utilizados para referenciar variables, funciones, etiquetas y dems
objetos que se manejan con el Lenguaje C++, son referidos en forma genrica como
identificadores.
@
@
+
@
+
_asm
asm
auto
break
case
_cdecl
cdecl
char
class
const
continue
_cs
default
delete
do
double
@
@
@
@
@
@
+
@
+
_ds
else
enum
_es
_export
extern
_far
far
_fastcall
float
for
friend
goto
_huge
huge
if
inline
@
@
@
@
+
+
@
@
+
+
+
@
int
_interrupt
interrupt
_loadds
long
_near
near
new
operator
_pascal
pascal
private
protected
public
register
return
_saveregs
+
+
_seg
short
signed
sizeof
_ss
static
struct
switch
template
this
typedef
union
unsigned
virtual
void
volatile
while
Las palabras marcadas con + en la tabla 1.1 son las palabras reservadas especficas de C++,
las marcadas con @ son las palabras aadidas por Borland al C, y las palabras sin marca
son las palabras reservadas del C estndar.
1.7.- Entrada/Salida
En el Lenguaje C++, la entrada/salida se maneja de dos formas.
La primera consiste en la utilizacin de las funciones cuyos prototipos vienen declarados en
el archivo stdio.h, y es la forma que tradicionalmente ha utilizado el Lenguaje C.
La segunda es propia del C++ y consiste en el manejo de objetos y operadores cuyas
definiciones se encuentran en el archivo iostream.h.
A continuacin explicaremos cada una de estas dos formas.
1.7.1.- Funciones Declaradas en stdio.h
1.7.2.- Funciones Declaradas en conio.h
En el archivo stdio.h se encuentran definidos, entre otros, los prototipos de las funciones
printf(), scanf(), gets() y puts() adems de las macros getc(x) y putc(). A continuacin
analizaremos cada una de estas funciones y macros:
1.7.1.1.- La Funcin printf()
1.7.1.2.- La Funcin scanf()
1.7.1.3.- Las Funciones gets() y puts()
Donde:
cadena_formato es una cadena de caracteres encerrada entre comillas
Comando
Sirve para:
%d
entero
%u
%ld
entero largo
%p
valor de apuntador
%f
%e
%c
carcter
%s
cadena de caracteres
%x
%o
Tipo
Tamao (bits)
char
-128 a 127
unsigned char
0 a 255
enum
16
-32,768 a 32,767
int
16
-32,768 a 32,767
short int
16
-32,768 a 32,767
unsigned int
16
0 a 65,535
long
32
-2,147'483,648 a 2,147'483,647
unsigned long
32
0 a 4,294'967,295
float
32
7 dgitos
3.4E-38 a 3.4E+38
double
64
15 digitos
1.7E-308 a 1.7E+308
long double
80
19 digitos
3.4E-4932 a 3.4E+3932
void
Precisin
Rango de valores:
near pointer
16
Direcciones de memoria
far pointer
16
Direcciones de memoria
Listado 1.2
// IMPRIME ENTEROS EN OCTAL
#include <stdio.h>
int main()
{
int y=12345;
printf("y = %13d EN DECIMAL\n",y);
printf("y = %13o EN OCTAL\n",y);
return 0;
}
Listado 1.3
// IMPRIME ENTEROS EN HEXADECIMAL
#include <stdio.h>
int main()
{
int y=12345;
printf("y = %13d EN DECIMAL\n",y);
printf("y = %13x EN HEXADECIMAL\n",y);
return 0;
}
Listado 1.4
// IMPRIME ENTEROS SIN SIGNO
#include <stdio.h>
int main()
{
int y= -12345;
printf("y = %13d ENTERO CON SIGNO\n",y);
printf("y = %13u ENTERO SIN SIGNO\n",y);
return 0;
}
Listado 1.5
// IMPRIME NUMEROS CON PUNTO FLOTANTE
#include <stdio.h>
int main()
{
float
x=123.45;
double y=678.90;
printf("x = %12.2f\ny = %12.1f\n",x,y);
return 0;
}
Listado 1.6
// IMPRIME CARACTERES
#include <stdio.h>
int main()
{
char a='X', b='Y', c='Z' ;
printf("%c%c%c\n",a,b,c);
return 0;
}
Listado 1.7
// IMPRIME CADENAS DE CARACTERES
#include <stdio.h>
int main()
{
/*
Formato: %[-a.b]s
donde: - JUSTIFICA A LA IZQUIERDA
a NUMERO DE ESPACIOS DISPONIBLES PARA DESPLEGAR
b NUMERO MAXIMO DE CARACTERES QUE PUEDEN DESPLEGARSE
*/
printf("\n%10s","DESPLEGADO DE CADENAS EN LENGUAJE C++");
printf("\n%-10s","DESPLEGADO DE CADENAS EN LENGUAJE C++");
printf("\n%25.10s","DESPLEGADO DE CADENAS EN LENGUAJE C++")
printf("\n%-25.10s","DESPLEGADO DE CADENAS EN LENGUAJE C++";
printf("\n%.10s","DESPLEGADO DE CADENAS EN LENGUAJE C++");
return 0;
}
Listado 1.8
Para desplegar el smbolo de porciento puede escribirse
en cadena_formato : % . Por ejemplo:
..........
..........
int utilidad;
utilidad = 30;
printf("La utilidad es del %2d %\n", utilidad);
..........
desplegar :
La utilidad es del 30 %
Las funciones scanf() y printf() sirven para varios formatos, por lo cual son muy
voluminosas. Es por esto que se han desarrollado las funciones gets() y puts(), especficas
para la entrada/salida de cadenas de caracteres.
La funcin gets() toma una cadena de caracteres desde el teclado y la almacena en la
variable cuyo identificador aparece como argumento en la invocacin a gets(), como en:
gets(nombre);