You are on page 1of 9

Daniel Avila Hernández 212352778 SEC:D04

Tipos de Datos:
Los tipos de datos primitivos son los que están definidos dentro del lenguaje.
Los tipos de datos derivados se forman a partir de los tipos primitivos.
En este tema veremos los tipos primitivos y en temas siguientes estudiaremos los
tipos derivados.
Los tipos de datos primitivos en C++ son: numéricos enteros, numéricos reales,
tipo lógico y tipo carácter ampliado.
El tipo de dato numérico entero es un suconjunto finito de los n!meros enteros
del mundo real. "ueden ser positivos o negativos.
#ipo de $ato $escripción
%!mero de
ytes t&pico
'ango
s(ort Entero corto ) *+),-. a +),-,
int Entero / *)0/,/.+-/. a +)0/,/.+-/,
long Entero largo / *)0/,/.+-/. a +)0/,/.+-/,
c(ar Carácter 0 *0). a 0),
Con los tipos enteros pueden utili1arse los calificadores signed y unsigned. Estos
calificadores indican si el n!mero tiene signo o no. 2i se usan solos, sin indicar el
tipo de dato se asume int.
"or ejemplo, las siguientes declaraciones son equivalentes:
unsigned int 34 equivale a: unsigned 34
5sando estos calificadores podemos tener los siguientes tipos enteros:
#ipo de $ato $escripción
%!mero de
ytes t&pico
'ango
signed s(ort Entero corto ) *+),-. a +),-,
unsigned
s(ort
Entero corto sin
signo
) 6 a -77+7
signed int Entero / *)0/,/.+-/. a +)0/,/.+-/,
unsigned int Entero sin signo / 6 a /)8/8-,)87
signed long Entero largo / *)0/,/.+-/. a +)0/,/.+-/,
unsigned long
Entero largo sin
signo
/ 6 a /)8/8-,)87
signed c(ar Carácter 0 *0). a 0),
Daniel Avila Hernández 212352778 SEC:D04
unsigned c(ar Carácter sin signo 0 6 a )77
"odemos ver que los datos enteros de tipo signed son equivalentes a los enteros
sin utili1ar el calificador:
signed int a4 es equivalente a escriir int a4
Tipos de datos numéricos reales
El tipo de dato numérico real es un suconjunto finito de los n!meros reales.
"ueden ser positivos o negativos.
En C++ los tipos de datos numéricos reales son los siguientes:
#ipo de
$ato
$escripción
%!mero de
ytes t&pico
'ango
float
'eal 9%!mero en
coma flotante:
/
"ositivos: +./E*+. a +./E+.
%egativos: *+./E*+. a *+./E+.
doule
'eal dole9%!mero
en coma flotante de
dole precisión:
.
"ositivos: 0.,E*+6. a 0.,E+6.
%egativos: *0.,E*+6. a *0.,E+6.
long
doule
'eal dole largo 06
"ositivos: +./E*/8+) a 0.0E/8+)
%egativos: *+./E*/8+) a *0.0E/8+)
Tipo lógico
Los datos de este tipo sólo pueden contener dos valores: true ó false 9verdadero ó
falso:.
2i se muestran como enteros, el valor true toma el valor 0 y false el valor 6.
#ipo de
$ato
$escripción
%!mero de
ytes t&pico
'ango
ool $ato de tipo lógico 0 6, 0
#ipo carácter e3tendido
Este tipo se utili1a para representar caracteres 5%;C<$E. 5tili1a ) ytes a
diferencia del tipo c(ar que solo utili1a 0.
#ipo de
$ato
$escripción
%!mero de
ytes t&pico
'ango
=c(ar>t Carácter 5nicode ) 6 a -77+7
Estructuras de Control:
ESTRUCTURA SECUENCIAL:
Daniel Avila Hernández 212352778 SEC:D04
La estructura secuencial está formada por una secuencia de instrucciones que se
ejecutan en orden una a continuación de la otra.
Cada una de las instrucciones están separadas por el carácter punto y coma 94:.
%o ostante, en algunos casos nos interesará agrupar en un loque una serie de
instrucciones, como veremos al e3plicar las estructuras de selección y de
iteración. El loque de sentencias se define por el carácter llave de apertura 9?:
para marcar el inicio del mismo, y el carácter llave de cierre 9@: para marcar el final.
Ejemplo:
?
instrucción 04
instrucción )4
instrucción +4
.....
instrucción %4
@
2in emargo, en caso de que el loque de sentencias este constituido por una
!nica sentencia no es oligatorio el uso de las llaves de apertura y cierre 9? @:.
ESTRUCTURA CONDICIONAL SELECTI!A O ALTERNATI!A:
Las estructuras condicionales controlan si una sentencia o loque de sentencias
se ejecutan, en función del cumplimiento o no de una condición o e3presión lógica.
C++ tiene dos estructuras de control para la selección, if y s=itc(.
;nstrucción ;A
Esta instrucción (ace que se ejecuten unas sentencias u otras dependiendo del
valor que toma una condición.
La instrucción if puede ser simple o dole:
Blternativa simple:
if 9condicion:
instrucción04
if 9condicion:
?
instrucción 04
instrucción )4
instrucción +4
@
Blternativa dole.
if 9condicion:
instrucción04
else
instrucción)4
Daniel Avila Hernández 212352778 SEC:D04
if 9condicion:
?
;nstrucción 04
instrucción )4
@
else
?
instrucción +4
instrucción /4
@
Selecti"a #ultiple S$itc%:
La sentencia s=itc( selecciona una de entre m!ltiples alternativas.
La forma general de esta e3presión es la siguiente:
s=itc( 9e3presión:
?
case constante0:
instrucciones4
reaC4
case constante ):
instrucciones4
reaC4
D D D
default:
instrucciones4
@
En una instrucción s=itc(, e3presión dee ser una e3presión con un valor entero, y
constante0, constante), ..., deen ser constantes enteras, constantes de tipo
carácter o una e3presión constante de valor entero. E3presión tamién puede ser
de tipo c(ar, ya que los caracteres individuales tienen valores enteros
$entro de un case puede aparecer una sola instrucción o un loque de
instrucciones.
La instrucción s=itc( eval!a la e3presión entre paréntesis y compara su valor con
las constantes de cada case. 2e ejecutarán las instrucciones de aquel case cuya
constante coincida con el valor de la e3presión, y contin!a (asta el final del loque
o (asta una instrucción que transfiera el control fuera del loque del s=itc( 9una
instrucción reaC, o return:. 2i no e3iste una constante igual al valor de la
e3presión, entonces se ejecutan las sentencias que están a continuación de
default si e3iste 9no es oligatorio que e3ista, y no tiene porqué ponerse siempre al
final:.
Ejemplo de uso de la instrucción s=itc( en C++. "rograma que lee dos n!meros y
una operación y reali1a la operación entre esos n!meros.
Daniel Avila Hernández 212352778 SEC:D04
ESTRUCTURAS RE&ETITI!AS O ITERATI!AS:
C++ dispone de tres estructuras repetitivas:
while,
do-while
for.
Instrucción $%ile:
=(ile 9condicion:
?
instrucción 04
..............
instrucción %4
@
Ejecuta una instrucción o un loque de instrucciones cero o más veces,
dependiendo del valor de la condición.
2e eval!a la condición, y si es cierta, se ejecuta la instrucción o loque de
instrucciones y se vuelve a evaluar la condición4 pero si la condición es falsa, se
pasa a ejecutar la siguiente instrucción después del =(ile.
Instrucción do '' $%ile:
do
?
instrucción 04
..............
instrucción %4
@ =(ile 9condicion:4
Ejecuta una instrucción o un loque de instrucciones, una o más veces,
dependiendo del valor de la condición.
2e ejecuta la instrucción o loque de instrucciones y a continuación se eval!a la
condición. 2i la condición es cierta, se vuelve a ejecutar la instrucción o loque de
instrucciones, y si es falsa, pasa a ejecutarse la siguiente instrucción después del
do*=(ile.
Cuando se utili1a una instrucción do*=(ile el loque de instrucciones se ejecuta al
menos una ve1, ya que la condición se eval!a al final. En camio, con una
instrucción =(ile, puede suceder que el loque de instrucciones no llegue a
ejecutarse nunca si la condición inicialmente es falsa.
Instrucción (or:
Daniel Avila Hernández 212352778 SEC:D04
5n ucle for (ace que una instrucción o loque de instrucciones se repitan un
n!mero determinado de vecesmientras se cumpla la condición.
for9iniciali1ación4 condicion4 incrementoEdecremento:
?
instrucción 04
...........
instrucción %4
@
B continuación de la palara for y entre paréntesis dee (aer siempre tres 1onas
separadas por punto y coma:
1ona de iniciali1ación
1ona de condición
1ona de incremento ó decremento.
En alguna ocasión puede no ser necesario escriir alguna de ellas. En ese caso
se pueden dejar en lanco, pero los punto y coma deen aparecer.
El funcionamiento de un ucle for el siguiente:
0. 2e iniciali1a la variale o variales de control.
). 2e eval!a la condición.
+. 2i la condición es cierta se ejecutan las instrucciones. 2i es falsa, finali1a la
ejecución del ucle y contin!a el programa en la siguiente instrucción después del
for
/. 2e actuali1a la variale o variales de control 9incrementoEdecremento:
7. 2e pasa al punto ):.
Esta instrucción es especialmente indicada para ucles donde se cono1ca el
n!mero de repeticiones que se van a (acer.
Como regla práctica podr&amos decir que las instrucciones =(ile y do*=(ile se
utili1an generalmente cuando no se conoce a priori el n!mero de pasadas, y la
instrucción for se utili1a generalmente cuando s& se conoce el n!mero de pasadas.
Arreglos unidimensionales:
5n arreglo de una dimensión es una lista de variales, todas de un mismo tipo a
las que se (ace
referencia por medio de un nomre com!n. 5na variale individual del arreglo se
llama elemento del
arreglo. "ara declarar un arreglo de una sola dimensión se usa el formato general:
tipo>dato identificadorFtamaGoH4
int arregloF+H4
arregloF6H
arregloF0H
arregloF)H
Daniel Avila Hernández 212352778 SEC:D04
5n elemento del arreglo se accede inde3ando el arreglo por medio de un n!mero
del elemento. En C++
todos los arreglos empie1an en 6, esto quiere decir que si se desea acceder al
primer elemento del
arreglo dee usar el &ndice igual a 6. "ara inde3ar un arreglo se especifica el
&ndice del elemento que
interesa dentro de un corc(ete, ejemplo4
valor I arregloF0H4
Los arreglos empie1an en 6, de manera que el &ndice 0 se refiere al segundo
elemento. "ara asignar el
valor a un elemento de un arreglo, ponga el elemento en el lado i1quierdo de una
sentencia de
asignación.
mi>arregloF6H I 0664
C++ almacena arreglos de una sola dimensión en una locali1ación de memoria
contigua con el primer
elemento en la posición más aja. $e esta manera, mi>arregloF6H es adyacente a
mi>arregloF0H, que es
adyacente a mi>arregloF)H y as& sucesivamente. "uede usar el valor de un
elemento de un arreglo
donde quiera que usar&a una variale sencilla o una constante.
Ejemplo 0. Brreglo de una dimensión
/E)7 $eclaración
int arregloF+H4 EE forma un arreglo de una dimensión y de tres elementos
%omre del arreglo
arreglo
%omre de los elementos
arregloF6H J primer elemento
arregloF0H J segundo elemento
arregloF)H J tercer elemento
Arreglos )idimensionales:
Daniel Avila Hernández 212352778 SEC:D04
5n arreglos idimensional esta compuesto, por un conjunto de elementos
(omogéneos y se puede acceder a los datos utili1ando dos su&ndices, este tipo
de arreglo es tamién conocido como matri1.
$eclaración
5n arreglo idimensional se define as&:
int arregloF06HF06H4
float matri1F06HF06H4
tamién podemos utili1ar constantes para definir la dimensión del arreglo de dos
dimensiones:
const int % I 064
int arregloF%HF%H4
;niciali1ación
5na matri1 o arreglo idimensional se puede iniciali1ar de este modo:
int matri1F+HF+H I ??0,),+@,?/,7,-@,?,,.,8@@4
Con la anterior asignación se crea en memoria una matri1 igual a la de aajo

6 0 )
6 0 ) +
0 / 7 -
) , . 8
Aig. ..0
#amién podemos utili1ar una estructura for dentro de otra estructura for para
iniciali1ar los valores de un arreglo de dos dimensiones como se muestra a
continuación:
Ejemplo ..0
Daniel Avila Hernández 212352778 SEC:D04
Leer desde teclado una matri1 de n!meros enteros de dimensión +3+.
Kinclude Liostream.(M
void main9:
?
const int #BNI+4
int matri1F#BNHF#BNH4
for9 int iI64 iL#BN 4 i++:
?
for9 int jI64 jL#BN4 j++:
?
coutLLO;ngrese el elemento FPLLiLLO,PLLjLLOH P4
cinMMmatri1F;HFjH4
@
@
@
Bcceso a los elementos de un arreglo idimensional
En un arreglo de dos dimensiones necesitamos tamién dos &ndices para acceder
a sus elementos.
2i utili1amos: matri1FiHFjH, entonces i se refiere a la fila y j a la columna.
"ara acceder al elemento de la segunda fila y segunda columna de la matri1 de la
Aig. ..0 (acemos:
int nro I matri1F0HF0H4
En la variale nro se guardara el n!mero 7.
Las matrices o arreglos idimensionales se suelen utili1ar en cálculos
matemáticos, operaciones con matrices, recorridos por matrices, y cualquier uso
que nosotros le podamos dar.
2e pueden definir arreglos de más de ) dimensiones, pero su manejo se
dificultar&a enormemente.