Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
PROGRAMACIN
ESTRUCTURADA EN
C++
:::2:::
:::3:::
INTRODUCCIN
Los captulos I y II son temas introductorios necesarios para empezar a
resolver problemas con las computadoras, el captulo III hace referencia a
problemas de tipo secuencial, en el captulo IV estn los problemas de
tipo selectivos (if, if else, switch), y en el captulo V tenemos problemas
repetitivos (for, while, do-while).
Los arreglos unidimensionales y bidimensionales se encuentran en el
captulo VI, los mtodos de ordenacin y bsqueda se encuentran en los
captulos VII y VIII, finalmente el tema de funciones se encuentra en el
captulo IX.
La mayora de los ejercicios desarrollados en este libro contienen la parte
de anlisis, diseo y programacin, los programas fueron escritos en el
lenguaje de programacin C++, para la parte de los diagramas de flujo se
utiliz el programa DFD.
:::4:::
CONTENIDO
CAPTULO 1: ALGORITMOS Y PROGRAMAS
1.1. LOS SISTEMAS DE PROCESAMIENTO DE LA INFORMACIN .....................
1.2. ALGORITMOS ...........................................................................................................
1.2.1. Nocin de Algoritmo ..............................................................................................
1.2.2. Caractersticas de los Algoritmos ..........................................................................
1.2.3. Partes de la definicin de un Algoritmo ...............................................................
1.3. APLICACIONES ........................................................................................................
1.3.1. Programas y Aplicaciones ......................................................................................
1.3.2. El ciclo de vida de una aplicacin .........................................................................
1.4. LENGUAJES DE PROGRAMACIN ......................................................................
1.4.1. Tipos de Lenguajes ..................................................................................................
1.4.2. Traductores de Lenguajes ......................................................................................
1.4.2.1. Intrpretes .............................................................................................................
1.4.2.2. Compiladores .......................................................................................................
1.5. PROGRAMACIN ....................................................................................................
1.5.1. Programacin Desordenada ..................................................................................
1.5.2. Programacin Estructurada ...................................................................................
1.5.3. Programacin Modular ..........................................................................................
1.5.4. Programacin Orientada a Objetos .......................................................................
1.6. DATOS Y TIPOS DE DATOS ...................................................................................
1.6.1. Datos Numricos .....................................................................................................
1.6.1.1. Enteros ...................................................................................................................
1.6.1.2. Reales .....................................................................................................................
1.6.2. Datos Lgicos ...........................................................................................................
1.6.3. Datos tipo carcter y tipo cadena ..........................................................................
1.7. CONSTANES Y VARIABLES ...................................................................................
1.7.1. Constantes ................................................................................................................
1.7.2. Variables ...................................................................................................................
1.8. EXPRESIONES ...........................................................................................................
1.8.1. Expresiones Numricas ..........................................................................................
1.8.2. Expresiones Alfanumricas ....................................................................................
1.8.3. Expresiones Booleanas ...........................................................................................
1.9. OPERADORES ...........................................................................................................
1.9.1. Aritmticos ...............................................................................................................
1.9.2. Alfanumricos .........................................................................................................
1.9.3. Relacionales .............................................................................................................
1.9.4. Lgicos ......................................................................................................................
1.9.5. Parntesis .................................................................................................................
1.9.6. Orden de prioridad de los operadores .................................................................
1.10. FUNCIONES INTERNAS .......................................................................................
1.11. LA OPERACIN DE ASIGNACIN ....................................................................
Preguntas de Repaso ........................................................................................................
Ejercicios Propuestos ........................................................................................................
:::5:::
7
8
8
8
9
9
9
10
11
11
12
12
13
14
15
15
15
15
16
17
17
18
18
18
19
19
20
21
21
22
22
22
22
24
24
26
27
27
28
29
30
32
:::6:::
ALGORITMOS
Y
PROGRAMAS
:::7:::
:::8:::
:::9:::
1.2
ALGORITMOS
1.2.1 Nocin de Algoritmo
-
:::10:::
1.3
APLICACIONES
1.3.1 Programas y Aplicaciones
-
:::11:::
b.
c.
:::12:::
1.4
LENGUAJES DE PROGRAMACIN
Es un conjunto de smbolos, caracteres y reglas (programas) que
permiten a las personas comunicarse con la computadora. Los
lenguajes de programacin tienen un conjunto de instrucciones que
nos permiten realizar operaciones de entrada/salida, calculo,
manipulacin
de
textos,
lgica/comparacin
y
almacenamiento/recuperacin.
:::13:::
Intrpretes
Compiladores
1.4.2.1
Intrpretes
:::14:::
- Ventajas
o
o
- Desventajas
o
o
o
1.4.2.2
Compiladores
:::15:::
- Desventajas
o
o
1.5
PROGRAMACIN
La programacin consiste en pasar algoritmos a algn lenguaje de
ordenador a fin de que pueda ser entendido por el ordenador.
La programacin de ordenadores comienza en los aos 50 y su
evolucin a pasado por diversos pasos. La programacin se puede
realizar empleando diversas tcnicas o mtodos. Esas tcnicas definen
los distintos tipos de programaciones.
:::16:::
:::17:::
1.6
:::18:::
signed char
int
unsigned
double
unsigned char
long
unsigned long
long double
1.6.1.1
Enteros
10
30
-1000
2000
:::19:::
1.6.1.2
Reales
1
0
:::20:::
Ejm:
Hola Mundo
17 de diciembre de 1979
lmbenique@hotmail.com
Lenguajes de Programacin
En C++ se pueden almacenar caracteres o cadenas de
caracteres declarando variables con char.
1.7
CONSTANTES Y VARIABLES
1.7.1 Constantes
Son objetos cuyo valor permanece invariable a lo largo de la
ejecucin de un programa. Una constante es la denominacin de un
valor concreto, de tal forma que se utiliza su nombre cada vez que
se necesita referenciarlo.
Ejemplos:
Constantes reales.
PI = 3.141592
E
= 2.718281
Constante tipo carcter o constante de caracteres.
B
+
4
;
Constante tipo cadena.
Crisber Sahid Benique Almanza
Haydee Humpiri Cucho
Constantes lgicas.
Verdad
Falso
La mayora de los lenguajes de programacin permiten diferentes
tipos de constantes: enteras, reales, caracteres y boolean o lgicas, y
representan datos de esos tipos.
:::21:::
Definicin de Constantes
En C++ las constantes se crean antes de la funcin main utilizando
la siguiente sintaxis:
#define Nombre Valor
Ejm:
#define PI 3.1416
#define VERDAD 1
#define TRES 3
1.7.2 Variables :
Son objetos cuyo valor puede ser modificado a lo largo de la
ejecucin de un programa. Dependiendo del lenguaje, hay
diferentes tipos de variables, tales como enteras, reales, carcter,
lgicas y de cadena. Una variable que es de un cierto tipo puede
tomar nicamente valores de ese tipo. Una variable tipo carcter,
por ejemplo, puede tomar como valor slo caracteres, al igual que
una variable entera puede tomar slo valores enteros.
Los nombres de las variables, a veces conocidos como
identificadores, suelen constar de varios caracteres alfanumricos,
de los cuales el primero normalmente es una letra. No se deben
utilizar como nombres de identificadores palabras reservadas del
lenguaje de programacin.
Tipo Variable;
:::22:::
1.8
EXPRESIONES
Una expresin es la representacin de un clculo necesario para la
obtencin de un resultado. Se define una expresin de la siguiente
forma:
-
PI * SQR ( 25 )
E + PI
:::23:::
DON + N
1.9
A>0yB<=5
OPERADORES
Para la construccin de expresiones se pueden utilizar, de forma
general, los siguientes operadores:
1.9.1 Aritmticos
Los operadores se utilizan de igual forma que en matemticas. Por
consiguiente:
A . B se escribe en un algoritmo como A * B
6 x 4 se escribe como 6 * 4
35 se escribe como 3^5
Todos los operadores aritmticos no existen en todos los lenguajes
de programacin. El operador exponenciacin es diferente segn el
tipo de lenguaje de programacin.
Operador
,,**
+
*
/
div
mod
Significado
Exponenciacin
Suma
Resta
Multiplicacin
Divisin
Divisin entera
Mdulo (resto)
Tipos de
operandos
Entero real
Entero real
Entero real
Entero real
Real
Entero
Entero
Tipo de
resultado
Entero real
Entero real
Entero real
Entero real
Real
Entero
Entero
:::24:::
7
1
Ejm:
a) 7 / 2
b) 7 div 2
c) 7 mod 2
= 3.5
= 3
= 1
2
3
cociente
6
3
cociente
resto
19
1
d) 19 / 6
= 3.17
e) 19 div 6 = 3
f) 19 mod 6 = 1
resto
Operador
+
+
*
/
%
++
--
Nombre
Ms unitario
Negacin
Suma
Resta
Multiplicacin
Divisin
Mdulo
Incremento
Decremento
Formato largo
Formato reducido
+=
-=
*=
/=
%=
a = a + b;
a = a b;
a = a * b;
a = a / b;
a = a % b;
a += b
a -= b
a *= b
a /= b
a %= b
:::25:::
Ejm:
Si a=10 y b = 4
a) a += b
a=a+b
a = 10 + 4
a = 14
b)
a %= b
a=a%b
a = 10 % 4
a=2
1.9.2 Alfanumricos
Aqu tenemos el operador de concatenacin (+)
Ejm:
JUAN + A = JUANA
LOS + + PROGRAMAS = LOS PROGRAMAS
EL + CIELO + AZL = ELCIELOAZL
1.9.3 Relacionales
Los operadores relacionales o de relacin sirven para expresar las
condiciones en los algoritmos. Se pueden aplicar a cualquiera de los
cuatro tipos de datos estndar (enteros, real, lgico y carcter).
Operador
Significado
<
>
=
<=
>=
<>
Menor que
Mayor que
Igual que
Menor o igual que
Mayor o igual que
Distinto de
Ejm:
6>5
10 <> 5 + 2
4=2
:::26:::
es verdad
es verdad
es falso
Operador
<
<=
>
>=
==
!=
?:
Nombre
Menor que
Menor o igual que
Mayor que
Mayor o igual que
Igual a
No igual a
Asignacin condicional
Ejm:
6 >= 5
10 != 10
4 == 2
es verdad
es falso
es falso
Operador ?:
El operador ?: se conoce como expresin condicional. La expresin
condicional es una abreviatura de la sentencia condicional if-else.
variable = (condicin) ? expresin1 : expresin2;
La expresin condicional comprueba la condicin. Si esa condicin
es verdadera, se asigna expresin1 a variable; en caso contrario se
asigna expresin2 a variable.
Ejm:
Si a=10 y b = 4, el mayor es:
a) mayor = (a>b) ? a : b;
mayor = (10>4) ? 10 : 4;
si (10>4) entonces mayor = 10 sino mayor = 4
como 10>4 entonces mayor = 10
b) Z = (2>6) ? a : b;
Z = (2>6) ? 10 : 4;
si (2>6) entonces Z = 10 sino Z = 4
como 2>6 es falso entonces Z = 4
:::27:::
1.9.4 Lgicos
Los operadores lgicos o booleanos bsicos son:
Operador
Significado
Operador en C++
not (no)
and (y)
or (o)
Negacin
Conjuncin
Disyuncin
!
&&
||
no a
ayb
aob
V
V
F
F
V
F
V
F
F
F
V
V
V
F
F
F
V
V
V
F
Ejm:
a) no ( 6 > 10 )
no ( F )
V
b) ( 6 > 10 ) y ( 4 < 30 )
FyV
F
c) ( 10 > 6 ) o ( 5 > 8 )
VoF
V
d) no (( 10 > 6 ) o ( 5 > 8 ))
no ( V o F )
no ( V )
F
:::28:::
1.9.5 Parntesis
Se utilizan para anidar expresiones y se evalan desde los ms
internos.
Ejm:
a)
b)
(6*(5+4)(6+3))+2
(6*99)+2
(549)+2
45+2
47
(4(10+(60%4)))
(4(10+0))
(410)
6
((3+2)^215)/2*5
(5^215)/2*5
(2515)/2*5
10/2*5
5*5
25
:::29:::
b) 5 2 > 4
52>4
3 >4
y
y
y
y
y
y
F
no
no
no
no
no
F
0.5 = 1/2
0.5 = 0.5
0.5 = 0.5
0.5 = 0.5
V
Funcin
Descripcin
abs(x)
arctan(x)
sen(x) [sin(x)]
cos(x)
ln(x)
log10(x)
cuadrado(x) [sqr(x)]
raiz2(x) [sqrt(x)]
redondeo(x)
trunc(x)
Valor absoluto de x
Arco tangente de x
Seno de x
Coseno de x
Logaritmo neperiano de x
Logaritmo decimal de x
Cuadrado de x
Raz cuadrada de x
Redondeo de x
Truncamiento de x
Tipo de
argumento
Entero o real
Entero o real
Entero o real
Entero o real
Entero o real
Entero o real
Entero o real
Entero o real
Real
Real
Resultado
Igual que argumento
Real
Real
Real
Real
Real
Igual que argumento
Real
Entero
Entero
Ejm:
a)
b)
c)
d)
e)
f)
g)
h)
i)
j)
:::30:::
cuadrado(6) = sqr(6) = 36
sqr(-10) = 100
raiz2(81) = sqrt(81) = 9
trunc(9.8) = 9
trunc(-6.9) = -6
redondeo(9.8) = 10
redondeo(-6.9) = -7
abs(-3.3) = 3.3
abs(-8) = 8
sen(30) = 0.5
Asignamos 5 a la variable a
Asignamos 10 a la variable b
Sumamos las variables a, b y lo
asignamos a la variable suma
x raiz2(x+raiz2(x)+5)
x almacena el valor 2
x cuadrado (2+2)
x cuadrado (4)
x toma el valor del cuadrado de 4; 16
x raiz2(16+raiz2(16)+5)
x raiz2(16+ 4
+5)
x raiz2(25)
x es la raz cuadrada de 25; x es 5
:::31:::
Preguntas de Repaso
1. Un algoritmo es:
a) Un conjunto ordenado y finito de operaciones que permite hallar
la solucin de un problema.
b) Un programa que resuelve diagramas de flujo.
c) Son pasos no estructurados que ejecuta una mquina.
2. No corresponde a una caracterstica de los Algoritmos
a) Los algoritmos deben de ser infinitos.
b) Los algoritmos deben de ser precisos.
c) Los algoritmos deben de poder repetirse.
3. Elementos que conforman un algoritmo
a) Entrada, Proceso, Salida.
b) Salida, Datos procesados, Proceso.
c) Datos, Salida, Proceso.
4. Fases en la creacin de Algoritmos en orden
a) Anlisis, Diseo, Prueba.
b) Prueba, Diseo, Anlisis.
c) Diseo, Anlisis, Prueba.
5. Software formado por uno o ms programas
a) Aplicacin.
b) Programa.
c) Algoritmo.
6. Corresponde a los pasos del ciclo de vida de una aplicacin
a) Anlisis, Codificacin, Mantenimiento
b) Programacin, Diseo del algoritmo, Ejecucin.
c) Anlisis, Datos Procesados, Diseo del algoritmo.
7. Segn el estilo de programacin, los tipos de lenguajes son:
a) Imperativos, Declarativos, Funcionales, Lgicos
b) Funcionales, Lgicos, Declarativos, Orientado a objetos.
c) Estructurados, Declarativos, Orientado a objetos, Lgicos.
8. Se convierte cada lnea a cdigo mquina y se ejecuta ese cdigo
mquina antes de convertir la siguiente lnea.
a) Intrpretes.
b) Programas.
c) Compiladores.
:::32:::
(
(
(
(
(
(
(
(
(
(
)
)
)
)
)
)
)
)
)
)
:::33:::
Ejercicios Propuestos
I.1. Hallar el valor de las siguientes:
13 / 3
13 div 3
13 mod 3
15 div 4
15 mod 4
=
=
=
=
=
Z 60 mod 7
Z (Z + 3)^2
Z (6>5) o (3=5)
Z no Z
Z (5 != 5) ? 6 : 4
X > 3 y Y = 4 o X + Y <= Z
2 * Y ^ 2 6 * Y + 12
(trunc(6.3) + Y + sqr (Y*Z)) ( Z )
redondeo (3.6) + X * Z
:::34:::
METODOLOGA
PARA LA
RESOLUCIN DE
PROBLEMAS CON
COMPUTADORAS
:::35:::
:::36:::
ANLISIS
DISEO DEL
RESOLUCIN DEL
DEL PROBLEMA
ALGORITMO
PROBLEMA CON
COMPUTADORA
2.1
Qu entradas se requieren?
Cul es la salida deseada?
Qu mtodo (operacin) produce la salida deseada?
ANLISIS DEL
PROBLEMA
DEFINICIN DEL
ESPECIFICACIONES
OPERACIONES
PROBLEMA
DE ENTRADA Y
NECESARIAS
SALIDA
:::37:::
Ejemplo 2.a
Anlisis:
Entrada :
Salida :
Proceso :
Entrada
Salida
Proceso
radio
area, circunferencia
Clculo de superficie y
circunferencia
- Figura 2.3: Ejemplo 2.a -
Ejemplo 2.b
Anlisis:
Entrada :
Salida :
Proceso :
Entrada
lado
Salida
Proceso
area, perimetro
:::38:::
Ejemplo 2.c
Anlisis:
Entrada :
Salida :
Proceso :
Salida
Proceso
base, altura
area
Ejercicio
Anlisis:
Entrada :
Salida :
Proceso :
Ejercicio
Anlisis:
Entrada :
Salida :
Proceso :
Ejercicio
Anlisis:
Entrada :
Salida :
Proceso :
Lilian M. Benique Ruelas
la
hipotenusa
de
un
tringulo
_____________________________________________
_____________________________________________
_____________________________________________
_____________________________________________
2.2
Clculo de
area
radio
area=PI*radio^2
Clculo de
circunferencia
circunferencia=2*PI*radio
Entrada
de datos
Salida
resultados
area
circunferencia
:::40:::
Subproblemas
Refinamiento
Entrada de datos
Leer radio
Calculo de rea y
circunferencia
area = 3.141592*radio^2
circunferencia = 2*3.141592*radio
Salida de resultados
Pseudocdigo.
Diagramas de Flujo.
Diagramas N-S (Nassi - Schneiderman).
2.2.1.1
Pseudocdigo
:::41:::
Ejemplo 2.d
Diseo:
inicio
leer radio
area 3.141592 * radio ^ 2
circunferencia 2 * 3.141592 * radio
escribir area, circunferencia
fin
Ejemplo 2.e
Diseo:
inicio
leer lado
area lado * lado
perimetro lado + lado + lado + lado
escribir area, perimetro
fin
Ejemplo 2.f
Diseo:
inicio
leer base, altura
area base * altura / 2
escribir area
fin
:::42:::
Ejercicio
Diseo:
inicio
__________________________
__________________________
__________________________
fin
Ejercicio
Determinar
rectngulo.
la
hipotenusa
de
un
tringulo
Diseo:
inicio
__________________________
__________________________
__________________________
fin
Ejercicio
Diseo:
inicio
__________________________
__________________________
__________________________
fin
2.2.1.2
Diagramas de Flujo
:::43:::
NOMBRE
Terminal
Proceso
Entrada/Salida
Entrada manual
Pantalla
Llamada a funcin
o mdulo
(subprograma)
Conector en la
misma pgina
:::44:::
DESCRIPCIN
Indica el comienzo inicio
o final fin de nuestro
algoritmo.
Representa
tambin una parada o
interrupcin
programada
que sea necesario realizar.
Dentro de el se coloca una
expresin para que se
ejecute.
Permite la introduccin de
datos desde los perifricos,
entrada, o registro de
informacin procesada en
un perifrico, salida.
Indica que se recibe un dato
desde el teclado y dentro de
este se coloca la variable en
donde se almacenar.
Dentro de el se coloca el
mensaje y/o datos que
queremos aparezcan en el
monitor.
Indica que se debe de
ejecutar la funcin o
mdulo que esta escrita
dentro de l.
Se utiliza para continuar la
secuencia del algoritmo en
otra parte de la hoja. El
conector debe de estar en
ambos lados y con el mismo
nmero.
Se utiliza para continuar la
secuencia del algoritmo en
otra pgina. El conector
debe de estar en ambos
lados y con el mismo
nmero.
Decisin
Pantalla
Se utiliza en ocasiones en
lugar del smbolo de E/S.
Comentarios
Indicador de
direccin o lnea
de flujo.
2.2.1.3
DFD
:::45:::
Descripcin
Asignacin - Proceso
Ciclo mientras
Ciclo para
Decisin Condicin
Lectura - Entrada
Salida
As, del ejercicio 2.a, 2.b y 2.c los diagramas de flujo son:
:::46:::
Ejemplo 2.g
Diseo:
inicio
leer radio
fin
Ejemplo 2.h
Diseo:
inicio
leer lado
fin
:::47:::
Ejemplo 2.i
Diseo:
fin
2.2.1.4
fin
Ejm: Diagrama N-S del ejercicio 2.i
leer
base, altura
calcular
area base * altura / 2
escribir
area, perimetro
:::48:::
2.3
RESOLUCIN
DEL
COMPUTADORA
PROBLEMA
CON
LA
CODIFICACIN DEL
EJECUCIN DEL
COMPROBACIN
PROGRAMA
PROGRAMA
DEL PROGRAMA
:::49:::
:::50:::
Documentacin Interna
Documentacin Externa
Manual del Usuario
Preguntas de Repaso
1. Se trata de entender cules sern los datos de entrada y salida:
a) Anlisis del problema.
b) Diseo del algoritmo.
c) Codificacin.
2. El diseo del algoritmo es :
a) Independiente del lenguaje de programacin.
b) Un proceso complicado.
c) La parte inicial de todo problema.
3. Son herramientas para disear algoritmos.
a) Diagramas de Flujo, Pseudocdigos.
b) Pseudocdigos, Pseudos-lenguajes.
c) Diagramas N-S, DFDs
4. Es la operacin de escribir la solucin del problema en una serie de
instrucciones detalladas, en un cdigo reconocible por la
computadora.
a) Codificacin.
b) Pseudo-codificacin.
c) Mantenimiento.
5. Es la gua o comunicacin escrita es sus variadas formas, ya sea en
enunciados, procedimientos, dibujos o diagramas.
a) Documentacin.
b) Depuracin.
c) Programacin.
:::51:::
Ejercicios Propuestos
II.1. Realizar el anlisis de los siguientes:
:::52:::
ESTRUCTURAS
SECUENCIALES
:::53:::
:::54:::
inicio
accin1
accin2
accin3
fin
accin1
accin2
accin1
- Pseudocdigo -
fin
Diagrama de Flujo
:::55:::
Diagrama de flujo:
inicio
V.E.
leer a,b
Nmeros (a,b)
V.S.
s a + b
p a * b
Suma (s)
Producto (p)
escribir s,p
fin
Prueba de Escritorio:
A
Pantalla
10
19
90
19,90
Programa:
#include<iostream.h>
void main()
{
int a,b,s,p;
cout<<"ingrese a: ";cin>>a;
cout<<"ingrese b: ";cin>>b;
s=a+b;
p=a*b;
cout<<"Suma es
: "<<s<<endl;
cout<<"Producto es: "<<p;
}
:::56:::
82 8 * 8 64
V.E.
Nmero (n)
V.S.
Cuadrado (c)
Diagrama de flujo:
Pseudocdigo:
inicio
inicio
leer n
c n * n
leer n
escribir c
fin
c n * n
Prueba de Escritorio:
n
Pantalla
64
64
escribir c
fin
Programa:
#include<iostream.h>
void main()
{
float n,c;
cout<<"Ingrese el nmero:
";cin>>n;
c = n*n;
cout<<"El cuadrado es:
"<<c;
:::57:::
Diagrama de flujo:
Ao de nacimiento (an)
Ao actual (aa)
inicio
V.S.
leer an,aa
Edad (e)
Pseudocodigo:
aa-an
inicio
leer an,aa
escribir e
e aa - an
escribir e
fin
Fin
Prueba de Escritorio:
an
aa
Pantalla
1987
2008
21
21
Programa:
#include<iostream.h>
void main()
{
int an,aa,e;
cout<<"Ao de nacimiento: ";cin>>an;
cout<<"Ao actual
: ";cin>>aa;
e=aa-an;
cout<<"Edad : "<<e;
}
:::58:::
rea = L2
Permetro = L+L+L+L
L
L
V.E.
inicio
Lado (L)
leer L
V.S.
rea (A)
Permetro (P)
A L * L
P L+L+L+L
Prueba de Escritorio:
escribir A,P
L
Pantalla
10
100
40
100,40
fin
Programa:
#include<iostream.h>
void main()
{
float L,A,P;
cout<<"Ingrese lado:
";cin>>L;
A = L*L;
P = L+L+L+L;
cout<<"El rea es
:
cout<<"El permetro es:
"<<A;
"<<P;
}
Lilian M. Benique Ruelas
:::59:::
rea
bh
2
V.E.
inicio
Base (b)
Altura (h)
leer b,h
V.S.
rea (A)
A (b*h)/2
escribir A
Prueba de Escritorio:
b
Pantalla
12
30
30
fin
Programa:
#include<iostream.h>
void main()
{
float b,h,A;
cout<<"Ingrese base : ";cin>>b;
cout<<"Ingrese altura: ";cin>>h;
A=(b*h)/2;
cout<<"El rea es:
"<<A;
:::60:::
co
h2 co 2 ca 2
ca
V.E.
inicio
Catetos ( co, ca )
V.S.
leer co,ca
Hipotenusa ( h )
Prueba de Escritorio:
h sqrt(co*co+ca*ca)
Co
ca
Pantalla
escribir h
fin
Programa:
"<<h;
:::61:::
9
F C 32
5
Si Celsius es 45, A cuntos grados Fahrenheit equivale?
Diagrama de flujo:
V.E.
inicio
Celsius ( C )
V.S.
leer C
Fahrenheit ( F )
F (9*C)/5+32
escribir F
Prueba de Escritorio:
C
Pantalla
45
113
113
fin
Programa:
#include<iostream.h>
void main()
{
float C,F;
cout<<"Ingrese grados Celsius:";cin>>C;
F = (9*C)/5+32;
cout<<"Grados Fahrenheit: "<<F;
}
:::62:::
V.E.
inicio
Presin (p)
Volumen (v)
Temperatura (t)
leer p,v,t
V.S.
m (p*v)/(0.37*(t+460))
Masa (m)
escribir m
Prueba de Escritorio:
p
Pantalla
10
18
0.282709
0.282709
fin
Programa:
#include<iostream.h>
void main()
{
float p,v,t,m;
cout<<"Ingrese presin
:
cout<<"Ingrese volumen
:
cout<<"Ingrese temperatura:
";cin>>p;
";cin>>v;
";cin>>t;
m = (p*v)/(0.37*(t+460));
cout<<"Masa : "<<m;
}
:::63:::
V.E.
Edad (e)
leer e
V.S.
N de pulsaciones (np)
np (220-e)/10
escribir np
Prueba de Escritorio:
e
np
Pantalla
28
19.2
19.2
fin
Programa:
#include<iostream.h>
void main()
{
int e,np;
cout<<"ingrese edad:
";cin>>e;
np=(220-e)/10;
cout<<"Nmero de Pulsaciones es:
"<<np;
:::64:::
3 3
El valor absoluto de 10, es:
10 10
Diagrama de flujo:
V.E.
Nmero (n)
inicio
V.S.
Valor absoluto (va)
leer n
va abs(n)
Prueba de Escritorio:
n
va
Pantalla
-3
escribir va
fin
Programa:
Se incluye la librera math.h para que trabaje la funcin valor absoluto
(abs).
#include<iostream.h>
#include<math.h>
void main()
{
int n,va;
cout<<"Ingrese Nmero: ";cin>>n;
va = abs(n);
cout<<"Su valor absoluto es: "<<va;
}
:::65:::
V.E.
inicio
Soles (s)
Tipo de cambio (tc)
leer s,tc
V.S.
Dlares (d)
d s / tc
escribir d
Prueba de Escritorio:
s
tc
Pantalla
21
fin
Programa:
#include<iostream.h>
void main()
{
float s,tc,d;
cout<<"Ingrese Soles : ";cin>>s;
cout<<"Tipo de cambio: ";cin>>tc;
d = s / tc;
cout<<"Dlares:
"<<d;
:::66:::
V.E.
inicio
leer sa
ns sa * 0.25 + sa
Pseudocodigo:
inicio
escribir ns
leer sa
ns sa * 0.25 + sa
fin
escribir ns
fin
Prueba de Escritorio:
sa
ns
Pantalla
1000
1250
1250
Programa:
#include<iostream.h>
void main()
{
float sa,ns;
cout<<"Salario anterior:
";cin>>sa;
ns = sa * 0.25 + sa;
cout<<"Nuevo salario:
"<<ns;
:::67:::
V.E.
Capital (C)
inicio
V.S.
leer C
Ganancia (G)
G C * 0.02
escribir G
Prueba de Escritorio:
C
Pantalla
2000
40
40
fin
Programa:
#include<iostream.h>
void main()
{
float C,G;
cout<<"Ingrese capital:
";cin>>C;
G = C * 0.02;
cout<<"Ganacia es: "<<G;
}
:::68:::
V.E.
inicio
leer tc
d 0.15 * tc
tp tc -d
escribir tp
Programa:
fin
#include<iostream.h>
void main()
{
float tc,tp,d;
cout<<"Total de Compra: ";cin>>tc;
d = 0.15 * tc;
tp = tc - d;
cout<<"Total a Pagar: "<<tp;
}
:::69:::
Diagrama de flujo:
inicio
leer HT,SH,T
V.E.
Horas trabajadas (HT)
Salario hora (SH)
Tasa de impuestos (T)
V.S.
Salario bruto (SB)
Total de impuestos (TI)
Salario neto (SN)
Programa:
SB HT * SH
TI SB * T
SN SB - TI
escribir SB,TI,SN
fin
#include<iostream.h>
void main()
{
float HT,SH,T,TI,SB,SN;
cout<<"Ingrese horas trabajadas : ";cin>>HT;
cout<<"Ingrese salario hora
: ";cin>>SH;
cout<<"Ingrese tasa de impuestos: ";cin>>T;
SB=HT*SH;
TI=SB*T;
SN=SB-TI;
cout<<"Salario bruto es :
cout<<"Total de impuestos:
cout<<"Salario neto es
:
"<<SB<<endl;
"<<TI<<endl;
"<<SN;
:::70:::
inicio
Diagrama de flujo:
leer sb,v1,v2,v3
V.S.
Comisin de ventas (c)
Total a recibir (t)
O.V.
Total ventas (tv)
tv v1+v2+v3
c 0.10 * tv
t sb + c
escribir c,t
Programa:
fin
#include<iostream.h>
void main()
{
float sb,v1,v2,v3,tv,c,t;
cout<<"Sueldo base:
";cin>>sb;
cout<<"Venta 1: ";cin>>v1;
cout<<"Venta 2: ";cin>>v2;
cout<<"Venta 3: ";cin>>v3;
tv = v1+v2+v3;
c = 0.10*tv;
t = sb+c;
cout<<"Comisin es: "<<c<<endl;
cout<<"Total
: "<<t;
}
Lilian M. Benique Ruelas
:::71:::
Porcentaje
100
%m
%m
20 *100
52.63%
38
Porcentaje de varones:
Cantidad
38
18
Porcentaje
100
%v
%v
18 *100
47.37%
38
V.E.
Total de alumnos (ta)
Nmero de mujeres (nm)
V.S.
Diagrama de flujo:
inicio
leer ta,nm
nv ta - nm
pm ( nm*100 )/ta
pv ( nv*100 )/ta
escribir pv,pm
Programa:
fin
#include<iostream.h>
void main()
{
float ta,nm,nv,pm,pv;
cout<<"Total de alumnos : ";cin>>ta;
cout<<"Nmero de mujeres: ";cin>>nm;
nv = ta-nm;
pm = (nm*100)/ta;
pv = (nv*100)/ta;
cout<<"% de Varones: "<<pv<<endl;
cout<<"% de Mujeres: "<<pm;
}
:::72:::
Diagrama de flujo:
V.S.
inicio
Pseudocodigo:
inicio
pv pc * 0.30 + pc
leer pc
pv pc * 0.30 + pc
escribir pv
escribir pv
fin
fin
Programa:
#include<iostream.h>
void main()
{
float pc,pv;
cout<<"Ingrese precio de compra:
";cin>>pc;
pv = pc * 0.30 + pc;
cout<<"Precio de venta:
"<<pv;
:::73:::
Ginecologa
Traumatologa
Pediatra
45%
25%
30%
V.E.
inicio
leer pa
G 0.45 * pa
T 0.25 * pa
P 0.30 * pa
escribir G,T,P
Programa:
fin
#include<iostream.h>
void main()
{
float pa,G,T,P;
cout<<"Ingrese Presupuesto Anual:
";cin>>pa;
G = 0.45 * pa;
T = 0.25 * pa;
P = 0.30 * pa;
cout<<"Ginecologa : "<<G<<endl;
cout<<"Traumatologa: "<<T<<endl;
cout<<"Pediatra
: "<<P;
}
:::74:::
%x
Porcentaje
100
%x
200 *100
20%
1000
Para las personas y,z cambia el dinero invertido, las formulas seran:
%y
500 *100
50%
1000
V.E.
Dinero de x (dx)
Dinero de y (dy)
Dinero de z (dz)
%z
300 *100
30%
1000
Diagrama de flujo:
inicio
V.S.
Porcentaje de x (px)
Porcentaje de y (py)
Porcentaje de z (pz)
O.V.
dx,dy,dz
T dx + dy + dz
px dx * 100 / T
py dy * 100 / T
pz dz * 100 / T
px,py,pz
fin
:::75:::
Area
p( p a)( p b)( p c)
a
c
V.E.
Lados (a,b,c)
Diagrama de flujo:
V.S.
inicio
Area (A)
O.V.
leer a,b,c
Semipermetro (p)
p (a+b+c)/2
Pseudocodigo:
A sqrt(p*(p-a)*(p-b)*(p-c))
inicio
escribir A
leer a,b,c
p (a+b+c)/2
A sqrt(p*(p-a)*(p-b)*(p-c))
fin
escribir A
fin
#include<iostream.h>
#include<math.h>
void main( )
{
double a,b,c,p,A;
Programa:
cout<<"Ingrese a: ";cin>>a;
cout<<"Ingrese b: ";cin>>b;
cout<<"Ingrese c: ";cin>>c;
p = (a+b+c)/2;
A = sqrt(p*(p-a)*(p-b)*(p-c));
cout<<"El area es : "<<A<<endl;
}
:::76:::
Ejercicios Propuestos
Realizar el anlisis, diseo (pseudocdigo, diagrama de flujo) y
programa de los siguientes:
3.1.
3.2.
3.3.
3.4.
d2
2
Area
A
AC * BD
2
Donde:
AC es diagonal menor
BD es diagonal mayor
D
3.5.
3.6.
3.7.
3.8.
:::77:::
3.9.
3.10. Lilian, Cristian y Joel deben repartirse un dinero que dej su padre. El
monto se reparte de acuerdo a la siguiente tabla:
Hijos
Porcentaje
Lilian
Cristian
Joel
25%
35%
40%
:::78:::
ESTRUCTURAS
SELECTIVAS
:::79:::
:::80:::
4.1
si condicin entonces
AccinV
fin_si
- Pseudocdigo -
condicin
falsa
verdadera
AccinV
- Diagrama de Flujo -
:::81:::
if(condicin)
{
AccinV;
}
- Sintaxis en C++ La condicin, puede estar compuesta por variables, expresiones o
funciones; sin embargo el valor que representa solo podr tomar
uno de dos valores Verdadero (si) Falso (no).
AccinV, puede estar conformados por una varias sentencias. Si
estuviera conformada por una sentencia no es necesario utilizar
llaves ({ }) pero si estuviera conformada por varias sentencias
obligatoriamente debern utilizar llaves. Esta AccinV se ejecuta
cuando la condicin es verdadera.
Ejm:
Si la edad de una persona es mayor o igual a 18 se imprimir
Mayor de edad.
if( edad >= 18 )
{
cout<<Mayor de edad;
}
Puede escribirse tambin de la siguiente manera.
if( edad >= 18 )cout<<Mayor de edad;
La condicin en este ejemplo es:
edad >= 18
La AccinV es:
cout<<Mayor de edad;
:::82:::
SIMPLES
1. Leer un nmero y determinar si es Positivo.
Un nmero es positivo si es mayor a cero.
Diagrama de flujo:
inicio
V.E.
Nmero (N)
leer N
SALIDA
Positivo
Si
Pseudocodigo:
N >0
No
Positivo
inicio
leer N
fin
si N>0 entonces
escribir Positivo
fin_si
fin
Programa:
#include<iostream.h>
void main()
{
int N;
cout<<"Ingrese nmero: ";cin>>N;
if(N>0)
{
cout<<"Positivo";
}
}
:::83:::
V.E.
Nmero (N)
leer N
SALIDA
Neutro
Si
Pseudocodigo:
N==0
No
Neutro
inicio
leer N
fin
si N==0 entonces
escribir Neutro
fin_si
fin
Programa:
#include<iostream.h>
void main()
{
int N;
cout<<"Ingrese Nmero: ";cin>>N;
if(N==0)
{
cout<<"Neutro";
}
}
:::84:::
V.E.
leer E
Edad (E)
SALIDA
Si
E>=18
No
Mayor de Edad
Mayor de
Edad
Pseudocodigo:
fin
inicio
leer E
si E>=18 entonces
escribir Mayor de Edad
fin_si
fin
Programa:
#include<iostream.h>
void main()
{
int E;
cout<<"Ingrese edad: ";cin>>E;
if(E >= 18)
{
cout<<"Mayor de Edad";
}
}
:::85:::
V.E.
inicio
Nmeros (A,B)
leer A,B
SALIDA
Iguales
Si
A==B
No
Iguales
Pseudocodigo:
inicio
fin
leer A,B
si A==B entonces
escribir Iguales
fin_si
fin
Programa:
#include<iostream.h>
void main()
{
int A,B;
cout<<"Ingrese A: ";cin>>A;
cout<<"Ingrese B: ";cin>>B;
if(A==B)
{
cout<<"Iguales";
}
}
:::86:::
V.E.
leer E
Edad (E)
SALIDA
Si
Menor de Edad
E<=17
No
Menor de
Edad
Pseudocodigo:
fin
inicio
leer E
si E<=17 entonces
escribir Menor de Edad
fin_si
fin
Programa:
#include<iostream.h>
void main()
{
int E;
cout<<"Ingrese edad: ";cin>>E;
if(E <= 17)
{
cout<<"Menor de Edad";
}
}
:::87:::
V.E.
inicio
Nmeros (A,B)
leer A,B
SALIDA
Diferentes
Si
A!=B
No
Diferentes
Pseudocodigo:
inicio
fin
leer A,B
si A!=B entonces
escribir Diferentes
fin_si
fin
Programa:
#include<iostream.h>
void main()
{
int A,B;
cout<<"Ingrese A: ";cin>>A;
cout<<"Ingrese B: ";cin>>B;
if(A!=B)
{
cout<<"Diferentes";
}
}
:::88:::
V.E.
inicio
Nmero (N)
SALIDA
leer N
Negativo
Si
N < 0
No
Pseudocodigo:
inicio
Negativo
leer N
si N<0 entonces
fin
escribir Negativo
fin_si
fin
Programa:
#include<iostream.h>
void main()
{
int N;
cout<<"Ingrese nmero: ";cin>>N;
if(N<0)
{
cout<<"Negativo";
}
}
:::89:::
Resto
18
Diagrama de flujo:
Nmero (N)
inicio
SALIDA
leer N
Par
Si
Pseudocodigo:
N%2==0
No
Par
inicio
leer N
fin
si N%2==0 entonces
escribir Par
fin_si
fin
Programa:
#include<iostream.h>
void main()
{
int N;
cout<<"Ingrese N: ";cin>>N;
if( N%2 ==0 )
{
cout<<"Par";
}
}
:::90:::
Resto
18
Resto
21
Resto
17
La frmula sera:
N mod 3 == 0
V.E.
Nmero (N)
SALIDA
Mltiplo de tres
:::91:::
Diagrama de flujo:
inicio
leer N
Si
N%3==0
No
Mltiplo de tres
fin
Pseudocodigo:
inicio
leer N
si N%3==0 entonces
escribir Mltiplo de tres
fin_si
fin
Programa:
#include<iostream.h>
void main()
{
int N;
cout<<"Ingrese N: ";cin>>N;
if( N%3 ==0 )
{
cout<<"Mltiplo de tres";
}
}
:::92:::
17
Resto
Diagrama de flujo:
V.E.
Nmero (N)
inicio
SALIDA
leer N
Impar
Si
Pseudocodigo:
N%2==1
No
Impar
inicio
leer N
fin
si N%2==1 entonces
escribir Nmero Impar
fin_si
fin
Programa:
#include<iostream.h>
void main()
{
int N;
cout<<"Ingrese N: ";cin>>N;
if( N%2 ==1 )
{
cout<<"Nmero Impar";
}
}
:::93:::
Resto
15
Resto
20
Resto
17
La frmula sera:
N mod 5 == 0
V.E.
Nmero (N)
SALIDA
Mltiplo de cinco
:::94:::
Diagrama de flujo:
inicio
leer N
Si
N%5==0
No
Mltiplo de cinco
fin
Pseudocodigo:
inicio
leer N
si N%5==0 entonces
escribir Mltiplo de cinco
fin_si
fin
Programa:
#include<iostream.h>
void main()
{
int N;
cout<<"Ingrese N: ";cin>>N;
if( N%5==0 )
{
cout<<"Mltiplo de cinco";
}
}
:::95:::
4.2
si condicin entonces
AccinV
si_no
AccinF
fin_si
falsa
Condicin
verdadera
AccinF
AccinV
:::96:::
Cuando la condicin es
verdadera imprime Mayor
de edad, enMaria
caso contrario
M. Lima Quispe
imprime Menor de edad.
if( edad>=18 )
{
cout<<Mayor de edad;
}
else
{
cout<<Menor de edad;
}
La condicin es: edad >= 18
La AccinV es: cout<<Mayor de edad;
La AccinF es: cout<<Menor de edad;
Cuando la condicin es
verdadera imprime Menor
de edad, en caso contrario
imprime Mayor de edad.
:::97:::
DOBLES
12. Determinar si una persona es Mayor de edad o es Menor
de edad.
Diagrama de flujo:
V.E.
inicio
Edad (E)
leer E
SALIDA
Mayor de edad o
Menor de edad
Si
E>=18
Mayor de
edad
Pseudocodigo:
No
Menor de
edad
inicio
leer E
fin
si E>=18 entonces
escribir Mayor de edad
si_no
escribir Menor de edad
fin_si
fin
#include<iostream.h>
void main()
{
int E;
cout<<"Ingrese edad: ";cin>>E;
Programa:
:::98:::
inicio
Nmero (N)
leer N
SALIDA
Neutro o
No es Neutro
Si
N==0
Neutro
No
No es
Neutro
Pseudocodigo:
inicio
fin
leer N
si N==0 entonces
escribir Neutro
si_no
escribir No es Neutro
fin_si
fin
#include<iostream.h>
void main()
{
int N;
cout<<"Ingrese nmero: ";cin>>N;
Programa:
if(N==0)
{
cout<<"Neutro";
}
else
{
cout<<"No es Neutro";
}
}
:::99:::
V.E.
leer N
Nmero (N)
SALIDA
Si
Negativo o
Positivo
N<0
Positivo
Negativo
Pseudocodigo:
No
fin
inicio
leer N
si N<0 entonces
escribir Negativo
si_no
escribir Positivo
fin_si
fin
#include<iostream.h>
void main()
{
int N;
cout<<"Ingrese nmero: ";cin>>N;
Programa:
if(N<0)
{
cout<<"Negativo";
}
else
{
cout<<"Positivo";
}
}
:::100:::
V.E.
inicio
Nmeros (A, B)
SALIDA
leer A,B
Iguales o
Diferentes
Si
A==B
No
Iguales
Diferentes
Pseudocodigo:
fin
inicio
leer A,B
si A==B entonces
escribir Iguales
si_no
escribir Diferentes
fin_si
fin
#include<iostream.h>
void main()
{
int A,B;
cout<<"Ingrese A: ";cin>>A;
cout<<"Ingrese B: ";cin>>B;
Programa:
if(A==B)
{
cout<<"Iguales";
}
else
{
cout<<"Diferentes";
}
}
:::101:::
V.E.
Nmero (N)
leer N
SALIDA
Si
Par o
Impar
N%2==0
Par
Pseudocodigo:
No
Impar
fin
inicio
leer N
si N%2==0 entonces
escribir Par
si_no
escribir Impar
fin_si
fin
#include<iostream.h>
void main()
{
int N;
cout<<"Ingrese Nmero: ";cin>>N;
Programa:
if(N%2==0)
{
cout<<"Par";
}
else
{
cout<<"Impar";
}
}
:::102:::
V.E.
inicio
Nmeros (A,B)
leer A,B
SALIDA
Ao
B
Si
A > B
No
Pseudocodigo:
fin
inicio
leer A,B
si A > B entonces
escribir A
si_no
escribir B
fin_si
fin
#include<iostream.h>
void main()
{
int A,B;
cout<<"Ingrese A: ";cin>>A;
cout<<"Ingrese B: ";cin>>B;
if(A > B)
{
cout<<A;
}
else
{
cout<<B;
}
Programa:
:::103:::
V.E.
inicio
Nmeros (A,B)
leer A,B
SALIDA
Ao
B
Si
Pseudocodigo:
A < B
No
inicio
leer A,B
fin
si A < B entonces
escribir A
si_no
escribir B
fin_si
fin
Programa:
#include<iostream.h>
void main()
{
int A,B;
cout<<"Ingrese A: ";cin>>A;
cout<<"Ingrese B: ";cin>>B;
if(A < B)
{
cout<<A;
}
else
{
cout<<B;
}
}
:::104:::
V.E.
leer NC,PU
TC = NC * PU
si NC>=3 entonces
V.S
D = 0.20 * TC
si_no
O.V.
D = 0.10 * TC
fin_si
TP = TC D
escribir TP
fin
Diagrama de flujo:
inicio
leer NC,PU
TC NC * PU
Si
NC >= 3
D 0.20*TC
No
D 0.10*TC
TP TC - D
escribir TP
fin
:::105:::
Programa:
#include<iostream.h>
void main()
{
float NC,PU,TC,D,TP;
cout<<"Nmero de camisas: ";cin>>NC;
cout<<"Precio unitario : ";cin>>PU;
TC = NC * PU;
if(NC>=3)
{
D = 0.20 * TC;
}
else
{
D = 0.10 * TC;
}
TP = TC - D;
cout<<"Total a pagar: "<<TP;
}
Prueba de Escritorio:
Con 5 camisas y precio unitario 10 soles
NC
PU
TC
TP
Pantalla
10
50
10
40
40
PU
TC
TP
Pantalla
10
20
18
18
PU
TC
25
200
:::106:::
TP
Pantalla
V.E.
Calificaciones (C1, C2, C3)
O.V.
Promedio (P)
SALIDA
Aprueba o
Reprueba
Diagrama de flujo:
inicio
leer C1,C2,C3
P (C1+C2+C3)/3
Si
P >= 70
Aprueba
No
Reprueba
fin
Pseudocdigo:
inicio
leer C1,C2,C3
P = (C1+C2+C3)/3
si P >= 70 entonces
escribir Aprueba
si_no
escribir Reprueba
fin_si
Fin
:::107:::
Programa:
#include<iostream.h>
void main()
{
float C1,C2,C3,P;
cout<<"Calificacion 1: ";cin>>C1;
cout<<"Calificacion 2: ";cin>>C2;
cout<<"Calificacion 3: ";cin>>C3;
P = ( C1 + C2 + C3 )/3;
if(P >= 70)
{
cout<<"Aprueba";
}
else
{
cout<<"Reprueba";
}
}
Prueba de Escritorio:
Con 50, 10 y 90
C1
C2
C3
Pantalla
50
10
90
50
Reprueba
Con 80, 80 y 90
C1
C2
C3
Pantalla
80
80
90
83.33
Aprueba
Pantalla
Con 70, 60 y 50
C1
C2
C3
70
60
50
:::108:::
21. Calcular el total que una persona debe pagar en una tienda
de llantas, el precio de cada llanta es de 800 si se compran
menos de 5 llantas y de 700 si se compran de 5 a ms.
Pseudocdigo:
V.E.
inicio
leer N
V.S
si N < 5 entonces
TP = N * 800
si_no
TP = N * 700
fin_si
escribir TP
fin
Diagrama de flujo:
inicio
leer N
Si
N < 5
TPN*800
No
TPN*700
escribir TP
fin
:::109:::
Programa:
#include<iostream.h>
void main()
{
float N,TP;
cout<<"Nmero de llantas: ";cin>>N;
if(N<5)
{
TP = N * 800;
}
else
{
TP = N * 700;
}
cout<<"Total a pagar: "<<TP;
}
Prueba de Escritorio:
Con 3 llantas.
N
TP
Pantalla
3*800=2400
2400
Con 5 llantas.
N
5
TP
5*700=3500
Pantalla
3500
Con 8 llantas.
N
TP
Pantalla
8*700=5600
5600
:::110:::
4.3
expresin
2
accin s1
accin s2
accin s3
accin s4
accin sn
:::111:::
switch (selector)
{
case alternativa_1: Accin1;break;
case alternativa_2: Accin2;break;
case alternativa_3: Accin3;break;
case alternativa_4: Accin4;break;
.
.
.
case alternativa_N: AccinN;break;
default:
AccinX;
}
- Sintaxis en C++ El selector puede ser una variable, una expresin o una funcin; sin
embargo, el valor que representa debe ser escalar. Es decir:
numrico entero, o carcter individual. De ninguna manera puede
ser una cadena o un float. Este selector ser evaluado en cada
alternativa hasta que encuentre su lugar.
Cada alternativa est conformada por un nico valor.
Cada accin, puede estar conformada por una varias sentencias.
El uso del default es opcional, sin embargo sirve para ejecutar algo
cuando el selector no encuentra su lugar; es decir que su valor no se
encuentra contenido en ninguna alternativa.
Ejm: El siguiente segmento de cdigo imprime los das de la semana
de acuerdo a la variable DIA que toma valores de 1 a 7.
switch (DIA)
{
case 1: cout<<Lunes;break;
case 2: cout<<Martes;break;
case 3: cout<<Mircoles;break;
case 4: cout<<Jueves;break;
case 5: cout<<Viernes;break;
case 6: cout<<Sbado;break;
case 7: cout<<Domingo;break;
default:
cout<<Da no vlido;
}
:::112:::
:::113:::
MLTIPLES
22. Construir un algoritmo que escriba los nombres de los meses
del ao, en funcin de la entrada correspondiente a la
variable MES. Si el valor de la variable MES no esta en el
rango de 1 a 12 imprimir el mensaje Mes no vlido.
V.E.
Mes (MES)
SALIDA
Enero o
Febrero o
Marzo
o
Mes no vlido
Diagrama de flujo:
inicio
leer MES
MES>=1 AND
Mes no
vlido
MES<=12
V
1
Enero
12
Marzo
Febrero
1
Diciembre
fin
:::114:::
Pseudocdigo:
inicio
leer MES
segn_sea MES hacer
1: imprimir Enero
2: imprimir Febrero
3: imprimir Marzo
4: imprimir Abril
5: imprimir Mayo
6: imprimir Junio
7: imprimir Julio
8: imprimir Agosto
9: imprimir Setiembre
10: imprimir Octubre
11: imprimir Noviembre
12: imprimir Diciembre
si_no
imprimir Mes no vlido
fin _ segn
fin
Programa:
#include<iostream.h>
void main( )
{
int MES;
cout<<"Ingrese mes: ";cin>>MES;
switch(MES)
{
case 1:cout<<"Enero";break;
case 2:cout<<"Febrero";break;
case 3:cout<<"Marzo";break;
case 4:cout<<"Abril";break;
case 5:cout<<"Mayo";break;
case 6:cout<<"Junio";break;
case 7:cout<<"Julio";break;
case 8:cout<<"Agosto";break;
case 9:cout<<"Setiembre";break;
case 10:cout<<"Octubre";break;
case 11:cout<<"Noviembre";break;
case 12:cout<<"Diciembre";break;
default:
cout<<"Mes no vlido";
}
}
:::115:::
V.E.
Calificacin alfabtica (Cal)
Mensaje de Salida
4, 5, 6, 7 u 8
Pseudocdigo:
inicio
leer Cal
segn_sea Cal hacer
A : imprimir 4
B : imprimir 5
C : imprimir 6
D : imprimir 7
E : imprimir 8
fin _ segn
fin
Diagrama de flujo:
inicio
leer Cal
Cal
A
B
4
C
5
D
6
E
7
fin
:::116:::
Programa:
#include<iostream.h>
void main()
{
char Cal;
cout<<"Ingrese calificacin: ";cin>>Cal;
switch(Cal)
{
case
case
case
case
case
}
'A':cout<<4;break;
'B':cout<<5;break;
'C':cout<<6;break;
'D':cout<<7;break;
'E':cout<<8;break;
Prueba de Escritorio:
Con A
Cal
Pantalla
Con B
Cal
Pantalla
Con E
Cal
Pantalla
:::117:::
Media Ponderada
Numrica
1.5
4.0
5.5
6.5
8.0
9.5
M
I
F
B
N
S
V.E.
Nota alfabtica (Nota)
SALIDA
1.5
4.0
5.5
6.5
8.0
9.5
Diagrama de flujo:
inicio
leer Nota
Nota
M
I
1.5
4.0
5.5
6.5
N
8.0
S
9.5
fin
:::118:::
Pseudocdigo:
inicio
leer Nota
segn_sea Nota hacer
M : imprimir 1.5
I : imprimir 4.0
F : imprimir 5.5
B : imprimir 6.5
N : imprimir 8.0
S : imprimir 9.5
fin _ segn
fin
Programa:
#include<iostream.h>
void main()
{
char Nota;
cout<<"Ingrese calificacin: ";cin>>Nota;
switch(Nota)
{
case 'M':cout<<1.5;break;
case 'I':cout<<4.0;break;
case 'F':cout<<5.5;break;
case 'B':cout<<6.5;break;
case 'N':cout<<8.0;break;
case 'S':cout<<9.5;break;
}
}
Prueba de Escritorio:
Con S
Nota
Pantalla
9.5
:::119:::
Estacin
Verano
Otoo
Invierno
Primavera
V.E.
Nmero de mes (mes)
SALIDA
Verano o
Otoo o
Invierno o
Primavera o
Estacin desconocida
Diagrama de flujo:
inicio
leer mes
mes>=1
AND
mes<=12
Estacin
desconocida
V
1,2,3
Verano
4,5,6
7,8,9
Otoo
Invierno
10,11,12
Primavera
fin
:::120:::
Pseudocdigo:
inicio
leer mes
segn_sea mes hacer
1, 2, 3 : imprimir Verano
4, 5, 6 : imprimir Otoo
7, 8, 9 : imprimir Invierno
10,11,12 : imprimir Primavera
si_no
imprimir Estacin desconocida
fin _ segn
fin
Programa:
#include<iostream.h>
void main()
{
int mes;
cout<<"Ingrese nmero del mes: ";cin>>mes;
switch(mes)
{
case 1:case 2:case 3:cout<<"Verano";break;
case 4:case 5:case 6:cout<<"Otoo";break;
case 7:case 8:case 9:cout<<"Invierno";break;
case 10:case 11:case 12:cout<<"Primavera";break;
}
}
Prueba de Escritorio:
Con mes 12
mes
Pantalla
12
Primavera
Con mes 5
mes
Pantalla
Otoo
:::121:::
COMPUESTOS
26. Leer 2 nmeros; si son iguales que los multiplique, si el
primero es mayor que el segundo que los reste y si no que
los sume.
Los dos nmeros son iguales:
Si A = 5 y B = 5, la respuesta es 25 (5 * 5)
Si A = 12 y B = 12, la respuesta es 144 (12 * 12)
El primer nmero es mayor que el segundo:
Si A = 17 y B = 12, la respuesta es 5 (17 - 12)
Si A = 25 y B = 5, la respuesta es 20 (25 5)
El primer nmero es menor que el segundo:
Si A = 1 y B = 10, la respuesta es 11 (1 + 10)
Si A = 8 y B = 17, la respuesta es 25 (8 + 17)
V.E.
Nmeros (A, B)
SALIDA
Respuesta (R)
inicio
Diagrama de flujo:
Leer A,B
Si
No
A==B
R A * B
Si
R A - B
A > B
No
R A + B
escribir R
fin
:::122:::
Pseudocodigo:
inicio
leer A,B
si A == B entonces
R = A * B
si_no
si A > B entonces
R = A B
Si_no
R = A + B
fin_si
fin_si
escribir R
fin
Programa:
#include<iostream.h>
void main()
{
int A,B,R;
cout<<"A: ";cin>>A;
cout<<"B: ";cin>>B;
if(A == B)
{
R = A * B;
}
else
{
if(A > B)
R = A - B;
else
R = A + B;
}
cout<<"R: "<<R;
}
:::123:::
%Descuento
2
5
10
adelante
0%
10%
15%
20%
Inicio
Leer NK
ST NK * 2
Si
No
NK<=2
D 0
Si
D0.10*ST
No
NK<=5
Si
D0.15*ST
NK<=10
No
D0.20*ST
TP ST - D
Escribir TP
Fin
:::124:::
Programa:
#include<iostream.h>
void main()
{
float NK,TP,ST,D;
cout<<"Nmero de kilos: ";cin>>NK;
ST = NK * 2.0;
if(NK <= 2)
{
D = 0;
}
else
{
if(NK <= 5)
{
D = 0.10 * ST;
}
else
{
if(NK <= 10)
{
D = 0.15 * ST;
}
else
{
D = 0.20 * ST;
}
}
}
cout<<"Total a pagar: "<<TP;
}
Prueba de Escritorio:
Con mes 12
mes
Pantalla
12
Primavera
:::125:::
Diagrama de flujo:
Inicio
El mayor (may)
leer a,b,c
may a
Si
may < b
may b
No
Si
may < c
may c
No
Pseudocodigo:
inicio
escribir may
leer a,b,c
may = a
Fin
:::126:::
Programa:
#include<iostream.h>
void main()
{
int a,b,c,may;
cout<<"Ingrese a: "; cin>>a;
cout<<"Ingrese b: "; cin>>b;
cout<<"Ingrese c: "; cin>>c;
may = a;
if(may < b)
{
may = b;
}
if(may < c)
{
may = c;
}
cout<<"El mayor es: "<<may<<endl;
}
La condicin
El mayor
17
12
79
17
79
12
12
79
17
12
17
79
79
17
12
79
12
17
Significado
79 es mayor
que 17 y 17
es mayor
que 12
:::127:::
EL MENOR
a
La condicin
El menor
17
12
79
17
79
12
12
79
17
12
17
79
79
17
12
79
12
17
Significado
12 es menor
que 17 y 17
es menor
que 79
EL MEDIO
a
La condicin
El medio
17
12
79
17
79
12
12
79
17
12
17
79
79
17
12
79
12
17
Significado
17 es mayor
que 12 y 17
es menor
que 79
ASCENDENTE Y DESCENDENTE
a
La condicin
Ascendente
Descendente
17
12
79
b,a,c
c,a,b
17
79
12
c,a,b
b,a,c
12
79
17
a,c,b
b,c,a
12
17
79
a,b,c
c,b,a
79
17
12
c,b,a
a,b,c
79
12
17
b,c,a
a,c,b
:::128:::
c >a &&
a > b
Si
No
b >a &&
a > c
Si
No
b >c &&
c > a
No
c >b &&
b > a
Si
a
Si
No
a >b &&
b > c
Si
No
fin
:::129:::
Pseudocdigo:
inicio
leer a,b,c
si c > a && a > b entonces
escribir b
si_no
si b > a && a > c entonces
escribir c
si_no
si b > c && c > a entonces
escribir a
si_no
si c > b && b > a entonces
escribir a
si_no
si a > b && b > c entonces
escribir c
si_no
escribir b
fin_si
fin_si
fin_si
fin_si
fin_si
fin
:::130:::
Programa:
#include<iostream.h>
void main()
{
int a,b,c;
cout<<"Ingrese a: ";cin>>a;
cout<<"Ingrese b: ";cin>>b;
cout<<"Ingrese c: ";cin>>c;
if(c>a && a>b)
{
cout<<"El menor es "<<b<<endl;
}
else
{
if(b>a && a>c)
{
cout<<"El menor es "<<c<<endl;
}
else
{
if(b>c && c>a)
{
cout<<"El menor es "<<a<<endl;
}
else
{
if(c>b && b>a)
{
cout<<"El menor es "<<a<<endl;
}
else
{
if(a>b && b>c)
{
cout<<"El menor es "<<c<<endl;
}
else
{
cout<<"El menor es "<<b<<endl;
}
}
}
}
}
}
:::131:::
Ejercicios
Realizar el anlisis, diseo (Pseudocdigo o diagrama de flujo) y
programa de los siguientes:
4.1.
4.2.
4.3.
4.4.
4.5.
4.6.
4.7.
4.8.
Marca
3M
NCR
Sentinel
Burroughs
Imation
:::132:::
Descuento
%
10
15
20
25
30
4.9.
Ax2 + Bx + C = 0
4.10. Leer tres nmeros diferentes y determine el nmero medio del conjunto de
los tres nmeros (el nmero medio es aquel nmero que no es ni mayor, ni
menor).
4.11. Leer tres nmeros distintos y ordenarlos en forma descendente.
4.12. En una tienda se efecta una promocin en la cual se hace un descuento
sobre el valor de la compra total segn el color de la bolita que el cliente
saque al pagar en caja.
Si la bolita es de color blanco no se le har descuento alguno, si es verde se
le har un 10% de descuento, si es amarilla un 25%, si es azl un 50% y si
es roja un 100%. Determinar la cantidad final que el cliente deber pagar
por su compra. Se sabe que solo hay bolitas de los colores mencionados.
4.13. Utilizando el operador ? determinar el mayor de dos nmeros.
4.14. Escribir un programa que permita seleccionar la operacin aritmtica a
ejecutarse entre dos nmeros, dependiendo del valor de una variable ope.
Ope
1
2
3
4
Operacin
Sumar
Restar
Multiplicar
Dividir
:::133:::
:::134:::
ESTRUCTURAS
REPETITIVAS
:::135:::
:::136:::
5.1
fin_mientras
- Pseudocdigo -
condicin
V
Accin
while(condicin)
{
Accin;
}
- Sintaxis en C++ La condicin puede ser una variable, una expresin o el valor de
una funcin; sin embargo el valor que representa slo puede ser
verdadero o falso. En C++ el valor 0 significa falso y un valor
diferente de 0 significa verdadero.
La accin, puede estar conformada por una o varias sentencias. Si
estuviera conformada por dos o mas sentencias deben estar entre
llaves.
El programa se ejecuta siguiendo estos pasos:
[1] Se evala la condicin.
[2] Si la condicin es verdadera ejecuta la Accin o Acciones, sino el
programa abandona la sentencia while
[3] Tras ejecutar las Acciones, volvemos al paso 1.
Ejm:
i = 1;
while(i<=5)
{
cout<<i<<endl;
i = i + 1;
}
La inicializacin del contador es: i=1;
La condicin es: i <= 5
Las acciones son:
cout<<i<<endl;
i = i + 1;
El incremento del contador es i = i + 1;
La prueba de escritorio del programa:
:::138:::
Prueba de Escritorio:
i
Pantalla
1
2
3
4
5
6
1
2
3
4
5
Incremento del
contador
:::139:::
MIENTRAS ( while )
1. Imprimir la secuencia:
2
4
6
8
.
.
.
98
100
2<=100
El contador i va a
recorrer de 2 a 100
aumentando de 2 en 2
Pseudocodigo:
inicio
i 2
mientras i <= 100 hacer
escribir i
i i + 2
fin_mientras
fin
Diagrama de flujo:
Programa:
#include<iostream.h>
void main()
{
int i;
i=2;
while(i<=100)
{
cout<<i<<endl;
i=i+2;
}
}
:::140:::
2. Imprimir la secuencia:
100
98
96
94
.
.
.
4
2
El contador i va a
recorrer de 100 a 2
disminuyendo de 2 en 2
100 >= 2
Pseudocodigo:
inicio
i 100
mientras i >= 2 hacer
escribir i
i i - 2
fin_mientras
fin
Diagrama de flujo:
Programa:
#include<iostream.h>
void main()
{
int i;
i=100;
while(i>=2)
{
cout<<i<<endl;
i=i-2;
}
}
:::141:::
100
98
96
94
.
.
.
4
2
inicio
i 100
s 0
mientras i >= 2 hacer
escribir i
s s + i
i i - 2
fin_mientras
escribir s
fin
Programa:
#include<iostream.h>
void main()
{
int i;
long s;
i = 100;
s = 0;
while(i>=2)
{
cout<<i<<endl;
s = s + i;
i = i - 2;
}
cout<<"Suma: "<<s;
}
:::142:::
4. Calcular K:
K = 103 + 83 + 63 + 43 + 23
Programa:
O.V.
Acumulador ( K )
Contador (i)
V.S.
#include<iostream.h>
void main()
{
int i;
long K;
i = 10;
K = 0;
while(i>=2)
{
K = K + i * i * i;
i = i - 2;
}
cout<<"K = "<<K;
Pseudocodigo:
inicio
i 10
K 0
mientras i >= 2 hacer
K K + i * i * i;
i i - 2
fin_mientras
escribir K
fin
DFD 1.0:
:::143:::
i
num
s=0
1
10
s=s+10
s=10
2
30
s=s+30
s=40
La frmula del
acumulador es:
s = s + num
3
6
s=s+6
s=46
1
7
s=s+7
s=7
2
3
s=s+3
s=10
E.V.
Cantidad de nmeros (cn)
Nmero (num)
O.V.
Contador (i)
V.S.
Suma ( s )
:::144:::
3
2
s=s+2
s=12
4
6
s=s+6
s=18
5
1
s=s+1
s=19
Pseudocodigo:
inicio
i 1
s 0
mientras i<=cn hacer
leer num
s s + num;
i i + 1
fin_mientras
escribir s
fin
Programa:
:::145:::
Diagrama de Flujo:
Nmero (num)
V.S.
Suma ( s )
Pseudocodigo:
inicio
s 0
leer num
mientras num > 0 hacer
s s + num;
leer num
fin_mientras
escribir s
fin
:::146:::
5.2
hacer
Accin
fin_mientras condicin
Accin
condicin
- Pseudocdigo -
F
do{
- Diagrama de Flujo -
Accin;
}
while(condicin);
- Sintaxis en C++ La condicin puede ser una variable, una expresin o el valor de
una funcin; sin embargo el valor que representa slo puede ser
verdadero o falso.
En C++ el valor 0 significa falso y un valor diferente de 0 significa
verdadero.
Lo que va entre llaves es la Accin o Acciones a ejecutar
repetitivamente mientras la condicin sea verdad. Cuando la
condicin sea falsa termina el bucle o ciclo.
:::147:::
Pantalla
1
2
3
4
5
6
1
2
3
4
5
:::148:::
El contador i va a
recorrer de 2 a 100
aumentando de 2 en 2
2<=100
Pseudocodigo:
inicio
i 2
hacer
escribir i
i i + 2
mientras i <= 100
fin
Turbo C++ 4.5:
:::149:::
50
40
Pseudocodigo:
inicio
i 50
hacer
escribir i
i i - 10
mientras i >= 0
fin
30
20
10
El contador i va a recorrer
de 50 a 0 disminuyendo de
10 en 10
:::150:::
40
30
20
10
O.V.
Acumulador (s)
Contador (i)
V.S.
:::151:::
5.3
Accin
cierre
fin_desde
para con vini hasta vfin [inc|dec] hacer
Acciones
fin_para
- Pseudocdigo -
:::152:::
{
Accin;
}
- Sintxis en C++ En la parte de inicializacin se debe dar un valor inicial a la
variable que va a controlar el proceso repetitivo (contador).
La condicin establece la continuidad o el trmino del proceso
repetitivo. Mientras la condicin sea verdad el proceso contina.
Cuando la condicin sea falsa el proceso termina. Normalmente en
esta condicin interviene la variable inicializada (el contador).
El incremento o decremento se realiza a la variable inicializada
(contador).
La Accin, puede estar conformada por una o varias acciones. Si
estuviera conformada por una accin no necesita llaves.
El funcionamiento es:
[1] Se ejecuta la instruccin de inicializacin
[2] Se evala la condicin
[3] Si la condicin es cierta, entonces se ejecuta la Accin o
Acciones. Si la condicin es falsa, abandonamos el bloque for
[4] Tras ejecutar la Accin o Acciones, se ejecuta la instruccin de
incremento o decremento y se vuelve al paso 2.
Ejm:
Para imprimir la secuencia:
50
40
30
20
10
{
cout<<i<<\t;
}
La inicializacin del contador i es 50, la condicin es que i>=0 y el
decremento es de 10 en 10.
:::153:::
Programa:
#include<iostream.h>
void main()
{
int i;
for(i=2;i<=100;i=i+2)
{
cout<<i<<endl;
}
}
:::154:::
Pseudocodigo:
inicio
desde i100 hasta 2 decremento 2 hacer
escribir i
fin_desde
fin
Diagrama de flujo:
Programa:
#include<iostream.h>
void main()
{
int i;
for(i=100;i>=2;i=i-2)
{
cout<<i<<endl;
}
}
:::155:::
Diagrama de flujo:
Programa:
#include<iostream.h>
void main()
{
int i;
for(i=5;i<=100;i=i+5)
{
cout<<i<<endl;
}
}
:::156:::
Pseudocodigo:
inicio
desde i100 hasta 10 decremento 5 hacer
escribir i
fin_desde
fin
Diagrama de flujo:
Programa:
#include<iostream.h>
void main()
{
int i;
for(i=100;i>=10;i=i-5)
{
cout<<i<<endl;
}
}
:::157:::
Ejemplo:
Ingrese un nmero: 7
Programa:
V.E.
Nmero (n)
SALIDA
#include<iostream.h>
void main()
{
int i,n;
cout<<"Ingrese n: ";cin>>n;
for(i=1;i<=18;i=i+1)
{
cout<<n<<" x "<<i<<" = "<<n*i<<endl;
}
Tabla de multiplicar
:::158:::
Pseudocdigo:
Programa:
#include<iostream.h>
void main()
{
int i,suma;
suma = 0;
for(i=100;i>=10;i=i-5)
{
suma = suma + i;
}
cout<<"suma: "<<suma;
}
inicio
suma 0
desde i100 hasta 10 decremento 5 hacer
suma suma + i
fin_desde
escribir suma
fin
DFD 1.0:
:::159:::
O.V.
Pseudocodigo:
#include<iostream.h>
void main()
{
int i;
long p;
p = 1;
for(i=1;i<=10;i=i+1)
{
p = p * i;
}
cout<<"Producto: "<<p;
}
inicio
p 1
desde i1 hasta 10 incremento 1 hacer
p p * i
fin_desde
escribir p
fin
DFD 1.0:
:::160:::
19. Calcular J:
J = 12 + 22 + 32 + 42 + + 102
Programa:
O.V.
Acumulador ( J )
Contador (i)
V.S.
Suma de la secuencia ( J )
Pseudocodigo:
#include<iostream.h>
void main()
{
int i;
long J;
J = 0;
for(i=1;i<=10;i=i+1)
{
J = J + i * i;
}
cout<<"J = "<<J;
}
inicio
J 0
desde i1 hasta 10 incremento 1 hacer
J J + i * i
fin_desde
escribir J
fin
DFD 1.0:
:::161:::
Ejercicios
Realizar el anlisis, diseo (pseudocdigo, diagrama de flujo) y
programa de los siguientes:
5.1.
5.2.
5.3.
Imprimir la suma de los nmeros pares de los nmeros que van del 1 al
200.
5.4.
5.5.
5.6.
5.7.
5.8.
5.9.
:::162:::
ARRAYS
:::163:::
:::164:::
CAPITULO 6: Arrays
6.1
NOTAS:
Elementos
12.5
16
20
14
14.5
ndices
- Figura 6.2: Vectores -
:::165:::
12.5
Direccin X
NOTAS[1]
16
Direccin X+1
NOTAS[2]
20
Direccin X+2
NOTAS[3]
14
Direccin X+3
NOTAS[9]
14.5
Direccin X+9
Ejemplo:
float NOTAS[10]; // vector de 10 nmeros decimales
int edad[50]; //vector de 50 nmeros enteros
char nombre[20]; // vector de 20 caracteres
:::166:::
A:
La
sentencia
resume todas
sera:
que
estas
A[ i ]=1
La variable i recorre de 0 a 7.
:::167:::
for(i=0;i<8;i++)
{
A[i]=1;
}
:::168:::
VECTORES
1. Inicializar el vector A e imprimir sus elementos en forma
horizontal.
A:
Diagrama de flujo:
inicio
i 0
No
i < 7
Si
A[i] 1
i i + 1
i 0
i < 7
No
Fin
Si
A[i]
i i + 1
:::169:::
Programa:
for(i=0;i<7;i++)
{
cout<<A[i]<<"\t";
}
cout<<endl;
}
:::170:::
Diagrama de flujo:
inicio
i 0
No
i < 9
Si
Si
No
i%2== 1
M[i] 0
M[i] 1
i i + 1
i 0
No
i < 9
Fin
Si
M[i]
i i + 1
:::171:::
Impares
M[1]=0
M[3]=0
M[5]=0
M[7]=0
:::172:::
Programa:
#include<iostream.h>
void main( )
{
int M[9],i;
for(i=0;i<9;i++)
{
if(i%2==1)
{
M[i] = 0;
}
else
{
M[i] = 1;
}
}
for(i=0;i<9;i++)
{
cout<<M[i]<<"\t";
}
cout<<endl;
}
:::173:::
Diagrama de flujo:
inicio
i 0
No
i < 9
Si
Si
No
i < 4
L[i] 2
L[i] 5
i i + 1
i 0
No
i < 9
Fin
Si
L[i]
i i + 1
:::174:::
Programa:
#include<iostream.h>
void main( )
{
int L[9],i;
for(i=0;i<9;i++)
{
if(i<4)
{
L[i] = 2;
}
else
{
L[i] = 5;
}
}
for(i=0;i<9;i++)
{
cout<<L[i]<<"\t";
}
cout<<endl;
}
:::175:::
5. Leer
n
nmeros
:::176:::
#include<iostream.h>
void main()
{
//Declaramos el vector A de 100 elementos mximo
int A[100];
int i,n;
cout<<"Ingrese longitud del vector: ";cin>>n;
// Leer vector A de n elementos
for(i=0;i<n;i++)
{
cout<<"A["<<i<<"]= ";cin>>A[i];
}
// Imprimir vector A
for(i=0;i<n;i++)
{
cout<<A[i]<<"\t";
}
cout<<endl;
}
:::177:::
#include<iostream.h>
void main()
{
int A[100];
int i,n,suma;
//El acumulador suma inicializamos con 0
suma = 0;
cout<<"Ingrese longitud del vector: ";cin>>n;
// Leer vector A de n elementos e ir sumando
for(i=0;i<n;i++)
{
cout<<"A["<<i<<"]=";cin>>A[i];
suma = suma + A[i];
}
// Imprimir vector A
for(i=0;i<n;i++)
{
cout<<A[i]<<"\t";
}
cout<<endl;
cout<<"La suma es: "<<suma<<endl;
}
:::178:::
:::179:::
:::180:::
:::181:::
:::182:::
6.2
Fila 2--->
11
Fila 3--->
17
Fila 4--->
18
10
Columna 3--->
20 12 13 19
Columna 2--->
Fila 1--->
Columna 1--->
12 15 14
Columna 0--->
Fila 0--->
16
12 18
5x4
:::183:::
Q:
:::184:::
5x4
for(f=0;f<5;f++)
{
for(c=0;c<4;c++)
{
Q[f][c]=1;
}
}
:::185:::
MATRICES
11. Inicializar e imprimir la matriz P.
1 1 1
Programa:
#include<iostream.h>
P:
1 1 1
1 1 1
1 1 1
4x3
void main()
{
int P[4][3],f,c;
//Inicializar la matriz P
for(f=0;f<4;f++)
{
for(c=0;c<3;c++)
{
P[f][c] = 1;
}
}
//Imprimir matriz P
for(f=0;f<4;f++)
{
for(c=0;c<3;c++)
{
cout<<P[f][c]<<"\t";
}
cout<<endl;
}
}
:::186:::
S: 2
Programa:
2 2 2 2 2
3 3 3 3 3 3
3x6
#include<iostream.h>
void main()
{
int S[3][6],f,c;
//Inicializar la matriz S
for(f=0;f<3;f++)
{
for(c=0;c<6;c++)
{
S[f][c] = f+1;
}
}
//Imprimir matriz S
for(f=0;f<3;f++)
{
for(c=0;c<6;c++)
{
cout<<S[f][c]<<"\t";
}
cout<<endl;
}
}
:::187:::
Programa:
T:
0 1 0
0 0 1
#include<iostream.h>
3x3
void main()
{
int T[3][3],f,c;
//Inicializar la matriz T
for(f=0;f<3;f++)
{
for(c=0;c<3;c++)
{
if(f==c)
{
T[f][c] = 1;
}
else
{
T[f][c] = 0;
}
}
}
//Imprimir matriz T
for(f=0;f<3;f++)
{
for(c=0;c<3;c++)
{
cout<<T[f][c]<<"\t";
}
cout<<endl;
}
}
:::188:::
:::189:::
:::190:::
:::191:::
:::192:::
:::193:::
Ejercicios
Resolver los siguientes:
6.1.
6.2.
6.3.
6.4.
6.5.
6.6.
6.7.
6.8.
6.9.
:::194:::
ORDENACIN
:::195:::
:::196:::
CAPITULO 7: Ordenacin
Ordenacin es la operacin de organizar un conjunto de datos en algn orden
dado, puede ser en forma ascendente o descendente en datos numricos, o bien en
orden alfabtico directo o inverso.
Se trata de una de las operaciones ms tpicas de la programacin. Existen varios
mtodos de Ordenacin.
7.1
:::197:::
BSQUEDA
:::198:::
:::199:::
CAPITULO 8: Bsqueda
Bsqueda es la operacin de ubicar un dato dentro de un conjunto de datos,
podemos determinar si se encuentra o no, podemos contar el nmero de veces que
se repite un dato.
8.1
:::200:::
FUNCIONES
:::201:::
:::202:::
CAPITULO 9: Funciones
Una funcin es un conjunto de instrucciones con un nombre determinado
y que realizan una tarea especfica dentro de un programa.
Adems de la funcin main, podemos crear nuestras propias funciones
dentro de un programa.
La forma de implementar una funcin es:
{
acciones;
return(variable);
tipo: Sirve para elegir el tipo de datos que devuelve la funcin. Toda
funcin puede obtener un resultado. Eso se realiza mediante la
instruccin return. El tipo puede ser: int, char, long, float, double,.... y
tambin void. ste ltimo se utiliza si la funcin no devuelve ningn
valor (y suelen llamarse procedimientos).
NombreFuncin: El identificador de la funcin debe cumplir reglas
correspondientes al nombre de los identificadores.
:::203:::
En la estructura general de
puntos importantes:
Inclusin de libreras
8.2
RECURSIVIDAD
La recursividad es una tcnica de creacin de funciones en la que
una funcin se llama a s misma. Ciertos problemas como el de las
torres de Hanoi, por ejemplo, seran casi imposibles de resolver sin
esta tcnica.
La idea es que la funcin resuelva parte del problema y se llame a s
misma para resolver la parte que queda, y as sucesivamente.
En cada llamada el problema debe ser cada vez ms sencillo hasta
llegar a una llamada en la que la funcin devuelve un nico valor.
Ejm: La funcin factorial con recursividad
int factorial(int n)
{
if (n ==0)
return 1;
else
return (n * factorial(n-1));
}
:::204:::
FUNCIONES
1. Funcin para sumar dos nmeros enteros
#include<iostream.h>
//declaracin del prototipo
int suma(int,int);
void main()
{
//llamar a la funcin suma
cout<<suma(3,4)<<endl;
}
//Implementacin de la funcin
int suma(int a,int b)
{
return a+b;
}
:::205:::
:::206:::
:::207:::
void calcula()
{
float n1,n2;
char opc;
do{
cout<<"Ingrese opcion: ";cin>>opc;
if(opc == 'X')
{
break;
}
else
{
cout<<"Ingrese n1: ";cin>>n1;
cout<<"Ingrese n2: ";cin>>n2;
switch(opc)
{
case 'S':cout<<suma(n1,n2)<<endl;break;
case 'R':cout<<resta(n1,n2)<<endl;break;
case 'M':cout<<multiplica(n1,n2)<<endl;break;
case 'D':cout<<division(n1,n2)<<endl;break;
case 'X':break;
}
}
imprimemenu();
}while(opc!='X');
}
:::208:::