You are on page 1of 21

Compilador: Es un programa que traduce los programas fuentes escritos en lenguaje de alto nivel (C,

C++) al lenguaje maquina


Sentencia o instruccin: Es una orden que se le da a la computadora a travs de un programa, para
que ejecute determinada accin.
Programa: Conjunto de instrucciones que indican a la computadora las tareas o acciones a realizar.
os arc!ivos (Programas) generados por C++ tienen la e"tensin *.CPP (de C #lus #lus), $ en el
lenguaje C standard tienen la e"tensin *.C. #ero en am%os casos se trata de archivos de texto,
tam%in llamados archivos fuente. Esta distincin es mu$ importante, pues determina cual de los dos
compiladores se va a utilizar $a sea C++ o C standard.
a utilizacin de nom%res incorrectos en los arc!ivos puede dar lugar a errores durante el proceso de
compilacin.
os programas escritos en C++ en lenguaje de alto nivel (&nstrucciones parecidas al lenguaje !umano
espec'ficamente al idioma ingls) se llaman programas fuente, $ por la forma como se escri%en esas
instrucciones se le conoce como cdigo fuente $ el programa traducido programa objeto o cdigo
objeto.
Compilacin es el proceso de traduccin de programa fuente a programa o%jeto
Depuracin es el proceso de detectar $ corregir errores en los programas
Tipos de errores
Errores de sintaxis: (on aquellos que se producen cuando el programa viola la sinta"is, es decir, las
reglas de gram)tica del lenguaje. *lgunos errores t'picos de sinta"is son:
#oner punto $ coma despus del nom%re de la funcin main()
Escritura incorrecta de pala%ras reservadas
+misin de punto $ coma al final de una instruccin
+mitir la do%le diagonal normal antes de un comentario
+lvido de comillas al cerrar una cadena.
Etc.
os errores de sinta"is son los mas f)ciles de corregir, $a que son detectados $ aislados por el
compilador.
Errores lgicos: (on errores en la lgica del programador es decir en la forma incorrecta de
estructurar las formulas $ c)lculos en el dise,o del algoritmo de solucin del
pro%lema. En pala%ras m)s sencillas es un mal planteamiento de la solucin del
pro%lema.
os errores lgicos son m)s dif'ciles de detectar $ aislar, $a que no los detecta el compilador. El
compilador no produce ning-n mensaje de error de sinta"is, $a que no se !a violado ninguna regla de
sinta"is $ por lo tanto el compilador no detecta error $ el programa se compilar) $ ejecutar) %ien,
aunque producir) resultados de valores incorrectos, $a que la frmula utilizada para calcular el
resultado contiene un error lgico.
En la forma ms general los datos se clasifican en dos tipos:
.-meros
Cadenas de caracteres
#rogramacin en C/C++, nivel %)sico 0. C. eonardo 1endi t o 0oral es 2
Cadena de caracteres (Cadenas): Es una secuencia de uno o m)s caracteres que pueden incluir
n-meros, letras $ s'm%olos. Con los n-meros contenidos en las
cadenas de caracteres no se pueden realizar operaciones
aritmticas.
!meros: (on todos los n-meros positivos $ negativos tanto n-meros enteros como n-meros reales,
con este tipo de datos si se puede realizar operaciones aritmticas. (En lo su%siguiente se
ver) la clasificacin de estos en C++)
Constante: Es una zona de memoria de la computadora en la que se almacena un tipo de dato
(n-meros o caracteres) $ cu$o contenido no cam%ia $ ni se puede cam%iar durante la
ejecucin del programa.
"aria#le: Es una zona o localidad en la memoria de la computadora en la que se va almacenar un valor
de cierto tipo de dato (n!meros o cadenas) $ su contenido puede ir variando o modificando
durante la ejecucin del programa.
3oda varia%le de%e tener un nom#re o tam%in llamado identificador que el programador proporciona
$ tam%in de%e tener especificado el tipo de dato (n-meros o cadenas) que va contener o almacenar $
que tam%in es proporcionado por el programador
4na varia%le no puede almacenar al mismo tiempo $ en la misma seccin del programa am%os tipos de
datos (numricos $ cadenas), solo uno de ellos.
$dentificadores (nom#res): 3am%in conocidos como nom#res $ consisten en una secuencia de
letras, d'gitos $ su%ra$ados (guiones %ajos) que se utilizan para
nom%rar los distintos elementos que se utilizan en c++ tales como:
.om%res de varia%le, nom%res de constantes, nom%res de funciones
(su%programas) ela%oradas por el usuario, clases.
%eglas para creacin de identificadores
2. El primer car)cter de%e ser una letra o un su%ra$ado (5uin %ajo) aunque comenzar por su%ra$ado
se suele reservar para identificadores de funciones especiales del sistema.
6. 7nicamente se pueden utilizar en la formacin de identificadores letras del alfa%eto ingls
ma$-sculas $ min-sculas (no se admiten ni la letras &' (' ni los acentos en vocales ' !' )' ' *' ni
las diresis +), d)gitos del 8 al 9 $ guin #a,o.
:. ;'gitos o su%ra$ados pueden seguir a la letra o su%ra$ado inicial.
<. os espacios en #lanco no est)n permitidos. 4tilice el su%ra$ado para separar las pala%ras en un
nom%re que consiste en varias pala%ras o utilice ma$-sculas para una o m)s de las pala%ras que
conforman el nom%re (suponiendo que no e"iste ninguna separacin entre las pala%ras). #ero
cuando sean varias pala%ras formando el identificador nunca se de%en separar por espacios en
%lanco.
=. .o se de%e utilizar como identificador ninguna pala#ra cla-e o tam%in llamada pala#ra
reser-ada (las pala#ras reser-adas son nom%res preesta%lecidos de ciertas funciones o
instrucciones que realizan una tarea espec'fica en C++)
>. El nom%re de un identificador puede ser de cualquier tama,o pero solo son significativos los
primeros :6 caracteres(es decir que para el nom%re solo se toman en cuenta los :6 primeros).
?. C++ es sensi%le a ma$-sculas $ min-sculas, es decir !ace distincin entre los identificadores
escritos con ma$-sculas $ los escritos en min-sculas. #or ejemplo .rea es distinto de area, a-n
cuando al parecer tengan el mismo nom%re, para C++ son distintas porque el nom%re del primer
identificador empieza con ma$-scula $ el segundo identificador en min-scula.
#rogramacin en C/C++, nivel %)sico 0. C. eonardo 1endi t o 0oral es 6
Pala#ras reser-adas
(e llaman as' las pala%ras que en C++ tienen un significado concreto para los compiladores. .o se
pueden por tanto usar esas pala%ras para poner nom%re a varia%les, constantes, funciones o clases
definidas por el programador. a lista de pala%ras reservadas proceden tanto del C, como del C++
pala%ras procedentes del lenguaje C (afectan tam%in al C++)
Pala#ras procedentes del lengua,e C (afectan tam#i*n al C++)
auto dou%le int struct %rea@ else long sAitc!
case enum register t$pedef c!ar e"tern return union
const float s!ort unsigned continue for signed void default
goto sizeof volatile do if static A!ile
Pala#ras reser-adas propias slo del lengua,e C++
asm %ool catc! class constB cast delete d$namicBcast
e"plicit false friend inline muta%le namespace neA operator
private protected pu%lic reinterpretBcast staticBcast template t!is t!roA
true tr$ t$peid t$pename using virtual c!arBt
#rogramacin en C/C++, nivel %)sico 0. C. eonardo 1endi t o 0oral es :
EST%/CT/%. 0EE%.1 DE / P%20%.3. E C++
Directi-as del procesador 4 #i#liotecas
CincludeDstdio.!E
CincludeDiostream.!E
Declaracin de -aria#les glo#ales 4 funciones
int %aseF
float volumen, perimetro, areaF
5uncin principal main()
main()
G
;eclaracin de varia%les locales.
&nstrucciones de la funcin principal.
H
2tras funciones (su#programas)
Iuncion2( . . . )
G
. . .
H
Iuncion6( . . . )
G
. . .
H
Iuncion.( . . . )
G
. . .
H
#rogramacin en C/C++, nivel %)sico 0. C. eonardo 1endi t o 0oral es <
D$%ECT$".S DE1 P%2CES.D2% 6 7$71$2TEC.S
Directi-as del procesador: (on instrucciones al compilador antes de que se compile el programa
principal. as dos directivas mas usuales son: 8include $ 8define9
3odas las directivas empiezan con el signo de numeral (C) a veces conocido como gato, que indica al
compilador que lea las directivas antes de compilar la parte principal del programa.
as directivas pueden definir macros, constantes, arc!ivos fuente adicionales, etc. #ero su uso m)s
frecuente en C++ es la inclusin de arc!ivos de ca%ecera.
.rc:i-os de ca#ecera: 3am%in son llamados #i#lioteca de funciones $ en otras ocasiones como
li#rer)as. (on arc!ivos fuente con e"tensin *9: $ contienen cdigo de una
coleccin de funciones (instrucciones previamente programadas $ listas para
usarse en los programas) que realizan tareas especificas, como visualizar
informacin en la pantalla, calcular la ra'z cuadrada de un n-mero, esta%lecer
color a un te"to, etc. En otras pala%ras las li%rer'as contienen funciones que
se van a utilizar dentro de los programas.
#ara poder utilizar las funciones almacenadas dentro de las li%rer'as, un programa de%e utilizar la
directiva 8include para insertar el arc!ivo de ca%ecera correspondiente. #or ejemplo, si un programa
necesita utilizar la funcin po;(x'4) que sirve para elevar un n-mero x a la potencia 4, esta funcin se
encuentra dentro de la li%rer'a mat:9:, as' que, para que el programa pueda usar esta funcin de%e
contener la directiva:
8include<mat:9:=
os signos de < $ = se utilizan para indicarle al compilador que el arc!ivo mat:9: es un arc!ivo de
%i%lioteca.
3odas las li%rer'as que se inclu$an en el programa sus nom%res de%er)n ir entre estos dos signos de <
$ =. *s' por ejemplo:
8include<mat:9:=
8include<stdio9:=
8include<iostream9:=
8include<string9:=
Etc>9
#rogramacin en C/C++, nivel %)sico 0. C. eonardo 1endi t o 0oral es =
DEC1.%.C$? DE ".%$.71ES 0127.1ES
/na -aria#le antes de utili@arse de#e de ser declarada
Declaracin de -aria#le: Es una sentencia por medio de la cual se crea una varia%le. En esa
sentencia se de%e de especificar un nom#re para la varia%le $ el tipo de
dato que va a almacenar. *l crear o declarar una varia%le se reserva un
espacio de almacenamiento en memoria. a forma de declarar una varia%le
tiene la siguiente sintaxis:
TipoAdeAdatoABueA-aAaAalmacenar om#reAdeAlaA-aria#leC
T$P2S DE D.T2S
os tipos de datos, son el tipo de informacin que se puede almacenar en las varia%les declaradas
T$P2 237%E T.3.(2 %.02
Caracter o cadena unsigned c!ar
c!ar
J %its
J %its
8 a 6==
K26J a 26?
!meros enteros enum
unsigned int
s!ort int
int
unsigned long
long
2> %its
2> %its
2> %its
2> %its
:6 %its
:6 %its
K:6,?>J a :6,?>?
8 a >=,=:=
K:6,?>J a :6,?>?
K:6,?>J a :6,?>?
8 a <,69<,9>?,69=
K6,2<?,<J:,><J a 6,2<?,<J:,><?
!meros de
punto flotante o reales
float
dou%le
long dou%le
:6 %its
>< %its
J8 %its
:.< L (28
K:J
) a :.< L (28
:J
)
2.? L (28
K:8J
) a 2.? L (28
:8J
)
:.< L (28
K<9:6
) a 2.2 L (28
<9:6
)
E,emplos
float #aseC
float alturaC
float area' per)metroC
int
/na -aria#le puede declararse en dos lugares dentro de un programa:
*l principio de un arc!ivo o de un %loque de cdigo.
En el punto de utilizacin.
;e acuerdo al alcance de una -aria#le se puede declarar de tipo glo#al o de tipo local (entindase
por alcance de una -aria#le determinar la zona dentro del programa en la cual puede ser utilizada $
la zona dentro del mismo programa donde no puede utilizarse).
"aria#les locales: (on aquellas definidas dentro de una funcin (su#programa) $ son visi%les o
utiliza%les slo dentro de esa funcin espec'fica.
#rogramacin en C/C++, nivel %)sico 0. C. eonardo 1endi t o 0oral es >
%eglas por las cuales se rigen las -aria#les locales:
2. 4na varia%le local declarada dentro de una funcin no puede ser modificada por ninguna sentencia
que este fuera de la funcin.
6. ;os o m)s funciones pueden declarar varia%les locales e"actamente con el mismo nom%re, porque
cada varia%le ser) distinta una de otra $ solo ser)n utilizadas en la funcin donde fueron declaradas.
:. as varia%les locales de cada funcin no e"isten en memoria !asta que se ejecuta la funcin !asta
entonces son creadas. o que permite el a!orro de memoria. M cuando se termina de ejecutar la
funcin las varia%les locales dejan de e"istir, desaparecen li%erando la memoria.
"aria#les glo#ales: (on varia%les que se declaran fuera de las funciones inclu$endo la funcin
principal main(), $ por consiguiente esas varia%les podr)n ser usadas por
cualquier funcin inclu$endo la principal. .ormalmente estas varia%les se
declaran despus de las directivas de la inclusin de li%rer'as en la estructura
general del programa.
3odas las varia%les locales desaparecen cuando termina su %loque o funcin (su%programa), una
varia%le glo%al permanece !asta que se termina todo el programa.
#rogramacin en C/C++, nivel %)sico 0. C. eonardo 1endi t o 0oral es ?
ET%.D.DS.1$D.
* diferencia de otros lenguajes, C *.(& (E(3N.;*O) no dispone de sentencias de entrada/salida. En su
lugar se utilizan funciones contenidas en la li%rer'a est)ndar $ que forman parte integrante del lenguaje.
as funciones de entrada/salida (&nput/+utput) son un conjunto de funciones, incluidas con el
compilador, que permiten a un programa reci%ir $ enviar datos. Es decir introducen flujos de datos
est)ndar de entrada $ e"traen flujos de datos est)ndar de salida. os flujos son secuencias de
caracteres organizadas en l'neas. #ara su utilizacin es necesario incluir, al comienzo del programa, el
arc!ivo stdio.! en el que est) contenida esta instruccin: 8include <stdio9:= donde stdio proviene
de standardKinputKoutput.
S.1$D.
5/C$? printf()
a funcin printf() imprime en el monitor el te"to, las constantes $/o varia%les que se indiquen.
a forma general de esta funcin se puede estudiar viendo su prototipo:
printf(EcadenaAdeAcontrolE' argF' tipo argG' 999)
a funcin printf() imprime el te"to contenido en cadenaAdeAcontrolAdeAformato junto con el valor
de los otros argumentos, de acuerdo con los formatos especificados a travs de los especificadores de
conversin incluidos en cadena_de_control_de_formato.
os puntos suspensivos (...) indican que puede !a%er un n-mero varia%le de argumentos.
as siguientes sinta"is muestran algunas formas generales de cmo podr'a utilizarse la funcin:
#ara imprimir un simple te"to como mensaje:
printf(E7uenas tardes' #ien-enido a la programacin #sica en c++>99E)C
#ara imprimir un mensaje $ el contenido de una varia%le:
printf(EEl monto total de su compra es: HdE' -aria#le)C
#ara imprimir varios mensajes $ varias varia%les:
printf(EEl rea del rectngulo es: Hd 4 el per)metro es: HfE' area ' perimetro)C
;onde los caracteres Hd forman especificaciones de conversin, es decir indican al compilador que en
esa posicin del te"to se va a imprimir o insertar el contenido de una varia%le que contiene datos
numricos del tipo enteros, $ Hf &ndican al compilador que en esa posicin en el te"to se va a insertar
el contenido de una varia%le que almacena datos numricos del tipo float (#unto flotante o con punto
decimal).
* la letras que siguen al s'm%olo de H (d'f'o'u'999) se le conoce como especificadores de conversin.
os especificadores de conversin se de%en de utilizar en los programas de acuerdo al tipo de varia%le
que se valla a imprimir.
;espus de que se cierran las comillas que encierran al mensaje junto con los especificadores, se de%en
colocar los nom%res de las varia%les a imprimir en el orden como van apareciendo los especificadores
de conversin dentro de la cadena de control, separadas por comas.
#rogramacin en C/C++, nivel %)sico 0. C. eonardo 1endi t o 0oral es J
Considrese el ejemplo siguiente:
int iF
dou%le tiempoF
float masaF
printf(E%esultado !mero: Hd En el instante: Hlf 1a masa -ale: Hf E' i' tiempo' masa)C
(e imprimen tres varia%les (i' tiempo $ masa) con los formatos (Hd, Hlf $ Hf ), correspondientes a
los tipos (int, dou#le $ float), respectivamente. a cadena de control se imprime con el valor de cada
varia%le intercalado en el lugar del formato correspondiente (especificadores de conversin).
3a%la de Caracteres de conversin para la funcin printf().
ENTEROS
Especificador Descripcin Ejemplos
d, i Despliega un entero decimal con signo
printf(%d ,4!" 4
printf(%i ,4!" 4
printf(%d ,#4!" #4
printf(%$d ,%&'''!" %&'''
printf(%ld ,&'''''''''!" &'''''''''
printf(%o ,4!" ('(
printf(%u ,4!" 4
printf(%u ,#4!" )'*+
printf(%, ,4!" +c(
printf(%- ,4!" +.(
o /uestra un entero octal sin signo
u /uestra un entero decimal sin signo
, , -
/uestran un entero $e,adecimal no signado0
, /uestra los digitos '#1 2 las letras a#f0
- muestra los digitos '#1 2 las letras 3#40
$, l (letra!
Se coloca antes de cual5uier especificador
de con6ersin de enteros para indicar 5ue se
muestra un entero s$ort, o 7ien long
respeti6amente
89NTO 4:OT3NTE (DE.;/3:ES O RE3:ES!
Especificador Descripcin Ejemplos
e , E
/uestra un 6alor en punto flotante en
notacin e,ponencial
printf(%e ,+&%4)(0*1!" +0&%4)*e<')
printf(%e ,#+&%4)(0*1!" +0&%4)*e<')
printf(%E ,+&%4)(0*1!" +0&%4)*e<')
printf(%f ,+&%4)(0*1!" +0&%4)(0*1''''
printf(%g ,+&%4)(0*1!" +0&%4)(e<')
printf(%= ,+&%4)(0*1!" +0&%4)(e<')
f /uestra 6alores en punto flotante
g , =
Despliega un 6alor en punto flotante, 2a sea
en forma de punto flotante f, o en la forma
e,ponencial e, E
:
Se coloca antes de cual5uier especificador
de con6ersin de punto flotante, para indicar
5ue est> mostrando un 6alor de punto
flotante long dou7l?
#rogramacin en C/C++, nivel %)sico 0. C. eonardo 1endi t o 0oral es 9
.3R@.TER A .3DEN3S
Especificador Descripcin Ejemplos
c ;mprime el un car>cter
c$ar caracterBC3C"
c$ar cadenaD EBFEsto es una cadenaF"
printf(%cF,caracter!" 3
printf(%sF,cadena!" Esto es una cadena
;mprime una cadena
o importante es considerar que de%e !a%er correspondencia uno a uno (el 2P con el 2P, el 6P con el 6P,
etc.) entre los formatos que aparecen en la cadenaAdeAcontrol $ los otros argumentos (constantes,
varia%les o e"presiones).
* continuacin se inclu$en algunos ejemplos de uso de la funcin printf().
El primer ejemplo contiene slo te"to, por lo que %asta con considerar la cadenaBdeBcontrol.
printf(ECon cien ca&ones por #anda'In-iento en popa a toda -elaE)C
El resultado ser): la cadenaBdeBcontrol se divide en dos l'neas con caracteres intro, por lo que en este
ejemplo se usan secuencias de escape In. 3odos los caracteres que se encuentren despus de In se
imprimir)n en un nuevo rengln, no importando si despus de In e"ista un espacio en %lanco o alg-n
otro car)cter. El resultado de la instruccin prinf() anterior ser'a:
Con cien ca&ones por #anda'
-iento en popa a toda -ela
E,emplo G
printf(E7uenas tardes' In #ien-enido a la clase de c++'In:iciste una #uena eleccinE)C
a salida ser'a:
7uenas tardes'
#ien-enido a la clase de c++'
:iciste una #uena eleccinE)C
.ote que el segundo rengln se imprime con una especie de sangr'a, esto de%ido los espacios en %lanco
que que se encuentran entre In $ la pala%ra #ien-enido9
2T.: *-n cuando la secuencia de escape In $ la pala%ra :iciste se encuentran juntas $ no e"iste
espacio de separacin entre ellas, no afecta en nada a la instruccin printf() ni a la cadena de te"to.
a funcin printf() tiene un valor de retorno de tipo int, que representa el n-mero de caracteres escritos
en esa llamada.
#rogramacin en C/C++, nivel %)sico 0. C. eonardo 1endi t o 0oral es 28
5/C$? cout<< (funcin exclusi-a de c++)
a instruccin coutDD se utiliza para desplegar informacin en la pantalla. Esta funcin puede desplegar
o visualizar en pantalla mensajes de te"to $ contenido de varia%les. (e de%e escri%ir la pala%ra cout en
min-sculas o%ligatoriamente seguida de do%le signo de menor que (coutDD) $ a continuacin lo que se
desea imprimir en pantalla. En las siguientes sinta"is se presentan las distintas maneras como se puede
utilizar esta funcin:
cout<<J3ensa,e de texto>99JC
cout<<"aria#leC
cout<<J3ensa,e>J<<"aria#leC
cout<<J3ensa,e>J<<"aria#leF<<J3ensa,e G>9J<<"aria#leGC
cout<<"aria#leF<<J3ensa,e>J<<-aria#leG<<J3ensa,e>J<<-aria#leK<<-arai#leC
(i o%serva, a partir de la tercera sinta"is, notar) que si se desea imprimir mensajes de te"to $ varia%les
al mismo tiempo, los 0ensajes de%er)n ir entre comillas $ se separan de las varia%les por do%le signo
de menor que (DD), note tam%in que las varia%les no se colocan entre comillas.
Ejemplos
float *rea, 1ase, *lturaF
1aseQ=F *lturaQ6=F *reaQ1aseL*ltura/6F
cout<<E7ien-enidos a la programacin en c++>99EC
cout<<.reaC
cout<<EEl rea del tringulo es: E<<.reaC
cout<<E1a #ase es de: E<<7ase<<E1a altura es de: E<<.ltura<<E6 el rea: E<<.reaC
cout<<7ase<<J es la #ase' J<<.ltura<<J de altura 4 el rea es de: J<<.reaC
cout<<JEl areas es: J<<7ase+.lturaC
En el -ltimo ejemplo, muestra como se pueden realizar operaciones aritmticas con la instruccin
coutDD $ mostrar los resultado. #ero no se puede realizar operaciones de asignacin.
cout<<ECon cien ca&ones por #anda'In-iento en popa a toda -elaEC
El resultado ser): el mensaje se divide en dos l'neas con caracteres intro, por lo que en este ejemplo
se usan secuencias de escape In. 3odos los caracteres que se encuentren despus de In se imprimir)n
en un nuevo rengln, no importando si despus de In e"ista un espacio en %lanco o alg-n otro
car)cter. El resultado de la instruccin coutDD anterior ser'a:
Con cien ca&ones por #anda'
-iento en popa a toda -ela
cout<<E7uenas tardes' In #ien-enido a la clase de c++'In:iciste una #uena eleccinEC
a salida ser'a:
7uenas tardes'
#ien-enido a la clase de c++'
:iciste una #uena eleccinE)C
.ote que el segundo rengln se imprime con una especie de sangr'a, esto de%ido los espacios en %lanco
que que se encuentran entre In $ la pala%ra #ien-enido9
2T.: *-n cuando la secuencia de escape In $ la pala%ra :iciste se encuentran juntas $ no e"iste
espacio de separacin entre ellas, no afecta en nada a la instruccin cout<< ni a la cadena de te"to.
#rogramacin en C/C++, nivel %)sico 0. C. eonardo 1endi t o 0oral es 22
ET%.D.
5/C$? scanf()
a funcin scanf() es an)loga en muc!os aspectos a printf(), $ se utiliza para leer datos de la entrada
est)ndar (que por defecto es el teclado). a forma general de esta funcin es la siguiente:
scanf(EHxFHxG999E' LargF' LargG' 999)C
donde xF' xG, ... son los caracteres de conversin, mostrados en la 3a%la de a%ajo, que representan
los formatos con los que se espera encontrar los datos.
En la funcin scanf() los argumentos que siguen a la cadenaBdeBcontrol de%en ser pasados por
referencia, $a que la funcin los lee $ tiene que trasmitirlos al programa que la !a llamado. #ara ello,
dic!os argumentos de%en estar constituidos por las direcciones de las varia%les en las que !a$ que
depositar los datos, $ no por las propias varia%les. 4na e"cepcin son las cadenas de caracteres, cu$o
nom%re es $a de por s' una direccin (un puntero), $ por tanto no de%e ir precedido por el operador (R)
en la llamada.
Caracteres de conversin para la funcin scanf().
carcter caracteres ledos
argumento
c cual5uier car>cter c$ar G
d, i entero decimal con signo int G
u entero decimal sin signo unsigned int
o
entero octal unsigned int
,, - entero $e,adecimal unsigned int
e, E, f, g, = nHmero de punto flotante float
s cadena de caracteres sin I I c$ar
$, l para s$ort, long 2 dou7le
: modificador para long dou7le
#or ejemplo, para leer los valores de dos varia%les int $ dou%le $ de una cadena de caracteres, se
utilizar'an la sentencia:
int nC
dou#le distanciaC
c:ar nom#reMGNOC
scanf(EHdHlfHsE' Ln' Ldistancia' nom#re)C
en la que se esta%lece una correspondencia entre n $ Sd, entre distancia $ Slf, $ entre nom%re $ Ss.
+%srvese que nom%re no va precedido por el operador (R). a lectura de cadenas de caracteres se
detiene en cuanto se encuentra un espacio en %lanco, por lo que para leer una l'nea completa con
varias pala%ras !a$ que utilizar otras tcnicas diferentes.
#rogramacin en C/C++, nivel %)sico 0. C. eonardo 1endi t o 0oral es 26
En los formatos de la cadena de control de scanf() pueden introducirse corc!etes T...U, que se utilizan
como sigue. a sentencia:
scanf(EHM.7 InItOE' s)C DD se leen solo los caracteres indicados
lee caracteres !asta que encuentra uno diferente de (V*V,V1V,V V,VWnV,VWtV). En otras pala%ras, se leen slo los
caracteres que aparecen en el corc!ete. Cuando se encuentra un car)cter distinto de stos se detiene la
lectura $ se devuelve el control al programa que llam a scanf(). (i los corc!etes contienen un car)cter
(X), se leen todos los caracteres distintos de los caracteres que se encuentran dentro de los corc!etes a
continuacin del (X).
#or ejemplo, la sentencia:
scanf(E HMPInOE' s)C
lee todos los caracteres que encuentra !asta que llega al car)cter nueva l'nea VWnV. Esta sentencia puede
utilizarse por tanto para leer l'neas completas, con %lancos incluidos.
Oecurdese que con el formato Ss la lectura se detiene al llegar al primer delimitador (car)cter %lanco,
ta%ulador o nueva l'nea).
#rogramacin en C/C++, nivel %)sico 0. C. eonardo 1endi t o 0oral es 2:
5/C$? cin== (funcin exclusi-a de c++)
a instruccin cinEE se utiliza para insertar datos en las varia%les desde el teclado. (e de%e escri%ir la
pala%ra cin en min-sculas o%ligatoriamente, seguida de do%le signo de ma$or que (cinEE) $ a
continuacin el nom%re de la varia%le para la cual se introducir)n datos desde teclado. En las siguientes
sinta"is se presentan las distintas maneras como se puede utilizar esta funcin:
cin=="aria#leC
cin=="aria#leF' -aria#leG' -aria#leC
En la primera sinta"is (la mas recomendada) se utiliza para leer una sola varia%le.
a segunda sinta"is se utiliza para leer dos o m)s varia%les con una sola instruccin.
El trmino leer o lectura de una varia%le, es otra forma de decir que se est) solicitando con la funcin
cinEEdatos que se de%en introducir por teclado $ que se almacenar)n en las varia%les especificadas.
Ejemplos:
int %ase, alturaF
cout<<E$nserte la #ase del tringulo: EC
cin==#aseC
cout<<E$nserte la altura del tringulo: EC cin==alturaC
cout<<J$nserte la #ase 4 altura del tringulo: QC cin==altura==alturaC
.ormalmente la instruccin cinEE se utiliza despus de dar indicaciones al usuario mediante mensajes
desplegados en pantalla, como se muestra en los ejemplos.
#rogramacin en C/C++, nivel %)sico 0. C. eonardo 1endi t o 0oral es 2<
DD Este programa calcula el n!mero de minutos Bue existe en una cantidad de segundos
DD introducida desde el teclado' adems calcula el n!mero de segundos Bue so#ran de la
DD cantidad Bue se introdu,o por teclado despu*s de :a#er calculado los minutos
8include<iostream9:=
8include<conio9:=
int segundosC
int minutosC
-oid main()
R
clrscr()C
cout<<E$nserte el n!mero de segundos: EC

cin==segundosC
minutosSsegundosDTNC
segundosSsegundosHTNC
cout<<ESon exactamente: E<<minutos<<E 3inutos 4: E<<segundos<<E SegundosEC
getc:()C
U
#rogramacin en C/C++, nivel %)sico 0. C. eonardo 1endi t o 0oral es 2=
D*
Es el mismo programa anterior pero a:ora modificado para Bue calcule el numero de
semanas' :oras' minutos 4 segundos Bue existen en una cantidad de segundos
introducida desde el teclado' este programa reporta semanas' :oras 4 minutos enteros
adems de los segundos Bue restan despu*s de calcular los datos anteriores9
*D
8include<iostream9:=
8include<conio9:=
long int segundos' residuoC
int minutosC
int :orasC
int dias'semanasC
-oid main()
R
clrscr()C
cout<<E$nsete el n!mero de segundos: EC cin==segundosC
semanasSsegundosDTNVWNNC
residuoSsegundosHTNVWNNC
diasSresiduoDWTVNNC
residuoSresiduoHWTVNNC
:orasSresiduoDKTNNC
residuoSresiduoHKTNNC
minutosSresiduoDTNC
segundosSresiduoHTNC
gotox4(GN'FN)C cout<<semanas<<E:Semanas E<<dias<<E:Dias E<<:oras<<E:Xoras EC
gotox4(GN'FG)C cout<<minutos<<E:3inutos E<<segundos<<E:SegundosE C
getc:()C
U
#rogramacin en C/C++, nivel %)sico 0. C. eonardo 1endi t o 0oral es 2>
Comentarios introducidos en el programa
En C los comentarios empiezan por los caracteres /L $ terminan con los caracteres L/. #ueden
comprender varias l'neas $ estar distri%uidos de cualquier forma, pero todo aquello que est) entre el /L
(inicio del comentario) $ el L/ (fin del comentario) es simplemente ignorado por el compilador.
*lgunos ejemplos de formato de comentarios son los siguientes:
/L Esto es un comentario simple. L/
/L Esto es un comentario m)s largo,
distri%uido en varias l'neas. El
te"to se suele alinear por la izquierda. L/
/LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
L Esto es un comentario de varias L
L l'neas, encerrado en una caja para L
L llamar la atencin. L
LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL/
En C++ se admite el mismo tipo de comentarios que en C, pero adem)s se considera que son
comentarios todo aquel te"to que est) desde dos %arras consecutivas (//) !asta el fin de la l'nea6. as
dos %arras marcan el comienzo del comentario $ el fin de la l'nea, el final. (i se desea poner
comentarios de varias l'neas, !a$ que colocar la do%le %arra al comienzo de cada l'nea. os ejemplos
anteriores se podr'an escri%ir del siguiente modo:
// Esto es un comentario simple.
// Esto es un comentario m)s largo,
// distri%uido en varias l'neas. El
// te"to se suele indentar por la izquierda.
//LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
// Esto es un comentario de varias L
// l'neas, encerrado en una caja para L
// llamar la atencin. L
//LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
a ventaja de este nuevo mtodo es que no se pueden comentar inadvertidamente varias l'neas de un
programa a%riendo un indicador de comentario que no se cierre en el lugar adecuado.
#rogramacin en C/C++, nivel %)sico 0. C. eonardo 1endi t o 0oral es 2?
$ST%/CC$2ES D$"E%S.S
clrscr()C
1orra o limpia la pantalla en la cual se muestran los resultados que arrojan los programas dejando el
cursor en la coordenada (2,2), es decir en la esquina superior izquierda de la pantalla.
.ormalmente se utiliza al inicio de los programas, despus de la llave inicial de la funcin main, para
%orrar los resultados previos de compilaciones de otros programas.
#ara utilizarla se escri%e la instruccin con parntesis vac'o $ termina con punto $ coma: clrscr()C
getc:()C 8include<conio9:=
ee un car)cter desde teclado sin mostrarlo en pantalla $ sin esperar que se presiones la tecla enter
para su ejecucin. Es decir detiene el flujo de ejecucin del programa para que se pueda leer un
car)cter $ si es el caso as'gnaselo a una varia%le c!ar que pueda reci%ir ese car)cter que se tecle.
En los ejemplos de este manual se utilizar) regularmente justo antes de finalizar los programas, para
!acer una pausa en la ejecucin $ se puedan o%servar los resultados que los programas arrojan.
#ara utilizarla se escri%e la instruccin con parntesis vac'o $ termina con punto $ coma: getc:()C
gotox4(x'4)C 8include<conio9:=
0ueve o u%ica el cursor a una posicin especificada (coordenada) dentro de la pantalla de te"to actual,
donde QxJ indica el n-mero de columna e Q4J la fila o rengln. .ormalmente en una pantalla de te"to
en c++ tiene <9 filas $ J8 renglones.
(e utiliza normalmente para u%icar en la pantalla en una coordenada especificada un mensaje o para
leer una varia%le en una posicin dada en la pantalla.
(e utiliza regularmente antes de las instrucciones scan(), printf(), coutDD, cinEE, gets, $ todas las
funciones utilizadas par imprimir datos en pantalla o en las instrucciones para lectura de varia%le.
*fecta solo a la instruccin que se encuentra despus de goto"$(",$)F
Ejemplos
gotox4(FG' Y)C coutDDY&nserte la %ase del tri)ngulo: YF
gotox4(FG' Z)C printf(Y1uenas tardes, %ienvenido a la programacin %)sica en c++Z..Y)F
a primera l'nea empieza a desplegarse en pantalla a partir de la columna 26 $ rengln =
a primera l'nea empieza a desplegarse en pantalla a partir de la columna 26 $ rengln ?
(i se !u%iera puesto la misma coordenada para las dos cadenas de te"to la segunda so%re escri%e a la
primera.
#rogramacin en C/C++, nivel %)sico 0. C. eonardo 1endi t o 0oral es 2J
gets(cadena)C 8include<stdio9:=
Esta funcin le una cadena de caracteres desde teclado $ la almacena en una varia%le tipo c!ar.
c!ar nom%reT:8UF
gets(nom%re)F
cinEEnom%reF
a varia%le nom%re es declarada como tipo c!ar $ puede almacenar un m)"imo de :8 caracteres, la
diferencia entre leer esa varia%le con cinEE o cout consiste en:
(i la varia%le nom%re se lee con cin== solo se almacenara parte de la cadena que se quiera almacena
pero !asta donde se detecte un espacio en %lanco, en otras pala%ra solo almacenar) caracteres
consecutivos en la varia%le.
(i la varia%le nom%re se lee con gets
#rogramacin en C/C++, nivel %)sico 0. C. eonardo 1endi t o 0oral es 29
EST%/CT/%.S DE C2T%21
Estas estructuras controlan la ejecucin de un programa, dependiendo del resultado de una condicin o
una seleccin por parte del usuario.
(entencia simple: Es una instruccin individual en C++, que puede ser una instruccin cinEE, coutDD,
clrscr(), getc!(), etc.
(entencia compuesta: Es un conjunto de sentencias simples encerradas entre llaves ( G H ), $ se
ejecutan como una sola unidad.
C2D$C$2.1 if
Sintaxis
F9 if(condicin)
SentenciaAsimpleC
G9 if(condicin)
SentenciaAsimpleC
else
SentenciaAsimpleC
K9 if(condicin)
R SentenciaAsimpleFC
SentenciaAsimpleGC
SentenciaAsimpleKC
SentenciaAsimpleC
U
V9 if(condicin)
R SentenciaAsimpleFC
SentenciaAsimpleGC
SentenciaAsimpleKC
SentenciaAsimpleC
U
else R SentenciaAsimpleFC
SentenciaAsimpleGC
SentenciaAsimpleKC
SentenciaAsimpleC
U
a sentencia if funciona de la siguiente manera: Cuando se alcanza la sentencia if dentro de un
programa, se eval-a la condicin entre parntesis que viene a continuacin de if (la cual siempre de%e
arrojar como resultado un valor de verdad [erdadero o Ialso).
#ara la sinta"is 4.+ se eval-a la condicin, si la condicin es verdadera se ejecuta SentenciaAsimpleC
en caso contrario, si la condicin da como resultado falso no se ejecuta SentenciaAsimpleC
#ara la sinta"is ;+( se eval-a la condicin, si la condicin es verdadera se ejecuta SentenciaAsimpleC
en caso contrario, si la condicin da como resultado falso se ejecuta la SentenciaAsimpleC que est)
despus de la pala%ra else9
#ara la sinta"is 3OE( se eval-a la condicin, si la condicin es verdadera se ejecuta se ejecuta la
sentencia compuesta que sigue a la pala%ra if (la sentencia compuesta se identifica porque est)
delimitada por dos llaves que encierran a un grupo de sentencias simples que se ejecutar)n en el caso
cuando la condicin evaluada da como resultado verdadero) en caso contrario, si la condicin da como
resultado falso no se ejecuta la sentencia compueta (R>U)
#ara la sinta"is C4*3O+ se eval-a la condicin, si la condicin es verdadera se ejecuta se ejecuta la
sentencia compuesta que sigue a la pala%ra if (la sentencia compuesta se identifica porque est)
delimitada por dos llaves que encierran a un grupo de sentencias simples las cuales se ejecutar)n en el
caso cuando la condicin al ser evaluada da verdadero) en caso contrario, si la condicin una vez
evaluada da como resultado falso entonces se ejecutar) la sentencia compueta (R>U) que sigue a la
pala%ra else9
#rogramacin en C/C++, nivel %)sico 0. C. eonardo 1endi t o 0oral es 68
.ota 2: a llaves son o%ligatorias despus de if o else cuando se tengan que ejecutar dos o m)s
instrucciones $a sea de lado de if o de lado de else.
.ota 6: Cuando se trate de una sola instruccin que se tenga que ejecutar despus de if o despus de
else dependiendo del resultado de la condicin, entonces la llaves son pocionales (se pueden
poner o no)
.ota :: o recomenda%le es colocar llaves despus de if $ despus de else aun cuando se trate de una
sola instruccin, para delimitar la parte verdadera $ la parte falsa de la instruccin if. M as'
evitar errores posi%les durante la compilacin del programa.
.ota <: 4na instruccin if puede o no llevar parte else. Es decir una instruccin if puede ejecutar una
instruccin (simple o compuesta) si la condicin da verdadera sin ser o%ligatoria la parte else.
$5 .$D.D2
Cuando se dice anidado quiere decir que un if puede ir dentro de otro if $a sea en la seccin verdadera
o seccin falsa.
(inta"is
if(condicin)
R SentenciaAsimpleFC
SentenciaAsimpleGC
if(condicin)
R (entenciaBsimple2F
(entenciaBsimple6F
(entenciaBsimple:F
(entenciaBsimple.F
U
else R (entenciaBsimple2F
(entenciaBsimple6F
(entenciaBsimple:F
(entenciaBsimple.F
U

SentenciaAsimpleVC
SentenciaAsimpleC
U
else R SentenciaAsimpleFC
SentenciaAsimpleGC
SentenciaAsimpleKC
SentenciaAsimpleC
U
#rogramacin en C/C++, nivel %)sico 0. C. eonardo 1endi t o 0oral es 62

You might also like