V
CONTENIDO 1. INT INTRO RODU DUCC CCIÓ IÓN N 5 1.2. C++
5
1.3. ENTOR ENTORNO NO DE DESAR DESARROLL ROLLO O INTEGRA INTEGRADO DO 5 1.4. DEV-C++
6
2. ASPE ASPECTO CTOS S BÁSIC BÁSICOS OS DE DE C++ C++ 7 2.1. ESTRUCTURA ESTRUCTURA BÁSICA DEL CÓDIGO7 2.2. LIBRERÍAS
7
2.3. VARIABLES
16
2.4. TIPOS DE DATOS
16
2.5. OPERADORES DE C++ 2.6. CARACTERES ASCII
18
2
3. PR PROG OGR RA! A!A ACI CIÓN ÓN ES ESTR TRUC UCTU TUR RAD ADA A
2
3.1. 3. 1. IN INST STRU RUCC CCIO IONE NES S DE DE ENT ENTR RAD ADA A " SAL SALID IDA A DE DA DATO TOS S
2
3.1. 3.1.1. 1. SAL SALID IDA A DE DA DATOS TOS 2 3.1.2. ENTRADA DE DATOS 3.2. INSTRUCCIÓN I#
22
23
3.3. INSTRUCCIÓN $%ILE 27 3.5 .5.. IN INS STR TRU UCC CCIION ONE ES AD ADIC ICIION ONA ALE LES S 3.5.1. DODO-$ $%ILE 3.5.2. #OR
31
32
34
3.5.3. S$ITC%- CASE
36
4. SUBPROGRA!AS3& 4.1. CLASI#ICACIÓN CLASI#ICACIÓN DE LOS LOS SUBPROGRA!AS SUBPROGRA!AS 4 4.1.1. PR PROCEDI!IENTOS O SUBRUTINAS
4
4.1. 4.1.2. 2. #UN #UNCI CION ONES ES 46 4.1.3. LIBRERÍAS
4&
4.1.4 LIBRERÍA LIBRERÍA PARA ARA VALID VALIDAR AR " CREAR CREAR CUADROS CUADROS.. 53 5. E'CEPCIONES
71
5.1. !ANE(ADOR DE E'CEPCIONES
71 2
CONTENIDO 1. INT INTRO RODU DUCC CCIÓ IÓN N 5 1.2. C++
5
1.3. ENTOR ENTORNO NO DE DESAR DESARROLL ROLLO O INTEGRA INTEGRADO DO 5 1.4. DEV-C++
6
2. ASPE ASPECTO CTOS S BÁSIC BÁSICOS OS DE DE C++ C++ 7 2.1. ESTRUCTURA ESTRUCTURA BÁSICA DEL CÓDIGO7 2.2. LIBRERÍAS
7
2.3. VARIABLES
16
2.4. TIPOS DE DATOS
16
2.5. OPERADORES DE C++ 2.6. CARACTERES ASCII
18
2
3. PR PROG OGR RA! A!A ACI CIÓN ÓN ES ESTR TRUC UCTU TUR RAD ADA A
2
3.1. 3. 1. IN INST STRU RUCC CCIO IONE NES S DE DE ENT ENTR RAD ADA A " SAL SALID IDA A DE DA DATO TOS S
2
3.1. 3.1.1. 1. SAL SALID IDA A DE DA DATOS TOS 2 3.1.2. ENTRADA DE DATOS 3.2. INSTRUCCIÓN I#
22
23
3.3. INSTRUCCIÓN $%ILE 27 3.5 .5.. IN INS STR TRU UCC CCIION ONE ES AD ADIC ICIION ONA ALE LES S 3.5.1. DODO-$ $%ILE 3.5.2. #OR
31
32
34
3.5.3. S$ITC%- CASE
36
4. SUBPROGRA!AS3& 4.1. CLASI#ICACIÓN CLASI#ICACIÓN DE LOS LOS SUBPROGRA!AS SUBPROGRA!AS 4 4.1.1. PR PROCEDI!IENTOS O SUBRUTINAS
4
4.1. 4.1.2. 2. #UN #UNCI CION ONES ES 46 4.1.3. LIBRERÍAS
4&
4.1.4 LIBRERÍA LIBRERÍA PARA ARA VALID VALIDAR AR " CREAR CREAR CUADROS CUADROS.. 53 5. E'CEPCIONES
71
5.1. !ANE(ADOR DE E'CEPCIONES
71 2
5.1.1. TR"
72
5.1.2. T%RO$
72
5.1.3. CATC%72 6. ARREGLOS
74
6.1. CLASI#ICACIÓN DE LOS ARREGLOS74 6.1.1. 6.1.1. ARREGLOS ARREGLOS DE UNA DI!ENS DI!ENSIÓN IÓN O VECTORES VECTORES 74 6.1 6.1.2. .2. AR ARREGL EGLOS DE DOS DI!E DI!EN NSION SIONES ES O !A !ATRI TRICES CES 7. REGISTROS
88
&8
7.1 .1.. AR ARREG EGLLO DE DE REG REGIS ISTR TROS OS
1 1
8. ARC%IVOS15 8.1. !ANE !ANE(O (O DE AR ARC%IV C%IVOS OS DE DA DATOS TOS 15 8.1.1. ARC%IVOS DE TE'TO
18
8.1.2. ARC%IVO DE DATOS
111
&. AN ANE'OS 117 &.1. &. 1. TAB TABLA LA CAR CARAC ACTE TERE RES S ASCI ASCIII 11 117 7 1. BIBLIOGRA#ÍA " CIBERGRA#ÍA 1.1. BIBLIOGRA#ÍA
118
118
1.2. CIBERGRA#ÍA 11 118 8
3
PRESENTACIÓN E)* ,*/0 ) /) )) 9 :)/* )); ):;<: )00 0= 0/::/> ) :*/?/ :, )*/* @)/0. D )* , 0 ** )* //=/ )*/*) @)) :09/ @,*0,* )*/*) /=/; *,) 0:/) : 0) *:0=;) 0 /@,:/> :,/::/>. E0 ** 0/: 0 =,:/> )*:* , *0 */ 0 ,) ):/00 :/ 0 ,) :,0 /:,* 0 /?0 :,0/ : :;*0 9 ) ?:. E)* ?)/> /:0 0 P=,:/> O/* O*) *, 9 ) /:0/ >/, ?)/>. L =,:/> )*:* ) :* *) 0) ,) 0 ) @,*0,* 900) 0:*) 9 :)/* 0 =,:/> *0. E0 ** ) *:) ::* :*/: /9:/ : 0 /:/ :, :* /?)/*/ )* *, ?/) ). E0 :*/ ) - /= ,- * 0=F ::/,/* */ ) =,:/> 9 @, /:*/: ? =/ 0 0:* /:0) */ ) 0 </:/> 0 9 ) 0= =,:/> 0) @:/0/) 9 / ? C++ =, :>, /)*0) 0) ?*) ) *) ?)/) C++. E0 0:* :* *) 0) @,) )*:/> 0) /)*::/) : @,*) 0/:) @, ):/00 0) )*:*) )*:/> *) ** ,,/ :, ,/) *). E0
*
/))/:/>
0) 0:*) 0 =/ **H/=//...:J?/ )>0 :* 0) :/:/) )0*) )/ 0) 0 0/H LÓGICA DE PROGRA!ACIÓN 9 )* )0*) * C++ ?. P F0*/, 0 0:* )0? )) /9/*) )://K ,/) :)H @/?/=,/0.:, > ?/..:. E0 *.
4
1. INTRODUCCIÓN 1.1. LENGUA(E DE PROGRA!ACIÓN U 0= =,:/> ) :* =0) )/*/) /)) )* )* /)*::/) 9 ):/*) 0 , : )0:/> 0, 0,. . E)* : :* * /)*:: /)*::/ /)) ) 00, programa fuente ) :* *?K) :,*. L) =,) :) 0 )/ : :*0 @;)/: 0>=/: ) 0 ,9/ :) 0 :0 :: 0) /)*::/) )0) 0 =, =, =:/) * =, 00, compilador . E0 :,/0 ) := *:/ 0) /)*::/) 0 =, 0= ,9/ // : ? = = , , 00, 00, programa objeto 0 :0 :0 ) 00? 00? 0 : :) ) ) :* /)*::/> /)*::/>.
1.2. C++ E0 0= =,:/> C++ @ : Bjarne Stroustrup 0) 8M). S * :)/)*/> 00? ,) 00 0 @,) 0= =,:/> C /,0,* 0= 9 ,/*/ 0 ,/0:/> *) 0 :,/0 :,/0 C. L) <:) @* C++ */ 0 *)/> .: .: C 0) ,/:/> ,/:/> /=0) 0 0=.
1.3. ENTORNO DE DESARROLLO INTEGRADO P : =, ) 0= ):/ )>0 :)/*,) /* ** ** 0 :0 :0 ): ):/ //, /,) ) 0) 0) /)* /)* :: ::/ / )) 9 9 ) ), ,) ) */0 */0/Q /Q )/ )/ ,= ?Q *,/ 0 ):/* /: =, :>, ,) ) )/ 0 = = , , )* )* : :: :* *, ,* * ): ):/* /* :>, :>, ) ) )/ K)* K)* )0 )0:/ :/ : :: :* *, ,* * 0 0 0, , P ) ) 0 * */ / : :)/ )/* *, ,)) ,/* 9 ?/<9 0 )/*/) 0 =, ) :Q :*0 ) 0 :,* /: ,/* ) Entorno de Desarrollo Integrado IDE. 5
U IDE ) =, )** :,0 9 * * 0) =0) )/*/) 0 0= ) :,/0 0 :0 *: 0 =, 0= ,9/. P 0 */ IDE ) :Q //:) 9K * 0 :>/= 9 )://,) ) )* ?/0 0= 0=) =0) )/*/) /:0) ,)*) ,) 9 ) /: 9K )* ,0. U ?Q ?/) 0 )/*/) 0 IDE :,/0 :* 0 =, ); ,) ?/<: 0 ?0/Q 0 :>/= 9 )://,).
1.4. DEV-C++ D?-C++ ) IDE 0 0= =,:/> C++ ) =, 0/ 0/: 0 0/::/ F0/: GNU ) ) GCC GNU C,/0 C0:*/ :, :,/0. S * =*/) 0 =/ 0) :) http://www.bloodshed.net/devcpp.html.
6
2. ASPECTOS BÁSICOS DE C++ 2.1. ESTRUCTURA BÁSICA DEL CÓDIGO T =, C++ * @:/> /:/0 main() )* @:/> :*/ 0 */ ) 0 =, :,0/ : 0 )/=/* )/*/)H int main () { }
A */ K)* ,) = 0 )*:* 0 :>/= @* :)/ 0/Q 0/::/> ,/* 0 0= =,:/> C++ );H • • • •
CABECERAH INCLU"E LIBRERÍAS A UTILIAR DECLARACIÓNH DECLARACIÓN DE CLASES " #UNCIONES PROGRA!A PRINCIPALH !AIN #IN
2.2. LIBRERÍAS L) 0/;) 0= =,:/> ) :>/=) ):/*) ?/,* 9 < @:/) 9 ) */0/Q @:*,* 0) =,). A0=) 0) 0/;) ,) */0/Q) )H iostream
P,/* */0/Q @:/) * )0/ *). P*: 0 /0/*: )* C++ #:/)H cout cin, cerr etc. conio2
E) 0/; 9 @:/ )/)*,) */?) : DOS :, !S $/). P,/* */0/Q @:/) , ?Q 0 :)0. N *: 0 /0/*: )* C++ #:/)H getch( ), textcolor( ), textbackground( ), clrscr( ), etc. math (se debe incluir, lo mismo la conio2)
E)* 0/; ,/* 0 ) @:/) ,*,*/:) ):/0). %: * 0 /0/*: )* C++. A0=) )) @:/) )H 7
NO!BRE abs(i)
TIPO I*
LIBRERIA S*0/.
acos(d)
0
!*.
asin(d)
0
!*.
atan(d)
0
!*.
atan(d1,d2)
0
!*.
atof(s)
0
S*0/.
atoi(s)
/*
S*0/.
atol(s)
0=
S*0/.
calloc(n,s)
V/ *
00:. )*0/.
ceil(d)
0
!*.
cos(d)
0
!*.
cosh(d)
0
!*.
ditime
0
T/,.
DESCRIPCION D?0? 0 ?0 )0* / D?0? 0 :) /?) D?0? 0 ) /?) D?0? 0 *=* /?) D?0? 0 *=* /?) 12 C?/* 0 : ) :*/ 0K ?0 0 C?/* 0 : ) * C?/* 0 : ) * 0= R)? ,,/ @,:/> 0,*) : ) *). D?0? * 0 /:// 0 ):/ )?. D?0? ?0 0 )/=/* * , D?0? 0 C) D?0? 0 C) />0/: D?0? 0
SINTA'IS I* )/* / D0 :)0 D0 )/0 D0 *0 D0 * 0 1 0 2 D0 *@:)* : : I* */:)* :: L= *0:)* :: V/ :00: )/Q* )/Q* )
D0 :/00
D0 :)0 D0 :)0 D0 8
(l1,l2)
exit(u)
?/
S*0/.
exp(d)
0
!*.
fabs(d)
0
!*.
fclose(f)
/*
S*/.
feof(f)
/*
S*/.
fgetc(f)
/*
S*/.
fgets(s,i,f)
C *
S*/.
!oor(d)
0
!*.
fmod(d1,d2)
0
!*.
/@:/ */, 01 2-02 1 01 02 )* 0 */, *):/ )K) */, ) C/ *) 0) :/?) W) *,/ 0 =, E0? e 0 *:/ D?0? 0 ?0 )0* C/ 0 :/? @. ?0? 0 ?0 )/ 0 :/? : : K/*. D*,/ ) :* < :/?. S/ ) ); ?0? ?0 /)*/* : * :) ?0? . L ::* 0 :/? @ L : ) : / ::*) 0 :/? @ D?0? ?0 0 * , ,) :: D?0? 0 )* 12
/W*/, */,* 2 */,* 1
V/ /*/* ) 0 )* *,/:/> D0 0 D0 @)0 I* @:0) #ILE @
I* @@ #ILE @
I* @=*: #ILE @ C @=*): )/* ) #ILE@ D0 X0
D0 @,0 1 0 2
&
fopen(s1,s2)
#/0 *
S*/.
A :/? #ILE @ :)* 00, )1 0 :)1:)* */ )2. :)2 D?0? * 0 :/?. S2 )H -YZH A:/? 0 0:*. -YZH A:/? ?:/ 0 ):/*. -YZH A:/? ):/* 0 <0 )*. -Y+ZH A:/? 0:*):/*. -Y+ZH A:/? ?:/ 0:*):/* -Y+ZH A:/? 0:* /. -YZH A:/? // 0 0:*. -YZH A:/? // 0 ):/*. -YZH A:/? // /. -Y+ZH A:/? // 0 0:*):/*. -Y+ZH A:/? // 0 0:*):/*. -Y +ZH A:/? // 0:* /.
fprintf(f,")
/*
S*/.
E):/ *) 0 :/? @
frexp(i,d)
0
!*.
I* @/*@ #ILE@ :)* :@,* [=\.] T, 0 , / D0 */ ) @0 *:/> ,0 :/*;<: 0 1
fputc(c,f)
/*
S*/.
fputs(s,f)
/*
S*/.
fread(s,i1,i2,f /*
S*/.
)
free(p)
?/
S*/.
fseek(f,l,i)
/*
S*/.
ftell(f)
L= /*
S*/.
fwrite(s,i1,i2,
/*
S*/.
f)
):,0 ) *)H 0 ,*/) 9 ) * 0 @:/> 0 * 9 ) :0: E):/ ::* 0 :/? @ E):/ : ::*) 0 :/? @ L /2 0,*) : *, /1 *) ) 0 :/? @ )* 0 : ) L/ 09 ,,/ )? : /:// )* //: !? 0 * 0 :/? @ /)*:/ 0 *) ) 0 )/:/> / 0 :0 )H -SEE^SETH P/:// :/? -SEE^CURH P)/:/> :*0 0 * -SEE^ENDH #/0 0 :/? D?0? 0 )/:/> :*0 0 * * 0 :/? @ E):/ /2 0,*) : *, /1 ) 0 : ) )*
I* @*:/* : #ILE@ I* @*):)* :: #ILE@ S/Q*@?/)) /Q* /1)/Q* /2 #ILE@
V/ @?//,, / I* @)_#ILE@ 0= )0/* /=
L= /* @*00#ILE@
S/Q* @/*:)* ?/))/Q* /1)/Q* /2#ILE@
11
getc(f)
/*
S*/.
getchar()
/*
S*/.
gets(s)
: *
S*/.
isalnum(c)
/*
C*.
isalpha(c)
/*
C*.
isascii(c)
/*
C*.
iscntrl(c)
/*
C*.
isdigit(c)
/*
C*.
0 :/? @ L ::* 0 :/? @ L ::* ) 0 /))/*/? * )* L : ::*) ) 0 /))/*/? * )* D*,/ )/ 0 =,* ) 0@,K/:. D?0? ?0 /)*/* : )/ ) :/* * :) ?0? D*,/ )/ 0 =,* ) 0@K*/:. D?0? ?0 /)*/* : )/ ) :/* * :) ?0? . D*,/ )/ 0 =,* ) ::* ASCII. D?0? ?0 /)*/* : )/ ) :/* * :) ?0? D*,/ )/ 0 =,* ) ::* ASCII :*0. D?0? ?0 /)*/* : )/ ) :/* * :) ?0? D*,/ )/ 0 =,* ) /=/* :/,0. D?0? ?0 /)*/*
I* =*:#ILE@ I* =*:?/
C=*)::
I* /)0,/* :
I* /)0/* :
I* /)):///* :
I* /):*0/* :
I* /)/=/*/* :
12
isgraph(c)
/*
C*.
islower(c)
/*
C*.
isodigit(c)
/*
C*.
isprintf(c)
/*
C*.
ispunct(c)
/*
C*.
: )/ ) :/* * :) ?0? D*,/ )/ 0 =,* ) ::* ASCII =<: 21-7 :*0 41 -176. D?0? ?0 /)*/* : )/ ) :/* * :) ?0? D*,/ )/ 0 =,* ) ,/F):0. D?0? ?0 /)*/* : )/ ) :/* * :) ?0? D*,/ )/ 0 =,* ) /=/* :*0. D?0? ?0 /)*/* : )/ ) :/* * :) ?0? D*,/ )/ 0 =,* ) ::* ASCII /,/,/0 2-7 :*0 4 -176. D?0? ?0 /)*/* : )/ ) :/* * :) ?0? D*,/ )/ 0 =,* ) ::* *:/>. D?0? ?0 /)*/* : )/ ) :/* * :) ?0?
I* /)=/* :
I* /)0/* :
I* /)/=/*/* :
I* /)/*/* :
I* /):*/* :
13
isspace(c)
/*
C*.
isupper(c)
/*
C*.
isxdigit(c)
/*
C*.
labs(l)
L= /*
!*.
ldexp(i,d)
0
!*.
log(d)
0
!*.
log1#
0
!*.
malloc(u)
V/*
S*0/.
D*,/ )/ 0 =,* ) ):/ 0: D?0? ?0 /)*/* : )/ ) :/* * :) ?0? D*,/ )/ 0 =,* ) ,F):0. D?0? ?0 /)*/* : )/ ) :/* * :) ?0? D*,/ )/ 0 =,* ) /=/* :/,0. D?0? ?0 /)*/* : )/ ) :/* * :) ?0? D?0? 0 ?0 )0* 0 T, ) F,)H ,*/) * :0:0 0 , * X** *:/> :/*;<: D?0? 0 L=/*, *0 D?0? 0 L=/*, ) 1 R)? *) ,,/ ?0? * 0 /:// 0 ):/ )?
I* /)):/* :
I* /)/* :
I* /)/=/*/* :
L= /* 0)0= /* 0 D0 00 , 0
D0 0=0 D0 0=10 0=10 V/,00:)/Q*
14
0
!*.
pow(d1,d2)
0
!*.
printf(")
/*
S*/.
putc(c,f)
I*
S*/.
putchar(c)
I*
S*/.
puts(c)
I*
S*/.
rand()
/*
S*/.
rewind(f)
?/
S*/.
scanf(")
I*
S*/.
modf(d,$iptr)
R* 0 * :/,0 . = 0 * * 0 * * /* D?0? 1 0? 0 *:/ 2 E):/ *) /))/*/? )0/ )*. S=F 0 */ * ) :0:H -`:H C:* -`HE* :/,0 -`H R0 -`@H P* X** -`)HC ::*) -`H %:/,0 %:/,0 )/ )/=. E):/ ::* 0 :/? @ E):/ ::* 0 /))/*/? )0/ )* E):/ : ::*) 0 /))/*/? )0/ )* D?0? * )/*/? 0*/ !? 0 * 0 /:// 0 :/? @ L *) 0 /))/*/? *
D0 ,@0 ?00 /*
D0 0 10 2 I* /*@:)* :@,* [=,*]
I* *:/* :#ILE@ I* *:/* :
I* *):)* ::
I* ?/ V/ /#ILE@
I* ):@:)* :@,* [/::/>\] 15
sin(d)
0
!*.
sinh(d)
0
!*.
s%rt(d)
0
!*.
srand(u)
?/
S*0/.
strcmp(s1,s2
/*
S*/=.
/*
S*/=.
:
S*/=.
)
strcmpi(s1,s 2)
strcp&(s1,s2)
)*. E)*) *) ) */H -`:H C:* -`HE* :/,0 -`H R0 -`@H P* X** -`)HC ::*) -`H %:/,0 %:/,0 )/ )/=. D?0? 0 S D?0? 0 S />0/: D?0? 0 R;Q : I/:/0/Q 0 = F,) 0*/) C, ) :) ::*) 0/:=<:, *. D?0? ?0 =*/? )/ )1a)2 )/ )1 )2 ) /K*/:) ?0 )/*/? )/ )1b)2 C, ) :) ::*) 0/:=<:, * )/ /@:/ ,F):0) ,/F):0). D?0? ?0 =*/? )/ )1a)2 )/ )1 )2 ) /K*/:) ?0 )/*/? )/ )1b)2 C/ 0 :
D0 )/ 0 D0 )/ 0 D0 )9*0 V/ ) )/= I* )*:,:)* )*:,:)* :)1:)* :)2
I* )*:,/:)* )*:,/:)* :)1:)* :)2
I* )*::)* 16
strlen(s)
/*
S*/=.
strset(c,s)
C* S*/=.
s&stem(s)
/*
S*/=.
tan(d)
0
!*.
tanh(d)
0
!*.
time(p)
L= /*
T/,.
toascii (c)
/*
C*.
tolower (c)
/*
C*.
toupper (c)
/*
C*.
::*) )2 0 : )1 D?0? 0 , ::*) : P *) 0) ::*) ) : :0 0 ::* 0 0 <0 P) 0 0 )/)*, */?. D?0? : )/ 0 ) :* ::*,* * :)/ ?0? ?0 /)*/* D?0? 0 T=* D?0? 0 T=* />0/: D?0? 0 , )=) *):/) )K) */, ) )/= C?/* 0 ?0 0 =,* ASCII C?/* 0* ,/F):0 C?/* 0* ,F):0
:)1:)* :)2 S/Q* )*0:)* :) C)*)*:: /* :
S)*,:,
D0 *0 D0 *0 T/,* */,*/,*
I* *):// /* :
I* *0 /* : I* */* :
2.3. VARIABLES U ?/0 0 0= C++ :)? *K,/) =0) 0) /) ?/0 ,*,*/:. U ?/0 ) 0,* : ?0 :,/ 17
: 0 *):) 0 */, 0 ::/ *,/ ?*. L) ?/0) //:/ : 0* )=/ 0*) ;=/*) /:0/ 0 ::* ) =/> ) :) 9 )*K ,/F):0 C++ *,/ /@*) */) *) 0 </:/> ?/0). E0 ?0 ?/0 ) 0,: 0 ,,/ RA!.
2.4. TIPOS DE DATOS U */ * 0 )/= ?/0H *, ,,/ */ ?0 9 0,: @, 0,:,/*. L) */) *) /,/*/?) ,) :,) C++ )H NOMBRE
DESCRIPCIÓN
Char Unsigned char
C ::*)
string short int unsigned short int
long long bool float double long double
C:* * 9
E* :* E* )/*/? E* E* 0= B0 ? @0) NF, * X** NF, * X** 0 :/)/> L= * X** 0 :/)/>
TAMAÑ O* 1 * 2 *)
RANGO* V *0 ASCII 0 <0 0 :,*
*K:/:,* =0 V/0 E) ?:* *) */ char 2 *) -32768 32767 2 *) 65535 C )/= -2147483648 4 *) 2147483647 S/ )/= 42&4&672&5 C )/= -9223372036854775807 8 9223372036854775807 S/ )/= *) 18446744073709551615 1 *
* @0) 1
4 *)
1.17 c- 38..3.4 c+38 7 ;=/*) :/,0)
8 *)
2.22 c-38..1.7& c+38 15 ;=/*) :/,0)
c-4&32 ..1.18 c+4&3218 12 *) 3.4 ;=/*) :/,0)
Tabla 1, Tipo !" !a#o "$ C++
L) ?0) 0 9/*:* */0/Q. L) ,)*) ) 0) 9 =0,* ) :* ,9/ *;/: 9/*:* 32 /*). L) ::*) ) )* */0/Q 0 */ char 9 */ )>0 1 * *,. E)* */ ) */0/Q )* 0) 255 ::*) 0 *0 ::*) 0 )/)*,. E0 */ char ) *,/K */ * 9 *, ?0) 255. (tabla de caracteres '** en anexos al +nal del documento)
18
E)*:* 0 </:/> ?/0H int nombreDeLaVaiable; //”int” es el tipo de la variable, en este caso es entero
E)*:* 0 )/=:/> ?/0H nombreDeLaVariable = expresion; //ver nota *
. Y)/Z ) ?0 *0 :* :/) 9 0= ) ?0) ?0? F/: ?0 :09/ 0) ) :)) expresin ) 0 ,/), */ 9 0 , 0 ?/0 ,0)H int x; car !; car "; x = (#$*%)'; ! = -a-; " = +%;
// Definimos la variable x de tipo entero // Definimos la variable ! de tipo caracter // Definimos la variable " de tipo caracter // Le asinamos el valor de la expresin matemtica (#$*%)' //a x, es decir, +' // Le asinamos el valor de -a- a ! // Le asinamos a " el valor del caracter en la posicin +% de //la tabla .011 (La -.-)
L </:/> 0 )/=:/> ?/0 ) : )0 0; );H int nombreDeLaVariable = expresin;
NOTA% 0 * :, 0 <0 0 /)*::/> ) 0/=*/ )/ ) /:0 0 :,/0 //: 9 )/*/). CARACTERES ESPECIALES E 0) /)*::/) )0/ ) ) :09/ 0) )/=/*) ::*) ):/0)H \a% : 0 ::/> =, ) 00= 0; :>/= 9
/:0 )* ::* ) ,/*/ )/ 0*
\n% 0 =, :: )* );,0 :, ? 0; ); 9 -0
:*0- ):// 0 0; :*0 )0* 0 )/=/*.
\t % )/=/<: ):/ *0:/> ) :: :, )0* 0 ,/), 0;
/=0 0 9 ) : ) )/ 0 *:0 TAB :,* **.
1&
\”% / 9 0) :,/00) )* )?) : ** )* );,0
9 0 =, :Q: 0) :,/00) :, ** :, /:// < **. \\% ,/* ,)* 0 ::* MdM *00.
2.5. OPERADORES DE C++ P 0) *,/) :/) 9 ) 0/Q : 0) ?/0) C++ :/ )/ )H A)/=:/>H OPERADOR $ /0345-
DESCRIPCIÓN A)/=:/> A)/=:/> : ), A)/=:/> : )* A)/=:/> : ,0*/0/::/> A)/=:/> : /?/)/> A)/=:/> : ,>0 A)/=:/> : )0Q,/* A)/=:/> : )0Q,/* A)/=:/> : AND 0>=/: A)/=:/> : 'OR // A)/=:/> : OR //
A/*,K*/:)H OPERADOR $ / 0
C,:/>H OPERADOR 6-
DESCRIPCIÓN !0*/0/::/> S, R)* D/?/)/> R)/ 0 :/> ,>0
DESCRIPCIÓN D/@* I=0 ! /=0 9 ! 9 ! /=0 9 ! 9
B0)H 2
OPERADOR 33 55 4 6
O*) O) OPERADOR 78 ()
DESCRIPCIÓN O:/> 0>=/: AND O:/> 0>=/: OR O:/> 0>=/: 'OR O:/> 0>=/: NOT
DESCRIPCIÓN A=0 A=,* @:/> =:/> A,* 1 D:,* 1
2.6. CARACTERES ASCII L) :>/=) ASCII ) @, )/= F, // 8 16 /*) : ::* 0 0@* 0*/ )* @, : ::* *; ) / :>/= // ) /*/<: ;?:,* 0 ,9/. C++ ,/* ,)* *00 0) ::*) ASCII 9 ) /,/,/0) ) :/ */ 0 ::* 32 )* 0 ::* 255. V K/: 0 <0.
&. PROGRAMACIÓN ESTRUCTURADA L =,:/> )*:* ) @, ):// =,) :,* =,:/> , :0. P 00 */0/Q F/:,* *) )*:*)H )::/ )0::/> /*:/>. E#'()#('a ")("$)ial. U )*:* =, ) )::/0 )/ ) :* *) * , )::/ ) :/ 9 /)*::/> ) :* )* 9 <0/Q 0 */. E#'()#('a "l")#ia o !" "l"))i$. L )*:* )0:*/? ,/* 0 0/Q:/> /)*::/> * )=F :/*/. S>0 )*) /)*::/) ) :*.
21
E#'()#('a i#"'a#ia. U :0 /**/? /*:/> )::/ /)*::/) : 9 ) /* ,/*) ) :,0 :/:/> /:// 0 F, /*:/) */ 9K )* *,/. E0 0= C++ C 0) ::*;)*/:) 0= )*:* ); :, 0 == @:/0/) 0 /*:/> *). L )*:* =0 0 0= ) )::/0 ) :/ 0) /)*::/) ) :* )=/ 0) *) C++ ? ,) :/*) )*:*) :*0 0 X )::/0 0/::/> ?0?0 /**/? )0:*/? K)*) )H
3.1. INSTRUCCIONES DE ENTRADA " SALIDA DE DATOS 3.1.1. S ALIDA DE DATOS P 0 )0/ *) *00 C++ ) ? : 0 /)*::/> cout . S ) ) : 0 )/=/* ,H cout9ensa;e %ue se desea mostrar<endl= ?/0) E0 ,) 9 ) ) ,)* :,) ?/) *) ,0 , cout
endl //: 9 0 9 ) ):/ )* 0 0; )/=/* 0 *00 ) :/ un \n. E,0 ) )H E,0 1 2incl3de 4iostream5 2incl3de 4conio'5 3sin namespace std; int n3m=6, mod; int main () { mod=n3m7'; co3t4489l resid3o de la division entre 844n3m448 ! ' es 844mod; etc(); }
E 0 */ =, /:0/,) 0) 0/;) iostream conio :0,) 0) ?/0) , , */ /* 0 =, /:/0 ) := :0:0 0 )/ 0 /?/)/> * , 2. E0 )0* ) 0,: 0 ?/0 , ) ,)* *00. P,) ) *) /)*::/) *) )0/ *) :,H :0): B 0 *00 :0: 0 :) 0 )9/ )/ /Q9/. =*:0 <0 C0: 0 :) 0 :0, :0 <0 <0. L :0, : /, 9 0 22
*00 0 0 :*)/ )* / 0 * :/ . **:_=:0 L :0: :0 @ ? **. **:0 :0 L :0 0 ** 0 ,). V,) 9 0 :, cout aa ) )0/ cinbb *. E,0 2 2incl3de 4iostream5 2incl3de 4conio'5 3sin namespace std; car nombre:#$=8nombre8; int edad=#$; main (){ co3t448
844edad44endl; //3estra La edad es #$ co3t4483 nombre es> 8 44nombre448 ! s3 edad es> 844edad44endl; //3estra 3 nombre es> nombre ! s3 edad //es #$ etc(); }
3.1.2. ENTRADA DE DATOS P 0 )0/ *) *00 C++ ) ? : 0 /)*::/> cin 0 :0 */ ?/) @,) ) 0 ,) ):/00 )H cinvariable=
e)* ,/* 0 0 9 0 )/ /=) 0 *00 0 0,: 0 ?/0 ) :/ 9 0 9 /=) 0 )/ ) 0 ?0 )/= ?/0. E0 F/: 0, )* @, 0:* ) 9 ,/* 9 ) /=) ):/) ) :/ 0 )/ /=) YN, A00/Z 9 ):/ * , 00/ 0 9 : cin ) 0 )* 9 :* ):/ * 0 9 )/= K)*) ) = * ):/ ,,/ ) )*/ 0:*. P 0 0:* *) : ,F0*/0) ):/) ) : ) 0 )/=/*H cinws= cin.getline(cadena, n>mero)=
L /, /)*::/> 0/,/ 0) ):/) 0: 0) <0) =/ 9 ) :* 0,:) ,,/. 23
L )= ) 0 9 ,/* 0 :) : ):/) : ) ?/0 */ char 78 ) ; ) = 0 ** /=) 0 )/. NF, ) ?/0 * 9 //: 0 F, ::*) 0 ) : )/ 0 : ::*) */ ):/) 0:. E,0 3 2incl3de 4iostream5 2incl3de 4conio'5 3sin namespace std; car nombre:%$; //cadena de texto int edad; main (){ co3t4481nrese s3 edad> 8; //3estra 1nrese s3 edad> cin55edad; //lee la edad ?3e el 3s3ario inresa co3t4481nrese s3 nombre> 8; //3estra 1nrese s3 nombre> cin55@s; //e eliminan espacios ! enteres en la // memoria cinetline(nombre,%$); // e indica ?3e se van a leer como // mximo %$ caracteres ?3e es el tamaAo // de la cadena nombre co3t4483 nombre es> 8 44nombre448 ! s3 edad es> 844edad44endl; etc(); }
3.2. INSTRUCCIÓN I# E)* ) )*:* )0::/> 9 ,/* 0=/ 9K ::/> )=/ * 0 ::/> 0 =, */ *,/ :/:/>. P */0/Q0 )* : ):// 0 0 )? Y if Z :*/:/> 0 :/:/> 0 :0 ) :,0/ 0) /)*::/) 9 ) :/ ) 00?). E)) /)*::/) ) :* )>0 : 0 :/:/> -* 0) 00?)- ) = ?. L )*:* 0 )*:/ if ) 0 )/=/*H if(condicin)} { 1nstr3cciones ?3e se eBec3tan si la condicin es verdadera; } 9Bemplo if(a5b) co3t44a; //3na sola instr3ccin
S/ instrucciones ) )0 :)/* 00?) )/ ) :)/* 9 ) 0= :) :*/ 0 :/:/> ,) 0 0 )? Y elseZ )* )K) : 0) 00?) 9 :*/ 0) /)*::/) 9 ) :* * 0) 00?) 9 :/ if :,) *:) / ?,* 00?) 24
/: 0) )*:/) 9 ) 00? : :) 9 ) :,0 0 :/:/> 0 /@. if(condicin){ //1nstr3cciones para c3ando la condicin es verdadera } else{ //1nstr3cciones para c3ando la condicin es falsa }
L :/:/> )* :@, ?/0 0:/0 * ?/0 :)** 0) ) 9 ,) */0/Q ) 0) )/=/*)H
C,:/>H OPERADOR 6-
DESCRIPCIÓN D/@* I=0 ! /=0 9 ! 9 ! /=0 9 ! 9
E) )/0 :, :/:/> : 2 ,) :/:/) )* : /0) *?K) ) 0>=/:) Y y Z YoZ. E) /,** :0 9 : )0 ) ? :* )0 0; :>/= * 0) 00?) ) )/0 :0:0) )/ ,= ) :,/ 0) )/, * ,) :0/ 0 =,. E)*:* =0 if(condicin){ //1nstr3cciones para c3ando la condicin es verdadera } else { if{ //1nstr3cciones } else { //1nstr3cciones } }
L =:/> /)*::/) else if 0 /)*::/> else ) :/0) ) :/ ) * ,) :* else if )=/) )/ *,/ else )0 else )K) 0 if )0 * 0 /)*::/> if . 25
NOTA% L /)*::/> else SIE!PRE )* :/ if . E,0 4 A :*/:/> ?,) ,) @ 0 ) 0 )*:/ if C 0 )/=/* :>/= @* ) /=) :*/ , * ) ,)* *00 :0 ) 9K : ):* 0 * 0 *H , , /=0 , , /=0 /=0. 2incl3de4iostream5 2incl3de4conio'5 3sin namespace std; int main(){ int m,n; co3t4481nrese m>844endl; cin55m; co3t4481nrese n>844endl; cin55n; if(n4m){ co3t448m es ma!or ?3e n8; } else if(n5m){ co3t448m es menor ?3e n8; } else{ co3t448m es i3al a n8; } etc(); }
D )* , ?,) :>, ) ) 0 )*:/ if , /. E) :?/* *00 9 0 F0*/, 09 */ :/:/> ) 9 )* 09 ) ? :* : ) :,0 /= 0) :/:/) 9 0 :. E,0 5 E 0 )/=/* ,0 ) ,)* 0 )*:* ,) )/: 0 if )/ 0 0). A9; )/ 0 )/ /=) F, , 5 ) 0 //: 9 =>H #include
2incl3de4iostream5 3sin namespace std; int main(){ int n; co3t4481nrese n>844endl; cin55n; if(n5%){
:*aafGgggf } etc();//Cbserve ?3e el if se p3ede 3sar sin el else }
26
A,0/ 0 */ ,0 0 )/=/* )/ 0 )/ /=) F, , 5 ) 0 //: 9 => :) :*/ ) 0 //: 9 />H 2incl3de4conio'5 2incl3de4iostream5 3sin namespace std; int main(){ int n; co3t4481nrese n>844endl; cin55n; if(n5%){ } else{ co3t448erdioEEE8; } etc(); }
E,0 6 C/* /?)/ */ =, )*/,0 0) )*/*) : /,/* :K,/: );H S/ 0 ,/ ) 45 ,) 0 )*/* ) = *:) :) 28 :K/*) ) 0 25` ):*. S/ 0 ,/ ) , /=0 4 , 9 45 0 )*/* ) = *:) :) 25 :K/*) ) 0 1` ):*. S/ 0 ,/ ) , 9 35 , 9 4 ) = :) 2 :K/*) * /=F ):*. S/ 0 ,/ ) , /=0 25 , 9 35 ) = :) 15 :K/*) * ):*. S/ 0 ,/ ) , 25 ) = ,*/:0). S/ 0 ,/ ) , /=0 45 ) )= :) 2 :K/*) ) 0 2` ):*. S/ 0 ,/ ) , 45 ) )= :) 1 :K/*) * ):*. %: =, 9 *,/ :* = )*/* :*) :K/*) =/)* )/ 0 ?0 : :K/* ) h5 = h3 )=. •
•
•
•
• •
•
2incl3de4iostream5 2incl3de4conio'5 3sin namespace std; int main() { //csFclase de est3diante //ncFnGmero de crHditos //peFpromedio est3diante //pdesFporcentaBe de desc3ento //vcredFvalor crHdito //vsdFvalor a paar sin desc3ento //desFdesc3ento
27
//vtFvalor total a paar co3tsetf(ios>>fixed); // 9vita ?3e la informacin sala en // forma exponencial co3tprecision('); // aca la informacin con dos decimales car cs:#$; int nc; float pdes, vcred, pe, vsd, des, vt; co3t448diite clase de est3diante> 8; cin55cs; co3t448diite valor promedio> 8; cin55pe; if(strcmpi(cs,8prerado8)==$) // 0omparacin de variables tipo caracter { if(pe5=I%) {pdes='%; nc='J; } else { if(pe5=I$) {pdes=#$; nc='%; } else { if(pe5=K%) {pdes=$; nc='$; } else { if(pe5='%) {pdes=$; nc=#%; } else {co3t448 A/) ) 844endl;; nc=$; pdes=$; } } } } //} vcred=%$$$$; } else { if(pe5='%) {pdes=$; nc=#%; } else { nc=#$; pdes=$; } } vcred=K$$$$$; vsd=nc*vcred; des=vsd*pdes/#$$; vt=vsdFdes; co3t448el est3diante de> 844cs; co3t448 paara> 844vt; co3t448 ! c3rsara> 844nc448 creditos844endl; s!stem(8pa3se8); }
3.3. INSTRUCCIÓN $%ILE 28
C :)/*,) 9 :* /)*::/) ) /* ,) :/ 0 /)*::/> $%ILE ,/*). S )/*/) ) 0 )/=/*H @ile(condicin) { //instr3cciones ?3e se eBec3tan mientras se c3mpla la condicin }
#:/,/*H : 0 =, 00= 0 /)*::/> while ) ?0F 0 :/:/> )/ K)* ) ? *:) * 0 )*:* ) )* 0) /)*::/) * 0 while ) :* 0 *,/ /: ::/> 0 :/:/> ) ?0? ?0 *,*/:,* )/ )/= )/ ? *:) ) /* 0 ::/> 0) /)*::/) ) :/ 0 ?0 ? 0 :/:/> 0 ,/* 0 0=/*, *, 0 :/)/> */ :* 0 = /)*::/). T= :* 9 * 0 = /)*::/) - 0 ,) /)*::/> 9 ,/<9 0 ?0 ? 0 :/:/> ) ); : ) *,/; 0 */:/> 0 ::/> 0) /)*::/). E,0 7 S ) ): 0 ,/ )/ 5 F,) )/*/?) 9 /=) 0 )/. 2incl3de4iostream5 3sin namespace std; int main() { float s3ma,promedio; int n3mero; int i=#; ),=$; @ile(i4=%) { co3t448Diite 3n n3mero>844endl; cin55n3mero; s3ma&=n3mero; i&&; //incrementando i } promedio=s3ma/%; co3t4489l promedio de los n3meros es> 844promedio44endl; s!stem(8pa3se8); }
2&
E,0 8 E?0 0 )/=/* @:/>H i2-2 ,)* *0 0 ?0 0 @:/> ?0 ) i )* i1 * 0 ?0 0 ) :/ 0 0/::/> ,)* 0= :, 0 )/=/*H 1 \
-/ -2 -1 \
2incl3de4iostream5 2incl3de4iostream5 2incl3de4mat5 2incl3de 4mat5 3sin namespace std; int main() { float !,x; x=$ x=$; co3t448f3ncion> co3t448f3ncion> !(x)=x'F'8 !(x)=x'F'844endl; 44endl; co3t448 co3t448 x !(x)8 !(x)844endl; 44endl; @ile(x4= @ile (x4=#$ #$) ) { !=po@(x,' !=po@(x,')F' )F'; co3t448 co3t448 844x448 44x448 844!44endl; x&&; } s!stem(8pa3se8 s!stem(8pa3se8); ); }
E,0 & R),) ),) 0) ,0) ,0) */). */). P P 0 /, /, 0 =* =*,) ,) 0 )/ )/ :*) F,) F,) ) /=) 0 )= 0 )0/:/*,) 0 )/ 0 ?0 //:/0 ?0 <0 0 ). 2incl3de4iostream5 2incl3de4iostream5 2incl3de4conio'5 2incl3de 4conio'5 2incl3de4mat5 2incl3de 4mat5 3sin namespace std; int main() { int i=$ i=$; float !,x,n,step; x=$ x=$; co3t448f3ncion> co3t448f3ncion> !(x)=x'F'8 !(x)=x'F'844endl; 44endl; co3t448valor co3t448valor inicial>8 inicial>8; ; cin55x; co3t448valor co3t448valor final>8 final>8; ; cin55n; co3t448Mnidades co3t448Mnidades ?3e a3mentara x en cada iteracion>8 iteracion>8; ; cin55step; co3t448 co3t448 x 8448!(x)8 448!(x)844endl; 44endl; @ile(x4=n) @ile (x4=n) {
3
!=po@(x,' !=po@(x,')F' )F'; otox!(K otox!(K,J&i); co3t44x; otox!(J otox!(J,J&i); co3t44!; x=x&step; i&&; } co3t44endl44endl; etc(); }
E,0 1 E:* 0 ,/ F,). 2incl3de4iostream5 2incl3de4iostream5 3sin namespace std; int main() { float s3ma,promedio; int n3mero; int i=# i=#, n; s3ma=$ s3ma=$; co3t4481nrese co3t4481nrese la cantidad de n3meros a los c3ales desea sacar el >844endl; 44endl; ,/ >8 cin55n; @ile(i4=n) @ile (i4=n) { co3t448Diite co3t448Diite 3n n3mero>8 n3mero>844endl; 44endl; cin55n3mero; s3ma&=n3mero; i&&; //incrementando i } promedio=s3ma/n; co3t4489l co3t4489l promedio de los n3meros es> 844promedio44endl44endl; s!stem(8pa3se8 s!stem(8pa3se8); ); ret3rn $; }
N* 9 0) ,0) */) ) ::; 0 F, ?:) 9 ) *; 9 */ */ 0) /)* /)*:: ::/ /) ) * * 0 while )* */ )0:/> ) 00, E0("a C(a$#i#a#io C(a$#i#a#io ) /,0,* *?K) :*. U contador ) ) ?/0 9 :* 0 :*/ ?:) 9 ) /* 0) /)* /)*::/ ::/ ) ) 0 :/:0 :/:0 *,/K *,/K )) )) :* :* :09 :09/ / */ :*/ :*/?/ ?/ . . A* A*)) )) )) * * ?0 ?0 //: //:/ /00 0 ?0 ?0 9 9 ) /:,* /:,* ) ?0 :)**. O)? 9 0 :/:/ */ : ?Q 9 ) 0 F, ) **0/Q 0 ?/0 ),. ),. A )* */ ?/0) ) 0) ,/ acumulador :/) 0) :*) 0 ?0 9 ) /:,* ) ?0 ?/0 ) :/ **0/Q :*/?/) ) 0= :, 0 ?/0 : 0 0 /Q9/ 0 0 : *) )) ) 0 )/= ?0 //:/0. O* O* */ */ )0 )0:/ :/> > ) 0 00, 00, E0("a C(ali#a#ioH C(ali#a#ioH )* )9, ) */0/Q : ) :: 0 F, ?:) 9 */) 0 )::/ 31
*,/ *,/ :/:0. E )* :0) :/:0 0 )/ )/ :/ : *,/ *,/ : 0 :) */*/? )/ /,* :*) /*:/) ) @:*. @:*. E0 )9, :0/**/? ) /,0,* )0::/ :, ):=/ ?0 ,/*/ 0 :) 0 :/:0 ) /,0,* :, 0 :, : 0 ?0 ):=/. L )0:/> :0/**/? 0 /, ,0 )/H C, ) / 9 0) F,) /=)) 0 )/ ; ) )/*/?) ?:,) )* : *,/,) 9 : 0 )/ :/ *,/ /=) F,) 9 )/,0,* /=/* : F, =*/? @:/0/ /=/*:/> )0::/,) :.
E,0 11 2incl3de4iostream5 2incl3de4iostream5 2incl3de4conio'5 2incl3de 4conio'5 3sin namespace std; int main() { float s3ma,promedio; int n3mero,n=# n3mero,n=#; s3ma=$ s3ma=$; co3t448Diite co3t448Diite el primer n3mero> 8; cin55n3mero; @ile(n3mero5 @ile (n3mero5$ $) {
//se lee el primer nGmero
s3ma&=n3mero; n&&; co3t448Diite co3t448Diite 3n n3mero>8 n3mero>844endl; 44endl; cin55n3mero; } promedio=s3ma/n; co3t4489l co3t4489l promedio de los n3meros es> 844promedio44endl; etc(); }
3.4. ESTRUCTURAS ADICIONALES O* @, /,0,* )9,) :0/**/?) ) *?K) ?/0) */ K)* K)*)) 0, 0,: : ) ) )/ )/0 0) ) ?0 ?0 )) )0 )0:: ::/ / )) 0 =, =, *) *) )) )) )* //:/0/Q //:/0/Q )) ?0). ?0). L ?0) ) :09/ */ * ,0 1 # ) true false *:. E,0 12
32
%: =, 9 :* 0 ), 0) ?0) :* F,) 0 :*/ ?0) =*/?) )/*/?) /=0) : 0 **0 F,) 0 :*. C, ) ) :*) F,) * 0 )/ ),) )9, :0/**/? :*0 : 0 siga 9 ?0 )/ 0 )/ */ ,) F,) ? )/ */ ,). 2incl3de4iostream5 2incl3de4conio'5 3sin namespace std; int main() { int valn=$, val$=$, valp=$,totaln; car sia; sia=--; float s3ma =$, n3m; @ile(to3pper(sia)==--) { // La f3ncin to3pper convierte 3na letra minGsc3la a ma!Gsc3la s!stem(8cls8); textcolor(N<1O9); textbacPro3nd(.Q9RO.); otox!('S,#'); cprintf(89ROT9 RM9TC > 8); cin55n3m; s3ma&=n3m; if(n3m 5 $) valp&&; else if(n3m==$) val$&&; else valn&&; otox!('S,#I); co3t448<.U RM9TC /RW 8; cin55sia; } totaln=valp&valn&val$; textcolor('); otox!(KK,6); co3t448T9MLO.DC8; otox!('S,##); co3t448M. D9 LC RX9TC> 844s3ma; otox!('S,#'); co3t448RM9TC R9Q.O1VC> 844valn; otox!('S,#K); co3t448RM9TC 1QM.L9 . 09TC> 844val$; otox!('S,#I); co3t448RM9TC C1O1VC> 844valp; otox!('S,#%); co3t448OCO.L D9 RM9TC> 844totaln; otox!('S,#S); co3t448T91CR9 O90L. .T. O9T1R.T8; etc(); }
3.5. INSTRUCCIONES ADICIONALES E/)* *) *) /)*::/) 0**/?) 0) ,)*) */,* 0 =,:/> )*:* )*) /)*::/) ) )) 0=) ?:) ,0Q 0) /)*::/) )/:) , :* 0 =,:/> :/K0 ,) */0. L 9 ) : : )*) /)*::/) ) : : 0) /)*::/) )/:) ,) 0 :*/. 33
3.5.1. DO-$%ILE E)* ) * )*:* */*/? :*0 9 ) /,0,* @:* :/:0 ) :/ :* /)*::/) 9 ) :* *,/ F, ?:). E) :/ 0 )*:* while 0=) ):*) ) :,0,*. S */0/Q )/*:/) 0) 9 ) ) 9 )::/ ) /* 0 ,) ?Q *) :, 0 :/:/> */:/> )* @, ) *)H 0) /)*::/) 9 ) ) */ 0 <0 K)* 0 :/:/> 9 :*0 0 F, ?:) 9 ) */ 0) /)*::/). L /@:/ ):/0 * 0 )*:* repetir 0 )*:* mientras ) 9 0 /, 0 )::/ /)*::/) ) :* 0 ,) ?Q *) ?0 0 :/:/> */:/> 0 )*:* mientras, 0 :/:/> *,/:/> ) ?0 /, 0 ** 0 = /)*::/) :, 0 )*:/ ) :*. S )*:* ) 0 )/=/*H do{ // instr3cciones ?3e se eBec3tan 3na ve" ! mientras se // c3mpla la condicin }@ile(condicin);
@bserve %ue antes del while ha& una llave & termina con punto & coma, para diferenciarlo del while general. Asto %uiere decir %ue el while cierra el do.
P ,0/<: 0 ) 0 :/:0 -/0 ) )? 0 )/=/* 0,H E,0 13 !)* ,F / :/>. //9l 3so de doF@ile se ace necesario dado ?3e se debe mostrar el menG //mYnimo en 3na ocasin 2incl3de4iostream5 2incl3de4conio'5 3sin namespace std; int main(){ int opcion; do{ co3t4489RM844endl; co3t448# C01CR #844endl; co3t448' C01CR '844endl; co3t448K .L1T844endl; co3t4481RQT99 L. C01CR> 8; cin55opcion; }@ile(opcionE=K); co3t448Z1R D9L TCQT..844endl; etc(); ret3rn $; }
34
//3sando el ciclo @ile 2incl3de4iostream5 2incl3de4conio'5 3sin namespace std; int main(){ int opcion; co3t4489RM844endl; co3t448# C01CR #844endl; co3t448' C01CR '844endl; co3t448K .L1T844endl; co3t4481RQT99 L. C01CR> 8; cin55opcion; @ile(opcionE=K){ co3t4489RM844endl; co3t448# C01CR #844endl; co3t448' C01CR '844endl; co3t448K .L1T844endl; co3t4481RQT99 L. C01CR> 8; cin55opcion; } co3t448Z1R D9L TCQT..844endl; etc(); ret3rn $; }
omo se puede observar en el e;emplo, el uso de dowhile, a&uda a minimiBar el n>mero de instrucciones a e;ecutar dado %ue la condicin se eval>a al +nal del bucle.
E,0 14 %: 0=/*, 9 :* 0 ), 0) /,) N F,) *0) ,/* 0 )*:* do while. E)* =, )0 *,/ )/ ) )/ 0 *:0 E):. 2incl3de4iostream5 2incl3de4conio'5 3sin namespace std; int main() { int n 3m=#, n; car esc='S,tecla; lon s3ma=$; clrscr(); textbacPro3nd(N<1O9); textcolor(T9D); otox!('$,#'); cprintf(89ROT9 L[1O9 D9 LC RX9TC> 8); otox!(IJ,#'); cin55n; do { s3ma&=n3m; n3m&&; }@ile(n3m 4= n); clrscr(); textbacPro3nd(L1Q
35
cprintf(8L. M. 9> 8); otox!(I#,#'); co3t44s3ma; do { otox!('J,#+); cprintf(8T91CR9 90 .T. O9T1R.T8); tecla=etc(); }@ile(tecla E=esc); }
3.5.2. #OR L )*:* for ,/* 9 ,) /)*::/) )::/ ) /* : ,) ?:) ,/*) 0) ?0) =)/> /*,K*/: - Q> ::/* ::/*- ) ? )/= ?/0 ,/ ?/0 :*0 0 :/:0 P!. E)* )*:* ) ) : ) */ )9, :*/**/? 0 :* 9 :*0 0 :/:0 ) /:,* /),/ ?0 :)**. L /@:/ * :>, ) /,0,* )* :0) :/:0) 0 )*:* while ) 9 0 for , 0 //:/0/Q:/> 0 :* ) /:,* @, *,*/: ) :/ 0 : 0 )*:*. L) ?0) 0) ,*) 9 , )* :/:0 ) :*0) 0 )*:* ?Q )*0:/) )) ?0) :*/? 0 :/:0 ) @:*/0 :,/0). S /,0,*:/> C++ ) 0 )/=/*H for(variableDe0ontrol=valor inicial; condicin; incremento/decremento){ //instr3cciones ?3e se eBec3tan mientras se c3mpla la condicin }
E,0 15 L n *) :0:0 ) ,/. 2incl3de4iostream5 2incl3de4conio'5 3sin namespace std; int main(){ int n3mDatos,cont; do3ble s3ma=$,promedio,dato; co3t4481nrese el n3mero de datos a procesar> 844endl; cin55n3mDatos; for(cont=$;cont4n3mDatos;cont&&){ co3t4481nrese el dato Ro 844cont,endl; cin55dato; s3ma&=dato; } promedio=s3ma/n3mDatos; co3t4489l promedio de los 844n3mDatos448 datos, es> 844promedio44endl; etc();
36
ret3rn $; }
E 0 ,0 */ 0 ?/0 )o$# ) 0 ,/ ?/0 :*0 0 :/:0 for 0 :0 ) := :*0 0 F, /*:/) 0 :/:0 ) :0 //:/0/Q * 0 :0:/> 0 :/:0 for 9for(int cont-#=contnumCatos=cont)<, :, :09/ ?/0 ) =00 0:0. U ):* /,** )* ,0 ) 9 0 ) :*+1 * 0 @:/> :* @:* 0 ?0 0 ?/0 :* 9 )* )/ ,/<: ,/* 0 )/=:/> i : 0 ) 0 )* /:,* ++. E,0 16 O* ,0 :0:0 0 @:*/0 F, n #:*/0 i-12\.21 2incl3de4iostream5 2incl3de4conio'5 3sin namespace std; int main(){ int n,total=#, cont; co3t4481nrese el n3mero al c3al se le calc3lara el factorial> 844endl; cin55n; for(cont=';cont4=n;cont&&){ total*=cont; } co3t4489l factorial de 844n448 es> 844total44endl; etc(); ret3rn $; }
3.5.3. S$ITC%- CASE E)* )*:* ,/* )0::/ 0**/? * :* 00) : ) 0 ?0 0,: :, ?/0 ,/ )0:* :, :*0 0 )*:*. E) )*:* )0:*/? ,F0*/0 : : 0 ?0 9 *= 0 :*0 ) 0/Q *,/ * )0 ?Q ) :/ /* 0 ::/> 0 * )::/. D : : 0 ?0 9 *= 0 )0:* 0 :*0 ::/> 0 =, ) ?/) *) K)* ?/* ); )/ =*) )*:* :/)/> 0>=/: /,/* 0) ,/),). S )*:* ) 0 )/=/*H 37
s@itc(selector){ case valor #> instr3ccin #; instr3ccin '; instr3ccin n; breaP; case valor n> instr3ccin #; instr3ccin '; instr3ccin n; breaP; defa3lt> instr3ccin #; instr3ccin '; instr3ccin n; breaP; }
E0 ?0 0 )0:* ) :)** */ * )* /* 0= */ ::*. S/ 0 :*) 0) /)*::/) :) *,/ ) :)/* 9 ) :* 0) :)) )/=/*) ) ,/* 0 ) 0 /)*::/> brea" . S/ 0 9 ) ) ) 9 )>0 ) :* 0) /)*::/) 0 :) 0 9 ) :* 0 )0:* ) :)/ 9 ) /:0 0 /)*::/> brea" . E0 :) default = 900) :/) /@*) 0) :/*) * 0 )*:* ) :/ K)* /:0 0) /)*::/) 9 ) :* )/ 0 )0:* ),/> /= 0) :)) 9 /:0 0 )*:*. E,0 17 E =, */? ) ::0/ 9 0 :/> 0 ))/> :*/: 0 ) 0 ) 0) :/:/) 9 )* 0 ?/)/> ,K/:. L ?/)/> ,K/: :0/<: 0) )) :, :/:/> 3 4 5 > 6. E0 */, : ) ) /=0 0 ) * 9 ) ) ) :/:/> K)* ) ):*/?,*H .15 .21 .22 .26. E0 0=/*, 9 :0:0 0) :/) 0) ))/) //?/0). 2incl3de4iostream5 3sin namespace std; int main() { int iden,con; float peso,r,t; co3t4481nrese s3 identificacion o cero para salir> cin55iden; @ile (iden 5 $) { co3t4481nrese s3 peso> 8; cin55peso;
8;
38
co3t4481nrese s3 condicion> 8; cin55con; s@itc(con) { case K> r = $#%; breaP; case I> r = $'#; breaP; case %> r = $''; breaP; case +> r = $'+; breaP; } t = peso * r; co3t448s3 identificacion es> 844iden44endl; co344”9l tiempo de d3racin de s3 sesion es> 844 t44endl; co3t4481nrese otra identificacin, o cero para salir> 8; cin55iden; } }
E,0 18 L 0 ) 0 9 ) :* ::* ,)* 0) 9 F 0 9 0/Q )0/ ) *,>?/0. A0 )) _ )K) 0) :)) 14 ) @:*F 0) )/=/*) : K)*) ) :/ )/ 0 )/ /=) 0 ) 1 0 )*:* )/*: ) ?0 0 :) 1 0) :)) )/=/*) K)*. 2incl3de4iostream5 2incl3de4conio'5 3sin namespace std; int main(){ sort paso; co3t4481nrese el paso en el ?3e a ?3edado> 8; cin55paso; s@itc(paso) { case # > co3t448aso # (ponerse comodo) sin finali"ar844endl; case ' > co3t448aso ' (re3lar espeBos) sin finali"ar844endl; case K > co3t448aso K (abrocar cint3rn) sin finali"ar844endl; case I > co3t448aso I (arrancar motor) sin finali"ar844endl; breaP; case % > co3t448Oarea finali"ada844endl; breaP; defa3lt> co3t448aso incorrecto844endl; breaP; } etc(); ret3rn $; }
3&
L /)*::/> _ *,/K ) ) 0) :/:0) *,/ ) ::/>. P ,0 0) :/:0) for while 9 ) ,)* :*/:/>. E,0 1& //Mso de breaP en ciclos @ile 2incl3de4iostream5 2incl3de4conio'5 3sin namespace std; int main(){ int cont=$; @ile(tr3e){ co3t448encerrado844endl; cont&&; if(cont==#$)breaP;
//ciclo ?3e se repite infinitamente //c3ando el contador lle3e a #$ se termina la //eBec3cin del ciclo
} etc(); ret3rn $; }
//Mso de breaP en ciclos for 2incl3de4iostream5 2incl3de4conio'5 3sin namespace std; int main(){ int cont=$; for(;;){ co3t4489ncerrado844endl; cont&&; if(cont==#$)breaP; } etc(); ret3rn $; }
//ciclo ?3e se repite infinitamente //Tompe el ciclo
E 0 =,:/> )*:* ) :,0 ) 0 )*:/ _ :, ,/ : 0 * :/:0 9 ,/* *K:/:) )*:*) ,0 :,/ 0 ?0 0 :/:/> :/:0 ) @:* 0 ,/), @:/> 9 : _.
. SUBPROGRAMAS A 0 0= 0 ,0 ) ** 0) 0,) :, * :, )/ @) )0 ,>0. U 0) =) ?*) 9 */ 0 =,:/> ) 0 /?/)/> 0,) =) )0,) ) ?Q K)*) *,/K /?//) 0,) ,) 9). E)* *K:/: ,/* ,) :0/ 4
@:/0/ 0 :)*::/> :::/> 0) ) 9 ) )* 0 )0:/> 0, *,/. C 0) /?/)/) 9 ) : * 0 )0:/> 0, ) ,/ !(lo : ,>0 ) /,0,* ,/ 0) )=,). U (bp'o3'aa ) 9 =, /) @:* * */:0 0 :/ =, * )=, 9 0 */0/Q. D )* , 0 )=, ) /) ) */0/Q *) :)) ,) ,0/) * 0) :0) /)* X :/ *= /@,:/>. L */0/Q:/> )=,) 0 )0:/> 0,) =) */ ,:) ?*). P ,0 *) 9 @:*) ,) ?Q 0 ,0/ ?/* 0 :)/ =,:/> * ):/0,* 0 ,/), :* /)*::/) ?Q 00 ,>0 :)*/) /?:) : ?Q 9 ) :)/* : 0 ,/), 0 0 ** el uso de m#dulos permite o hace $ue los programas sean m%s cortos. D /=0 , 0 @=,*:/> ,>0) //?/0) :/ :0/ @:/0/ /)*/:/> * 9/ ) =,) :*) ) ,) @:/0) ):// :=/ ) )*:* 0>=/: ) ,) :0 9 0 0) =,) 9 )* /?//) ,>0). E0 )=, ) =, :,0/ : 0) ,/),) ::*;)*/:) K)* : *) )/,/0) :, :* *) ):// *) : :0:0) )/ ,= ) */0/Q >)/* ):;<:. E0 )=, :/ *) 0 =, )=, 9 0 /?: K)* 0 ?0? )0*). L :,/::/> 9 ) )*0: * 0 =, 00,* 0 )=, ) : *?K) ?/0) ,/) pa'4"#'o 9 : 0) ?:) ://* ) :/ *) ?; /@,:/>. U )=, ) /?: **) ?:) :, ) :)/* ) ?Q 0) )=,) /?: *) )=,) :, ?) 0 <= )/=/*H
41
Pasa
< In s tr u c c io n e s 1 >
in f o rm a c i ó n c e d e c o n t ro l
< # $a m a % a u n o a A >
R e to r n a
< I n s t r u c c i" n 3 >
in f o r m a c i ó n
S u b p ro g ra m a A
c o n tr o l e
Pasa in f o rm a c i ó n c e d e c o n t ro l
< # $a m a % a u n o a > < In s t ru c c i" n i>
R e to r n a
S u b p ro g ra m a
c o n tr o l e in f o r m a c i ó n
# $a m a % a a ! Pasa in f o rm a c i ó n c e d e c o n t ro l
< # $a m a % a % o s a A > < I n s t r u c c i" n & >
C e d e c o n tro l
R e to r n a
< I n s t ru c c i " n i >
R e to r n a
S u b p ro g ra m a !
control
S u b p ro g ra m a A
c o n tr o l e in f o r m a c i ó n
< I n s t r u c c i" n n >
E 0 =<: 0) X:) //: 0 X ::/> 0 =, )? 9 : ) :* /)*::/> 00, )=, 0 0=/*, 00,* ) */ 9 )0,* 0 *)< /@,:/> 0 )=, )/ *,/K 0 :*0 ::/> )* : 9 ) :*/? 0 )=, ) 0) K ?0 0) ?/0) 9 0 :@, ) :* 0) /)*::/). U ?Q 9 <0/Q ) ::/> */ 0 /@,:/> 9/ 0 =, 00,* 0 ** ) 0 *= ?0? 0 :*0 ::/> 0 /)*::/> )/=/* 0 ,/), /)*::/> ) @ 00, / 0 :0) )=,. E 0 <= *,/K ) ,)* 9 0=/*, /?: 0) ?:) 9 ) :)/ 0 ,/), )=, 9 )=, ) ?Q /?: *) )0=/*,).
4.1. CLASI#ICACIÓN DE LOS SUBPROGRA!AS L /?/)/> 0) )=,) ) : : ) 0 F, :*/ ?0) 9 0 )=, 0 ?; 0 =, )=, 00,*.
4.1.1. PROCEDI!IENTOS O SUBRUTINAS S )=,) 9 ?0? : ,) ?0) 0 =, )=, 9 0 /?: */0/Q * 0 :*0 ::/> 0 /)*::/> )/=/* ) ) 00,.
42
A. REPRESENTACIÓN void {
Rombre (tipo de dato parmetro#, tipo de dato parmetro', ) //1nstr3cciones
}
E0 Nob'" 0 )=, :,0/ : 0) ,) :@, ,) ?/0) ) F/: /)*/ ) ,) )=,) : 0 ,/), , 0 ,/), =,. L) Pa'4"#'o ) 0/)* :,) ?/0) )) :,) ) */0/Q) )*0: 0 :,/::/> * 0 ,>0 9 0 :*/? 0 )=,. U) ,*) ) :/ 0,: 0 /@,:/> 9 0) ?; 0 ,>0 9 0) /?: *) ?; /@,:/> 0 *)< 9/ /?: 0 )=,. E,0 2 %: )=, 9 *) F,) /)*/*) @, ):*. A$4lii C)/)* *:* :0) ) 0) ,*) :/ :0) 0) ?; 0 :) 9 ) :)/ : 00= 0) ,*) ?; */ 0) :/. Pa'4"#'o !" '")ibo S 0) ?/0) 9 ? :// /@,:/> 0 ,>0 9 0) /?: )/,/0) 0) *) * =, : 0 /@:/ 9 0) *) * ) 0) *)< /@,:/> *?K) /)*::/> 0:* 0) ,*) :/ ) 0) /@,:/> *?K) 0 ,>0 9 /?: 0 )=, ) :/ 9 ) )/= /@,:/> *,*/: ) 0) ?/0) 9 ?; /@,:/> ) 0 ,>0 00,* :/ 0) ,*) :/ 0 )=,. E)*) ,*) )H j V0 0 /, F, j V0 0 )= F, j V0 0 *: F, Pa'4"#'o !" "$5o S 0) ,*) 9 ?; /@,:/> 0 ,>0 9 /?: 0 )=, ),* 0) *) )0/ 0) =,) : 0 /@:/ 9 0) ,*) ?; 0 *= 0 /@,:/> 0) ?/0) 9 0 :/ * 0 ,>0 00,*. 43
j ! ?0 j V0 ,/ j ! ?0 P'o)"o P *,/ 0 ):* 0) *) F,) /, ) :* 0 , *) *?K) :,:/) * ); ) )/= 0 , ?0 0= ) :* 0 )= , ) )/= 0 ?0 ,/ 0 )** @:* ) 0 ?0 ,. D"6$i)i$ !" a'iabl" ORDENH N, 0 :/,/* PVH P/, ?0 SVH S= ?0 TVH T: ?0 !ENORH V0 , !EDIOH V0 ,/ !A"ORH V0 , B. ACTIVACIÓN DE UN PROCEDI!IENTO E0 )=, //:/ / *,/ ); ,/), 0 ** :)/* ) :*/? :0 @:/ ) ,>0 *. E)* ) : : 0 ,>0 00,* :)/* 0 0 ):;<: 9 : 0 ,>0 )/. L :*/?:/> ) : *?K) 0 )/=/* /)*::/>. 7o'a#o ?ombre ('rgumentos)
L) =,*) ) ,) :,) ?0) :)**) ?/0) )/) 9 ) 0 ,>0 ,0/ 9 */ :):/ /;?: : 0) ,*) : 0) :0) ) :)*> 0 )=, 0 ** K)*) ) /=0) F, */ * 9 0) ,*) 9 : =,* 0 :) ,* ?/:?). L) =,*) *,/K ) ) :0))H ) 9 ?; /@,:/> 0 )=, *) 9 :/ /@,:/>. C 0 )=, ) :*/? 0) =,*) ?; ) :/) 0) ,*) :/ ,*) :/ =,*) ?;. " : 0 )=, :*) 0) ,*) ?; 0 )/= /@,:/> 0) =,*) :/. P ,0 0 0 /)*::/> 9 :*/? 0 :/,/* ORDEN. E)* )=, */ 6 ,*) *) :/ *)
44
?; 0 ** 0 /)*::/> 9 0 /?9 * 6 =,*) *) ?; *) :/. S/ 0) ?/0) */0/Q :, =,*) ) ) H N1 N2 N3 !EN !ED !A" 0 /)*::/> );. @rden (?1, ?2, ?D, A?, AC, 'E)=
L 9 )/=/<: 0 )/=/*H i. C ) :*/? 0 )=, ,/Q :*). PViN1 SViN2 TViN3 P 0 ** N1 N2 N3 * ?0. ii. C 0 ORDEN :*) =) /@,:/> !ENi!ENOR !EDi!EDIO !A"i!A"OR L) )=,) */ *) @,) /:) * =,H *) int main )K) 0 int main )* * 0/; :, 0 ?,) ,) 0*. 2incl3de4iostream5 2incl3de4conio'5 3sin namespace std; //0CD1Z10.01\R D9L TC09D119ROC CTD9R void orden(float pv, float sv, float tv, float ]menor, float ]medio, float ]ma!or) { if((pv4sv) ]] (pv4tv)) { menor=pv; if(sv4tv) { medio=sv; ma!or=tv; } else { medio=tv; ma!or=tv; } } else {
45
if(sv4tv) { menor=sv; if(pv4tv) { medio=pv; ma!or=tv; } } else { menor=tv; if(pv4sv) { medio=pv; ma!or=sv; } else { medio=sv; ma!or=pv; } } } } //TCQT.. ^M9 1RVC0. .L TC09D119ROC CTD9R int main() { float n#,n',nK,men,med,ma!; int i;//n#,n' ! nK,men,med ! ma! son los ar3mentos textbacPro3nd($); textcolor(U9LLCN); otox!(J,J); co3t4489ROT9 9L T19T V.LCT> 8; cin55n#; otox!(J,#$); co3t4489ROT9 9L 9QMRDC V.LCT>8; cin55n'; otox!(J,#'); co3t4489ROT9 9L O9T09T V.LCT> 8; cin55nK; orden(n#,n',nK,men,med,ma!); clrscr(); textcolor(T9D); otox!(+,S); co3t448V.LCT9 CTD9R.DC 9R CTD9R .09RD9RO98; otox!(S,#$); co3t448V.LCT 9RCT>8; co3t44men; otox!(S,##); cprintf(8V.LCT 9D1C>8); co3t44med; textcolor(%); otox!(S,#'); cprintf(8V.LCT .UCT>8);co3t44ma!44endl; textcolor(+); s!stem(8pa3se8); }
//rocedimiento codificado desp3Hs del main 2incl3de4iostream5 2incl3de4conio'5 3sin namespace std; //rototipo del s3bprorama, Hste est codificado al final del main void orden(float pv, float sv, float tv, float ]menor, float ]medio, float ]ma!or); int main()
46
{
float n#,n',nK,men,med,ma!; int i;//n#,n' ! nK,men,med ! ma! son los ar3mentos textbacPro3nd($); textcolor(U9LLCN); otox!(J,J); co3t4489ROT9 9L T19T V.LCT> 8; cin55n#; otox!(J,#$); co3t4489ROT9 9L 9QMRDC V.LCT>8; cin55n'; otox!(J,#'); co3t4489ROT9 9L O9T09T V.LCT> 8; cin55nK; orden(n#,n',nK,men,med,ma!); clrscr(); textcolor(T9D); otox!(+,S); co3t448V.LCT9 CTD9R.DC 9R CTD9R .09RD9RO98; otox!(S,#$); co3t448V.LCT 9RCT>8; co3t44men; otox!(S,##); cprintf(8V.LCT 9D1C>8); co3t44med; textcolor(%); otox!(S,#'); cprintf(8V.LCT .UCT>8);co3t44ma!44endl; textcolor(+); s!stem(8pa3se8);
}//Z1R .1R void orden(float pv, float sv, float tv, float ]menor, float ]medio, float ]ma!or) { if((pv4sv) ]] (pv4tv)) { menor=pv; if(sv4tv) { medio=sv; ma!or=tv; } else { medio=tv; ma!or=tv; } } else { if(sv4tv) { menor=sv; if(pv4tv) { medio=pv; ma!or=tv; } } else { menor=tv; if(pv4sv) { medio=pv; ma!or=sv; }
47
else { medio=sv; ma!or=pv; } } } }
E,0 21 E0 =, 9 */0/: :/,/* 9 :* 0 ), 0 ,/ N F,). 2incl3de4iostream5 2incl3de4conio'5 3sin namespace std; /* 0odificacin del procedimiento, n parmetro de recibob s3m ! prom parmetros de envYo*/ void s3mprom(int n, float ]s3m, float ]prom) { int i; float n3mero; s3m=$; clrscr(); textcolor(N<1O9); textbacPro3nd(T9D); for (i=#;i4=n;i&&) { otox!('$,I&i); co3t448D1Q1O9 9L RM9TC 844 i448> 8; cin55n3mero; s3m&=n3mero; } prom=s3m/n; } int main() { int n3m; float s3ma, promedio; s!stem(8cls8); otox!('$,#'); co3t448D1Q1O9 L. 0.RO1D.D D9 RM9TC> 8; cin55n3m; s3mprom(n3m,s3ma,promedio); clrscr(); otox!('$,#'); co3t448L. M. 9> 844s3ma448 U 9L TC9D1C> 844promedio; otox!('$,#I); s!stem(8pa3se8); }
4.1.2. #UNCIONES S )=,) 9 0 ?0? 0 =, )=, 9 0) /?: F/: ?0. E0 ?0 9 K)*) ?0? ) : *?K) ?/0 48
)/> ?0 /?0:) /)*::/> return * 0 :* /)*::/) 0 , K)* 0 ** )* */ )=,) ) :Q,/* **/ )>0 */ ,*) :/. L) @:/) ?0? 0 :*0 ::/> 0 ,/), /)*::/> ) ) 00,. U @:/> * ?/) return ?Q 9 :* *,/ 0 @:/>. A. SINTA'IS //ara definir (declarar) la f3ncin tipo nombre(parmetros) ?3e retorna la f3ncin { 1nstr3cciones ret3rn valor; } //ara invocar (instanciar) la f3ncin Variable = nombre(parametros);
E,0 22 E0 =, 9 */0/: @:/> 9 :* 0 ?0 , :* 3 F,) 0) /@*). L @:/> * 0 , * 0) *) F,). 2incl3de4iostream5 2incl3de4conio'5 3sin namespace std; float ma!or(float n#,float n', float nK)//n#, n', ! nK parmetros de recibo { float valma!; if((n#5n') ]] (n#5nK)) valma!=n#; else if(n'5nK) valma!=n'; else valma!=nK; ret3rn valma!; } int main() { float RM#,RM',RMK,RM_.UCT; clrscr(); otox!('%,#$); textcolor(U9LLCN); cprintf(89ROT9 9L T19T V.LCT >8); cin55RM#; otox!('%,#'); textcolor(L1Q8); cin55RM'; otox!('%,#I); textcolor(L1Q8); cin55RMK; RM_.UCT=ma!or(RM#,RM',RMK); clrscr(); otox!(#$,#');
4&
co3t4489L V.LCT .UCT 9ROT9> 844RM#448,844RM'448 U 844 RMK448 9> 844RM_.UCT; textcolor(+); otox!('$,'$);co3t448T91CR9 O90L. .T. O9T1R.T8; etc(); }
U ?* 0) @:/) ) 9 )* /?0:) )/) :, ) ,)* 0 )/=/* 0=/*,. E 0=) :)) */:0) : 0 =, 0 9/ ) ?/ ?0) :)**) :, =,*) : ) /?: )=, :/,/* > @:/>. E,0 23 E =, */0/Q 0 @:/> !A"OR :* 0 ?0 , * &.5 ) ?0) 9 * 0 )/. 2incl3de4iostream5 2incl3de4conio'5 3sin namespace std; float ma!or(float R#,float R', float RK) { float V.L.U; if((R#5R') ]] (R#5RK)) V.L.U=R#; else if(R'5RK) V.L.U=R'; else V.L.U=RK; ret3rn V.L.U; } int main() { float RM#,RM'; co3tprecision('); co3tsetf(ios>>fixed,ios>>floatfield); co3tsetf(ios>>so@point); clrscr(); otox!('%,#$); textcolor(U9LLCN); cprintf(89ROT9 9L T19T V.LCT >8); cin55RM#; otox!('%,#'); textcolor(L1Q8); cin55RM'; clrscr(); otox!(#$,#'); co3t4489L V.LCT .UCT 9ROT9> 844RM#448 , 844RM' 448 U 6$% 9> 844ma!or(RM#,RM',6$%); textcolor(+); otox!('$,'$);co3t448T91CR9 O90L. .T. O9T1R.T8; etc(); }
E,0 24 E0 =, 9 */0/: @:/> 9 *,/ )/ F, ) /, .
5
2incl3de4iostream5 2incl3de4conio'5 3sin namespace std; car primo(int n) { int mitad=n/',i='; car res=-R-; @ile((i4=mitad) ]] (n 7 i E=$)) i&&; if(i 5 mitad) res=--; ret3rn res; } /*Cbserve ?3e el ciclo se rompe c3ando n7 i es i3al a cero, es decir, se le encontr 3n divisor a n . esto se le denomina rompimiento de ciclos 3ede acerse tambiHn con 3na bandera o s@itce */ int main() { int n3m; clrscr(); otox!('$,#'); textcolor(+); textbacPro3nd(`LM9); cprintf(89ROT9 9L RX9TC> 8); otox!(K+,#'); cin55n3m; clrscr(); otox!(K$,#'); textcolor(L1Q
4.1.3. LIBRERÍAS U 0/; : 0 =, )* @, )=,) ?/,* /)) 9 ) */0/Q) 0 =, 0/Q 0) :/) 9 : 0) )=,) 9 0 :@, )/ 9 )*) )=,) )*K 0 =, /:/0 9 0) /?:. S :, :/? ,0/ 00, a')8io !" )ab")"'a 9 ) : ) = : , ):;<: 0 0 *)/> .8 ,0 *.. E)* *)/> 0 :0:,) )*) 9 ) : @:* 0 9 0/; ) :,/0. C 0 0/; ) :09 0 :Q 0 =, /@:/0 0) 0/;) 0 :,/0 ) :0: * )oilla !obl" :0: 0 * ) :* 0,: 0 0/; ,0 )/ 0 0/; 00, *1. )* = 0 /): C 0 :* 0/;) 0 :Q ); 0 )/=/*H k/:0ZCHd0//)d*.Z )/ 0 0/; )* = 0 ,/), :* )* 0 =, 9 0 */0/Q 0 :Q )/,0,* );H k/:0Z*.Z. E,0 25 51
E0 0/; 9 :*= 0) )/=/*) )=,)H :/,/* 9 0 : * 0 *00 0 :/,/* o'!"$ 0 :/,/* (p'o 0 @:/> a-o'. E)* 0/; 0 ?,) 00, f,/0//f 0 =,) 0 ,/), :* )* 0 =, 9 ) )) )=,). P 0 ** 0 , : 9 0 ?,) = ) ,/0//.. 2incl3de4iostream5 2incl3de4conio'5 2incl3de4@indo@s5 3sin namespace std; void c3adro(int fi, int ci, int ff, int cf) { /* fi> fila inicial donde inicia el c3adro, ci col3mna inicial ff fila final donde finali"a el c3adro, cf col3mna final*/ int i; clrscr(); for(i=(ci);i4cf;i&&) { otox!(i,fi); co3t44car(#6+); //caracter otox!(i,ff); co3t44car(#6+); //caracter } for(i=fii4ff;i&&) { otox!(ci,i); co3t44car(#S6); // caracter otox!(cf,i); co3t44car(#S6); //caracter } otox!(ci,fi); co3t44car('#J); //9s?3ina s3perior i"?3ierda caracter X otox!(cf,fi); co3t44car(#6#); //9s?3ina s3perior dereca caracter otox!(ci,ff); co3t44car(#6'); //9s?3ina inferior i"?3ierda caracter otox!(cf,ff); co3t44car('#S); //9s?3ina inferior dereca caracter } //*************************************************************************** void orden(float pv, float sv, float tv, float ]menor, float ]medio, float ]ma!or) { if((pv4sv) ]] (pv4tv)) { menor=pv; if(sv4tv) { medio=sv; ma!or=tv; } else { medio=tv; ma!or=tv; }
52
} else { if(sv4tv) { menor=sv; if(pv4tv) { medio=pv; ma!or=tv; } } else { menor=tv; if(pv4sv) { medio=pv; ma!or=sv; } else { medio=sv; ma!or=pv; } } }
}
void s3mprom(int n, float ]s3m, float ]prom) { int i; float n3mero; s3m=$; clrscr(); textcolor(N<1O9); textbacPro3nd(T9D); for (i=#;i4=n;i&&) { otox!('$,I&i); co3t448D1Q1O9 9L RX9TC 844 i448 8; cin55n3mero; s3m&=n3mero; } prom=s3m/n; } //**************************************************************************** float ma!or(float n#,float n', float nK)//n#, n', ! nK parmetros de recibo { float valma!; if((n#5n') ]] (n#5nK)) valma!=n#; else if(n'5nK) valma!=n'; else valma!=nK; ret3rn valma!; }
53
E,0 26 P=, 9 : ) 0) )=,) 9 :*/ ,/0//.. 2incl3de 8milibreria8 int main() { float pv, sv, tv, menor, medio ,ma!or#,s3m, prom, n#,n',nK,valma!; int opcion,n; do { clrscr(); textbacPro3nd(N<1O9); textcolor(`LM9); c3adro(S,#6, #6, +'); otox!(K+,6); co3t4489RX8; otox!('#,##); co3t448#> OT9 RX9TC CTD9R.DC8; otox!('#,#'); co3t448'> M. U TC9D1C D9 R RX9TC8; otox!('#,#K); co3t448K> .UCT 9ROT9 OT9 RX9TC8; otox!('#,#I); co3t448I .L1T D9L 9RX8; otox!('#,#+); co3t4489L9001CR9 L. C01\R D99.D.> 8; cin55opcion; s@itc(opcion) { case #> clrscr(); textbacPro3nd(N<1O9); textcolor(.Q9RO.); otox!(J,J); cprintf(89ROT9 9L T19T V.LCT> 8); cin55pv; otox!(J,#$); cprintf(89ROT9 9L 9QMRDC V.LCT>8); cin55sv; otox!(J,#'); cprintf(89ROT9 9L O9T09T V.LCT> 8); cin55tv; orden(pv,sv,tv, menor,medio,ma!or#); clrscr(); textcolor(T9D); otox!(+,S); cprintf(8V.LCT9 CTD9R.DC 9R CTD9R .09RD9RO98); otox!(S,#$); cprintf(8V.LCT 9RCT>8); co3t44menor; otox!(S,##); cprintf(8V.LCT 9D1C>8); co3t44medio; textcolor(%); otox!(S,#'); cprintf(8V.LCT .UCT>8);co3t44ma!or#44endl; textcolor(+); s!stem(8pa3se8); breaP; case '> s!stem(8cls8); otox!('$,#'); co3t448D1Q1O9 L. 0.RO1D.D D9 RX9TC> 8; cin55n; s3mprom(n,s3m,prom); otox!('$,#'); co3t448L. M. 9> 844s3m448 U 9L TC9D1C> 844prom; otox!('$,#+); s!stem(8pa3se8); breaP;
54
case K> clrscr(); otox!('%,#$); textcolor(0U.R); cprintf(89ROT9 9L T19T V.LCT >8); cin55n#; otox!('%,#'); textcolor(L1Q8); cin55n'; otox!('%,#I); textcolor(L1Q8); cin55nK; valma!=ma!or(n#,n',nK); clrscr(); otox!(#$,#'); co3t4489L V.LCT .UCT 9ROT9> 844n#448 , 844n'448 U 844 nK448 9> 844valma!; textcolor(+); otox!('$,'$);co3t448T91CR9 O90L. .T. O9T1R.T8; etc(); breaP; case I> s!stem(8cls8); otox!('$,#'); co3t448QT.01. CT M.T 9L TCQT..8; leep('$$$); breaP; } //fin casos }@ile (opcion E=I); }
4.1.4 LIBR ERÍA PARA VALIDAR " CREAR CUADROS S" a a )o$#'(i' ($a lib'"'5a 0(" " lla" ENTORNO.9 - 0(" 8a3a !o )oa% A. l ali!" 0 /@,:/> 9 * 0 )/. E) , :,F 9 0 )/ ) 9/?9 : /=/* * :09/ */ ,0 )/ 0 * * ) i$# )* /=/* _1 0 =, * ) */ 0 ::/> ) * 0 =, @* )/ ) /=/* 5 *) ) ?0? /=/*. L 9 : 9 0 )/ ) =). L ?0/:/> 0 ,/* 0 =, : 0) ) 0 )/ 0 ,/, )/ 0 )/ /=/* * ,0 ) 0 ?/ ,) 0 9 ) 0 :,/9 0 9 :,*/ ) 0 ,/* ?0? /=/* 0 * )/ 9 0 ::/> :,*/ 0 )9 0 =,. E 0 :) / ,:/ )/ 0 )/ /=/* ^1 ) 0 ?/ ,) /:/ 9 )>0 /=/* F,) 9 ?0? /=/*. L) *) 9 /=/* ) / ); 9 :*/F * ,) *). L :/> ?0? /=/* ) :0: 0 <0 0 *00 9 /*, /=F : 9 ) )*K */0/Q. A. :ali!a)i$ !" $;"'o. S/=/<: 9 0 )/ )0 /=/* F,) 0=) :)) 0 )/= ,) 0 * :/,0 0 ?0/:/> ,/* 9 K0 /=/* :09/ ::* ) 9 :0 ) ?/0) 0 F, 9 ) ? ?0/H */ ::* * */ ,K/:. L= *?K) 0 @:/> a#ol! ) 55
:?/* 0 9 ) 0,:> 0 ?/0 */ ::* F,) : ) )/= *. A.1 :ali!a)i$ !" $;"'o "$#"'o% 8o'#, i$#, lo$3 lo$3. E )* :) 0 )/ )0 /=/* F,) )/*/?) =*/?) )/ /=/* * ::* /,/*,* ) 0 ?/ ,) 0 )/ 9 ?0? /=/* :*/F * ,) *) )/ 0) */. L @:/> ) 0 )/=/*H lo$3 lo$3 ali!a'E$#"'o)8a' $()<=/ A9 0 ,0 28 )* 0 @, ) :*/:/> ? ,)*:/>. P ,0H ?0/ 0 ?/0 F, )*/*) *,) 0 ?/0 $("#) */ ::* 9 0 00 0 )/ /=/* :09/ ::* )* ?/0 ) 0 :0: **) *) :, ;=/*) *= 0 , F, * )* :) 0 :*/ )*/*) * ?/0 $("# */ i$#, 9 ) 0 ?/0 : 0 9 0,* )* )=/ *. D* ?0/E* ) ) 0 @:/> a#ol! 9 :?/* 0) ::*) 0,:) ,)*: F,) 0) 0,: 0 ?/0 ,K/: ,)*. A);H
car n3mestc:J; /*sinifica ?3e la cantidad de est3diantes no tiene ms de S dYitos*/ int n3mest; cin55n3mestc; // e lee 3na variable de tipo car n3mest=validar9ntero(n3mestc); // n3mest ?3eda con solo dYitos 1Q. OT.`..RDCggggggggggggggggggggggggggggggggggggggggggggg
E)* : : 0 ?0/:/> F,) :09/ */. E 0) ?/0) */ ::* )0 ) :)/ 0 ?/0 */ ::* ) :/ *,) :)/ : :?)/>. A.2 :ali!a)i$ !" $;"'o '"al"% >oa#, !o(bl" o lo$3 !o(bl". E )* @:/> 0 )/ )>0 /=/* F,) 0 )/= ,) 0 * :/,0 9 )* 0 /:// /*,/ 0 /0 ;=/*) ,/* 9 ) :09 ) ?:) 0 * :/,0. L @:/> )H !o(bl" ali!a'R"al)8a' $()<=/. S ) ) )/,/0 0 ?/E*,:[] )0 9 9; ) < :, ?/0 ,K/: ?/0 :09/ */ 0) / ,:/). L @:/> */0/Q )** 0 :?)/> ::*) ;=/*) : 0 * :/,0 )/ K0. A.& :ali!a)i$ !" $;"'o '"al" poi#io% >oa#, !o(bl? o lo$3 !o(bl?. S ) ) /=0 9 0 */ 9 ) :09 0 )/= ,). E0 , 0 @:/> )H
56
!o(bl" ali!a'R"alPoi#io )8a' *$()/ E0 ) ),* 0 9 * K*)/) 0) @:/) */). A. :ali!a)i$ !" $;"'o "$#"'o poi#io% 8o'#, i$#, lo$3 lo$3. I=0 0 @:/> ?0/E* ,/* F,) =*/?). L @:/> )H 0= 0= ?0/E*P)/*/?: ,:[] B. :ali!a)i$ !" )a'a)#"'" l"#'a/. E) :9 9 0 )/ )>0 /=/* 0*) ) : *) @,)H 9 /=/* 0*) ,/F):0) ,F):0) 9 )0 /=/* ,F):0) ,/F):0). E,0H V0/ 0*) ,F):0) ,/F):0) /=,) , : ? , 00/ //:/ : ,F):0. car nombre:IJ; clrscr(); co3t44”D1Q1O9 9L RC`T9 h44endl; cin55@s; cinetline(nombre,IJ); validar0aracteres(nombre); /*Cbserve ?3e el s3bprorama es 3n procedimiento ! por la tanto se llama de 3na manera diferente ?3e las anteriores ?3e son f3nciones*/ i no a! errores sia trabaBando
B.1 :ali!a)i$ !" a-;)(la - i$;)(la S : ,/* :/,/* 00, ali!a'Ca'a)#"'")8a' 8il"'a<=/, )>0 ,/* 9 ) /=/* 0*) ,/F):0) ,F):0). B.2 :ali!a)i$ !" a-;)(la. S>0 ,/* 0 ?/0 */ ::* 9 ) /=/* 0*) ,F):0). N,% oi! ali!a'Ma-()(la )8a' 8il"'a<=/ Uo% ?0/!):0), C. C'"a)i$ !" )(a!'o "$ la pa$#alla. P /:0/ **) /*,* ,0 : ) : =,) ) ,F). T) 0) :) )* :) :, :/,/*). C.1 oi! )(a!'oi$# 6, i$# )i, i$# @, i$# @/ D
C.2 oi! )(a!'o1/ E)* :/,/* @, : *00 : : /*) 0 :/,/* /: 0 : 0= < 0 *00 ) 0= )* ,/<: 0 :/,/* 9 )* 0 L/; *. ,) 0*. C.& oi! )(a!'o2/ E0 :/,/* @, : : 0; 0 : ): 0 * )/. E0 : ) :)* 0= < 0 *00. C. oi! )(a!'o!i$# 6, i$# )i , i$# @, i$# )/ G : : 0; 0 0 *00 //:/ 0 <0 < :0, :/ *,/ 0 <0 < C0, :@. C. oi! )(a!'o M"$o Aa/ G : : 0; 0 9 ) //:/ :)*/ ) : 9 ? ,* )* 00= @, 0 : :,0* * 0 *00 )) :) ) <) 0 *00. C. oi! ")'ibi'CaMa/ E)* :/,/* ):/ 0 ** C++ * 0 : !)A,) )* /: 0= < 0 *00 E(E!PLO 27 /* L1`T9T1. 9ROCTRC<*/ 2incl3de4iostream5 2incl3de4conio'5 2incl3de4@indo@s5 2incl3de4iomanip5 3sin namespace std; /* 9O. ZMR01\R V.L1D. MR RX9TC 9RO9TC>
58
{ co3tsetf(ios>>fixed); sort nc,i; lon lon n3mero9ntero; do{ car sia=--; i=$; nc=strlen(n3mc); if((n3mc:$==-F-)]](nc5#)) i&&;
@ile((i4nc)]](sia==--)){ if(isdiit(n3mc:i) E=$) i&&; else{ sia=-R-; // clrscr(); otox!(#$,'I); co3t448D1Q1O9 \LC RX9TC 9RO9TC, VM9LV. . D1Q1O.T 8; cin55@s;
8;
cinetline(n3mc,'$); otox!(#$,'I); co3t448 } } } @ile(i4nc); n3mero9ntero=atoll(n3mc); ret3rn n3mero9ntero;
} /************************************************************************************* ***************************** /* 9O. ZMR01\R V.L1D. MR RX9TC ZLC.O C DCM`L9 U D9VM9LV9 9L RX9TC D1Q1O.DC V.L1D.DC, 9 D901T, ^M9 CLC 0CRO9RQ. D[Q1OC, MR MROC U ^M9 9L RX9TC 9. C1O1VC T9OCTR. MR do3ble */
do3ble validarTealositivo(car *n3mc) {
co3tsetf(ios>>fixed); do3ble n3meroTeal; sort nc,i; do{ i=$;
5&
car sia=--; int p=$; nc=strlen(n3mc); if(strcmpi(n3mc,88)==$) n3mc:i=-R-; @ile((i4nc)]](sia==--)){ if((isdiit(n3mc:i) E=$) ((n3mc:i==--)]](p==$))){ i&&; if(n3mc:iF#==--) p&&;
} else{ sia=-R-; //clrscr(); otox!(#$,'I); co3t448D1Q1O9 RX9TC C1O1VC, VM9LV. . D1Q1O.T 8;cin55@s; cinetline(n3mc,'$); otox!(#$,'I); co3t448 8; } }
} @ile(i4nc); n3meroTeal=strtod(n3mc,-j$-); ret3rn n3meroTeal;
} / ************************************************************************************** ***************** /* 9O. ZMR01\R V.L1D. MR RX9TC 9RO9TC>
^M9 CLC 0CRO9RQ. D[Q1OC U ^M9 9L RX9TC
lon lon validar9nteroositivo(car n3mc:) { co3tsetf(ios>>fixed);
sort nc,i; lon lon n3mero9ntero; do{ car sia=--; i=$; nc=strlen(n3mc); @ile((i4nc)]](sia==--)){ if(isdiit(n3mc:i) E=$) i&&;
6
else{ sia=-R-; //clrscr(); otox!(#$,'I); co3t448D1Q1O9 RX9TC 9RO9TC C1O1VC, VM9LV. . D1Q1O.T 8;cin55@s; cinetline(n3mc,'$); otox!(#$,'I); co3t448 8; } } } @ile(i4nc); n3mero9ntero=atoll(n3mc); ret3rn n3mero9ntero; } / */************************************************************************************ ************************** 9O9 TC09D119ROC 0CROTCL. ^M9 9L MM.T1C \LC D1Q1O9 L9OT. (.UX0ML. C 1RX0ML., 1 RC <.U 9TTCT9 1Q. OT.`..RDC RCT.L9RO9*/
void validar0aracteres(car ilera:) { int nc,i; car sia; do{
i=$; nc=strlen(ilera); sia=--; @ile((i4nc)]](sia==--)){ if((isalpa(ilera:i) E=$) (isspace(ilera:i) E= $)) i&&; else{ sia=-R-; otox!(I,'I); co3t448\LC D1Q1O9 L9OT., VM9LV. . D1Q1O.T 8; cin55@s;cinetline(ilera,I$); otox!(I,'I); co3t448
8; } }
} @ile(i4nc);
61
} /************************************************************** 9L TC09D119ROC validaa!3sc3las 0<9^M9. ^M9 MR. V.T1.`L9 O1C 0.T.0O9T RC .L.09R9 1RC L9OT. .UX0ML. 1 RC <.U 9TTCT9, 1Q. OT.`..RDC ^M9 OCDC 9O 0CTT90OC */ void validara!3sc3las (car ilera:) { int nc,i; car sia; do{ i=$; nc=strlen(ilera); sia=--; @ile((i4nc)]](sia==--)){ if((is3pper(ilera:i) E=$) (isspace(ilera:i) E= $)) i&&; else{ sia=-R-; otox!(I,'I); co3t448CLC D1Q1O9 L9OT. .UX0ML., VM9LV. . D1Q1O.T 8; cin55@s;cinetline(ilera,I$); otox!(I,'I); co3t448
8;
} } }
} @ile(i4nc);
//******************************************************************** /*9O9 TC09D119ROC Q9R9T. MR 0M.DTC 0CR L[R9. 9R01LL. 1R101.RDC 9R L. Z1L. Z1, 0CLMR. 01 U Z1R.L1k.RDC 9R L. Z1L. ZZ U 0CLMR. 0Z MO9D M9D9 0CLC0.T 9L 0M.DTC 9R 0M.L^M19T LMQ.T D9 L. .RO.LL. U 0CR 9L .R0
textbacPro3nd($); for(i=(ci);i4cf;i&&){ otox!(i,fi); co3t44car(#6+); //caracter otox!(i,ff); co3t44car(#6+);
//caracter
62
} for(i=fii4ff;i&&){ otox!(ci,i); co3t44car(#S6); otox!(cf,i); co3t44car(#S6);
//
caracter
//caracter
} otox!(ci,fi); co3t44car('#J); //9s?3ina s3perior i"?3ierda caracter X otox!(cf,fi); co3t44car(#6#); //9s?3ina s3perior dereca caracter otox!(ci,ff); co3t44car(#6'); //9s?3ina inferior i"?3ierda caracter otox!(cf,ff); co3t44car('#S); //9s?3ina inferior dereca caracter
} //**************************************************************** /* 9O9 TC09D119ROC ZCT. MR 0M.DTC 9R .RO.LL. 0CR 0M.DTC 1RO9TRC 9L TC09D119ROC 1R9TO. 9L 0M.DTC 9R MR LMQ.T T9D9O9T1R.DC 9R L. .RO.LL.*/ void c3adro#() { int i; for(i=#;i4=I6;i&&){
otox!(#%&i,%); co3t44car(#SJ); otox!(#%&i,''); co3t44car(#SJ); otox!(#%&i,6); co3t44car(#SJ); leep(#$$);
} for(i=#;i4=#J;i&&){ otox!(#+,I&i); co3t44car(#SS); otox!(+%,I&i); co3t44car(#SS); leep(#$$);
} for(i=#;i4=K;i&&){ otox!(KK,%&i); co3t44car(#SS); otox!(IS,%&i); co3t44car(#SS); }
63
} /**************************************************************** 9O9 TC09D119ROC ZCT. MR 0M.DTC 9R .RO.LL. 0CR MR M`0M.DTC M9T1CT 0CR L[R9. DC`L9*/ void c3adro'() { int i; for (i=#;i4=S$;i&&){ otox!(%&i,%); co3t44car('$%); otox!(%&i,#6); co3t44car('$%); } for(i=#;i4=#K;i&&){
otox!(%,%&i); co3t44car(#J+); otox!(S+,%&i); co3t44car(#J+); } otox!(%,#6); co3t44car('$$); otox!(%,%); co3t44car('$#); otox!(S+,%); co3t44car(#JS); otox!(S+,#6); co3t44car(#JJ); for(i=#;i4=S$;i&&){ otox!(%&i,S); co3t44car('$%); }
} //***************************************************************** //0M.DTC 0CR L[R9. DC`L9 void c3adrod(int fi,int ci,int ff,int cf) { int i; for(i=(ci);i4cf;i&&){ otox!(i,fi); co3t44car('$%); //caracter [ otox!(i,ff);
64
co3t44car('$%);
} for(i=(fi);i4ff;i&&){ otox!(ci,i); co3t44car('$%); // caracter [ otox!(cf,i); co3t44car('$%);
//caracter [
//
caracter [
//
caracter
} for(i=fii4ff;i&&){ otox!(ci,i); co3t44car(#J+); otox!(cf,i); co3t44car(#J+); } otox!(ci,fi); co3t44car('$#); otox!(cf,fi); co3t44car(#JS); otox!(ci,ff); co3t44car('$$); otox!(cf,ff); co3t44car(#JJ);
//caracter
//caracter // caracter //
caracter
//
caracter
} /******************************************************************* 9O9 TC09D119ROC Q9R9T. MR 0M.DTC, D9D9 MR O..qC 9^M9qC <.O. LL9Q.T . MRC QT.RD9 L. C101\R D9L 0M.DTC 9 Z1. 9R L. .RO.LL.*/ void c3adroenos.mas() { int v,?,@,",cont,i; v=#'; ?=#'; @=I$; "=I$; cont=#; @ile(cont 4=#'){
clrscr(); for(i=@;i4=";i&&){ otox!(i,v); co3t44--; otox!(i,?); co3t44--; }
65
for(i=v;i4=?;i&&){ otox!(@,i); co3t44--; otox!(",i); co3t44--; }
leep(I%$); @=@FK; v=vF#; "="&K;
?=? cont=cont }
} /*********************************************************************************** 9O9 TC09D119ROC 0CLC0. LC 0.T.0O9T9 0&&, D9ROTC D9L 0M.DTC 0M.DTC9RC..*/ void escribe0masas() {
c3adroenos.mas(); textbacPro3nd(K);textcolor(`LM9); otox!(K#,I);cprintf(8 T . 0 O 1 0 . # 8); otox!(#%,+);textcolor(L1Q
8);co3t44endl; 8);co3t44endl;
8);co3t44endl;
8);co3t44endl;
8);co3t44endl;
8);co3t44endl;
8);co3t44endl;
8);co3t44endl;
8);co3t44endl;
8);co3t44endl;
8);co3t44endl;
66
otox!(#%,#S); cprintf(8 textbacPro3nd(K); textcolor(N<1O9); otox!('%,'');cprintf(8T91CR9 O90L. .T. 0CRO1RM.T 8); etc(); textbacPro3nd($);
8);co3t44endl;
}//Zin entorno //*******************************************************************
E(E!PLO 28 :ali!a)i$ !" $;"'o "$#"'o V,) : ,)*:/> ?0/:/> F,) *) )* /* 0= 0= X* 0 0= 0K */0/Q 0 0/; */ ENTORNO.%. /* TCQT.. ^M9 V.L1D. RX9TC 9RO9TC U T9.L9*/ 2incl3de8entorno8 int main() {
// V.L1D.T MR
otox!(#$,J); co3t448D1Q1O9 MR 9RO9TC .T. .L.09R.T 9R #+ `1O 8; cin55n3mc; //Cbserve se lee 3n tipo car, 3sted va a trabaBar con n3m /*V19R9 L. V.L1D.01\R, TM9`9 9ROT.RDC L9OT. M COTC 0.T.0O9T9 O9RQ. 0M1D.DC 0CR 9L T.RQC D9 sort */ n3m=validar9ntero(n3mc);/* i se cometen errores corrYBalos ! si no sia trabaBando con n3m*/ //1Q. 0CR L. D9 1ROTM001CR9 D9 M TCQT.. res3ltado=n3m&%$; clrscr(); otox!('$,#'); co3t4489L T9MLO.DC 9 >844 res3ltado44endl;
s!stem(8pa3se8);
/************************************************************************************* *****/ /*V.L1D.T MR 1RO*/ int n3mi, res3ltadoi; car n3mci:#+;
clrscr(); otox!(#$,J);
67
co3t448D1Q1O9 MR 9RO9TC .T. .L.09R.T 9R K' `1O 8; cin55n3mc; //Cbserve se lee 3n tipo car, 3sted va a trabaBar con n3mi /*V19R9 L. V.L1D.01\R, TM9`9 9ROT.RDC L9OT. M COTC 0.T.0O9T9 O9RQ. 0M1D.DC 0CR 9L T.RQC D9 int*/ n3mi=validar9ntero(n3mc);/* i se cometen errores corrYBalos ! si no sia trabaBando con n3mi*/ //1Q. 0CR L. D9 1ROTM001CR9 D9 M TCQT.. res3ltadoi=n3mi&%$; clrscr(); otox!('$,#'); co3t4489L T9MLO.DC 9 >844 res3ltadoi44endl; s!stem(8pa3se8); /************************************************************************************* ******/ /*V.L1D.T MR LCRQ LCRQ*/ lon lon
n3ml,res3ltadol;
car n3mlc:'$; clrscr(); otox!(#$,J);
co3t448D1Q1O9 MR 9RO9TC .T. .L.09R.T 9R +I `1O 8; cin55n3mlc; //Cbserve se lee 3n tipo car, 3sted va a trabaBar con n3ml /*V19R9 L. V.L1D.01\R, TM9`9 9ROT.RDC L9OT. M COTC 0.T.0O9T9 O9RQ. 0M1D.DC 0CR 9L T.RQC D9 lon*/ n3ml=validar9ntero(n3mlc);/* i se cometen errores corrYBalos ! si no sia trabaBando con n3ml*/ //1Q. 0CR L. D9 1ROTM001CR9 D9 M TCQT.. res3ltadol=n3ml&%$; clrscr(); otox!('$,#'); co3t4489L T9MLO.DC 9 >844res3ltadol44endl; s!stem(8pa3se8); /************************************************************************************* ******/ /* V.L1D.T MR ZLC.O*/ float n3mf,res3ltadof; car n3mfc:'$; clrscr(); otox!(#$,J); co3t448D1Q1O9 MR T9.L .T. .L.09R.T 9R K' `1O 8; cin55n3mfc; //Cbserve se lee 3n tipo car, 3sted va a trabaBar con n3mf /*V19R9 L. V.L1D.01\R, TM9`9 9ROT.RDC L9OT. M COTC 0.T.0O9T9 O9RQ. 0M1D.DC 0CR 9L T.RQC D9 float*/
68
n3mf=validarTeal(n3mfc);/* i se cometen errores corrYBalos ! si no sia trabaBando con n3mf*/ //1Q. 0CR L. D9 1ROTM001CR9 D9 M TCQT.. res3ltadof=n3mf&%$;
clrscr(); otox!('$,#'); co3t4489L T9MLO.DC 9 >844res3ltadof44endl; s!stem(8pa3se8);
/************************************************************************************ V.L1D.T MR DCM`L9*/
do3ble n3md,res3ltadod; car n3mdc:'$; clrscr(); otox!(#$,J); co3t448D1Q1O9 MR T9.L .T. .L.09R.T 9R +I `1O 8;
cin55n3mdc; //Cbserve se lee 3n tipo car, 3sted va a trabaBar con n3md /*V19R9 L. V.L1D.01\R, TM9`9 9ROT.RDC L9OT. M COTC 0.T.0O9T9 O9RQ. 0M1D.DC 0CR 9L T.RQC D9 do3ble*/ n3md=validarTeal(n3mdc);/* i se cometen errores corrYBalos ! si no sia trabaBando con n3mf*/
//1Q. 0CR L. D9 1ROTM001CR9 D9 M TCQT.. res3ltadod=n3md&%$; clrscr(); otox!('$,#'); co3t4489L T9MLO.DC 9 >844res3ltadod44endl; s!stem(8pa3se8);
/ ************************************************************************************** **/ /*V.L1D.T MR LCRQ DCM`L9*/
lon do3ble n3mld,res3ltadold; car n3mdlc:'$; clrscr(); otox!(#$,J); co3t448D1Q1O9 MR T9.L .T. .L.09R.T 9R 6+ `1O 8;
cin55n3mdlc; //Cbserve se lee 3n tipo car, 3sted va a trabaBar con n3mld /*V19R9 L. V.L1D.01\R, TM9`9 9ROT.RDC L9OT. M COTC 0.T.0O9T9 O9RQ. 0M1D.DC 0CR 9L T.RQC D9 lon do3ble*/ n3mld=validarTeal(n3mdlc);/* i se cometen errores corrYBalos ! si no sia trabaBando con n3mf*/ //1Q. 0CR L. D9 1ROTM001CR9 D9 M TCQT..
res3ltadold=n3mld&%$; clrscr(); otox!('$,#'); co3t4489L T9MLO.DC 9 >844res3ltadold44endl;
6&
s!stem(8pa3se8);
/************************************************************************************/ /*V.L1D.T T9.L C1O1VC, ZLC.O, DCM`L9 C LCRQ DCM`L9*/
float n3mfp,res3ltadofp; car n3mfcp:'$; clrscr(); otox!(#$,J);
co3t448D1Q1O9 MR T9.L C1O1VC (ZLC.O) 8; cin55n3mfcp; //Cbserve se lee 3n tipo car, 3sted va a trabaBar con n3mfp /*V19R9 L. V.L1D.01\R, TM9`9 9ROT.RDC L9OT. M COTC 0.T.0O9T9 O9RQ. 0M1D.DC 0CR 9L T.RQC D9 float*/ n3mfp=validarTealositivo(n3mfcp);/* i se cometen errores corrYBalos ! si no sia trabaBando con n3mf*/
//1Q. 0CR L. D9 1ROTM001CR9 D9 M TCQT.. res3ltadofp=n3mfp&%$; clrscr(); otox!('$,#'); co3t4489L T9MLO.DC 9 >844res3ltadofp44endl; s!stem(8pa3se8);
/ ************************************************************************************** ***/ /*V.L1D.T 9RO9TC C1O1VC,
car n3mc:#+; clrscr(); otox!(#$,J);
co3t448D1Q1O9 MR 9RO9TC C1O1VC 8; cin55n3mc; //Cbserve se lee 3n tipo car, 3sted va a trabaBar con n3mi /*V19R9 L. V.L1D.01\R, TM9`9 9ROT.RDC L9OT. M COTC 0.T.0O9T9 O9RQ. 0M1D.DC 0CR 9L T.RQC D9 int*/ n3mi=validar9nteroositivo(n3mc); /* i se cometen errores corrYBalos ! si no sia trabaBando con n3mi*/
//1Q. 0CR L. D9 1ROTM001CR9 D9 M TCQT.. res3ltadoi=n3mi&%$; clrscr(); otox!('$,#'); co3t4489L T9MLO.DC 9 >844 res3ltadoi44endl; s!stem(8pa3se8);
}
E(E!PLO 2& 7
P=, 9 */0/Q 0 0/; *. ?0/ ::*). /* V.L1D.01\R D9 0.T.0O9T9 */ 2incl3de8entorno8 int main() { /*V.L1D. L9OT. .UX0ML. C 1RX0ML.*/ car ilera:%$; clrscr(); co3t448D1Q1O9 MR. <1L9T. D9 0.T.0O9T9>
8; //D1Q1O9 RC`T9, 01MD.D 9O0
cin55@s; cinetline(ilera,I$);/*M9D9 D1Q1O.T L9OT. 1RX0ML. C .UX0ML. CL.9RO9*/ validar0aracteres(ilera);//i todo es correcto, RC .0\ R1RQXR 9TTCT, sia trabaBando co3t448jnjn MO9D D1Q1OC 844ilera44endl;/* Rota> esto no es necesario en s3 prorama*/ s!stem(8pa3se8); /********************************************************************************* V.L1D. ^M9 L. L9OT. CLC 9.R .UX0ML. */ car ileram:%$; clrscr(); co3t448D1Q1O9 MR. <1L9T. D9 0.T.0O9T9> 8; //D1Q1O9 RC`T9, 01MD.D 9O0 cin55@s; cinetline(ileram,I$);/*M9D9 D1Q1O.T L9OT. .UX0ML. CL.9RO9*/ validara!3sc3las(ileram);/*i todo es correcto, RC .0\ R1RQXR 9TTCT, sia trabaBando*/ co3t448jnjn MO9D D1Q1OC 844ileram44endl;/* Rota> esto no es necesario en s3 prorama*/ s!stem(8pa3se8); }
E(E!PLO 3 E,0 9 ,)* 0) :) 9 )* 0 0/; *. . /* D9COT.01\R D9 D1V9TC 0M.DTC 9R L. .RO.LL.*/ 2incl3de8entorno8 int main() { /* MC c3adros(fi,ci,ff,cf);
71
0M.DTC ^M9 1R101. 9R L. Z1L. +, 0CLMR. '$ U Z1R.L1k. 9R L. Z1L. #J, 0CLMR. +$ C`9TV9 ^M9 9OC V.LCT9 LC M9D9 V.T1.T MO9D*/ clrscr(); c3adros(+,'$,#J,+$); otox!(KJ,S); co3t4489RM8; otox!('',J); co3t448#> D9COT.01CR8; otox!('$,'I); s!stem(8pa3se8); /* MC
c3adro#();
D1`M. MR 0M.DTC 0CR L[R9. 9R01LL. 9R L. .RO.LL. 0CR 0CCTD9R.D. Z1.*/ clrscr(); c3adro#(); otox!(#J,S); co3t4489O19`T98;
otox!(I#,S); co3t448'$8; otox!(%I,S); co3t448'$##8; otox!(K6,#$); co3t4489RM8; otox!('$,'I); s!stem(8pa3se8); /*********************************************************************************** MC c3adro#(); D1`M. MR 0M.DTC 0CR 0CCTD9R.D. Z1. 9R L. .RO.LL., 0CR L[R9. DC`L9*/ clrscr(); c3adro'(); otox!(J,+); co3t448 TCQT.. ^M9 0.L0ML. MR. Z.0OMT.8; otox!(I#,S); otox!(K6,J); co3t4489RM8; otox!('$,'I); s!stem(8pa3se8); /****************************************************************************** MC c3adrod(fi,ci,ff,cf); 0M.DTC ^M9 9 D1`M. 9R L. .RO.LL. 0CR L[R9. DC`L9 9RL. Z1L. fi, 0CLMR. ci <.O. L. Z1L. ff, 0CLMR. fc, con lYnea doble, LC D1`M.C D9D9 L. Z1L. +, 0CLMR. '$, <.O. L. Z1L. #J, 0CLMR. +$ T90M9TD9 ^M9 MO9D M9D9 CD1Z10.T 9L O..qC D9L 0M.DTC U M C101\R*/
72
clrscr(); c3adrod(+,'$,#J,+$); otox!(KJ,S); co3t4489RM8; otox!('',J);
co3t448#> D9COT.01CR8; otox!('$,'I); s!stem(8pa3se8); /*Mso c3adroenos.mas(); /* 9ste c3adro comien"a a formarse desde 3n tamaAo pe?3eAito ! va creciendo asta formarse el c3adro total*/ clrscr(); c3adroenos.mas(); otox!(KJ,K); co3t4489RM8; otox!(#$,+); co3t448#> D9COT.01CR8; otox!('$,'I); s!stem(8pa3se8); /* 9ste procedimiento coloca las letras 0&&, dentro del c3adroenos.mas()*/ clrscr(); escribe0masas(); }
. ECEPCIONES E0 0, 0 )=/ ) 0) :0)/:) 9) :Q 0 =,:/>. L) /?)) 0=) */ )/, 9 0// : 0 ,/), 0,H 9K : : ) )* :/:)*:/ ?,* /,?/)* ,0 . E0 )* ) ):/0,* /,** )/ ) ** 0=) ):// =,) f!/)/> :;*/:f /=,) ,0 :*0 0) ) :*0 :0 )/)*, :*0 *<: K. A*) 9 /=,) 9 0 0= 0) =,) C++ )*) f:/:)*:/) /,?/)*)f :/ 0 , ")"p)io$" 0 9 0 )/)*, 9 /,0,* C++ )0? )*) 0,) :/ 0 , manejador de e&cepciones. A); ) 0) ::/) ) :/:/) 73
::/0) 9 :/ * 0 =, * ) ::/>. P ,0 9 : /?/)/> : ) =* 0 ,,/ /)/0 *:. 9 9/ :)) ):/0) ) :*0. E )* :;*0 **,) 0 , ::/) C++ )/ *K:/:) 9 ,/* @,) ,0/Q) , 0) ) /** */:/) 0) 0,) *:/0) ?/)*) /,?/)*) ); :, ,/*/ 0 =, ::0) < ) /::/> :=/0).
5.1. !ANE(ADOR DE E'CEPCIONES E0 , ::/) C++ ) ) ,:/), : @:/,/* */ *) *) )/:)H 1. S /** :* 09 :>/= ) :/ 9K : )/ ) : :/:)*:/ ::/0 * ) ::/>. 2. S : 0 :/:)*:/H ) f0Qf ::/> :) :*/ 0 =, )/= ) :) ,0. 3. L ::/> 0 =, ) )?/ )/*/ ):;<: 0 ::/> ) f:*f ) :/ 9K : 0 ):*. P 9K ) ) f0Qf f:*f ::/>f E =0 0 @) ) ) : 0 )*/H 0 ) ,:/), )0* 9 *)< 0 ::/> ) * 9 f0Qf 0 ::/> * /))* *, *0 < 9 f:*f 0 ::/>. A )* F0*/, ) 0 ,/ , f0f 0 ::/>. A,) 0 )0* -:, =*- 0 * 0Q,/* 0 ::/> ) : * , ,) 9 ) :* 0 f0f :, @:/> 9 :/ =,*. E0 * ) :09/ 0 ,0 ) 9 *Q: :0) ):/0 </ 0 @:* 9 :*/ 0 /@,:/> :)/ 9 0 :* ) 9K ) :0 ) 0 *0Q 0 :/:)*:/ ::/0 9 f0Qf 0 ::/>. P 0) *) *) */) /)* *) 0) :0? ):;<:)H #'-, #8'o )a#)8.
5.1.1. T R" E );*)/) : 0 =, ) :/* ::/> :/,) 9 f0 /**f. P 00 ) ):/<: 09 :>/= : ::/> ) ? /** f*-0:_f */0/Q 0 0 :0? try . tr! { }
// blo?3e de cdioFintento
74
E0 = :)/)* //: 0 =, 9 )/ /)* * 0 f/**f *:) 0Q ::/> *)@/ 0 :*0 ::/> 0 * /)* , ::/) f0f 9 :/:/ : 0 */ 0Q. S/ ) : /= ::/> 0 =, )/= ) :) ,0. D 0 /: ) : /,/*,* 9 ) 0Q ::/) ?/) */) 9 /)*/ *,/K :*) ,) ?/) */) /:0) ,) f/?)0)f ::) :) := :09/ */ ::/>. A 0 /?) :/ 9 ) 0: ::/> 0 9 /)* , :. A); ) try ) )*:/ 9 :/* @, ) :Q ):/<: 0 X ::/> 0 =,. U 09-/** ) )=/ /,/*,* 0 09 , 0 ::/>.
5.1.2. T%RO$ S/ ) *:* :/:)*:/ ::/0 * 0 09-/** ) 0Q ::/> ,/* 0 ::/> )*:/ throw. P ,0H if (condicion) tro@ 8overflo@8;
E) /,** ?*/ 9 )0? 0) :)) 9 0 ::/> ) 0Q 0) /) 0/;) C++ :, :)::/ 1.6.1 K)*) ) 0Q )*,*. E) 0 =, 0 9 */0/Q )*:/ =0,* :/:/0 ) :) 0Q 0 ::/>. E0 0= C++ ):/<: 9 *) 0) ::/) ) 0Q) ) 0 /*/ 09-/** ,/* 9 ) :09/ */. C, ) * *) =0,* ) * /)*:/ :0) 9 :*/ /@,:/>. E)* * ) : 0Q 0 * 0 )*:/ throw :* )* 0 )*:/ :*:. E0 */ /@,:/> :*/ 0 * ) )*,* 0 9 ) =)*; * ) 9K */ ) :/. E )* )*/ )) 0) ::/) :, ):/ :) 9 *)* /@,:/> ) 0 * 0 )* 0 )/*/ )* /@,:/> ) 0/Q.
5.1.3. CATC% E)* * 0 =, ) ,/ , f0f. S /: 9 0 fhandler f :* 0 ::/>. E0 0 ) 09 :>/= /) , 0 ::/> :/ 0 0 catch. E0 0= C++ 9/
75
9 /)* 0 ,) , /,/*,* )K) 09 try ) :/ ) 9/ 0 )/=/* )9,H tr! { // blo?3e de cdio ?3e se intenta } catc () { // blo?3e maneBador de posibles excepciones } // continGa la eBec3cin normal
E0 f0f ) 0 )/*/ :*/F 0 =, :) 9 : 0 :/:)*:/ ::/0 =0,* ) :/ 9K :. A )* ):* 0) )**=/) ) , ?/) ) 0 ,/), 0 =, :*0 :* :0 9 ,/0 =, :*/0/. E F0*/, *, :) ) )0*,* /:0) 0 :/> * )0 :)/)*/ ,)* ,) 0/: 0 . P /:0/ 0 :)/ fA?/) 0 ? 0 =,f / = <: ** ,0H .** : 0 /@,:/> */* 9 ) = /): : * 9 ) )*/,* 0/Q :=/ ):)/?) ?)/) 0 0/::/>. L0=) )* * ,) : 9 :, ?,) 0) ,0) 0) ::/) =) ) /?)) )=F 0 */ 9 *,/K /)*/ ,F0*/0) ,). D : ) /:0/ 0 , :)/* : ::/> 9 ) =. E(E!PLO 31 2incl3de 4iostream5 3sin namespace std; int main() { tr! { tro@ -a-; // valor de tipo car } catc(car c) { co3t 44 89l valor de c es> 8 44 c 44 endl; } catc(int n) { co3t 44 89l valor de n es> 8 44 n 44 endl; } s!stem(8pa3se8); ret3rn $; }
. ARREGFOS 76
U =0 ) :* *) </*) 9 ) 0,: ,,/ , :*/= : 0 ,/), , *) : 0 ,/), */ *) 9 ) /@:/ ) *) : : ;/: );/: 9 ? )K) 0 , 0 =0 : * ::*). L) ?0) *:/*) =0 ) 0,: 0 ,,/ /:/0 0 ** ) 0,:,/* ) *,0. P , @, //* : :,* 0 =0 ) ) Fndice 9 ) )/> */ * )/ :/,0) 9 //: :0 0) 0,*) 0 =0 9,) 0:/. S/, 9 ) 9/ * ,:/ :,* ) :)/ /:/ 0 ;/: 0 , =K/: 0 =0 ) K)* 0 9 : //* *. E,0) ;/:)H 1 I
IND
_+I
I * - 1
6.1. CLASI#ICACIÓN DE LOS ARREGLOS 6.1.1. ARREGLOS DE UNA DI!ENSIÓN O VECTORES U 'ector ) =0 0) 0,*) 9 0 :@, )* /))*) ,/), :0)/<::/> <0 :0, ) :/ 0) *) )* =/Q) , 0/0 0 9 @:/ 0,* 0 =0 ) :)/ ;/: 9 //9 0 )/:/> 0*/? 0 0,* 0 =0. C 0 , 0 =0 ) 0 /:/ 0 ;/: 0 :,* 0 :0 : @:/ 0 ;/: ) *, :, ?/0 )/,0 /=0 0) 9 :;*0) */) ) ?/ ** 0 ** )* /?0: )/> * )0/ *) )/=:/>. E C++ 0) =0) //:/ : 0 ;/: )* -1 )/ 0 =0 */ $ 0,*). D"6$i)i$ !" ($ ")#o' Si$#ai% T/ * Nob'" !"l a''"3lo[:*/ 0,*) ) ,,/] P ,0 </ ?:* 9 0,: )* 2 )/:/) 0,*) */ X**. float valores:'$;
77
T,/K ) </ @, /,/: )* :) 0,: :09/ :*/ 0,*) ) :/ ) */ 0 0/,/** ,,/ ) ) < );H float *valores;
D ?0) ) , =0 * ::) ) :*/ 9 :0 0,* 0,*. D valores7#8 : @:/ 0 ?0 0,: 0 )/:/> : : )/:/> 0 =0 ?0) */ *, 4 *) :*/ ,,/ 9 )/= 0 */ *. car nombre:IJ;
D< 0 =0 , ) 0,: )* 48 ::*). E )* :) nombre7G8 : @:/ 0 ::* 6 0,: 0 ?:* , * *, *. E) 0 */ * 0 =0 9/ *,/ 0 :*/ ,,/ )/= : )/:/> 0,*. G<:,* ?:* ) )* :09/ 0) )/=/*) @,)H
L) =0) ) */0/Q) :, :,0) :*) //:/0/Q : )) 0,*). E"plo !" ai3$a)i$ !" alo'" L0? : : 0) 0,*) =0 EDAD 5 )/:/). //ol3cin 3tili"ando 19ROT. 2incl3de4iostream5
78
2incl3de4conio'5 int main() { int indice=$; int edad:%; @ile(indice4%) { edad:indice=$; indice&&; } }
//ol3cin 3tili"ando .T. 2incl3de4iostream5 2incl3de4conio'5 int main() { int indice; int edad:%; for(indice=$;indice4%;indice&&) { edad:indice=$; } }
E,0 32 E0 =, 9 :* 0 ), 0 ,/ N ?0) 9 ) 0,: ?:*. D"6$i)i$ !" a'iabl" H F, 0,*) 0 =0 _H ?/0 */ :* */0/Q :, :*0 0) :/:0) PARA !IENTRAS. ?H , 0 ?:* ),H ),*/ 0) 0,*) /,) 0 =0 V ,H ,/ 0) 0,*) /,) O)? 9 0 =, ),) 5 )/:/) 0 ?:* v K)* ) 0 :*/ ,/, ?0) 9 ) 0,: )/ 0 )/ : ) 0 / 0 :*/ ?0) 9 K0 */ ) /: 9 5 )0 0) /,) 5 )/:/) 0 ?:* )* 00) 0) 45 )**) )* ?:;). 2incl3de4iostream5 2incl3de4conio'5 3sin namespace std; int main()
7&
{ int n, P,; float v:%$, s3ma=$, prom; clrscr(); textbacPro3nd($); textbacPro3nd(N<1O9); textcolor(+); otox!('$,#'); cprintf(89ROT9 L. 0.RO1D.D D9 9L99ROC> 8); otox!(%#,#'); cin55n; textbacPro3nd($); for(P=$; P4n; P&&) //0&& .L.09R. LC .TT9QLC D9D9 L. C101\R $ { textbacPro3nd($); clrscr(); textbacPro3nd(N<1O9); textcolor(T9D); otox!('$,#'); co3t4489ROT9 9L 9L99ROC> 8 44Pǀ D9L V90OCT> 8; cin55v:P; s3ma&=v:P; } prom=s3ma/n; clrscr(); textbacPro3nd($); textcolor(U9LLCN); otox!(K$,##); co3tprecision('); co3tsetf(ios>>fixed); //coloca dos decimales ! oblia a ?3e se ponan los ceros, si no a! decimales cprintf(8L. M. 9> 8); otox!(I#,##); co3t44s3ma; otox!(K$,#K); cprintf(8U 9L TC9D1C 9> 8); otox!(IS,#K); co3t44prom; otox!(K$,'I); cprintf(8T91CR9 O90L. .T. O9T1R.T8); etc(); }
E,0 33 %: 0=/*, 9 :0:0 0 ?0 ,/ 0 ?/Q 0 )?/:/> *;/: = *) *) )/*/?) /))*) =/)*. D"6$i)i$ !" a'iabl" *H : 0) ?0) 0 =. H :* ?0) ;/: 0 ?:* 9 0 <0 0 :/:0 :0/**/? * *) * 0,: 0 :*/ 0,*) 0,:) 0 ?:*. H , 0 ?:* ),1H ),*/ 0) ?0) 0 :0:0 0 ,/. ,H ,/ 0 = *) /H ?/0 :*0 0 :/:0 PARA ),2H ),*/ :0:0 0 ?/Q. P */0/Q) 0 ,/), ?/0 ),1 ?H ?/Q 0 = ?0) *H )?/:/> *;/: 2incl3de4iostream5 2incl3de4conio'5 2incl3de4mat5 3sin namespace std; int main()
8
{ int dato, n=F#, i; lon s3ma#=$; int x:%$; float var, prom, dt,s3ma'=$; clrscr(); textbacPro3nd($); otox!('$,#'); textcolor(L1Q 8); otox!(%%,#'); cin55dato; @ile(dato E=$) { s3ma#&=dato; n&&; x:n=dato;textbacPro3nd($); clrscr(); otox!('$,#'); textcolor(L1Q 8); textbacPro3nd($); otox!(%%,#'); cin55dato; } n&&; prom=float (s3ma#)/(n); for(i=$; i4n; i&&) s3ma'&=po@(x:i F prom,'); var=float(s3ma')/(nF#); dt=s?rt(var); co3tprecision('); co3tsetf(ios>>fixed,ios>>floatfield); clrscr(); textbacPro3nd(N<1O9); textcolor(T9D); otox!(#$,#'); cprintf(8TC9D1C= V.T1.Rk.= 8); cprintf(8D9V1.01\R O[10.= 8); otox!(#6,#'); co3t44prom; //9scribe desp3Hs de TC9D1C otox!(KS,#'); co3t44var; //9scribe desp3Hs de V.T1.Rk. otox!(+S,#'); co3t44dt; //9scribe desp3Hs de D9V1.01\R O[10. otox!(K$,'$); cprintf(8T91CR9 O90L. .T. O9T1R.T8); etc(); }
E,0 34 E0 @:/> 9 :* 0 )/:/> 0 , 0,* ?:* *, N 0 =, 9 0 /?9 2incl3de4iostream5 2incl3de4conio'5 3sin namespace std; int posma!(int n, float vec:)
//vec toma c3al?3ier cantidad de elementos ?3e //se le envYen
{ //n tamaAo del vector; vec> el vector; ma!or> as3me el valor ma!orv del vector //posm> posicin dentro del vector donde est el valor ma!or int i, posm=$; float ma!or; ma!or=vec:$; for(i=#; i4n; i&&) if(ma!or 4 vec:i) { ma!or=vec:i; posm=i; } ret3rn posm; }
81
.1.1.1 OPERACIONES BÁSICAS CON :ECTORES int {
main() //tv tamaAo del vector; posma!or> posicin donde est el valor ma!or> a> el //vector int tv,i,posma!or; float a:%$; clrscr(); textbacPro3nd($); textcolor(L1Q 8); textbacPro3nd($); otox!(%#,#'); cin55tv; for(i=$; i4tv; i&&) { clrscr(); otox!('$,#'); textbacPro3nd(T9D); co3t4489ROT9 9L 9L99ROC> 844iǀ D9L V90OCT> 8; cin55a:i; textbacPro3nd($); } textbacPro3nd($); posma!or=posma!(tv,a); clrscr(); clrscr(); otox!(#%,#'); cprintf(89L V.LCT .UCT 9O 9R L. C101\R> D9L V90OCT8); textbacPro3nd($); otox!(%$,#'); co3t44posma!or; otox!('$,'%); cprintf(8T91CR9 O90L. .T. O9T1R.T8); textbacPro3nd($); etc();
}
j j j j
BF)9 O:/> I):/> B
E)*) :/) ) /,0,* 0/; ,H 0/V:* 9 ) :)* ,) 0*. E)* 0/; :* 0) )/=/*) )=,)H 0V:* /,/,/V:* B S0::/ /)* )S: )9B/ . BmSlUEDA L F)9 :)/)* :* *,/ ?0 * :* *) : 0= /@,:/> ):/ : 0 ?0 ):. E/)* /@*) @,) : )* :/> )* ,0 /,0,*,) 0) ) /,)H )::/0 //. j BF)9 S::/0 0/0 j BF)9 B// j BF)9 %AS% j Á0) F)9 82
B(s$ueda secuencial) E) *K:/: ):/00 ): 0,* *
=0 :)/)* : * 0 ?:* 0,* 0,* ) 0 /, )* 0 F0*/,. S/ ) :* 0 ?0 ): 0 :) ?0? 0 )/:/> ) :* /: 0,* 0 :*/ ) ?/ ,) 9 /@, 9 0 ?0 ): ) :* * 0 =0. B(s$ueda binaria) N* 9 0 F)9 )::/0 : ) :*
0 ?0 ): 0 0) :)) 9 : * 0 ?:*. E)* : 9 0 :) *= = <:/:/ ) * : 0 *, 0 ?:* ) , =. E0 ,K* b>s%ueda binaria :)/)* /?// 0 ?:* ) *) :, 0 ?0 ): : 0 0,* 9 )* 0 ,/* 0 =0 )/ :/:/:/ *:) ) *,/ )/ 0 ?0 ): )* 0 /, ,/* 0 =0 0 )= ,/* 0/,/ : 00 0 F)9 :09/ 0) ) ,/*). S := 0 ,/* )/0,* ) :* 0 ?0 ): ) /* 0 ,/), :,:/> / ,:/. C )* ? :,:/> ) 0/,/ ?,* 0 ,/* 0) *) 9 9. E0 :) :*/F )* 9 ) K :/:/:/ ) :/ 9 0 ?0 ): )* 0 ?:*. P : F)9 // /, 9 0 ?:* )/ 0 ?:* )* ) *,/ :0 0) ,/*) ) :* 0 ?0 9 ) ) ):. ORDENACIÓN L :/> ) < 0 :/> =/Q 0) 0,*) ?:* 0=F H ):* ):*. S/ 0 ,/* ) ::/* ):* )/=/<: 9 9 =/Q )) 0,*) *0 , 9H A[] a A[1] a A[2] a A[3] ..........a A[N-1]. S/ 0 ,/* ) ):* )/=/<: 9H A[] b A[1] b A[2] b A[3] ..........b A[N-1]. E/)* /@*) ,0) =/Q 0) 0,*) =0H L) ,K*) ,) :,) )H j !K* B j !K* B ! j O:/> S0::/> j I):/> !K* 0 B j S00 j B/)* O U) j P !*/:0) %)* j P !Q:0 !=)* j !K* 0 S:/ S:_)* j R/ S* l/:_ S* j P Á0)
83
V,) /,0,* ) 0) ,K*) ,/*H )0::/>. S /?/* 0 0:* /?)*/= 0) ,) ,K*). *rdenaci#n por burbuja. E) ,K* : <:/*. S ) :, 0,*) :*) 0 ?:* /*:,/ )) ?0) )/ )* )). L) ?0) ,) 9) :/ 0 //:/ 0 ?:* :/> ):* ,/*) 9 0) ?0) ,) =) :,/Q )/ :/ 0 * <0 0 ?:*. P ,0 ) :, A[1n : A[2] )/ )* )) ) /*:,/ A[1] : A[2] ); ):)/?,* 0 0= 0 ?:*. A0 *,/ 0 /, ) 0 0,* , ) :* 0 <0 0 , / ):/ :/ 0 /:// 0 ?:*. S ?0? : ? 0:/> :, 0,*) :):*/?) /*:,/ )* ?Q 0 0,* , ) :, )* ) )/:/> ::*. E0 ?:* 9 : ) : N-1 )). S/ 0) ?0) 0 ?:* )H 8 55 35 21 15 V:* /=/0 *, 5 N 55 8 35 21 15 55 35 8 21 15 55 35 21 8 15 55 35 21 15 8 S :)/* 4 :,:/) N-1 :0: 0 ?0 , F0*/,. E 0 )= ) :/ 0 )/=/*H 35 55 21 15 8 35 21 55 15 8 35 21 15 55 8 T: )H 21 35 15 21 15 35
55 55
8 8
C* )H 15 1 35 55 8 E **0 ) :)/* :* )) ?:* 5 0,*). *rdenamiento por selecci#n) E)* ,K* ) ) ): 0 , ?0
* 0 ?:* /*:,/0 : 0 0,* 9 ) :* 0 )/:/> . P :* )* ?0 ) ), 9 0 , * 0 = ) 0 9 )* 0 )/:/> : ) : * 0 ?:* */ 0 )/:/> 0* : ) :* ?0 , 9 K0 ) 0 :,/ 0 ?0 0 ?/0 ) = 0 ))* ,. L= ) ): 0 )= , ),/ 9 ) 0 0,* /: 0 )/:/> ) : * 0 ?:* */ 0 )/:/> ) 0* :/ 0 :,/ ):*/? : ) :* ?0 , 9 K0. U ?Q :* 0 )= , 84
) /*:,/ : 0 ?0 /: 0 )/:/> 0 ?:*. E0 :) F)9 ,) ) : N-1 ?:). P : , ): 9 = ?/0 0 )/:/> ) :* ) ,. E,0. S/ 0 ?:* )H 1 2 1 3 ):; 0 9 ) ,)* 0 )/=/* =<:.
N* 9 )K) 0 :* /*:,/ 0 0,* /: 0 )/:/> :/: ); 9 ,) ,) 0,*) : 9/ :,0 ) *,/ 0 :) )K) : N-1 /*:,/) ): N-1 ,). E,0 35 C)*/ 0 0/; 0/V:*.H 2incl3de4iostream5 2incl3de4conio'5 3sin namespace std; void leerVector(int n, float vec:) { int i; for(i=$; i4n;i&&) { co3t448D1Q1O9 9L 9L99ROC 844iǀ 8; cin55vec:i; } } //************************************************************************** void imprimirVector(int n, float vec:) { int i; clrscr(); otox!(#%,%); co3t4489L99ROC D9L V90OCT 8; for(i=$;i4n;i&&) co3t44vec:i448 8; } //******************************************************************
85
//ZMR01\R ^M9 `M0. MR V.LCT 9R MR V90OCT, M.RDC 9L OCDC D9 //`X^M9D. 90M9R01.L, T9OCTR. L. C101\R DCRD9 9 9R0M9ROT. 9L //V.LCT `M0.DC C, F# 1 RC LC 9R0M9ROT. int b3s?3edaec(int n, float vec:, float valorb) { //valorb> valor a b3scar dentro del vector int i=$; @ile((i 4 n) ]] (valorb E= vec:i)) i&&; if(i 4 n) ret3rn i; else ret3rn F#; }//Z1R `M^M9D.90 //****************************************************************** //ZMR01\R ^M9 `M0. MR V.LCT 9R MR V90OCT, M.RDC 9L OCDC D9 //`X^M9D. `1R.T1., T9OCTR. L. C101\R DCRD9 9O 9L V.LCT `M0.DC // C F# 1 RC LC 9R0M9ROT. //********************************************************************** int b3s?3eda`in(int n, float a:, float valorb3scado) { int p=$, 3=nF#, s@=$, mitad; @ile((p 4= 3) ]] (s@==$)) { mitad=(p & 3)/'; if(a:mitad == valorb3scado) s@=#; else if(valorb3scado 4 a:mitad) 3=mitadF#; else p=mitad } if(valorb3scado==a:mitad) ret3rn mitad; else ret3rn F#; } //********************************************************************** //TC09D119ROC ^M9 CTD9R. MR V90OCT CT 9L OCDC D9 `MT`M. void orden`3rb3Ba(int n, float a:) { int i, B; float a3x; for(i=$; i4 (nF#); i&&) for(B=$; B 4 (nF(i)); B&&) if(a:B 5 a:B) { a3x=a:B; a:B=a:B; a:B=a3x; } } //TC09D119ROC ^M9 CTD9R. MR V90OCT CT 9L OCDC D9 9L9001\R // 9 L9 M9D9 9RV1.T MR .TQM9ROC LCRQ C DCM`L9 void ordeneleccion(int n, float a:) { int i, P, pos; float a3x,menor; for(i=$; i4 nF#; i&&) { menor=a:i;
86
pos=i; for(P=i P4n; P&&) if(menor 5 a:P) { menor=a:P; pos=P; } a3x=a:i; a:i=menor; a:pos=a3x; } } //**************************************************************** //***************************************************************** //TC09D119ROC ^M9 1R9TO. MR V.LCT 9R MR V90OCT CTD9R.DC //1R D.q.T 9L CTD9R.19ROC void insertar(int ]tv, float a:, float valin)//valin> valor a insertar { int i=$, P; @ile((i4 tv) ]] (valin 5 a:i)) i&&; tv&&; for(P=(tvF#); P 5 i; PFF) a:P=a:PF#; a:i=valin; } //************************************************************** //TC09D119ROC ^M9 `CTT. MR V.LCT 9R MR V90OCT void borrar(int ]tv, float a:, float valorb)//valorb> valor a borrar { int i=$, P; if(tv 5 $) { @ile((i 4 tv) ]] (valorb E= a:i)) i&&; if(i 4 tv) { for(P=i; P 4 (tvF#); P&&) a:P=a:P; tvFF; } else { clrscr(); textcolor(N<1O9); textbacPro3nd(T9D); otox!('$,#'); co3t44valorb; cprintf(8 RC 9O 9R 9L .TT9QLC8);textbacPro3nd($); } } else { clrscr(); textcolor(N<1O9); textbacPro3nd(T9D); otox!('$,#'); cprintf(8 9L V90OCT 9O V.0[C8);co3t44endl; } s!stem(8pa3se8); }//fin borrar
E,0 36 87
E0 =, 9 /:0 0 0/; 0/V:* ,/* !ENm : 0) )/=/*) :/)H 1. L ?:* *, N 2. I,/,/ 0 ?:* 3. O 0 ?:* @, ):* :09/ 0) ,K*) :/> )*). 4. I)* ? 0,* )/ 0 ,/*. 5. B): ?0 0 =0 0 ,K* F)9 //. 6. B 0,* 0 ?:* 2incl3de8libVector8 2incl3de4@indo@s5 int main() { int n,opcion, opcion#,resp; float a:#$$,valb3s,valbo,valin; //valb3s>Valor a b3scar; valbo>Valor a borrar car sia; //valin>Valor a insertar textcolor(0U.R); clrscr(); otox!('$,#');textbacPro3nd(T9D); cprintf(89ROT9 9L O..qC D9L V90OCT> 8); otox!(IS,#'); cin55n; textbacPro3nd($); do { clrscr(); textcolor(T9D); textbacPro3nd(N<1O9); otox!(KJ,S); cprintf(89RM8); leep(#$$); otox!('6,##); cprintf(8 #> L99T 9L V90OCT8);leep(#$$); otox!('6,#'); cprintf(8 '> 1T11T 9L V90OCT8);leep(#$$); otox!('6,#K); cprintf(8 K> CTD9R.T 9L V90OCT8);leep(#$$); otox!('6,#I); cprintf(8 I> 1R9TO.T CTD9R.DC8);leep(#$$); otox!('6,#%); cprintf(8 %> `M0.T MR V.LCT8);leep(#$$); otox!('6,#+); cprintf(8 +> `CTT.T MR 9L99ROC8);leep(#$$); otox!('6,#S); cprintf(8 S> .L1T D9L TCQT..8);leep(#$$); otox!('S,'$); cprintf(89L1. M C01CR 9ROT9 # U S8); otox!(%+,'$); cprintf(8 8); otox!(%+,'$);cin55opcion; s@itc (opcion) { case #> clrscr(); leerVector(n,a); breaP; case '> clrscr(); imprimirVector(n,a); co3t448jnjnjn8; s!stem(8pa3se8); breaP; case K> do { clrscr(); textcolor(T9D); otox!(KJ,S);cprintf(89RM8); leep(#$$); otox!('6,##); cprintf(8 #> `MT`M.8);leep(#$$);
88
otox!('6,#'); cprintf(8 '> 9L9001CR8);leep(#$$); otox!('6,#K); cprintf(8 K> VCLV9T .L 9RM .L8);leep(#$$); otox!('6,#+); co3t4489L1. M C01CR 9ROT9 # U K 8; cin55opcion#; s@itc (opcion#) { case #> orden`3rb3Ba(n,a); breaP; case '> ordeneleccion(n,a); breaP; case K> textcolor(0U.R); clrscr(); otox!('$,#'); textbacPro3nd(T9D); cprintf(8T9QT9. .L 9RM T1R01.L8);leep(%$$); textbacPro3nd($); breaP; } //Z1R 0.C ' }@ile(opcion# E=K); breaP; case I> textcolor(0U.R); clrscr(); otox!('$,#'); textbacPro3nd(T9D); co3t4489ROT9 9L V.LCT . 1R9TO.T> 8; cin55valin; insertar(n,a,valin); breaP; case %> textcolor(0U.R); clrscr(); otox!('$,#'); textbacPro3nd(N<1O9); co3t4489ROT9 9L V.LCT . `M0.T> 8; cin55valb3s; resp=b3s?3eda`in(n,a,valb3s); if(resp E=F#) { otox!('$,#'); textbacPro3nd(N<1O9); co3t44valb3s448 9O. 9R L. C101CR 844 resp448 D9L V90OCT>8; textbacPro3nd($); } else { textcolor(0U.R); otox!('$,#'); co3t44valb3s448 RC 9O. 9R 9L V90OCT844endl; } co3t448jnjnjn8; s!stem(8pa3se8); breaP; case +> textcolor(0U.R); clrscr(); otox!('$,#'); textbacPro3nd(T9D); co3t4489ROT9 9L V.LCT . `CTT.T> 8; cin55valbo;
8&
borrar(n,a,valbo); breaP; case S> clrscr(); otox!('$,#'); co3t4489O. 9QMTC ^M9 D99. .L1T /RW 8; cin55sia; if(to3pper(sia)==-R-) opcion=#; breaP; } }@ile(opcionE=S); }
E,0 37 D/) )=, 9 ?:* 9 :* 0,*) 0/:) /@*) : ,0: : 0,* */ : :* 0 F, ,/<::/) 0/Q). 2incl3de4iostream5 2incl3de4conio'5 2incl3de8libVector8 3sin namespace std; void cambio(int n, float vec:,int ]nm) { int P,l; nm=$; for(P=$; P4 (nF#); P&&) for(l=P l4 n; l&&) if((vec:P==vec:l) ]] (vec:PE=$)) { vec:l=$; nm&&; } } //************************************************************************ int main() { int n, n3mmod; float a:#$$; textbacPro3nd($); textcolor(L1Q 8); otox!(%J,#'); cin55n; clrscr(); leerVector(n,a); cambio(n,a,n3mmod); co3t448jnjn RM9VC 9L99ROC D9L V90OCT844endl44endl; imprimirVector(n,a); co3t448jnjnjn8; s!stem(8pa3se8); clrscr(); textbacPro3nd(0U.R); textcolor(L1Q 8); otox!(%',#'); co3t44n3mmod; otox!('%,#S); cprintf(8T91CR9 O90L. .T. O9T1R.T8); etc(); }
&
6.1.2. ARREGLOS DE DOS DI!ENSIONES O !ATRICES L) ,*/:) ) )*:*) *) 9 =/Q ) /@,:/> @, *0) ) :/ 0) 0,*) 9 0 :@, )* /))*) ) ::*) :0)/<::/> +la & columna. P //: 0 0= ) :* *,/ 0,* ) :)/ */0/Q ) ;/:)H //: 0 =0> <0 * //: 0 :0,. P ,/) ,*/Q :, ?:* ?:*) 0 ** ) :* :,*) 0 9 ) :)/* ) );/:) /*/<: 0,* 9 *Q: 0 =0. U =0 //,)/0 N ! */ N <0) ! :0,) 0 ** */ N ! 0,*) /))*) /*/,* ,,/ @, ):)/?. G<:,* ) )* :, *0 ?0). S/ A ) ,*/Q 5 7 ) )* );H
C0, 6 C0, 5 C0, 4 C0, 3 C0, 2 C0, 1 C0,
E0 =0 */ */ 35 0,*) *) 00) : 0 , A ) /@:/ * ); ) ;/:) 0 /, //: 0 <0 )* /: 0 0,* 0 )= 0 :0,. E0 0,* A[2 4] : @:/ 0 :*/ 0 0,* /: 0 <0 2 :0, 4. E =0 ) :/ 9 0 0,* / =0 //,)/0 : @:/ 0 :*/ 0 0,* /: 0 <0 / :0, . P 00? /@,:/> * 0 =0 ) : ) @,)H 1. U ) 00 /, 0 <0 : 0= 0 <0 1 )* 0 <0 N-1 &1
2. L * ); 00 /, 0 :0, : 0= 0 ); ):)/?,* )* 00 0 :0, !-1 * 0 @, :, ) :* /))*) 0) *) 0 :/? *. P ,0H 00? /@,:/> ,*/Q A 3 2 <0). P )0? 0 0, ) :)/* ) :/:0) * 9 :*0 0) <0) * /* 9 : ?0 9 *, 0 ?/0 :*0 0 :/:0 * : *) 0) :0,).
E0 0=/*, );H for(i=$; i 4K; i&&) for(B = $; B4'; B&&) cin55 .:1:;
S/ ) */0/Q 0 :/:0 for 0 )/=/* )/ ) */0/Q 0 :/:0 while. i = $; @ile (1 4K ) { B = $; @ile( 4') { cin55 .:i:B; B = B } i = i }*
E/)* ?/) */) ,*/:). jatriB cuadrada. U ,*/Q ) : : 0 F, <0) ) /=0 0 F, :0,). P 0 ** 0) 0,*) /:) 0 /=0 /:/0 :,0 9 0 <0 ) /=0 0 :0,. jatriB identidad (*). E) *,/K ,*/Q : 0) 0,*) 9 )* /:) 0 /=0 /:/0 ) 1 0 )* 0,*) */ ?0 . jatriB transpuesta. L ,*/Q *))* A T 0 ,*/Q A :09/ ) 900 0 :0 0) <0) ,*/Q ) 0) :0,) 0 *. jatriB simHtrica. L ,*/Q )/,K*/: :,0/ 0 :/:/> 9 0 0,* '[I][ ^] i '[^][ I] ,*/Q N ! . jatriB inversa. E) ,*/Q A 9 ) )* A -1 *0 9 ' 'o1 i I I ) 0 ,*/Q /*/. E,0 38 E0 =, 9 /=) 0) 0,*) :0,) ,*/Q A N 0= :* 0 ), 0) 0,*) /:) 0 /=0 /:/0 0 ), 0) 0,*) /:) 0 /=0 ):/. &2
A
2incl3de4iostream5 2incl3de4conio'5 3sin namespace std; int main() { int n, P,i; float a:%$:%$, s3map,s3mas; clrscr(); textcolor(.Q9RO.); textbacPro3nd(N<1O9); otox!('$,#'); cprintf(8D1Q1O9 9L CTD9R D9 L. .OT1k> 8); otox!(IJ,#'); cin55n; for(P=$;P4n; P&&) for(i=$; i4n; i=i) { clrscr(); otox!('$,#'); co3t448D1Q1O9 9L 9L99ROC> 844P,-,-44i, 8 D9 L. .O1k> 8; cin55a:i:P; } s3map=$; s3mas=$; for(i=$; i4n; i&&) { s3map&=a:i:i; s3mas&=a:i:nF(i); } clrscr(); textbacPro3nd(N<1O9); textcolor(+); otox!('$,##); co3t448M. D9 9L99ROC D9 L. D1.QCR.L T1R01.L>8; co3t44s3map; otox!('$,#K); co3t448M. D9 9L99ROC D9 L. D1.QCR.L 90MRD.T1.>8; co3t44s3mas; otox!(KI,'%); co3t448T91CR9 O90L.8; etc(); }
E,0 3& C)*/ 0/; 9 :*= ) )=,)H 9 0 ,*/Q 0!*/Q * 9 /,/, 0) 0,*) 0 ,*/Q /,/,/!*/Q. L) ) )=,) * :, ,*) 0 F, <0) 0 F, :0,) 0 ,*/Q. E) 0/=*/ * 0) )=,) :0: 0 F, :0,) :, :)** ,/*) 9 0 F, <0) ) ?:; :// :09/ ?0 9 0 ?; 9/ 0 */0/:. //L1`T9T[. 0CR DC M`TCQT..> leeratri" e imprimiratri" 2incl3de4iostream5
&3
2incl3de4conio'5 3sin namespace std; void leeratri"(int nf, int nc, float mat::%$) { int f,c; for(f=$;f4nf;f&&) { clrscr(); for(c=$;c4nc;c&&) { otox!('$,%&c); co3t448D1Q1O9 9L 9L99ROC>:844fǀ:844cǀ 8; cin55mat:f:c; } } } //************************************************************************ void imprimiratri"(int nf, int nc, float mat::%$) { int f,c; clrscr(); co3t448jnjnjn 9L99ROC D9 L. .OT1k844endl44endl; for(f=$;f4nf;f&&) { for(c=$;c4nc;c&&) co3t44mat:f:c448 8; co3t44endl; } }
E,0 4 E0 =, 9 0 ,*/Q $ <0) $) :0,) 0 /,/,. 2incl3de8libatri"8 int main() { int nf,nc; float mat:%$:%$; clrscr(); co3t448D1Q1O9 9L RM9TC D9 Z1L.> 8; cin55nf; co3t448D1Q1O9 9L RM9TC D9 0CLMR.> 8; cin55nc; leeratri"(nf,nc,mat); imprimiratri"(nf,nc,mat); co3t44endl; s!stem(8pa3se8); }
E,0 41 %: =, 9 :* /,/, 0 ,*/Q *))* ,*/Q !AT. L ,*/Q *))* 0 ,*/Q !AT ) :* /*:,/ 0) <0) 0) :0,) 0) :0,) 0) <0). S/ T!AT ) 0 ,*/Q *))* !AT /,0/: *:) 9 T!AT [( I] !AT [I (]. &4
S/ 0 :*/ !AT )H MAT =
5
8
1
9
15
11
9
4
16
4
3
0
5
15
16
8
11
4
1
9
3
9
4
0
TMAT =
C, ) ? ) /?/* 0 0 ,*/Q ) :/ 0 F, <0) !AT ) /=0 0 F, :0,) T!AT 0 F, :0,) ) /?/* 0 F, <0) T!AT. 2incl3de8libatri"8 2incl3de4iomanip5 int main() { int nf,nc,i,B; float mat:%$:%$, tmat:%$:%$; clrscr(); textbacPro3nd(N<1O9); textcolor(.Q9RO.); otox!('$,##); cprintf(8D1Q1O9 9L RX9TC D9 Z1L.> 8); otox!(I6,##); cin55nf; otox!('$,#K); cprintf(8D1Q1O9 9L RX9TC D9 0CLMR.> 8); otox!(I6,#K); cin55nc; clrscr(); leeratri"(nf,nc,mat); for(i=$; i4nf; i&&) for(B=$; B4nc; B&&) tmat:B:i=mat:i:B; clrscr(); otox!(#$,%); textcolor(.Q9RO.); cprintf(8.OT1k OT.RM9O.8); otox!(I,S); for(i=$; i4nc; i&&) { for(B=$; B4 nf; B&&) co3t44set@(+)44tmat:i:B; //set@ est en la librerYa iomanip otox!(I,J&i); } otox!('$,'%); cprintf(8T91CR9 O90L.8); etc(); }
E,0 42 %: =, 9 0 ,*/Q N# <0) NC :0,) :0:0 0 ), 0) <0) 0) :0,) 0) )0*) ) ?:*) : 0) ),) 0) <0) * : 0 ), 0) :0,) /,/, 0) ) ?:*). L ,*/Q ) !AT */ 0) )/=/*) 0,*) 0) :*/) 0) ?:*) ) ,)* :*/:/>H &5
2incl3de8Libatri"8 int main() { int nf,nc,i,P; float mat:K$:%$, s3maf=$,vc:%$,vf:K$; clrscr(); textbacPro3nd(N<1O9); textcolor(.Q9RO.); otox!('$,##); cprintf(8D1Q1O9 9L RX9TC D9 Z1L.> 8); otox!(I6,##); cin55nf; textbacPro3nd(N<1O9); otox!('$,#K); cprintf(8D1Q1O9 9L RX9TC D9 0CLMR.> 8); otox!(I6,#K); cin55nc; clrscr(); leeratri"(nf,nc,mat); for(i=$; i4 nf; i&&) { s3maf=$; for(P=$; P4 nc; P&&) s3maf&=mat:i:P; vf:i=s3maf; } clrscr(); textcolor(.Q9RO.); otox!('$,%); cprintf(8 M. D9 0.D. 0CLMR. 8); for(P=$; P4nc; P&&) { vc:P=$; for(i=$; i4nf; i&&) vc:P&=mat:i:P; otox!('%,P&S); co3t4480CLMR. 844Pǀ = 844vc:P; } otox!('$,'%); textcolor(.Q9RO.); cprintf(8T91CR9 O90L. .T. 0CRO1RM.T8); etc(); clrscr(); textcolor(QT99R); otox!('$,%); cprintf(8 M. D9 0.D. Z1L. 8); for(i=$; i4 nf; i&&) {
&6
otox!('%,i&S); co3t448Z1L. 844iǀ = 844vf:i; } otox!('$,'%); cprintf(8T91CR9 O90L. .T. O9T1R.T8); etc(); }
E,0 43 U *0 ,) ) =0 8 <0) 8 :0,). U 1 )* 0 ):/ <: 0 *0 ) 2 )* 0 ):/ <: = 0 *0 : )* 0 ):/ <:. %: 0=/*, 9 :0:0H jE0 F, <:) )H @ jE0 F, <:) =)H @ jE0 F, **0 <:)H *@* P ) 0 :0) <: 9 /)* :> 0 *0 ) :, 0 )* : 0,* : 1 2 > : : 0 )0* ) /:,* 0 :* ):=/ : :). U )/0 )* 0 *0 ,) ); 0 )/=/*H 7HC 1 2 & J
1 2 2 2
2 2
& 1 1
1 2 2
1
2
1
J 1 1 2
D /)* )/* 7 <:) ) 8 <:) =) **0 15 <:) 0 *0. 2incl3de4iostream5 2incl3de4conio'5 3sin namespace std; int main() { sort tab:J:J; int i,P,nfr=$,nfn=$,tft,f=%,c='J; clrscr(); textbacPro3nd($);textcolor(+); cprintf(8D1Q1O9 $, # C ' U T91CR9 9RO9T .T. LL9R.T L. .OT1k 8); for(i=$;i4=J; i&&) { for(P=#;P4='I; P&&) { otox!('S&P,f); co3t44car('$%); } f&='; } for(i=$;i4=J; i&&)
&7
{ for(P=#;P4=#S; P&&) { otox!(c,I&P); co3t44car(#J+); } c&=K; } c='6; f=+; for(i=$;i4J;i&&) { for(P=$;P4J;P&&) { do { otox!(c,f); cin55tab:i:P; if((tab:i:P 4 $) (tab:i:P 5 ')) { otox!(c,f); co3t448 8; } }@ile((tab:i:P4 $) (tab:i:P 5 ')); if(tab:i:P==#) nfr&&; else if(tab:i:P==') nfn&&; c&=K; } c='6; f&='; } otox!(KK,'%); cprintf(8T91CR9 O90L.8); etc(); tft=nfr&nfn; clrscr(); textbacPro3nd(N<1O9); textcolor(T9D); otox!('%,##); cprintf(8 RX9TC D9 Z10<. TC.> 8); otox!(%$,##); co3t44nfr; textcolor(`L.0); otox!('%,#K); cprintf(8 RX9TC D9 Z10<. R9QT.> 8); otox!(%$,#K); co3t44nfn; textcolor(+); otox!('%,#%); cprintf(8 RX9TC OCO.L D9 Z10<.> 8); otox!(%$,#%); co3t44tft; textcolor(%); otox!('%,'%); cprintf(8 T91CR9 O90L. .T. O9T1R.T8); etc(); }
E,0 44 U , */ 1 =*) )0::/> ,F0*/0. C =* * )) 0**/?) )>0 */ ))* ::*. L) ))*) ::*) )* ?:* VCR 1 )/:/) VCR[^] )* 0 ))* ::* 0 =* ^. P : )*/* ) 0 =/)* 9 :*/H , 0 )*/* :*/:/> 1 ?0) 9 :) 0) ))*) ) 0 )*/* : 0) 1 =*). E0 =, 9 * 0 ?:* ))*) ::*) @, ?:* : 0) ,) 0) )*/*) @, ,*/Q N 1 : 0) ))*) ) 0) )*/*) /,/, 0) ,) 0) )*/*) 9 0 , ) 9/ :0/<::/> ,;/, 6 *) 0 F, )*/*) 9 0 /. &8
P 0,: 0 /@,:/> 9/ 0 :) ) :)/* *) =0). U ?:* 1 )/:/) 9 :*/ 0) ))*) ::*) 0 , ?:* N )/:/) : 0) ,) 0) )*/*) 0 ,*/Q 9 )* 0) ))*) ) 0) N )*/*) 0) 1 =*) 0 ,. P * 0 * )*/* ) :, 0 ))* 0 =* ^ : 0 )/:/> ^ 0 ?:* ))*) ::*) )/ :/:/ ) /:,* 0 :* ))*) ::*). /*1CTO.RO9> MO9D M9D9 0.`1.T L. 0.RO1D.D D9 T9M9O. V.T1.RDC 9L V.LCT D9 L. 0CRO.RO9 RT9 ! el p3ntaBe para anar es I*/ 2define RT9 % //0.RO1D.D D9 T9M9O. D9L 9u.9R 2incl3de4iostream5 2incl3de4conio'5 3sin namespace std; int main() { float vrc:K$, mr:K$:K$; int n,p3n, np=$, l,P; car nom:K$:K+; for(P=$; P4 RT9; P&&) { clrscr(); textcolor(+); otox!('$,#'); co3t4489ROT9 L. T9M9O. 0CTT90O. Ro> 844P,- -; cin55vrc:P; } clrscr(); otox!('$,#'); textcolor(T9D); cprintf(8D1Q1O9 L. 0.RO1D.D D9 9OMD1.RO9> 8); otox!(%I,#'); textbacPro3nd($); cin55n; for(l=$; l4n;l&&) { clrscr(); textcolor(.Q9RO.); otox!('$,##); cprintf(89ROT9 9L RC`T9 D9L 9OMD1.RO9>8); otox!(%#,##); co3t44l,- -; cin55@s; otox!(%%,##); cinetline(nom:l,K%); textbacPro3nd($); for(P=$; P4RT9; P&&) { clrscr(); otox!('$,#'); co3t448D1Q1O9 L. T9M9O.> 844Pǀ D9L 9OMD1.RO9>844 l,- -; cin55mr:l:P; } } clrscr(); textbacPro3nd($); co3t448 RC`T9 D9 LC Q.R.DCT9jnjnja8; for(l=$; l4n; l&&) { p3n=$; for(P=$; P4RT9;P&&) if(mr:l:P ==vrc:P) p3n&&; if(p3n5=I) co3t448 844nom:l44endl; else np&&; } co3t448jnjnja T91CR9 O90L.8;
&&
otox!('$,'I); co3t448RX9TC D9 9TD9DCT9>844np; otox!('$,'%); s!stem(8pa3se8); }
E,0 45 E0 =, 9 0 =0 //,)/0 0 /@,:/> ) ?*) NP :*) = 0 /, :0,) 0 :>/= 0 *;:0 0 )/=/* 0 F, /) ?/) : ,) ,)) 3 ;). C <0 :) 0) *) *;:0. U*/0/Q 0) *) :0,) )/=/*) :0:0H ,/ ?*) //) ,/ ?*) 0) ;) 9 0) F, ;) 9 ) ?/> /,/, 0 ,*/Q. C, 0 =0 */ 0 /, :0, 0 :>/= 0 *;:0 //:/0,* * 31 :0,) 0 :>/= :0, 3 :)/*) 0) ?*) :) : ; 0 ,). E :) 9 ; ) = ?* ) )/:/> * ?0 :. L :0, 31 0 =0 0,: 0 ,/ ?*) //) *;:0 9 ) :0:0 ), : <0 ) 0 :0, ) )* 0 */* /?// 0 )0* ) 0) */* ;) 0 ,) );H E0 ,/ ?*) 0) ;) 9 0) :0, 32 ) */ ), 0) ?*) 0 :* /?// 0 F, ;) 9 ?*) ) :/ 0 :*/ ?*) /@*) :. C =/)* * :) <0 0 ,*/Q //:/0 K)* ) /); 0 )/=/* ,H
2incl3de4iostream5 2incl3de4conio'5 2incl3de8libatri"8 3sin namespace std; int main() { int np,i,P,ndv; float ven:%$:%$, s3ma; clrscr(); textcolor(L1Q 8); otox!(I6,#'); cin55np;clrscr(); textbacPro3nd($); otox!('$,#'); cprintf(89L T19T 9L99ROC D9 0.D. Z1L. 9 9L 0CD1QC8); otox!('$,#%); cprintf(8T91CR9 O90L.8); etc(); clrscr(); leeratri"(np,K#,ven); for(i=$;i4np;i&&) { s3ma=$; ndv=$; for(P=#;P4K#; P&&) { s3ma&=ven:i:P; if(ven:i:PE=$) ndv&&;
1
} ven:i:K#=s3ma/K$; ven:i:K'=s3ma/ndv; } imprimiratri"(np,KK,ven); co3t44endl; s!stem(8pa3se8); }
. REGISTROS U =/)* ) )*:* *) :,)*. S :/ 9 =/)* ) :* :,) ?/0) 0:/) 9 =0 *: */) *) /@*) 00,) :,*) 0 */ =/)* *) 0) :,*) ,/0) )0 , ?/0. P ,0 )/ ) */ =/)* *) :,)* 0) :,)H :K0 ,) ::/> )0/ ,) )*0 0 )/=/* @,H 3256321 SUSANA RESTREPO
4
63
C, *) * 0 =/)* )>0 *) /@,:/> ) 0 =, 9/ 0 :0: ,) : * 0) 0,: 0 ,,/ 0 :,*. S/ 0 /@,:/> 0 ,0 ) @ ** @, //?/0 0) ,) ?/0) )0::/) : :, @H CC NO! DEDUC SAL 0 :*) 0 /)*::/>H LEAH CC NO! DEDUC SAL L /@,:/> 0 ,0 )* /)) 0 ,,/. L / ) =/)*) ) = * 0 /@,:/> ,/), ,,/ )0 ,. S/ ) *, 0 *,/:/> 9 E!P1 ) ?/0 tipo registro ) :/ 0,: 0 )/= * 0 /@,:/> ,0 =<:,* ) ,/ 0 )/=/* ,. ()*1
< c'%u$a > < nombres > < %e%ucci"n > < sa$arios > memoria
11
P 9 E!P1 ) *, :, ?/0 */ =/)* 0 =, </0 :, *0 : : 0 0= =,:/> 9 )*K */0/Q ) :/ 0 tipo de dato registro )* </ 9 )) :,*) ? : =, ):/0. A , ,0 0 */ =/)* C++ ) </; );H struct emp$ea%o + $ong cc, car nom.36/, %oub$e %e%uc, %oub$e sa$, ,
L */ 9/ :/ 9 0 =, </ */ * =/)* 00, empleado 9 :09/ ?/0 9 ) 0 )/= 0 */ * ,0 0,: 0) ?0) 0) :,*)H :: , : )0. E C++ ) ; 0 )/=/* @,H ,0 ,1 ,2 E 0 */ /)*::/> ) < ,1 ,2 :, ?/0) */ =/)* 0 ** 0,: *) 0) ?0) 0) :,) 9 :@, 0 */ * ,0. L) ?/0) */ =/)* ,1 ,2 ) ?/0) :,)*) @:/ : )) :,*) 9 :0/<:0) ) ) @, 0;:/* :0 0) :,*) 0 =/)* ) 9/ @/. L :0/<::/> ) : );H a'iabl"K#ipoK'"3i#'o.)opo$"$#". Po' ""plo% ,1.:: : @:/ 0 ?0 0 :K0 0,: 0 *) =/)* ,1. ,2., : @:/ 0 , 9 0 * ,2. ,1.,[4] @:/ 0 ::* :* 0 , 0,: 0 *) ,1 C++ ); 0 9/*. L /)*::/>H LEAH ,1.:: ,1., ,1.: ,1.)0 00? /@,:/> 0 ?/0 */ =/)* ,1. S/ :)/ ,? 0 /@,:/> ?/0 */ =/)* * ) : :,* :,* ,?/ * 0 /@,:/> 0 ,/), */,. P ,0H ,2.:: i ,1.:: ,2., i ,1., ,2.: i ,1.: ,2.)0 i ,1.)0 12
); 0 ,/), 9 *H ,2 i ,1 E(E!PLO 46 #, =/)* : 0) :,)H :K0 , = 0= )0 * =/)* /,/,/ 0 /@,:/>. A$4lii % 9 </ 0) ) ?/0) */ =/)* est1 & est2, ) 0 0) ?0) 0) :,*) )*1 0= ) ) )*2 ) /,/,. 2incl3de4iostream5 2incl3de4conio'5 3sin namespace std; int main() { struct estudiante { double cc; char nom[36]; double pago; ; t!pede" estudiante es;$ %e rede"ine el nombre del registro si &d. 'uiere$ es estest2; estudiante estest2 clrscr(); te*tbac+ground(,); te*tcolor(-/01); goto*!(2); cprint"(45/0 7 805&79
4);
goto*!(3,); cin>>est.cc; goto*!(22); cprint"(45/0 07 1:-09
4);
goto*!(3,2); cin>>=s; cin.getline(est.nom3); goto*!(23); cprint"(45/0 07 ?/:9
4);
goto*!(363); cin>>est.pago; te*tbac+ground(); est2@est; te*tbac+ground(); te*tcolor(AB0); cprint"(4 clrscr();
4);
te*tbac+ground();
goto*!(2); cout<
7.1. ARREGLO DE REGISTROS E) )*:* *) = */0/ /,*:/ 0 =,:/> 0/::/) 9 ,:) ?:) ) )0 ) 0 * ?/)* 0 0>=/: 0 =, */:0 ,* /)/0 ,,/ /:/0 )/ 13
=/)*) : /@,:/> 0 ,/), */ ) :) /:) =/)*) )* /))) * =0 0 9 @:/0/* ) ,. U =0 =/)*) ) , :/ :/? *) ) /@:/ 9 0) =0) =/)*) )/ ,,/ /:/0 0) :/?) ,,/ /0/ 0 ** )*) F0*/,) */ /)*:/ ,*. O* /,*:/ 9 */ 0) =0) =/)* ) 9 : )) 0,*) )* @, ?/) :,) *:/*) /@*) */) *) /@:/ 0) *) */) =0) )) 0,*) ) )0 */.
E(E!PLO 47 #, =0 ,/, 1 =/)*) : 0,* :*=H :K0 ,) = 0= 0 0 :, , /)* ? =/)* )/ 0 ,/* /,/,/0. S/ 0 , 0 =0 =/)*) ) ? =<:,* ) )*; );H V V[1] V[1].cc
V[1]. nom
V[2] V[1].p
V[2].cc
V[2]. nom
V{2].p
…… ……
V[100] V[100]. V[100]. V[100]. cc nom p
E0 0, ) )0? *?K) ,>0) )=,) A#I)
#((
I)*I)I
(A
IS(A
E0 )=, LEER :/ 0 :*/ 0,*) 0 =0 F, )*/*) N ?; 0 ?:* V. 14
I!PRI!IR ORDENAR INSERTAR
R:/ N V R:/ N V ?; V R:/ N V ?; N V
O*) ?/0) I ^ !ENOR POS AU' 0,* ,/*. RI
V/0) :*0 :/:0) A0,: 0 , , 0 ,/* A0,: 0 )/:/> )* 0 , ,. V/0 */ =/)* 9 = *,0,* 0 ?:* ,/*) ) : 0 R=/)*) /)*
E#o (bp'o3'aa "#a'4$ !"$#'o !" la lib'"'5a lib")#.8 Da#o !" "$#'a!a j L :*/ 0,*) 0 ?:* j L /@,:/> 0 ?:* CK0 , = /)*. j Da#o !" ali!a L /@,:/> 0 ?:* =/)*. j D"6$i)i$ !" a'iabl" N C*/ 0,*) A N, 0 =0 R V/0 */ =/)* R.CC CK0 /)* R.NO! N, /)* R.P P= /)* OP O:/> )0::/ 0 ,F SIGA O:/> /)* ?) 0,*) 2incl3de4iostream5 2incl3de4conio'5 2incl3de4iomanip5 2incl3de4@indo@s5 2incl3de8entorno8 3sin namespace std; str3ct empleado { lon lon cc; car nom:K+; do3ble p; };
15
void leer(int n, empleado v:)/*9ntra la informacin del empleado*/ { int i,P,nc; textbacPro3nd($); for(P=$; P4n;P&&) { clrscr(); textcolor(.Q9RO.); textbacPro3nd(0U.R); otox!('$,##); cprintf(8D1Q1O9 L. 0DML.> 8); otox!(KJ,##); cin55v:Pcc; otox!('$,#'); textbacPro3nd(0U.R); cprintf(89ROT9 .9LL1DC RC`T9> 8); textbacPro3nd($); otox!(I',#'); cin55@s; cinetline(v:Pnom,K%); nc=strlen(v:Pnom); for(i=nc;i4K+;i&&) v:Pnom:i=- -; v:Pnom:K+=-j$-; textbacPro3nd(0U.R); otox!('$,#K); cprintf(89ROT9 9L .QC> otox!(KJ,#K); cin55v:Pp; textbacPro3nd($); }
8);
} void imprimir(int n,empleado v:)/* 1mprime la informacin del empleado*/ { int i; clrscr(); for(i=$; i4 n; i&&) co3t44set@(#J)44v:icc44set@(I$)44v:inom44set@(#$)44v:ip44endl; otox!('$,'%); cprintf(8T91CR9 O90L.8); etc(); } void ordenarorRombre(int n, empleado v:)/* Crdena la informacin por nombre*/ { int i,P,pos; empleado a3x; car menor:K+; for(i=$; i4nF#; i&&) { strcp!(menor,v:inom); pos=i; for(P=i P4n; P&&) if(strcmpi(menor,v:Pnom) 5$) { strcp!(menor,v:Pnom); pos=P; } a3x=v:i; v:i=v:pos; v:pos=a3x; } clrscr(); textcolor(0U.R); otox!('$,#'); cprintf(89L V90OCT ZM9 CTD9R.DC8); leep(#$$$); } void insertar(int ]n, empleado v:, empleado ri:) {
16
int i=$,P; @ile((i 4 n) ]] (strcmpi(ri:$nom,v:inom) 5 $)) i&&; n&&; for(P=nF#; P5(i); PFF) v:P=v:PF#;
v:i=ri:$;
} /***********************************************************************************/ int main() {
empleado a:%$,r:#; int n,op; car s@; co3tsetf(ios>>fixed,ios>>floatfield); co3t44setprecision('); textbacPro3nd($); clrscr(); textbacPro3nd(0U.R); textcolor(L1Q otox!(%$,#'); cin55n; textbacPro3nd($); do {
8);
clrscr(); c3adros(S,'$,#J,+$); textcolor(0U.R); otox!(KJ,J); cprintf(89RM8); textbacPro3nd($); otox!(K$,#$); cprintf(8#> 1RQT99 LC D.OC8); otox!(K$,##); cprintf(8'> 1T11T LC D.OC8); otox!(K$,#'); cprintf(8K> CTD9R.T LC D.OC 8); otox!(K$,#K); cprintf(8I> 1R9TO.T RM9VC D.OC8); otox!(K$,#I); cprintf(8%> O9T1R.T TCQT..8); otox!(KK,#+); cprintf(8D1Q1O9 C01CR> 8); otox!(IJ,#+); cin55op; textbacPro3nd($); s@itc (op) {
case #> leer(n,a); breaP; case '> imprimir(n,a); breaP; case K> ordenarorRombre(n,a); breaP; case I> s@=--; @ile(to3pper(s@)==--) { clrscr();leer(#,r); insertar(n,a,r); clrscr(); otox!('$,#'); cprintf(8<.U . 9L9.DC .T. .D101CR.T /RW
8);
otox!(%S,#'); cin55s@;
} breaP; case %>
17
}
clrscr(); otox!(K$,#'); cprintf(8Z1R D9L TCQT..8); otox!('%,#%); cprintf(8T91CR9 O90L. .T. O9T1R.T8); etc(); breaP;
}@ile(op E=%); }
J. ARC9I:OS U :/? ) /))/*/? 0>=/: ) 0,: @, ,* =) ?0F,) /@,:/> /?// )*:*) *) =/)*) *) 0 ,/), */ 0:/). E0 , /@,:/> *?K) :/?) ) = */0/ 0 =,:/> 9 ,/* 0 :* /@,:/> 0,: 00) ) )*/ */0/Q:/> /?)) =,) ?/* * 9 * @, ,0 0 /@,:/> 9 ) 9/ :) 0,: = :*/ /@,:/> ):/) :/) : 0* :/)/> 0 , 0) *). E =0 0) :/?) ) = *) =) :*=;)H j 'rchivos de programa: ) 0) =,) @*) 9 ) ):/ *,/ 0= =,:/>. E)*) =,) ) =) ,/) ,=K*/:) /0/) ) )*/ */0/Q:/>. E)*) :/?) ) := 0 ,/ ,=K*/: ,,/ :,/00) :*0) /,/,/0) ?0?0) = )* * ,/ 0,:,/* /)*/*. j 'rchivos de texto: 0,: 0*) 0) @)) @) ) )0 : ,* ,/* =,) 9 :) /* **. j 'rchivos de datos: 0,: ?0). U :/? *) :*/ /@,:/> 9 =, : )*/,* :) /=0 @, )) 0,: 0) )0*) 0 ::/> =,.
8.1. !ANE(O DE ARC%IVOS DE DATOS C++ * 0 0/; /0/*: )* fstream <0 )*, ) :* 0) @:/) / : :/?) ); :, 0/Q 0) :/) 0:* ):/* *) :/?). 2 incl3de 4fstream5
18
Op"'a)io$" ao)ia!a a a')8io o A/ :/? o C :/? o L:* ):/* o #:/) :*0 L) :/?) ) , *?K) ) ,)H i$#"'$o o , 0>=/: , X 9 ) 0 , : 9 ) ,/0 0 :/? 0 =, * "#"'$o 9 ) 0 , 0 :0 9 = 0 :/? 0 ,/ ,=K*/: ) 00?. L) :/) ) 0= ,/* 0 0/; fstream. E)* 0/; ,/* = := /@,:/> ,/* :/?) ,/ 0) :0)) ifstream ofstream. L :/> * :/? ) )*= 0 0 ,/ ,=K*/: )// 0 :/? 0 * ) :0: 0 /:// 0 :/? ) )*0: )) *) *)@/ /@,:/> ) 0 W : 0 ,,/ RA! 0 0= )/ 0 :/?. D o#'"a ) ) / :/? )0/ /* ) 9 ?,) ):// /@,:/> 0 :/? ::/> 0 :/? 9 * :* 9 )/ /,) :/? ):/* : 0 //: o(# 0 :/? /)* K)* ) )*/ ) 9 ) /:/ ,) =/)*) 0 <0 0 :/? //: app/. I@)*, :/? 0 0 /@,:/> 9 )* 0,: K0 ) :/ )*= 0 )/ 0 :/? ) )*0: 0) ::*) : 0 ,/ * ,,/. @)*, :/? ):/* 0:* 0 ,/), */,. C ) :/? 9 //: 9K ) )* ) : *?K) //:) :, 0) )/=/*)H appH ,/* /:/ ,) =/)*) 0 <0 0 :/?. E0 * X
*) ) :0: 0 <0 0 :/? *) : :/> ):/*. ateH )/,/0 0 */ 0 * ) 0 <0 0 :/? )0 ?Q 0 ,,* /0. C )*) ) ,) * 0) *) ) 0,:) 0 <0 0 :/?. binar& H //: 9 0) *) 0 :/? ) //) )/ @,*. inH )* , ,/* :/) 0:* 0 :/?. out H ,/* :/) ):/* 0 :/?. truncH : )* , //:,) 9 0 :*/ :*0 ) ):*.
1&
close( )
E)* @:/> ,/* )):/ 0 :/? 9 ) *= /* :*0,* : 0 0/::/> ) :/ 9 ) )* 0) ,/) :/> * 0 ,,/ 0 ,/ ,=K*/: 0 , 0>=/: : 0 , @;)/:. P )=/ ) :*/: :* )* @:/> : ) ) 0/Q ,) :/) ) 0 :/? *= 0 )* 0 :/?. A0 :*) )* :/> *,*/:,* 0 <0 0 :/? ) /:/ =/)* ,) =/)* :*/0 ) :0: ,: 00, ,: < :/? @ @ <0. E)* )/=/<: 9 )*) 0,) /@,:/> 0 :/? )* 9 ) *:* 0 ,: < :/?. E,0H Nile(Enombre licoeof()) { } nombre licoclose();
Ab'i' "l a')8io pa'a l")#('a o "$#'a!a
.
E) </ X :/? * /=0 :/bb. E 0 =, ) @/,) 0 :/? */0/Q 0 , 0>=/:. ifstream 4nombre lico5 (h nombre fYsico ”, ios_base>>in) ;
N, 0>=/: ) , ?/0 ,/*/ *?K) )* ) @/,) 0 :/? , @;)/: 0 =,. S=,) 9 9,) / :/? 9 ) 00, ,).** 9 ) :* 0 / /): C i le colocamos como nombre lgico archI: 2incl3de 4fstream5 g ifstream arcO (hD>jnombrestxt”, ios_base>>in);
S/ 0 :/? ,) ) :/? *) 0 /)*::/> );H ifstream arcO (hD>jdatosdat”, ios_base>>in);
P :, )/ :/? @K /* : K/* :,) 0 )/=/* =*H 1f(arcO)
11
co3t44 h ZM9 .`19TOC 0CR u1OCW”; else co3t44”RC 9 MDC .`T1T 9L .T0<1VC”;
O *,/K ) = 0 =*H 1f(EarcO) co3t44”RC 9MDC .`T1T 9L .T0<1VC”; else co3t44”9L .T0<1VC 9O. .`19TOC”;
D ,).** ) 0 , : 0 :0 9 = 0 :/? , @;)/: )/ :0:,) * 0 :/? ) = 0 :* )* 0 =, 9 0 :. Ab'i' ($ a')8io pa'a ")'i#('a )'"a)i$ !"l a')8io/. S/ 9,) : 0 :/? ,).** 0 ,) / ):// *) )/ 0 , 0>=/: ) E):/*.
2incl3de 4fstream5 g ofstream 9scrit3ra (hD>jnombrestxt”, ios_base>>o3t); ofstream 9scrit3ra (hD>jdatosdatt”, ios_base>>o3t);
A/ :/? /:/ =/)*) 0 <0. Cfstream .rear(hD>jnombrestxt”,ios_base>>app); Cfstream .rear(hD>jnombresdat”, ios_base>>app;
8.1.1. ARC%IVOS DE TE'TO S )/ F,) //) 9 )* 0 /@,:/> )/ ,= )*) :/?) )* =) @,* ** M. txt M 0) 0 :09/ 0/::/> 9 :) **). E )* :) 0 , 0>=/: :*F :, )/ @ :/ :* ) /=) 0 *) F")#('a !" ($ a')8io !" #"#o 111
2incl3de4fstream5 gggg 1fstream Lect3ra(hnombrestxt”, ios_base>>in); 1f(ELect3ra) co3t44”RC 9 MDC .`T1T 9L .T0<1VC h; else{ Lect3ra55 n3mero; Lect3ra55@s; Lect3raetline(nombre,I$); } Lect3raclose(); 9l operador 55 lee asta 3n blanco ! omite los blancos
A ?,) 0 0 :/? 9 ) 0> *).. 2incl3de4fstream5 gggg ofstream 9scrit3ra(hnombrestxt”, ios_base>>o3t); 1f(E9scrit3ra) co3t44”RC 9 MDC .`T1T 9L .T0<1VC h; else{ 9scrit3ra44 n3mero44 w; 9scrit3ra44nombre } 9scrit3raclose();
E(E!PLO 48 %: =, 9 = :/? ** : 0) :,)H F, ,) 9 ,)* 0 /@,:/> 0 :/? 0 /:/ ,) =/)*). 2incl3de4iostream5 2incl3de4conio'5 2incl3de4fstream5 3sin namespace std; int main() { car nom:I$; int i=$, opcion;
112
car s@=--,s@#; lon lon ced3la; do { clrscr(); co3t448 #> 09.T 9L .T0<1VC 844endl; co3t448 ' 1T11T 0CRO9R1DC D9L .T0<1VC 844endl; co3t448 K> .D101CR.T MR T9Q1OTC .L Z1R.L844endl; co3t448 I> .L1T D9L 9RM 8; co3t448D1Q11O9 C01CR> 8; cin55opcion; if(opcion==#) { clrscr(); co3t448CC 1 9L .T0<1VC U. 9O. 0T9.DC 9T. D9OTM1DC 844endl; co3t4489L .T0<1VC 9O 0T9.DC /RW 8; cin55s@#; if(to3pper(s@#)==-R-){ //# ofstream 9scribir(8nombrestxt8,ios_base>>o3t);/*9 .`T9 .T. 90T1OMT.*/ if(9scribir){ //' 1 9L .T0<1VC 9 .`T1\ 0CR u1OC co3t448D1Q1O9 L. 09DML. 8; cin55ced3la; @ile(ced3la E=$) { co3t448D1Q1O9 9L RC`T9 844iǀ 8; cin55@s; cinetline(nom,I$); 9scribir44ced3la44- -44nom44endl; clrscr(); co3t448D1Q1O9 09DML. C 09TC .T. O9T1R.T> 8; cin55ced3la; i&&; }//@ile } //' 9scribirclose(); /*09TT.T 9L .T0<1VC*/ }//# else { clrscr(); co3t4489L .T0<1VC RC 9 MDC .`T1T844endl; s!stem(8pa3se8); }//fin else } if(opcion=='){ ifstream Lect3ra(8nombrestxt8,ios_base>>in);/*9 .`T9 .T. L90OMT.*/ if(ELect3ra)/*1 9L .T0<1VC RC 9 MDC .`T1T*/ { co3t4489L .T0<1VC RC 9 MDC .`T1T .T. L90OMT. 844endl; exit($); } else { clrscr(); co3t448D.OC .L.09R.DC 9R 9L .T0<1VC nombrestxt844endl44endl; Lect3ra55ced3la; Lect3ra55@s; Lect3raetline(nom,I$); @ile(ELect3raeof()) { co3t44ced3la448 844nom44endl; Lect3ra55ced3la; Lect3ra55@s; Lect3raetline(nom,I$); }//@ile Lect3raclose(); co3t44endl44endl44endl; s!stem(8pa3se8); }//else
113
} if(opcion==K){ /* 9 .`T9 9L .T0<1VC .T. ofstream .rear(8nombrestxt8, ios_base>>app); if(.rear){ clrscr(); co3t448D1Q1O9 L. 09DML. 8; cin55ced3la; co3t448D1Q1O9 MR RC`T9 8; cin55@s; cinetline(nom,I$); .rear44ced3la44- -44nom44endl; .rearclose(); } } }@ile(opcion E=I); }
.D101CR.T
T9Q1OTC
.L
Z1R.L*/
8.1.2. ARC%IVO DE DATOS U :/? ) :* *) 0:/) * ); : =/Q:/> 9/: , 9 : :/? )*K @, :* =/)*) K)*) ) ?Q @,) )/ :,). U =/)* ) 0 / ,/ :/? 9 :*/ 0 /@,:/> 9 ) */0/Q 0) /@*) =,) ) **) , //*. U =/)* :* * 0 :* :,) 9 0 :@, 9 : 9 0 =/)* */:0 ) F/: ) :/ 0 /@:/ 0) ,) 00, :, :0?. G<:,* ) ,/ :/? *) 0 )/=/* @,H
114
C, ) ) 0 =<: 0) :,) :) 0) :0,) 0) =/)*) 0) <0). E0 *, 0=/* =/)* ) ,/ *) ) 0 )0** ), 0) 0=/*) 0) 0) :,) 9 0 :@,. :@,. E) /,** * * :* 9 0) :,) 9 :@, =/)* @:/ ,/), /@,:/> /=0 , 0) =/)*) )* 0:/) : 0 Q> ) 0 :/?. Epl"a!o C?!(la 114 121 211 && 117 212 11& 118 311
1 1 1 2 2 2 3 3 4
D"p#o Nob'" E0;) ()K G:/0 0 C, L/) B* G/00, S= A0*/ I)0 C/ #:/): R* ()F) #0:/ !/ (/ A*/ #/ 0 :/?
Sala'io 18 253 423 312 516 222 64 1&1 221 823 514 11& 325 425 388 734
C, ) ? :/? *) 0 9 ) = ) /@,:/> ) 0 =, =, 9/ :/ 9K , 0 :0: 0 =/)* )*:* : 0) :,) //?/0) //?/0) 9 /*= 0 =/)*. =/)*. O*) ,0)H ,0)H Cli"$#" C?!(la Nob'" Ap"lli!o Di'"))i$ 1487&563 # (,/00 478&6321 L0 65874123 # #/ 73284562 G/ G/)0
O)
T"l?o$o C. 1 N. 1-17
231145
C00. 7 7 N N. 11 11-1845 8456&874 R;) C00. 2 N. 12-& 58&621 G/0 C. 43 N. 1-21 3214568
EO#
I$"$#a'io C!i3o 7211 821
D")'ip)i$ B; 2 V0?0
U$i!a!" :alo'L($i!a! 75 5 85 115
&211 . . . EO#
. . .
!= . . .
5
3575 . . .
Fib'o C!i3oLlib'o 52115 6217 &2117 . . . . . . EO#
T5#(lo A*) 0 < D B E0 *F0 . . .
C!i3oLa(#o' U$i!a!" 8462148 12 7&85621 21 4568&32 32 . . .
EO# )/=/<: E O@ #/0 #/ 0 A:/? ) //: 9 : 0= 0 F0*/, =/)* 0 :/? * 0 <0 0 ,/),. " " ?/,) :>, / :/? *) 0:* ):/* /:/ *) 0 <0. V,) :>, ):// : : :/? *) *) )::/0 )/ *,)H str3ct empleado { lon lon cc; car nom:I$; float salario; }; empleado r; /* r Variable tipo reistro* ofstream emp (8datosdat8,ios_base>>o3ti (8datosdat8,ios_base>>o3tios_base>>binar!); os_base>>binar!); emp@rite((car*) ]r,si"eof(r));/*Cperacin de escrit3ra*/ empclose();
V,) 0 /)*::/> 0:*H ifstream a'(8datosdat8, ios_base>>inios_base>>bin ios_base>>inios_base>>binar!);/*apert3ra*/ ar!);/*apert3ra*/ a'read(( car*) ]r,si"eof(r)); /*Cperacin de lect3ra*/
116
E(E!PLO 4& V,) : :/? : 0) *)H :K0 ,) )0/ 0 0,) /,/,/,) /,/,/,) *00 0 /@,:/> K0 :*/ 0 ,) 0 :, , ):,) 0 /@,:/> :K0 ,0. /*********************************************************************/ 2incl3de4iostream5 2incl3de4conio'5 2incl3de4fstream5 2incl3de4iomanip5 3sin namespace std; str3ct empleado { lon lon cc; car nom:I$; float salario; }; empleado r; void adicionar() { //# lon codioad; car s@; clrscr(); otox!('$,##); co3t4489L .T0<1VC 9O 0T9.DC /R> 8;cin55s@; if(to3pper(s@)==-R-) { //' clrscr(); otox!('$,#K); co3t448.1 9L .T0<1VC 9O 0T9.DC 9T. D9OTM1DC 8; otox!('$,#I);co3t448j9L .T0<1VC 9O. 0T9.DC /R> 8;cin55s@; } //' if(to3pper(s@)==-R-) { //K ofstream emp (8datosdat8,ios_base>>o3ti (8datosdat8,ios_base>>o3tios_base>>binar!); os_base>>binar!); if(Eemp) { //I clrscr(); co3t448RC 9 M9D9 .`T1T 9L .T0<1VC .T. .D101CR.T8; etc(); exit(#); } //I clrscr(); otox!('$,##); co3t448D1Q1O9 L. 09DML. > 8; cin55codioad; @ile(codioad E=$){ rcc=codioad; otox!('$,#'); co3t448D1Q1O9 9L RC`T9> 8; cin55@s; cinetline(rnom,I$); otox!('$,#K); co3t448D1Q1O9 9L .L.T1C> 8; cin55rsalario; emp@rite((car*) ]r,si"eof(r)); clrscr(); otox!('$,##); co3t448D1Q1O9 RM9V. 09DML. C 09TC .T. O9T1R.T> 8; cin55codioad; } empclose(); } }
117
/***************************************************************/ void Leer() { int i=%; ifstream a'(8datosdat8, ios_base>>inios_base>>binar!); if(Ea') { clrscr(); co3t448RC 9 M9D9 .`T1T 9L .T0<1VC .T. 1T11T8; etc(); exit(#); } clrscr(); textcolor(.Q9RO.); otox!(K$,'); cprintf(8D . O C D 9 L . T 0 < 1 V C8); a'read(( car*) ]r,si"eof(r)); @ile(Ea'eof()) { otox!(#$,i); co3t44set@(#')44rcc44set@(I$)44rnom44set@(#I)44rsalario; i&&; a'read(( car*) ]r,si"eof(r)); } otox!(#$,i&K); s!stem(8pa3se8); a'close(); } //***********************************************************/ void b3scaror0ed3la() { car s@=-R-; lon lon ced3la`3scar; ifstream arc(8datosdat8,ios_base>>in); if(Earc) { clrscr(); co3t448RC 9 M9D9 .`T1T 9L .T0<1VC .T. 1T11T8; etc(); exit(#); } else { clrscr(); co3t448D1Q1O9 L. 09DML. . `M0.T> 8; cin55ced3la`3scar; arcread(( car*) ]r,si"eof(r)); @ile((Earceof())]](s@==-R-)) { if(rcc==ced3la`3scar) s@=--; else arcread(( car*) ]r,si"eof(r)); } clrscr(); otox!('$,#'); if(s@==--) co3t4489L 9L9.DC 0CR 09DML. 844ced3la`3scar448 1 9O.844endl; else co3t4489L 9L9.DC 0CR 09DML. 844ced3la`3scar448 RC 9O.8; otox! ('$,'I); s!stem(8pa3se8); arcclose(); } } /***********************************************************/ void ordenarorRombre()
118
{ empleado est#,est'; car nomen:I$; lon n=$,i,pos,P; fstream aI(8datosdat8,ios_base>>inios_base>>o3tios_base>>binar!); if(EaI) { clrscr(); co3t448RC 9 M9D9 .`T1T 9L .T0<1VC .T. CTD9R.T8; etc(); exit(#); } aIread(( car*) ]est#,si"eof(est#)); @ile(EaIeof()) { n&&; aIread(( car*) ]est#,si"eof(est#)); } aIclose(); fstream a%(8datosdat8,ios_base>>inios_base>>o3tios_base>>binar!); for(i=$;i4(nF#);i&&) { a%seePp(i*si"eof(est#),ios>>be); a%read(( car*) ]est#,si"eof(est#)); pos=i; strcp!(nomen,est#nom); for(P=iP4n;P&&) { a%seeP(P*si"eof(est'),ios>>be); a%read(( car*) ]est',si"eof(est')); if(strcmpi(nomen,est'nom) 5 $) { pos=P; strcp!(nomen,est'nom); } } a%seeP(pos*si"eof(est'),ios>>be); a%read(( car*) ]est',si"eof(est')); a%seeP(i*si"eof(est#),ios>>be); a%@rite(( car*) ]est',si"eof(est')); a%seeP(pos*si"eof(est#),ios>>be); a%@rite((car*) ]est#,si"eof(est#)); } a%close(); clrscr(); textcolor(T9D); otox!(K$,#');cprintf(89L .T0<1VC ZM9 CTD9R.DC8); otox!(K$,#I);cprintf(8 T91CR9 O90L. 8); etc();
}
int main() { int op,n,s@; do { clrscr(); textbacPro3nd(N<1O9);textcolor(L1Q .D101CR.T8; co3t448jn '> 1T11T8; co3t448jn K> CTD9R.T 9L .T0<1VC CT RC`T98; co3t448jn I> `M0.T CT 09DML.8; co3t448jn %>.L1T D9L 9RM8; co3t448jn D1Q1O9 C01CR 8; cin55op; s@itc (op)
11&
{ case case case case case %>
#> adicionar(); breaP; '> Leer(); breaP; K> ordenarorRombre(); I> b3scaror0ed3la(); 8.L1T D9L 9RM8; breaP;
breaP;
} }@ile(op E=%); }
12
. ANEOS &.1. TABLA CARACTERES ASCII
121