Fundamentos de programacion C++ Ricardo Villalobos

May 5, 2017 | Author: Mauricio Xavier | Category: N/A
Share Embed Donate


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



\\//.

_

ó

/ / 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

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF