Fundamentos de programacion C++ Ricardo Villalobos
May 5, 2017 | Author: Mauricio Xavier | Category: N/A
Short Description
Download Fundamentos de programacion C++ Ricardo Villalobos...
Description
'
-,''
de
' " -', 'F-Ult
i
rij'é-Il i'g.¡E '
programación
a-\ll | -t-i-J' lIJt ./,máésé álgdÍitm codifi cádoé oa_'
,'''',
:Yr{r'lljjg3rye"
ffiAflffiü
"' " ''Éieardo. Máreelo Villalobos
ffi
de
d# fl€"H#rtfiws ffirwgilarraffi#ilwre
ug rx
t*r
DATOS DE CATALOGACIÓN
BtBLtoGRÁrrcn
Fundamentos de Programación c++ más de 100 Algoritmos codificados Autor: Ricardo Marcelo Villalobos @ Derecho de
autor reservado
Empresa Editora Macro E.l.R.L.
O Derecho de edición, arte gráfico y diagramación reservados Empresa Editora Macro E.l.R.L. Edición a cargo de: Empresa Editora Macro E.l.R.L. Av. Paseo de la República 5613
-
Miraflores
Lima - Perú
(
(s11)71s-9700 hfi p /.1www.ed itoria lmacro.com
Dr
:rera edición: Setiembre 2008 - 1000 ejemplares
r:presión SAGRAF S.R,L. Jr. San
Agustín N" 612 - 624- Surquillo
lsBN Ns 978-603-4007 -99-4 Hecho el Depósito Legal en la Biblioteca Nacional del perú Ne 200g-11702
Prohibida la reproducción parcial
o total, por cualquier medio o método de
autorización de la Empresa Editora Macro E.l.R.L.
este libro sin previa
tDctos.del Autor
Ricardo Marcelo Villalobos :':fesional de sistemas y contabilidad, con mas de 10 años de experiencia en Tl, ha participado como :sesor y desarrollador en proyectos de software para diversas empresas privadas y públicas del país
::¡o
Minera del Hill, Aruntani, Verkaufen, MINSA, IPD ytransnacionales como Magna Rosseta Ceramica - ','RC utilizando sus conocimientos de contabilidad y de ingeniería de software en el análisis y diseño de
.:-:ware con RUP, UML y Patrones de arquitectura y diseño de software con lenguajes.lava, .NET y PHP , :ase de datos Oracle, SQL Server, MySQL y PostgreSQl.
I
{¡nde su experiencia como docente en la Universidad Nacional de lngeniería (UNl-FllS -
CEPS-UNl),
-stituto San lgnacio (lslL) y capacitaciones para empresas (Telefónica del Perú, FAP, La Caja de Pensiones '.' litar Policial, ALPECO, Banco de Materiales entre otros).
ldemás participa como expositor en universidades e institutos (Universidad Nacional de lngeniería
-
:EPS-UNl, Universidad Nacional de Trujillo, Universidad Cesar Vallejos de Trujillo, Universidad Nacional -csé Faustino Sánchez Carrión de Huacho, lnstituto San Agustín, lnstituto José Pardo, lnstituto Manuel Seoane Corrales, lnsütuto La Reyna Mercedaria)
'la escrito libros, artículos y
manuales de desarrollo de software (Libro de Visual Basic Nivel lll :omponentes, Libro de Oracle 10g, Manuales de VB.NEI ADO.NEI, POO.NET, Access, Java POO, PHP :undamentos, PHP POO).
in el 2008
es invitado por la Empresa Editora Macro para formar parte del staff de escritores y sale a la rz 4 obras relacionado a los primeros pasos de la lngeniería de software (Libros de Fundamentos y mas de 100 Algoritmos con Visual Basic, Java, C++ y C#).
¡revia
ffiruflr'x#ffiffweffiff€*ww
#w ffirw6rffisw#$qewry
t**
Prólogo Como no recordar las primeras clases de Algoritmo y la ilusión de aprender a programar esta obra plasma los primeros pasos que todo estudiante de la carrera de lngenierÍa de Sistemas, Software e lnformática debe conocer para empezar a analizar, diseñar y codificar sus primeros algoritmos y pasar la barra que todo programador debe dominar que son las estructuras de control de flujo tales como if, switch (c++, ;ava y c#) y select case (vb), while y for.
!s importante en toda la carrera que usted sepa utilizar las estructuras de control por que es la base le todos los cursos afines, este libro contiene 9 capítulos con más de 100 algoritmos resueltos y 80 propuestos y al finalizar de leer la obra estoy seguro que usted formará parte del mundo de los Jesarrolladores de software. Capítulo 1: Fundamentos de programación Aquí encontrará los conceptos generales de arquitectura de la pc, hardware, software, lenguajes cie crogramación, metodología de algoritmos, diagramas de flujo, pseudocodigo, variables, constantes, nstrucciones entre otros. Capítulo 2: Estructura secuencial Este capítulo conüene 10 algoritmos básicos para entender y resolver en forma simple los primeros problemas de entrada, proceso (secuencial) y salida de los cálculos realizados.
Capítulo 3: Estructura selectiva simple y doble Este capítulo
tiene 15 algoritmos con la estructura más utilizadas en la solución de problemas llamada
if.
Capítulo 4: Estructura selectiva múltiple Para evitar de resolver problemas en forma anidada usando il aquí en este capítulo üene la solución donde encontrará la forma mas fácil de solucionar problemas sin el uso de if anidados y engorrosos.
Capítulo 5: Estructura repetitiva mientras Para resolver procesos repetitivos aquí tiene 15 problemas que le enseñará a entender y dominar estructura repeütiva y aplicar los conceptos de contador, acumulador; bucles entre otros.
la
Capítulo 5: Estructura repetitiva para Muchas veces es mas fácil resolver procesos repeütivos usando Ia estructura for aquí encontrará 15 problemas resueltos muchos de ellos son problemas del capitulo anterior con la finalidad analizar su simplicidad. Capítulo 7: Estructura de datos Arreglos (vectores y matrices) Uno de los temas mas utilizados en el manejo de colecciones de datos son los arreglos (arrays), este capitulo explica el concepto y resuelve problemas de arreglos, algoritmos de búsqueda y ordenación de datos.
Capítuio 8: Cadena de caracteres No todo es manejo de números en la solución de problemas, este capítulo explica y resuelve problemas con cadena de caracteres (texto).
Capítulo 9: SubAlgortimo (Procedimientos y Funciones) Una de las mejores recomendaciones para resolver
y reuülizar procesos es el concepto de divide y
vencerás, este capítulo enseña como separar un problema en varias partes reutilizables.
ffie$ffru# ffiKeffiffiffww
#
g
.
ffiffi#ffitrffiffiffiffifiryrc
ü*+
Algoritmos con G++
índice Capítulo
1
Fundamentos de Programación 2I
Arquitectura de una
computadora
........22 23 24
Sistemas de Numeración
Conversión binario a decimal
Representación de texto en el sistema
binario
Representación binaria de datos no numéricos ni de texto Los programas (software) .............
.............. 25
......25 25 26
Traductores del lenguaje de programación
27
Ciclo de vida de un software
Algoritmo
28
Caracterísücas que deben de cumplir los algoritmos obligatoriamente
28
Caracterísücas aconsejables para los algoritmos
29
Fases en la creación de algoritmos ....
29
Herramientas de un Algoritmo ...
29
I
nstrucciones ........
..... 31
Comentarios ........
32
Palabras reservadas ............
32
ldentificadores
33
I
33
Constantes ..........
34
Tipo de datos simples (primitivos) ....
34
Tipo de datos complejos (estructurados)
36 37
Control de flujo
40
Capítulo 2 Estructura Secuencial Estructura secuencial Problema 01 Problema 02 Problema 03 Problema 04
Problemas Propuestos .......
Capítulo 3 Estructura Selectiva Simple y Doble
59 59
simple
doble
eroblema L5
... 69
74 78 79
Problema 22 ............. 87
Problema 23
Capítulo 4 Estructura Selecüva Múltiple lntroducción
....
.........
Estructura selecüva múlüple ............ Estructura selecüva múlüple usando rangos
...... es ...... 95 95
......97
97
101 103 105 107 109 1,L2 11.4 1.16
I20 I23 125 128 131
r37
Capítulo 5 Estructura Repetitiva Mientras
139
lntroducción
139 139
Acumulador ...........
t40 1.40 1.40
141.
14t Problema 4L
1.42
Problema 42
t43
eroblema 43
1.45
rroblema 44 rroblema 45 .......... rroblema 46 ..........
1.49
151 1,52
t54 156
Problema 51
157
Problema 52
159
Problema 53
1_60
Problema 54
1,62
Problema 55 .....
1.64
Problemas Propuestos
.......
.;......... t67
Capítulo 5 Estructura Repetiüva Para
169 169
Estructura repetiüva Para
169
Estructura repeütiva Para anidada
170 L70
Problema 57 ...........
L72
,'ruEd*ttrud$i¿66':66 173 175 176 178 179 181
184 185 187 189 190
192 194 197
199 199
204
200
20r Recorrido por los elementos del Array Problema 71 Problema 72
202
.207 Problema 75
209
Problema 79 Problema 80
236
Problemas Propuestos
Capítulo 8 Cadenas de
237
juego de caracteres
237
238 Cadena de caracteres (String) .......
239
Operaciones con cadena
239
Concatenación
239
Extracción de cadenas (subcadenas)
..............
24r
#iiffiii'#üffidÉiGüfi.iG
252
Problemas Propuestos
26r
Capítulo 9
SubAlgoritmos (Procedimientos y Funciones)
263
263
Procedimientos ............
.....264
parámetros
....265
Funciones Paso de
.......264
Parámetros por valor
(entrada)
Parámetros por referencia (salida)
Problema 97
Problema 99.......... Problema 100........
........2Gs 266
..,... 283
.286
$.ii
gffiü u$,ffi#in
gaFftülü i Füildamentos de Programación lntroducción En los primeros ciclos de toda carrera profesional relacionado a la lngeniería de Sistemas, los estudiantes requieren entender, aprender y dominar los fundamentos de programación para resolver problemas que permitirán automatizar procesos usando la computadora.
Saber programar es la base de toda su carrera y para conseguir este objetivo he plasmado mi experiencia
de docencia de mas de L0 años dedicado a la lngeniería de Sistemas, se que este libro le ayudara resolver todas sus dudas y dominar las principales estructuras de programación.
a
Este libro conüene más de 100 algoritmos resueltos y codificados en el lenguaje de C++ el padre de fos lenguajes de programación en la actualidad.
ffi \
tiffitg ' SElEfl
O
C O
¡
-1tW
r ,*i-)$s\\.-',,}\TJJ-
\
\\ tru/((-
A continuación se describen los conceptos generales de los fundamentos de programación.
Computadora Es un aparato electrónico que recibe datos (entrada), los procesa (instrucciones denominado programa) y devuelve información (salida), también conocido como Ordenador o PC (Personal Computer).
En la actualidad existen una variedad de computadoras, para diferentes
Computadora
Servidores
personal
prc:3s:os.
g#
Computadora
Portátil
PDA
Arquitectura de una computadora Las computadoras üenen dos componentes principales que son el hardware y el software que trabajan en coordinación para llevar a cabo sus objeüvos.
Hardware: Hard (Duro)
- ware (Componente);
ffi ,.,f"
representa la parte fisica de la computadora.
$
.
/
-l
-'Y
tu
l
E
s-: :ih
q*
w
¡!
ü :
Software: Soft (Blando) - ware (Componente); representa la pa-:: programas), estos se encuentran almacenados en los compcre-:::'= como memorias RAM, ROM, Discos Duros (HarC Disk\ e^t-e ::'3s !.€iiff;f :,' irlllii:: i
r
,l' F'v '
,, &
.,]
:A? r;a;,
,ii¡,;.
Vind*** u,tt*
-¿
Office
s3
J
a; :omputadora (los
::c^lputadora, tales
:':3'a rnas internos := :s :omo:
. . ¡
3CS I \'1OS (:tl ln -_-vv
*: siguiente figura
muestra como la arquitectura de computadora y sus principales componentes en
coordinación.
Proceso CPU
(Central Processing Unit) ALU
(Arithmetic Logic
U
nit)
Dispositivos de
Dispositivos de
Entrada (rNPUr)
Salida
(ourPUr) Memoria
Memoria I nterna
Externa
't\
s.
W% Unidades de medida de almacenamiento La
memoria interna (RAM)y las memorias externas (Disco duro) almacenan información. La información
que se guarda y enüende la PC esta en formato binario (0 - 1).
BIT (Blnary DigiT): El bit representan la unidad mínima de información, que almacena
una
computadora. BYTE: Esta
compuesto por 8 bit (011100LL), entonces existe
28
= 256 combinaiiones diferentes (tabla de
código ASCII). Por lo general la información se representa por caracteres y cada carácter (número, letra, símbolo, etc.) es un byte. Para medir la información se utiliza múltiplos de bytes. Byte
1B
Kilobyte
1KB
Megabyte
1MB
Gigabyte
1GB
Terabyte
1TB
8 bits
bytes 220 bytes 230 bytes 2ao bytes 210
1024 bytes
t024
KB
1024 MB L024 GB
Sistemas de Numeración Todos los sistemas de numeración tienen una base, que es el número total de sirnbo,cs sistema. En el caso de la numeración decimal la base es L0; en el sistema binario es 2. El
Teorema Fundamental de la Numeración permite saber el valor decimal Quc
q;e utiliza el
ie-e :-a :'rer
número
en cualquier base. Dicho teorema uüliza la fórmula:
Donde:
. .
X,, Es el símbolo que se encuentra en la posición número i del número que se está convirtiendo. Teniendo en cuenta que la posición de las unidades es la posición 0 (la posición -l- sería la del primer decimal). B: Es la base del sistemas que se utiliza para representar al número.
Por ejemplo si tenemos el número 153,6 utilizando el sistema octal (base ocho), el paso a decimal se ha
ría:
1.82 + 5.81 + 3.80 + 6.8-1 = 64 + 40 + 3 + 6 + 8 : IOj,j5
Gonversión binario a decimal El teorema fundamental de la numeración se puede aplicar para saber el número decimal representado por un número escrito en binario. Así para el número binario 10011011011 la conversión se haría (los
ceros se han ignorado):
1.21ü
+ t-27 + 1.26 + L,24 + L.23 + 7-2- + :-2' = ,243
Gonversión decimal a binar¡o El método más utilizado es ir haciendo divisiones sucesivas entre dos. Los restos son las cifras binarias. Por ejemplo para pasar el 39:
39. 2 : 19 + 2: 9+ 2: 4+ 2 = 21+ 2:
19 resto
1
gresLol 4r'esto1 2 rest,o0 l rest.c 0 0 resto 1
Ahora las cifras binarias se toman al revés. Con lo cual, el número 100111 es el equivalente en binario de 39.
ffi Representación de texto en el sistema binario Puesto que una computadora no sólo maneja números, habrá dígitos binarios que contengan información que no es traducible a decimal. Todo depende de cómo se interprete esa traducción.
Por ejemplo en el caso del texto, lo que se hace es codificar cada carácter en una serie de números binarios. El código ASCII ha sido durante mucho tiempo el más utilizado. lnicialmente era un código que utilizaba 7 bits para representartexto, lo que significaba que era capaz de codificar I27 caracteres. Por ejemplo el número 65 (1000001- en binario) se uüliza para la A mayúscula. Poco después apareció un problema: este código es suficiente para los caracteres del inglés, pero no para otras lenguas. Entonces se añadió el octavo bit para representar otros 1-28 caracteres que son disüntos según idiomas (Europa Occidental usa unos códigos que no utiliza Europa Oriental). Eso provoca que un código como el 190
signifique cosas diferentes si cambiamos de país. Por ello cuando un ordenador necesita mostrar texto, tiene que saber qué juego de códigos debe de uülizar (lo cual supone un tremendo problema). Una ampliación de este método de codificación es el código UNICODE que puede uülizar hasta 4 bytes (32 bits) con lo que es capaz de codificar cualquier carácter en cualquier lengua del planeta uülizando el mismo conjunto de códigos. Poco a poco es el código que se va extendiendo; pero la preponderancia histórica que ha tenido el código ASC|l, complica su popularidad
Representación b¡naria de datos no numéricos ni de texto En el caso de datos más complejos (imágenes, vídeo, audio) se necesita una codificación más compleja. Además en estos datos no hay estándares, por lo que hay decenas de formas de codificar. En el caso, por ejemplo, de las imágenes, una forma básica de codificarlas en binario es la que graba cada píxel (cada punto disünguible en la imagen) mediante tres bytes: el primero graba el nivel de rojo, el segundo el nivel de azul y el tercero el nivel de verde. Y así por cada píxel.
Por ejemplo un punto en una imagen de color rojo puro
11111111 00000000 00000000
Naturalmente en una imagen no solo se graban los píxeles sino el tamaño de la imagen, el modelo de colo;... de ahíque representar estos datos sea tan complejo para el ordenador (y tan complejo entenderlo para nosotros).
Los programas (software) Un programa o software es un conjunto de instrucciones ordenadas para ejecutarse en una computadora en forma rápida y precisa.
software se divide en dos grupos; software de sistema operaüvo y software de aplicaciones. El proceso de escribir un programa se denomina programación y el conjunto de instrucciones que se utilizan para escribir un programa se llama lenguaje de programación. El
Lenguajes de programacion Sirve para escribir programas y permite la comunicación usuario (programador) versus rnaquina (pc). Existen tres tipos de lenguajes de programación:
Lenguaje de máquina: Programación binaria, dificil de programar y dependiente de a rnaquina. Lenguaje de bajo nivel (ensamblador): Usa símbolos nemotécnicos, necesita ser traducido al lenguaje de máquina y sigue siendo dependiente.
Lenguaje de alto nivel: Cercano al lenguaje natural, üempo de programación relativamente corto, es independiente de la máquina. A continuación se muestra un plano de la evolución de los lenguajes de programación de alto nivel.
rrw Fortran
/ / / Basic
tffi¡
'l;
C++
r
Perl
-E Oak
@
I
Y
Traductores del lenguaje de programación Son programas que traducen los códigos fuentes (programas escritos en un lenguaje de alto nivel)
a
código máquina. Los
traductores se dividen en:
lntérpretes:Traducción y ejecución secuencialmente (línea por línea), ejecución lenta. Compiladores: Traduce el código fuente a programa objeto (ejecutable código máquina). ejecución rápida.
Ciclo de vida de un software La
construcción de un software por más pequeño que sea, involucra las siguientes etapas:
Requerimiento: Enunciado del problema a resolver. Análisis: iQué? (entender el problema - entrada - proceso - salida) Diseño: éCómo? (resolver el problema - algoritmo - diagrama de flujo
lmplementación: éHacerlo? (Codificación Pruebas: éFunciona? (Verificar
/
/
-
diseño de interfaz de usuario.)
Programarlo)
Comprobar)
Despliegue: i I nstalar? ( Distribuir el programa)
I)/---n1; cout{{"Numero 2: / vroceso
c:n1/n2; r=n1?"n2; //salioa cout{{endl;
: "({c>a; coul({"n: ",' cin)>n,'
/ / Proceso
p : (int) /
pow ( (double)
a' (double) n) ;
/9aLída cout((" \n"; cout(OEntonces r ._ "POSITIVO" Fin Si
>-.-..
Sln)c;
/ / Proceso
r = "NO ES :+t- \U II
VOCAL",.
\-/d
--
-r : "ES
l,I I
(- ::
\nt\ A ) i r
VOCAL"
]
if
1s :: 'e' ll c r = "ES VOCAL"
] :Fr^ 1r \u
i
\r,a
--
-r : "ES
; € t^ rr \u
r :
\^/ u
.t--
I I
(-]
VOCAL"
"ES
L l I I
U
VOCAL"
]
if (q:: 'u' ll C r : "ES VOCAL" )
/
/Salida
uvuL\\ ^^11t//tt\
\rl^tt
-
,
cout(("Resu1tado
:
">n1,' cout(("Numero 2: "; cin>>n2,' cout(('/\lumero 3: "i cin>>n3; /
/Proceso
if (n1 > n2) I if (n1 > n3){ m : n1; ]else{ m:n3;^ i ]else{ if (n2 > n3) { m = n2; ielse{ : m n3,' 1
I
)
/ /SaLlda cout(("\n"; cout(("Mayor : "n2 Y n1>n
2>nl Y n2>n3 mayor:
-
mayor
n3
-
n2
mayor
-
n1
nI n3 Entonces malor * nl /
3 'No
Sr n2 > nl Y n2 > n3 Entonces maYor * n2 S
iNo
Frn Si
mayor -
n3
fin Sr Sr n1 < n2 Y nl < n3 Entonces menOr * n1 S
iNo
Si n2 < nl Y n2 < n3 Entonces ¡19¡6¡ * n2 .:aNo
Fin
Frn Si
menor * n3
S
inter * (n1+n2+n3) - (mayor+menor) / /satiaa Escribir mayor/ inter, -E'.an
menor
I I
I
L Codificación:
*include usrng, namespace std;
void
main
(void)
{
/ / var-LaDles
int
n1 ,
n2, n3 / mayor,
inter,
menor;
/ /trn¡-rad.a
cout(("Numero 1: ",. cin>>n1; coutd("Numero 2 : ",. cin))n2 i cout(("Numero 3: ",. c'in>>n3; /
/Proceso
]
else
if(n1 > n2 e& nl > n3) { mayor : ni-; {
if(n2 > nl ielset
&& n2 > n3) { mayor : n2; mt\7^r
:
n?.
]
l
if (n1 < n2 && ¡1 < n3){ menor : n1i l
else
{
rf(n2 100 ){ ]
md:c elseT md:c
*
l*
D1;
)
]
m_iqv:(c-m_d¡ v
rJ
/ / Sal vvuL ^^1.r//"\
\
-m.]r-
*IGV;
,fl lqv;
ida \
j \- ^,t.
ceut(("Monto descuento : ")n2; / / Proceso
if (op ::
r+')
{
r:nl-n2; ]else if(op =='-') r=nl-n2; )else if (op :: '*') r
=
n1
x
n).
lLL,
)else if (pp =: '/' l-
1F t¡) \rr¿
¿!
.
,
n\
v I
r:n1/n2; else
r = u;
I
/
/ SaIida
r^11T¿att\ñtt.
COüt((//ReSUltado ¡ "14¡20Entonces e - "VERANO'¿ Frn Sr
e-" INVIERNO"
e_,,INVIERNO,,
m-9 Y
cl>
e. ,, PRIMAVERA
LA ,
II,12
Fin
-"PRIMAVtrRA"
:12 Y
Caso
/ /Sal-ída trscribir
d>
Fin
Escribir
*oroÑo"
e
e
Codificación:
#include {iostream) #include (string> using namespace st.d; void main (vold) { //varraores int d, m,' c1-ri
n¡
\\//.
_
ó
/ / Entrad.a
cout()d; coulm; / / Pfacesa
switch (m) { case 1: ¡>ca ¡¡ : B0 Y p :100 Entonces f -.ISISTEMAS" Fin /
f -
*NINGUNO"
Sr
/SaLída
Escribir f Escribir
f
Fin
Codificación:
#rnclude (iostream) #include usi ng nanespace std,'
void
(void)
main
{
/ ., VaL -LdU LeS i ^r ^. lrrL P, \\//. ctrin¡ rf -JLIarlV ¡
/
/nnLrada
g6ul(("Puntaje: "; cin>>p; r!vusDv // //o-^-^ca /(P \fi + r /^
frval qq cr
\^P z-
fl O\ Jt
f: *CIENCIAS"; else if (p >: 80 && p a;
/,/ Proceso
switch
(m)
{
case 1:
ml -
"ENERO",'
1-rra¡1,.
v!vul\,
case 2:
:t(a e ¿ :: O && (a d - 29; e 1se d, = 28; ml : "FEBRERO",' L-^-t-. UIgdA,
case 3:
O : JI,. ml : "MARZO",' !!ga^,
case 4: d = JU,' *l m-L -=
\\nññ
rf // A}JKLt,.'' ¡
l^-^-r.. !IgAN,
case 5:
d : 3l;
mf :
"MAYO",'
L-^-t-. U!gdA,
case
6:
d:
30;
= "JUNÍO"; L-^-t-.
ml-
gaN,
!r
d: l -lrLa
31; -*
\\ TI'T T^/, uv!rv
r
i
UICdA'
case 8: d : 31; mI : "AGOSTO",. u r gd^,
case
9:
d=30; mf : "SEPTIEMBRE",.
!rgd^,
?
100 l:0
$ 119
l1 a
%
400::0))
case 10: d -- 31; m] = "OCTUBRE",' break,'
case 11:
d : 30; ml : "NOVfEMBRE",'
break; case 12:
d=31i
MI : *DICIEMBRE,'; break; I
/ / bar10a cou L>d1 i cin>>d2,' cin>>d3;
-
^y
taxpíihilo.,4;,:,,,F uetúr*,,$eh,g.1iv¿,$úEigf e
/ / Proceso
if(Of:6 *e d2::6 && d3 -:6) p : "oRo"; else if( (d1 :: 6 && d2 :: 6) I I (d1 :: 6 (d2::6 && d3:: 6)) n
_
efse
Ur\v¡\gÚ
-
P:
=: 6)
&&
\\ DT A.I'A // .
else if (d1 :: 6 'l \\PDrlNIr-r". ñ y
&& d3
d.2
:: 6 lt d3 ::
6)
'
.'PERD]O";
/ /SaLida cout(("\n";
cout0 Y dOYm0
-
/sat¡aa
Escr::c-: Fin
.
INCORRECTO,,
Capitulo 4: Estructura Selcctiva Múltiple Codificación:
#include #include using namespace sld;
void
main
(void)
{
/Variables int drm, a, dmax /
clri u!!r1lY
nn
!
/ /trnLrada
cout 0) { d - n e" 10; rf (d > m) { m:d; )
n /:
70;
] / /cI i ¡^ / / oallgd
cout>n,' / / Proceso flag : true" :L -
a. Z;
while(i 0) { d: n % lO; n /: IO; if (d >: b) { flag : false,' brea k; ]
]
rf
(flag)
r : e1 se r :
"BASE CORRECTA'".
"BASE INCORRECTA";
/ / Salaoa coutnf ,'
";
rruLc¡u // //ñ
^^^^-^
ni : ni + 1,' nf:nf-1; for(i - ni; r (: nf,' i++) { if(i%2-:a) . ¡n
+,
1Lt
]
/ / SaLida
cout(( " \ ¡"; couc>n cin>>d,'
[2] [3] [4]
cr-n>>n I I l
cout(("Divisor: /
cin>>n
A.
i++)
{
0)
]
/ /Salida qgLll(( " \n"; cout(("Cantidad:
">n [3 ] ; cin>>n [4 '] ,'
/Proceso
for (i : Q,' i>n [ 0 cin>>n [1 cin>>n [2 4 cin>>n [3 5 cin>>n [4 6 cin>>n l5 7 cin>>n [ 6 a buscar : ",' cin>)nb,' 1
2 3
/Proceso
r = "NO EXISTE" ^ - _1r, . P for(i:0;i>a[1
cin>>a l2 cin>>a l3
cout(("\n"i
coutn[0 t0l cin>>n[0 t1l cin>>n [0 t2l cin>>n[1 t0l t1l cin>>n
[1]
cin>>n[2]
t2) {01
cin>>n [ 2 t1l cin>>n [2 l2)
cin>>n[3 t0l cin>>n[3 t1l cin>>n[3 t2)
1
0 1 2
l //
sarida
cout.n t2lt0l
(2, A) cout>n 13 : l2l ;
/ /Proceso r : "NO EXISTE"; n] yr ^t YL
.
*-
-1 1. Ll
for(i:0; inl0l t0l cin))nl0l t1l cin>>nt1l l0l cin))nill t1l cin))nt2l l0l cin>>nt2l t1l
(0r 1)
(1,0)
(1r 1)
\2,A)
(2 , 7 )
/ / Proceso m = nLUl LUI;
for (i =
A;
in[¡+1]
[O
tmp * nljl l0l ntjllCl. nlj+ilICr n[j+1] lOl * tmp
ljl
t1l>ntl+11 [1
tmp - nltl t1l ntjllll* ntj+1lt1l nlj+11 [1] .- tmp
Sr n[]l t0l>nIj+1] [0] Entonces tmp * ntjl tOl nIt][0]* ntj+11 t0l n It+1] [0] - tmp Frn Sr S:- n Ir ] t1l>n It+1] [1] Entonces tmp - ni¡l l1l ntjltllntl+1ll1l n[1+i] [1] . tmp Frn Sr Fin Para Fin Para /
Fin
Leer nt0l t0l,n[0] [1], n[1]t0l,n[1] [1], nt2l[0],nl2l [1]
/sat¡-aa
trscribir ntOl tOl,ni0l l1l, ntll t0l,n[1j :1], n12)lOl,n[2)lr)
I
Algoritmos con G++
Codificación:
#include (iosLream) us
i nq narnespace scd;
void
main
(void)
{
//VaraaI)les
inl
tmp,
i, j,
/ /Arreqlos int n l3l l2l
LS;
;
,/ /Entrada cout({"Numero (0,0) coutn t0l t0l ;
cout(("Numero \Lt¿) cout(("Numero (2,0) cout(("Numero (2,I) cout((/'Numero (2,2)
cin>>n ]) 121 ; cin>>n t2l l0l ;
cout(("Numero cout(("Numero cout{{"Numero cout(("Numero cout>c,' i
/ /Proceso a : (int) c; / /SaLida cout(("\n"; couL: 48 && a 1;
(cin, f);
/Proceso or (i : O; i>n2;
s = Sumar(n1, nz]ri / /satioa cout>n1; ",' cin>)n2;
/ / Praceso
m
: Mayor(n1,
//Salida
m
n2) ;
coutn,'
/Proceso c : CantidadDigitos (n),'
//Salida couL( 0)
{
num:num/lO; u ^
ar-
1 f ,.
]
/ /Saltda return c;
{
lcapíüa&o:isli i,sr$H .
fg¿tti ió1.;{F}db'edimiaxtés'
y,
rF,u*¿iü*é*}r
l
'fi
Problema 100 Enunciado: Crear un algoritmo para hallar el factorial de un número, el factorial es el producto de todos los números consecutivos desde la unidad hasta el número, porejemplo factorial de 3! (se denota !) es 1X 2 X 3 = 6. Cree una función para resolver el problema. Factorial(
E: n
um: Entero): Entero
lnterfaz de Usuario
.,1,1
, Pseudocodigo
Diagrama de Flujo
Principal
Principal
Inicio Inicio
//variables ltr
r
.
ltlLgrv
n,
t:
/
Leet r
/znl-rada l-eer: n
f - Fac--orial (n)
/ /Proc,eso
Entero
/
Escribir f fin
f . Fac--oriaL (n)
/ /satiaa trscribir: f
Fin
SubAlgoritmo Diagrama de Flujo
Pseudocodigo
El¡ncion Factorial
(E
:
nun: Entero) : Entero
Inrcio /
num,f,i:Entero Leer
num
/VaríabLes locales
i
/
i
.
L'ñl^v^
/Proceso
I._l
Para i*1 Hasta num Tnc f -f * r r an PaIa /
/satiaa
Retornar f
Fin Funcion Escribir f
1
Codificación:
#include usi ng namespace std,'
inl Factorial (int //Principal void mai n (void)
num)
{
/Varíables
I
ttr r,
tltL
/ / Lntrada cout{("Numero: "; cin)}n; / / Proceso
f = Factorial (n);
/Salida cout(("\¡"; cout(("Factorial /
: "numIj+1 tmp . numlj]
numljl *
numl¡+11
numl¡+11 - tmp
rl ". D^-^ I f 11 Fdrd
/sati¿a Escribir /
num
Fin Procedimiento
Escribir
num
1
num[] I >numIj+1] Entonces
Codificación:
#include >nl0l; cin>>n[1];
f.
2z
cin>>n cin>>n
3 4
[2]
[3]
/,/ Proceso
Ordenar (n);
/ / SaLida
cout
View more...
Comments