2014- PROGRAMACION I CICLO 02 TEO 01 - SEGUNDO PARCIAL 1-78 pags.pdf
-
Upload
ronald-josue-salas -
Category
Documents
-
view
27 -
download
0
Transcript of 2014- PROGRAMACION I CICLO 02 TEO 01 - SEGUNDO PARCIAL 1-78 pags.pdf
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
1
QU ES UN ALGORITMO?
Es el conjunto ordenado y finito de operaciones que permite hallar la solucin de un problema.
La palabra algoritmo procede del matemtico rabe Mohamed Ibn Al Kow Rizmi, el cual escribi
sobre los aos 800 y 825 su obra Quitad Al Mugabala, donde se recoga el sistema de
numeracin hind y el concepto del cero. Fibonacci, tradujo la obra al latn y la llam: Algoritmi
Dicit.
2014. Un algoritmo es un mtodo para resolver un problema mediante una serie de pasos
precisos, definidos y finitos.
Caractersticas del Algoritmo
Un algoritmo debe resolver el problema para el que fue formulado. Lgicamente no sirve un
algoritmo que no resuelve ese problema. En el caso de los programadores, a veces crean
algoritmos que resuelven problemas diferentes al planteado.
Los algoritmos son independientes del ordenador. Los algoritmos se escriben para poder ser
utilizados en cualquier mquina.
Los algoritmos deben de ser precisos. Los resultados de los clculos deben de ser exactos, de
manera rigurosa. No es vlido un algoritmo que slo aproxime la solucin.
Los algoritmos deben de ser finitos. Deben de finalizar en algn momento. No es un algoritmo
vlido aquel que produce situaciones en las que el algoritmo no termina.
Los algoritmos deben de poder repetirse. Deben de permitir su ejecucin las veces que haga
falta. No son vlidos los que tras ejecutarse una vez ya no pueden volver a hacerlo por la
razn que sea.
Algunos ejemplos de algoritmos:
Ver una pelcula.
1. Buscar el video de la pelcula.
2. Si el televisor y la video-casetera se
encuentran apagados, encenderlos.
3. Sacar el video del estuche.
4. Introducirlo en la video-casetera.
5. Tomar el control del televisor y del video.
6. Dirigirme al sof.
7. Ponerme cmodo
8. Ajustar el volumen.
9. Disfrutar la pelcula
Cocinar arroz.
1. Lavar bien el arroz.
2. Buscar un recipiente de tamao adecuado.
3. Agregar el agua necesaria de acuerdo a la
cantidad de arroz.
4. Agregar aceite, sal, cebolla, ajo.
5. Colocar el recipiente en la cocina.
6. Encender la hornilla.
7. Esperar a que hierva el agua.
8. Agregar el arroz al agua hirviendo.
9. Dejar el recipiente en el fuego hasta que el
arroz este blando.
10. Apagar la hornilla.
11. Servir.
12. Comer. Buen provecho!!
Los algoritmos se pueden expresar por frmulas, diagramas de flujo, y pseudocdigos conocidos
como herramientas de programacin. Est ltima representacin es la ms utilizada por su
sencillez y parecido a el lenguaje humano.
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
2
Elementos que conforman un algoritmo
Entrada. Los datos inciales que posee el algoritmo antes de ejecutarse.
Informacion dada al algoritmo
Proceso.Acciones que lleva a cabo el algoritmo.(Frmulas)
Operaciones o clculos necesarios para encontrar la solucin del problema.
Salida. Datos que obtiene finalmente el algoritmo.
Respuestas dadas por el algoritmo o resultados finales de los clculos.
Como por ejemplo imagine que desea desarrollar un algoritmo que calcule la superficie de un
rectngulo proporcionndole su base y altura. Lo primero que deber hacer es plantearse y
contestar a la siguientes preguntas:
Especificaciones de entrada
Qu datos son de entrada?
Cuntos datos se introduciran?
Cuntos son datos de entrada validos?
Especificaciones de salida
Cules son los datos de salida?
Cuntos datos de salida se produciran?
Qu precisin tensdran los resultados?
Otros ejemplos de algoritmos:
a) Para calcular la nomina de unos empleados se utilizan las horas trabajadas y el salario por
hora. Ambos datos se multiplican y se obtiene el salario bruto. A ese salario bruto se le restan
las deducciones y se obtiene el salario neto.
Algoritmo
1. Entrar horas trabajadas
2. Entrar salario por hora
3. Multiplicar las horas trabajadas por el salario por hora
4. Obtenga el salario bruto
5. Le restamos al salario bruto las deducciones y obtengo el salario neto
6. Presentar el salario neto
b) En una empresa de ventas, cada vendedor tiene su salario particular. Adicional se le otorga
un 10% de las ventas que realice en la quincena (una comisin). Cada quincena su cheque
incluye su salario ms la comisin que se gano por sus ventas.
Algoritmo
1. Se entra el salario del vendedor
2. Se entran sus ventas para la quincena
3. Se calcula la comisin , multiplicando ventas * 0.10
4. Se suma su salario a la comisin calculada para obtener su salario final
El lenguaje algortmico debe ser independiente de cualquier lenguaje de programacin
particular, pero fcilmente traducible a cada uno de ellos. Para alcanzar objetivos de
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
3
aprendizaje es necesario conocer por lo menos uno de los mtodos para la representacin de
algoritmos, tales como los diagramas de flujo diagramas Nassi-Schneiderman .
Representacin grfica de algoritmos. Diagramas de Flujo.
on la representacin grfica de la solucin algortmica de un problema. Para disearlos se
utilizan determinados smbolos o figuras que representan una accin dentro del
procedimiento. Utilizan unos smbolos normalizados, con los pasos del algoritmo escritos
en el smbolo adecuado y los smbolos unidos con flechas, denominadas lneas de flujo, que
indican el orden en que los pasos deben ser ejecutados.
Para su elaboracin se siguen ciertas reglas:
Se escribe de arriba hacia abajo y de izquierda a derecha
Siempre se usan flechas verticales u horizontales, jams curvas
Evitar cruce de flujos
En cada paso expresar una accin concreta
Secuencia de flujo normal en una solucin de problema
Tiene un inicio
Una lectura o entrada de datos
El proceso de datos
Una salida de informacin
Un final
Simbologa para disear flujogramas.
S
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
4
D
Ejercicios de la clase:
1. Calcular la temperatura promedio del da de hoy, teniendo
la temperatura mnima y la mxima.
2. Calcular el promedio de las 4 notas de Programacin I para
el primer periodo.
3. Conversin de pies a pulgadas, sabiendo 1 pulgada es
igual a 12 pies.
4. Calcular la suma y la multiplicacin de tres nmeros enteros.
5. Calcular el pago total de una prenda de un almacn
sabiendo de antemano que posee un 15% de descuento.
(Almacenes Simn)
Tipos de Datos
Los diferentes objetos de informacin con los que un programa trabaja se denominan datos.
Todos los datos tienen un tipo asociados con ellos que nos servir para poder conocer con que
informacin trabajaremos. Es decir, cuando ingresemos el sueldo de un trabajador necesitamos
que este contenga decimales, o al solicitar la edad de una persona est tiene que estar con
nmeros enteros, etc.. Adems la suma entre caracteres no tiene sentido.
La asignacin de tipos a los datos tiene dos objetivos principales:
Detectar errores de operaciones aritmticas en los programas
Determinar cmo ejecutar las operaciones
Tipos de Datos Comunes. Estos son los tipos de datos ms utilizados en los lenguajes de
programacin:
Numricos, Caracteres y Lgicos
Tipos Numricos
Dentro de estos tipos se
puede hacer mencin de los
tipos enteros, reales o de
coma flotante y de los
exponenciales.
Tipos Carcter
Los tipos carcter se dividen
tambin en caracteres ASCII,
como por ejemplo: a A & * ,
etc..
El otro grupo de caracteres
son los strings o cadenas de
caracteres, como por
ejemplo: "Hola Mundo".
Tipos Lgicos
Los tipos lgicos solamente
pueden tomar los valores
verdadero o falso.
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
5
Identificadores
Representan los nombres de los objetos de un programa (constantes, variables, tipos de datos,
procedimientos, funciones, etc.).
Es una secuencia de caracteres que puede ser de cualquier longitud, aunque tiene ciertas reglas
que hay que seguir, las cuales son:
1. Debe comenzar con una letra o "_" y no puede contener espacios en blanco.
2. Letras, dgitos y caracteres subrayados ("_") estn permitidos despus del primer carcter.
En sntesis un identificador es un mtodo para nombrar a las celdas de memoria en la
computadora, en lugar de memorizarnos una direccin de memoria. Se utilizan para nombrar
variables, constantes, procedimientos y funciones.
Constantes
Las constantes son valores que no pueden
cambiar en la ejecucin del programa. Recibe
un valor en el momento de la compilacin del
programa y este no puede ser modificado.
Variables
Las variables son valores que se pueden
modificar durante la ejecucin de un
programa. Al contrario de las constantes stos
reciben un valor, pero este valor puede ser
modificado durante la ejecucin o la
compilacin del programa.
Sentencia de Asignacin
Se utiliza para asignar o almacenar valores a variables o constantes. Es una operacin que sita
un valor determinado en una posicin de memoria. Se demuestra en pseudocdigo con el
smbolo
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
6
Operadores utilizados en Programacin
En todos los lenguajes de programacin se utilizan operadores para efectuar operaciones
aritmticas. Combinando las variables y constantes en expresiones aritmticas por medio de
funciones adecuadas.
Una expresin es un conjunto de datos o funciones unidos por operadores aritmticos, los cuales
se muestran en la siguiente tabla:
Operador Significado
+ Suma
- Resta
* Multiplicacin
/ Divisin
^ Exponenciacin
Mod Mdulo
Operadores Lgicos
En ocasiones en los programas se necesitan realizar comparaciones entre distintos valores,
esto se realiza utilizando los operadores relaciones, los cuales se listan a continuacin:
Operador Significado
< Menor que
> Mayor que
= Mayor o igual que
= Igual a
Distinto a, diferente de
Variables y Constantes
Un programa necesita una manera de grabar los datos que usa. Las variables y constantes
ofrecen varias maneras para representar y manipular los datos.
Qu es una variable? En C++ una variable es un espacio para guardar informacin. Una variable es una ubicacin
en la memoria de la computadora en la cual se puede grabar un valor y por la cual se puede
recuperar ese valor ms tarde. La memoria de la computadora puede ser vista como una serie
de pequeas casillas. Cada casilla es una de muchas que se encuentran alineadas es una
ubicacin de memoria, que esta numerada secuencialmente. Estos nmeros son conocidos como
direcciones de memoria. Una variable reserva uno o ms casillas en las cuales es posible grabar
datos. Los nombres de las variables (por ejemplo, myVariable) es una etiqueta en una sola
casilla, para que se pueda encontrarla fcilmente sin saber su actual direccin de memoria.
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
7
RAM es la memoria de acceso aleatorio. Una programa cuando es ejecutado
o esta corriendo, es grabado temporalmente en la memorira RAM. Todas las
variables, son tambin, creadas en la memoria RAM. Cuando los
programadores hablan de memoria, generalmente se estn refiriendo a la
memoria RAM.
Reservando Memoria
Cuando se define una variable en C++, se debe de especificar al compilador que clase de
variable es: un entero (int), un caracter (char), etc. Esta informacin le dice al compilador cuanto
de espacio debe separar o reservar, y que tipo de valor se va a guardar en la variable. Cada
casilla de memoria tiene un byte de capacidad. Si el tipo de variable que se crea es de dos
bytes te tamao, este necesita de dos bytes de memoria, o de dos casillas. El tipo de variable
(por ejemplo, entero) le dice al compilador cuanta memoria (o cuantas casillas) tiene que reservar
para la variable. Porque las computadores usan los bits y los bytes para representar los valores,
y porque la memoria es medida en bytes, es importante entender y sentirse cmodo con este
concepto.
Definir una Variable
Se crea o se define una variable manifestando su tipo, seguida de uno o ms espacios, y seguida
del nombre de la variable y luego punto y coma. El nombre de la variable puede ser virtualmente
cualquier combinacin de letras, pero que no pueden contener espacios. Variables aceptadas
son: x, jap007, miedad. Los nombre buenos de variables nos dice para que la variable es
utilizada, usando buenos nombres se nos hace ms fcil la compresin del programa. La
siguiente sentencia define una variable entera llamada miedad. int miedad;
Como practica general de programacin, evitar los nombres horrorificos como j23qrs, y
restringir los nombres de variables de una sola letra como x y, para valores que sean de uso
rpido y no perduren en todo el programa. Se debe tratar de usar nombres extensos como
miedad o contador. Algunos nombres con fciles de entender tres semanas despus en lugar de
romperse la cabeza imaginndose que significan nombres cortos.
Palabras reservadas:
Tienen un significado predeterminado para el compilador y slo pueden ser usadas con dicho
sentido. En C++ se escriben siempre con minsculas.
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
8
Tipos de datos
En la siguiente tabla se muestran los tipos bsicos con los que se cuenta C y C++:
Tipo Palabra reservada Disponible
C C++
Lgico Bool No Si
Carcter Char Si Si
Entero Int Si Si
Coma flotante Float Si Si
Coma flotante doble double Si Si
Sin valor Void Si Si
ESTRUCTURA GENERAL DE UN PROGRAMA EN C++
// Declaracin de libreras #include
using namespace std;
main() {
// Inicio de funcin main
// Declaracin de variables int x;
int y;
float r; double f;
// Desarrollo de operaciones de
entrada, proceso y salida de datos
system(pause);
return (0);
}
// Cierre de la funcin main
C++ distingue entre letras maysculas y minsculas, por lo que a
efectos del programa sern identificadores distintos hola, Hola y
hola.
Cabecera de programa
Declaracin de variables
Programa Principal
Cuerpo del Programa
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
9
Las cabeceras del programa:
Son indispensables para programar en C++ ya que en ellas se encuentran todas las funciones
de E/S, procedimiento de datos, como cadenas, etc. Sin dichos includes nuestro programa ni
siquiera compilara.
Por ejemplo: #include
#include
#include
#include
Programa Principal:
El compilador de C++ reconoce el procedimiento principal del programa con la palabra
reservada main(), dentro de este procedimiento se declaran las variables locales, constantes
locales, etc.
Declaracin de variables.
En C++ una variable es una posicin con nombre en memoria, donde se almacena un valor de
un cierto tipo de datos y puede ser modificado. Las variables pueden almacenar todo tipo de
datos: cadenas, nmeros, etc. Una constante, por el contrario, es un variable cuyo valor no
puede ser modificado.
Por ejemplo: int edad;
float precio;
float nota4;
char nombre[25]; para escribir corchetes su cdigo ascii es ALT+91 y ALT+93 char direcc[50];
double total;
double sumatoria;
Comentarios en C++.
Un programador coloca comentario en determinada ubicacin del programa para hacer
referencia a la accin que realiza dicho cdigo, para as poder manipular mejor los errores que
puedan producirse.
Los comentarios de C siguen siendo vlidos en C++.
Por ejemplo: /* Esto es un comentario */
C++ define adems otra forma de comentar una lnea. Un comentario comienza con //, y
contina hasta el final de esa lnea, donde termina automticamente:
// Esto es un comentario
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
10
EJEMPLO DE UN PROGRAMA SECUENCIAL EN C++
EJEMPLO1: Programa en C++ que nos permite sumar 2 numeros enteros.
1 #include // librera de declaraciones como E/S
2 using namespace std;
3 // Las lneas "#include " y "using namespace std;" son necesarias porque las
4 // declaraciones que permiten el acceso a "cout" y "cin" estn en una librera externa
5 main()
6 {
7 int num1;
8 int num2;
9 int x;
10 coutnum1;
12 coutnum2;
14 x=(num1 + num2);
15 cout
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
11
EJEMPLO2: Programa que nos permite encontrar el valor de la hipotenusa de un triangulo.
1 #include
2 #include
3 using namespace std;
4 main()
5 {
6 int lado1;
7 int lado2;
8 double x;
9 double y;
10 double z;
11 double h;
12 coutlado1;
14 coutlado2;
16 x = pow(lado1,2); // formula de exponenciacin
17 y = pow(lado2,2);
18 z = x + y;
19 h = pow(z,0.5); // frmula para tener una raiz cuadrada
20 cout
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
12
EJEMPLO3: Programa que nos permite encontrar el promedio de notas de un estudiante de un
colegio.
1 #include
2 using namespace std;
3 main()
4 {
5 char nomb[15];
6 char ap[15];
7 float nota1,nota2,nota3,prom;
8 coutnomb;
10 coutap;
12 coutnota1;
14 coutnota2;
16 coutnota3;
18 prom = (nota1 + nota2 + nota3)/3;
19 cout
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
13
EJEMPLO4: Programa que nos permite encontrar el valor del rea de un triangulo.
1 #include
2 using namespace std;
3 main()
4 {
5 int base,altura,area;
6 coutbase;
8 coutaltura;
10 area = base * altura;
11 cout
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
14
Manejo de constantes en un programa.
Programa que permite encontrar el area y la longuitud de un circulo
1 #include
2 #include
3 using namespace std;
4 main()
5 {
6 #define pi 3.14156
7 int radio;
8 double area,longuitud,h;
9 coutradio;
11 h = pow(radio,2);
12 area = pi*h;
13 longuitud = (2*pi*radio);
14 cout
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
15
EJERCICIOS PARA ERRORES
1 #include
2 using namespace std;
3 int main()
4 {
5 int n1, n2;
6 double a,b,c,d;
7 coutn1;
9 coutn3;
11 a = pow(n1,2);
12 b = pow(n2,);
13 c = pow(n1,0.5);
14 d = pow(n2,0.5);
15 cout"\nEl valor del primer nmero al cuadrado es:"
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
16
CORREGIENDO NOS QUEDA ASI:
1 #include
2 #include
3 using namespace std;
4 main()
5 {
6 int n1,n2;
7 double a,b,c,d;
8 coutn1;
10 coutn2;
12 a = pow(n1,2);
13 b = pow(n2,2);
14 c = pow(n1,0.5);
15 d = pow(n2,0.5);
16 cout
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
17
ESTRUCTURAS DE DECISION CONDICIONALES
Las estructuras condicionales comparan una variable contra otro(s)valor (es), para que en base
al resultado de esta comparacin, se siga un curso de accin dentro del programa. Cabe
mencionar que la comparacin se puede hacer contra otra variable o contra una constante,
segn se necesite. Existen tres tipos bsicos, las simples, las dobles y las mltiples.
Simples: Las estructuras condicionales simples se les conocen como Tomas de decisin. Estas
tomas de decisin tienen la siguiente forma:
Pseudocdigo: Diagrama de flujo:
Dobles: Las estructuras condicionales dobles permiten elegir entre dos opciones o alternativas
posibles en funcin del cumplimiento o no de una determinada condicin. Se representa de la
siguiente forma:
Pseudocdigo: Diagrama de flujo:
Donde:
Si: Indica el comando de comparacin
Condicin: Indica la condicin a evaluar
Entonces: Precede a las acciones a realizar cuando se cumple la condicin
Instruccin(es): Son las acciones a realizar cuando se cumple o no la condicin
si no: Precede a las acciones a realizar cuando no se cumple la condicin.
Dependiendo de si la comparacin es cierta o falsa, se pueden
realizar una o ms acciones.
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
18
Mltiples:
Las estructuras de comparacin mltiples, son tomas de decisin especializadas que permiten
comparar una variable contra distintos posibles resultados, ejecutando para cada caso una serie
de instrucciones especficas. La forma comn es la siguiente:
Pseudocdigo: Diagrama de flujo:
Operadores Aritmticos.
C++ reconoce los siguientes operadores aritmticos:
Operador Operacin
+ SUMA
- RESTA
* MULTIPLICACION
/ DIVISION
% MODULO O RESIDUO
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
19
Operadores Relacinales.
Se utilizan para establecer una relacin entre dos valores.
Compara estos valores entre si y esta comparacin produce un resultado de certeza o
falsedad (verdadero o falso).
Los operadores relacinales comparan valores del mismo tipo (numricos o cadenas)
Tienen el mismo nivel de prioridad en su evaluacin.
Los operadores relacinales tiene menor prioridad que los aritmticos.
Operador Significado Ejemplo
== ( Ojo , no =) Igual a a == b
> Mayor que a > b
< Menor que a < b
!= No igual a a != b
>= Mayor o igual a >= b
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
20
EJEMPLO1:
Realizar un programa que permita dar el resultado si una pesona es menor de edad,
preguntando su ao de nacimiento y el ao actual.
1 #include
2 using namespace std;
3 main()
4 {
5 int nac, hoy, edad;
6 cout> nac;
8 cout> hoy;
10 edad = hoy - nac;
11 if (edad < 18) {
12 cout
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
21
EJEMPLO2:
Realizar un programa que permita digitar un numero entero y me de como resultado si es PAR.
1 #include
2 using namespace std;
3 main()
4 {
5 int num, x;
6 cout> num;
8 x = (num%2); // utilizando de la funcin modulo
9 if (x==0)
10 {
11 cout
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
22
EJEMPLO3:
Realizar un programa que permita digitar un numero entero y me de como resultado si es
PAR IMPAR.
1 #include
2 using namespace std;
3 main()
4 {
5 int num, x;
6 cout> num;
8 x = (num%2); // utilizando de la funcin modulo
9 if (x==0)
10 {
11 cout
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
23
EJEMPLO4:
Realizar un programa que permita saber cuales el numero mayor entre 2 numeros enteros.
1 #include
2 using namespace std;
3 main()
4 {
5 int X, Y;
6 cout> X;
8 cout> Y;
10 if (X>Y)
11 {
12 cout
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
24
EJEMPLO5:
Realice un programa que solicite el nombre de una persona, su edad y su sexo si el sexo es
masculino que muestre en pantalla el mensaje de El Sr. (nombre) ha sido registrado" y si el
sexo es femenino que muestre el mensaje "La Sra. (nombre) ha sido registrada".
1 #include
2 using namespace std;
3 main()
4 {
5 char nombre[15];
6 int edad;
7 char sexo;
8 cout> nombre;
10 cout> edad;
12 cout> sexo;
14 if (sexo=='M' || sexo=='m')
15 { cout
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
25
EJEMPLO6: Dados 2 nmeros cualesquiera dentro de un programa, que se calcule y se
despliegue su suma, resta, producto y divisin del primero entre el segundo, utilizando un men
1 #include
2 using namespace std;
3 main()
4 {
5 int X, Y, resp, opcion;
6 cout> X;
8 cout> Y;
10 cout
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
26
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
27
ESTRUCTURAS DE SELECCIN MULTIPLE
( SWITCH CASE )
Para desarrollar estructuras de seleccin mltiple en C++, se
utiliza la sente ncia SWITCH. Esta selecciona elementos de un
conjunto de valores de tipo entero, cada CASE puede
delimitarse con un BREAK, si no se delimita se continua en el
siguiente case.
Una de las aplicaciones ms tiles de la sentencia SWITCH es el uso de un men.
En esta aplicacin, dependiendo de la seleccin del usuario, es posible escoger entre diversas
funciones a ser ejecutadas, como se mostrara posteriormente a travs de un ejercicio.
DEFINICION.
La instruccin SWITCH consiste en una serie de etiquetas CASE y un caso opcional
DEFAULT.
La palabra reservada SWITCH es seguida por el nombre de la variable OPCION, la
cual se encuentra entre parntesis. A esta se le llama EXPRESION DE CONTROL. El
valor de esta expresin se compara con cada una de las etiquetas CASE. Adems existe
una instruccin BREAK, al final de cada CASE, ocasiona que el control salga
inmediatamente de la instruccin SWITCH.
Si no se encuentran constantes iguales a la variable, se ejecutaran las instrucciones del
DEFAULT, aunque el default es opcional.
RECORDAR.
En programas que exigen evaluar muchas condiciones a la vez
como puede ser un programa de men, utilizar IF es muy largo y
complicado
El cdigo puede ser muy difcil de seguir y adems confuso, por
esta razn C++ incorpora una instruccin de decisin mltiple, la
instruccin SWITCH
En esta instruccin el computador prueba una variable sucesivamente contra una lista de
constantes INT (entera) o CHAR (carcter), despus que encuentra el valor de igualdad
con la variable, el computador ejecuta las instrucciones que est asociada a la constante.
Las instrucciones pueden ser simples, es decir una sola o compuesta, es decir todo un
grupo o un programa completo, no olvidar terminar cada CASE con un BREAK.
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
28
REPRESENTACION GRAFICA DE LA INSTRUCCIN SWITCH CASE
Leer
Opcion
Opcion
Procesos 1 Procesos 2 Procesos 3 Procesos 4 Default
EJEMPLO 1:
Dadas como dato la categora y el sueldo de un trabajador, calcule el aumento correspondiente
teniendo en cuenta la siguiente tabla. Imprimir su nuevo sueldo.
CATEGORIA AUMENTO
A 16%
B 13%
C 9%
D 7%
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
29
1 #include
2 using namespace std;
3 main()
4 {
5 int opcion;
6 float sueldo, desc, total;
7 coutsueldo;
9 cout
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
30
38 cout
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
31
EJEMPLO2: Dados como datos 2 variables de tipo entero, obtenga el resultado de la siguiente
funcin:
Val = 100*v, si num = 1
Val = 100**v, si num = 2
F(x)= Val = 100 / v, si num = 3
Val = 0, para cualquier otro valor de num
1 #include
2 #include
3 using namespace std;
4 main()
5 {
6 int opcion;
7 int v;
8 double VAL;
9 coutv;
11 cout
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
32
29 case 3:
30 VAL=100/v;
31 cout
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
33
EJEMPLO3: Realizar un cdigo en C++ que dados como datos el modelo de un vehculo, su
precio, determine el valor final que debe de pagar el cliente. El dueo de la empresa que vende
los vehculos est haciendo descuentos teniendo en cuenta el modelo, con base a la siguiente
tabla:
CASE MODELO DESCUENTO
N NISSAN 8%
T TOYOTA 9%
C CORDOVA 10%
S SUZUKI 11%
B BMW 12%
H HONDA 13%
Emitir la respuesta del pago en dlares y en colones. ( 1 dlar = 8.75 colones )
1 #include
2 using namespace std;
3 main()
4 {
5 char opcion;
6 float precio, descuento, nuevo, colones;
7 coutprecio;
9 cout
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
34
30 break;
31 case 't':case 'T':
32 descuento=precio*0.09;
33 nuevo=precio-descuento;
34 cout
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
35
71 system("pause");
72 return(0);
73 }
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
36
ESTRUCTURAS REPETITIVAS Las estructuras repetitivas son tambin conocidas como BUCLES, ciclos o lazos. Una estructura
repetitiva permite la ejecucin de un conjunto de sentencias:
Un nmero determinado de veces ( controladas por contador )
Hasta que se satisface una determinada condicin ( controladas por condicin )
1. BUCLES CONTROLADOS POR CONTADOR: FOR
Si conocemos exactamente la cantidad de veces que necesitamos repetir un conjunto de sentencias,
entonces podemos usar un bucle FOR.
En general, los bucles controlados por contador requieren:
a) Una variable de control o contador
b) Un valor inicial para el contador
c) Un valor final para el contador
d) Una condicin para verificar si la variable de control alcanzo su valor final
e) Un valor de incremento ( o decremento ) con el cual se modifica la variable de control en cada bucle
La forma general del bucle FOR es:
Representacin grafica de un
CICLO FOR
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
37
#include
using namespace std;
main()
{
int x;
for (x=1;x
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
38
EJERCICIO 1: Calcular el promedio de un alumno que tiene 5 calificaciones en la materia de
programacin I.
INICIO
Leer
Nombre
x
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
39
1 #include
2 using namespace std;
3 main()
4 {
5 char nombre[40];
6 int x;// variable que se utilizara en el ciclo for
7 float sum;// variable que servir como acumulador
8 float nota, prom;
9 sum=0;
10 cout
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
40
EJERCICIO 2: Leer 10 nmeros enteros cualesquiera e imprimir solamente los nmeros positivos.
INICIO
y 0
Imprimir num
y = y + 1
FIN
si
no
si
no
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
41
1 #include
2 using namespace std;
3 main()
4 {
5 int y;// variable que se utilizara en el ciclo for
6 int num;
7 for (y=1;y0)
12 {
13 cout
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
42
EJERCICIO 3:
Crear un programa en C++
que permita leer una lista de
W nacionalidades de
diferentes pases y que
imprima lo siguiente:
Contabilizar e imprimir el
total de guatemaltecos
Contabilizar e imprimir el
total de musulmanes
Cuantos hombres hay en
la lista
Cuantas personas son
menores de 45 aos
INICIO
Leer w
y
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
43
1 #include
2 using namespace std;
3 main()
4 {
5 int y;// variable que se utilizara en el ciclo for
6 int g, h, e, m; // variables para los contadores
7 int w,edad;
8 char nac,sexo;
9 g=0,h=0,e=0,m=0;
10 coutw;
12 for (y=1;y
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
44
39 cout
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
45
EJERCICIO 4: Se necesita un cdigo C++ que imprima la siguiente serie de nmeros:
2,4,6,8,10,20
1 #include
2 using namespace std;
3 main()
4 {
5 int x;
6 for (x=2;x
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
46
EJERCICIO 5: Calcular e imprimir la tabla de multiplicar de un nmero entero que se encuentre
en el rango (1 a 10). Imprime el multiplicando, el multiplicador y el producto.
1 #include
2 using namespace std;
3 main()
4 {
5 int x;// variable que se utilizara en el ciclo for
6 int w;
7 coutw;
9 cout
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
47
EJERCICIO6: Dada una lista de 10 numeros enteros ingresados desde el teclado. Informar el
mayor, el menor y la sumatoria de los que se encuentran entre 100 y 500 inclusive.
1 #include
2 using namespace std;
3 main()
4 {
5 int n,i,max,min,sum=0;
6 coutmax)
16 {
17 max=n;
18 }
19 if(n=100)&&(n
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
48
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
49
ESTRUCTURA REPETITIVA WHILE
CARACTERSTICAS:
Condicin es una expresin que se evala al principio del bucle y antes de cada iteracin
de las sentencias
Si la condicin es VERDADERA, se ejecuta el bloque de sentencias y se vuelve al principio
del bucle.
Si la condicin es FALSA desde un principio, entonces el bucle nunca se ejecuta. ( Por eso
se dice que el bucle while se ejecuta cero o ms veces )
Si la condicin nunca llega a ser falsa, tenemos un bucle infinito
SINTAXIS:
While ( condicion )
{
Sentencia 1;
Sentencia 2;
Sentencia 3;
. ;
}
Ejemplo1:
1 #include
2 using namespace std;
3 main()
4 {
5 int x;
6 x=0;
7 while (x
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
50
Ejemplo2:
1 #include
2 using namespace std;
3 main()
4 {
5 double num,sum,pro;
6 sum=0;
7 pro=1;
8 cout> num;
10 while (num!=0)
11 {
12 sum=sum + num;
13 pro=pro*num;
14 cout
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
51
Ejemplo3: Elaborar un programa que permita sumar 10 nmeros enteros usndola estructura
WHILE
1 #include
2 using namespace std;
3 main()
4 {
5 int i, y, num;
6 i = 1;
7 y = 0;
8 while (i num;
12 y = y + num;
13 i = i + 1;
14 }
15 cout
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
52
ESTRUCTURA REPETITIVA DO WHILE
La sentencia do-while permite repetir una sentencia una o ms veces mientras la expresin sea
cierta.
CARACTERISTICAS:
Se garantiza que el cuerpo del bucle se ejecuta al menos una vez
El trmino del bucle se produce cuando la expresin o condicin de salida es falsa
Do-while es un bucle con condicin de salida. Esto significa que la sentencia se realiza al
menos una vez
SINTAXIS: Do
{
Sentencia 1;
Sentencia 2;
Sentencia 3;
. ;
} While ( condicin );
EJEMPLO1: Realice un programa que sume 2 nmeros y que termine cuando escriba un cero
en el primer numero
1 #include
2 using namespace std;
3 main()
4 {
5 int x, y, resp, suma;
6 cout> x;
8 do{
9 cout> y;
11 suma = x + y;
12 cout
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
53
19 system("pause");
20 return(0);
21 }
DOWHILE-Ejemplo1.cpp
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
54
EJEMPLO2: Realice un programa que sume 2 nmeros y que termine cuando escriba un s de
respuesta
1 #include
2 using namespace std;
3 main()
4 {
5 int x, y, suma;
6 char resp;
7 do{
8 cout> x;
10 cout> y;
12 suma = x + y;
13 cout
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
55
7 int edad;
8 do{
9 cout> nombre;
11 cout> edad;
13 cout> sexo;
15 if (sexo=='M' || sexo=='m')
16 cout
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
56
FUNCIONES
Qu es una funcin?
Una funcin es una coleccin de instrucciones que ejecutan una tarea especfica.
En un programa de C++ se distinguen dos clases de funciones: las funciones definidas por el
usuario y las funciones incluidas en alguna librera.
En C++ la declaracin de una funcin nunca puede contener a la declaracin de otra funcin.
Mediante el uso de funciones se consigue formar un programa estructurado ms comprensible y
reducido.
Pensar por ejemplo que durante la ejecucin de un programa se necesita visualizar una matriz
varias veces, por ejemplo 6 veces, pues bien si no tuviera funciones debera escribir el cdigo
que visualiza la funcin 6 veces, mientras que con una funcin solo tendr que escribirla una vez
y luego hacer una llamada a sta cada vez que quiera visualizar la matriz.
EJEMPLO1: 1 #include
2 void suma(float a,float b); // declaracin de un procedimiento
3 float resta(float a, float b); // declaracin de una funcin
4 void concatenar(char n[], int b); // declaracin de un procedimiento
5 main()
6 {
7 float x,y;
8 int edad;
9 char nombre[40];
10 coutx;
12 couty;
14 cout
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
57
23 coutedad;
25 cout
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
58
EJEMPLO2: 1 #include
2 using namespace std;
3 void par(int a); // declaracin de un procedimiento
4 main()
5 {
6 int num;
7 cout> num;
9 par(num);
10 cout
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
59
EJEMPLO3: 1 #include
2 using namespace std;
3 void colon(float a); // declaracin de un procedimiento
4 void quet(float a); // declaracin de un procedimiento
5 float euros(float a); // declaracin de una funcin
6 float libras(float a); // declaracin de una funcin
7 main()
8 {
9 float x;
10 coutx;
12 // llamadas a las funciones
13 colon(x);
14 quet(x);
15 cout
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
60
38 }
FUNCIONES-Ejemplo3.cpp
EJEMPLO4: 1 #include
2 using namespace std;
3 void suma(int a, int b);
4 void resta(int a, int b);
5 void multi(int a, int b);
6 void divi(int a, int b);
7 main()
8 {
9 // declaracion de variables
10 int num1, num2, opcion;
11 coutnum1;
13 coutnum2;
15 cout
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
61
30 resta(num1,num2);
31 break;
32 case 3:
33 multi(num1,num2);
34 break;
35 case 4:
36 divi(num1,num2);
37 break;
38 default:
39 cout
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
62
VECTORES
Qu es un ARRAY?
Es una coleccin o conjunto de posiciones de memoria que tiene el mismo nombre de
variables, es decir, un conjunto de datos numricos o de cadena que tienen el mismo
nombre. Un array puedes ser de una dimensin (vector) o de varias dimensiones (matrices).
Los vectores (array unidimensional o lineal) es una lista de un finito de elementos (datos)
del mismo tipo que se llaman por un mismo nombre a todos los elementos y se diferencian
unos a otros por un numero de orden, los cuales son consecutivos como 1,2,3,4,. Hasta
un N total de elementos.-
Cada elemento puede tener asignado un valor y se puede manipular de igual forma que
cualquier otra variable individual.-
No olvidar cada arreglo posee un nombre y un ndice que referencia a cada elemento del
arreglo
Hablaremos de la palabra dimensionar cuando necesitamos saber la cantidad de
elementos que contiene por cada dimensin ( tamao del arreglo )
Para hacer referencia a un elemento de un vector se usa el nombre del mismo, seguido del
ndice (entre corchetes), el cual indica una posicin en particular del vector. Por ejemplo:
Vec[x]
Donde:
Vec.. Nombre del vector
x Numero de datos que constituyen el arreglo
Representacin grafica de un vector
Vec[0] 8
Vec[1] 5
Vec[2] 4
Vec[3] 12
Ejemplos de declaracin de vectores tenemos:
int ventas[15];
float precios[45];
char nombre[25];
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
63
Funcion: Strlen
La funcin strlen(); pertenece a la librera string.h
Esta funcin se encarga de calcular el nmero de caracteres que tiene la cadena hasta el
carcter nulo que no se incluye.
Sintaxis:
cantidadletras=strlen(nombre);
ejemplo: x=strlen(nombre);
EJEMPLO1:
1 //Programa que permite digitar una cantidad de notas de un estudiante
2 #include
3 using namespace std;
4 main()
5 {
6 int notas[50];
7 int i, j, n, resp, encontrado, buscar, mayor, menor, suma, aux;
8 float promedio;
9 coutn;
Comentario: chequear que apartamos 50 espacios en la memoria RAM para colocar
nmeros enteros
11 //LLENADO DE NOTAS
12 for (i=1;i
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
64
23 //BUSCAR UNA NOTA
24 encontrado = 1;
25 cout> buscar;
27 for(i=1;i
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
65
49 //LA SUMATORIA DE LAS NOTAS
50 suma = 0;
51 for(i=1;i
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
66
Ver aqu: http://es.wikipedia.org/wiki/Ordenamiento_de_burbuja
71 //IMPRIME LOS DATOS ORDENADOS
72 for(i=1;i
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
67
EJEMPLO2:
1 /*Escriba un programa que lea una cadena de texto y como resultado que
2 //muestre el total de vocales y espacios en blanco que tiene la frase.*/
3 #include
4 #include
5 using namespace std;
6 main()
7 {
8 char nombre[25];
9 int I, cantidadletras, vocales, espacios;
10 vocales=0;
11 espacios=0;
12 cout
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
68
36 cout
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
69
EJEMPLO3
1 //Programa que suma los elementos de 2 vectores
2 #include
3 using namespace std;
4 main()
5 {
6 int i,n;
7 int vector1[5];
8 int vector2[5];
9 int suma[5];
10 //LLENADO DE LOS VECTORES
11 for(i=0;i
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
70
Curiosidad:
Que tipo de operaciones se pueden realizar con 2 vectores o con un solo vector.
Escribe aqu tu solucin:
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
71
EJEMPLO4:
1 // Envo de un array a una funcin.
2 #include
3 using namespace std;
4 void visualizar(int []);
5 main()
6 {
7 int array[5];
8 int i;
9 for(i=0;i
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
72
MATRICES ARREGLOS DE N-DIMENSIONES
Los arreglos en C++ pueden tener mltiples subndices. Un uso comn de los arreglos con
mltiples subndices es representar tablas de valores que consisten en informacin organizada
en filas y columnas. Para identificar un elemento en especial de una tabla, debemos especificar
dos subndices: el primero identifica la fila del elemento, y el segundo identifica la columna
del elemento.
Las tablas o arreglos que requieren dos ndices para identificar un elemento en particular se
llaman arreglos con doble subndice. Observe que los arreglos con mltiples subndices
pueden tener ms de dos subndices.
En la siguiente figura se muestra el arreglo a con doble subndice.
Este arreglo contiene tres filas y cuatro columnas, de manera que se dice que es un arreglo de
3 por 4. En general un arreglo con m filas y n columnas se llama arreglo de m por n as: mxn
Cada elemento del arreglo a se identifica en la figura con el nombre del elemento de la forma
a[i][j] tal como se haca con los vectores a[i].
a es el nombre del arreglo.
i , j son los subndices que identifican de manera nica a cada elemento de a.
Observe que los elementos en la primera fila tienen un primer subndice 0; los nombres de los
elementos en la cuarta columna tienen un segundo subndice 3.
Manipulacin de los elementos de un arreglo de dos dimensiones
Para trabajar con estos vectores de dos dimensiones se hace uso de las estructuras repetitivas
for, estas estructuras se disponen de manera anidada. Si recuerda en las estructuras anidadas
for, se ejecuta primero la ms interna y hasta que esta termine su ciclo la estructura repetitiva
externa cambia su valor. Esto significa que la estructura for externa determina el nmero de
veces que se repetir la estructura repetitiva interna. Si nos concentramos en la figura 1 veremos
que el for trabajara de la siguiente manera:
Columna
0
Columna
1
Columna
2
Columna
3
Fila 0 a[0][0] a[0][1] a[0][2] a[0][3]
Fila 1 a[1][0] a[1][1] a[1][2] a[1][3]
Fila 2 a[2][0] a[2][1] a[2][2] a[2][3]
Subndice de columna
Subndice de fila
Nombre del arreglo
Figura 1
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
73
for (i=0;i
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
74
16 }
17 }
18 //PARA IMPRIMIR EN PANTALLA LOS DATOS DE LA MATRIZ
19 cout
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
75
EJEMPLO 2:
El siguiente programa permite identificar y contar los datos positivos y negativos de una matriz.
Para ello se declaran dos variables contador, positivos y negativos, as cada vez que
encuentre un dato positivo se suma 1 al variable contador positivo y por el contrario si es un
dato negativo suma un 1 a la variable contador negativo. Para poder saber si es positivo o
negativo simplemente se usa un if.
1 #include
2 using namespace std;
3 main()
4 {
5 int numeros[2][3];
6 int i,j,positivos,negativos;
7 positivos=0;
8 negativos=0;
9 //PARA INGRESAR DATOS A LA MATRIZ
10 for(i=0;i
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
76
32 }
33 cout
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
77
16 }
17 //IMPRIMIR EN PANTALLA LOS DATOS DE LA MATRIZ
18 for(i=0;i
-
Programacin I Ing. Melvin Caras Ciclo 02-2014
78
54 return(0);
55 }
Matriz-Ejemplo3.cpp