manual de laboratorio 2010 -i dev c++
TRANSCRIPT
COMPENDIO
IInnffoorrmmááttiiccaa IIII -- 22001111 EEElllaaabbbooorrraaadddooo pppooorrr eeelll PPPRRROOOFFF... IIINNNGGG... CCCAAARRRLLLOOOSSS AAALLLBBBEEERRRTTTOOO SSSIIILLLVVVAAA DDDEEELLLGGGAAADDDOOO
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 2
ING. CARLOS ALBERTO SILVA DELGADO.
Ingeniero en Informática y Sistemas.
CIP Nro. 96047
EXPERIENCIA EN DOCENCIA UNIVERSITARIA
Universidad José Carlos Mariátegui - UJCM, Docente Contratado, 2006 - 2007 - 2008 .
Universidad Privada de Tacna - UPT, Docente Contratado, 2008.
Universidad Alas Peruanas - UPT, Docente Contratado, 2006 - 2007.
Universidad Nacional José María Arguedas - UNAJMA, Docente Ordinario, 2009.
EXPERIENCIA PROFESIONAL
Caja Municipal de Ahorro y Crédito de Tacna - CMAC-TACNA, Vicepresidente Directorio, 2006.
Gobierno Regional de Puno - PETT-PUNO, Administrador, 2005.
Empresa Prestadora de Servicios - EPS TACNA, Jefe División de Sistemas, 2003.
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 3
PPRREESSEENNTTAACCIIOONN
El presente trabajo denominado "Guía de Laboratorio" fue elaborado con el propósito de
facilitar el proceso de enseñanza - aprendizaje, impartido en torno a la asignatura de Informática II,
de la Carrera Profesional de Ingeniería de Sistemas de la Universidad Nacional José María Arguedas
de la ciudad de Andahuaylas.
Los docentes responsables de impartir la enseñanza universitaria a inicios de cada ciclo
estamos obligados a plantearnos la necesidad de reforzar los esquemas ó estrategias metodológicas
que nos permitan llegar a la totalidad de los estudiantes. La guía de laboratorio no es otra cosa que la
recopilación de información, impartida por el suscrito en clases, por ello mi profundo agradecimiento
a los estudiantes de la CPIS - UNAJMA que con sus inquietudes y aciertos han contribuido de sobre
manera en la elaboración del presente manual.
Su estructura y organización tiene el propósito de permitir al estudiante de la CPIS, iniciar su
aprendizaje de experto en la resolución de ejercicios de algoritmos por medio del lenguaje de
programación Dev C++; herramienta valiosa que nos auxiliara en la creación de programas. Las
técnicas y métodos expuestos tienen la intención que el alumno realice los ejercicios de prácticas en
una forma razonada y no mecánica para esto se integra un respaldo teórico al inicio de cada unidad.
Finalmente el estudiante comprenderá de una manera global la importancia de resolver problemas
utilizando algoritmos lo que le permitirá diseñar mejores programas.
IInngg.. CCaarrllooss AAllbbeerrttoo SSiillvvaa DDeellggaaddoo
Docente Ordinario CPIS UNAJMA
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 4
CONTENIDO
DESCRIPCIÓN GUÍA DE
LABORATORIO
PÁGINA
CARATULA 01
EL AUTOR 02
PRESENTACIÓN 03
CONTENIDO 04
INSTALACIÓN DEL ENTORNO DEV C++ Guía de Laboratorio
Nro. 01.
05 - 13
CONCEPTOS BÁSICOS DE LOS PROGRAMAS EN DEV C++ Guía de Laboratorio
Nro. 02.
14 - 19
OPERADORES Y EXPRESIONES Guía de Laboratorio
Nro. 03.
20 - 24
ESTRUCTURAS DE CONTROL SELECTIVAS Guía de Laboratorio
Nro. 04.
25 - 32
ESTRUCTURAS DE CONTROL REPETITIVAS Guía de Laboratorio
Nro. 05
33 - 41
FUNCIONES Y MÓDULOS Guía de Laboratorio
Nro. 06
42 - 50
ARRAYS (ARREGLOS) Guía de Laboratorio
Nro. 07
51 - 59
CADENAS Guía de Laboratorio
Nro. 08
60 - 69
CUADERNILLO DE EJERCICIOS PROPUESTOS 70 - 73
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 5
GUIA DE LABORATORIO N° 01
INSTALACIÓN DEL ENTORNO DEV C++
I. OBJETIVOS
Conocer sobre el entorno de DEV C++.
Instalar en Entorno DEV C++.
Aprender a utilizar el entorno DEV C++.
II. INTRODUCCIÓN
DEV C++ : Bloodshed Dev-c++ es un entorno de desarrollo integrado (IDE por sus siglas en
inglés) para programar en lenguaje C/C++.
El entorno está desarrollado en el lenguaje Delphi de Borland. El cual tiene una página de
paquetes opcionales para instalar, con diferentes bibliotecas de código abierto.
¿Cómo obtenerlo? : Existen varias webs disponibles para descargarlo, pero nosotros
bajaremos desde la web del autor: http://www.bloodshed.net/dev/devcpp.html
III. MATERIALES Y EQUIPOS A UTILIZAR
Guía de Laboratorio (Disponible en la Dirección Electrónica www.unajma.edu.pe).
Laboratorio de Computo (20 PCs).
Instalador del software Dev C++.
Cañón Multimedia.
Laptop.
Pizarra, Plumones y Mota.
IV. PROCEDIMIENTOS
Instalación de Dev C++
1. Ejecutamos nuestro archivo descargado.
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 6
2. Seleccionamos el idioma deseado.
3. Aceptamos la licencia.
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 7
4. Seleccionamos las opciones que bien por default, o sea FULL. Luego siguiente:
5. Elegimos el directorio donde se instalará nuestro compilador, dejemos la ruta que por
defecto está predeterminado luego Instalara automáticamente.
6. Se da inicio a la instalación del compilador, copiado de archivos, etc.
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 8
7. Una vez finalizado, apreciaremos ésta ventana, la que nos permitirá verificar la instalación
de nuestro compilador C++, seleccionamos Ejecutar Dev-C++ 5, para luego presionar el
botón Terminar.
8. Una vez que está cargado nuestro compilador, verificamos que las rutas a las librerías
están correctamente instaladas. Vamos a Herramientas -> Opciones del compilador.
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 9
9. Vamos a la pestaña Directorios, luego a la sub pestaña Binarios y verificamos que la ruta
sea c:\Dev-Cpp\Bin (Se visualizara así siempre y cuando hayan instalado el compilador en
el directorio por default).
10. Luego sub pestaña Librerías, verificamos que la ruta sea C:\Dev-Cpp\lib, repito, ésta ruta
es siempre cuando en la instalación hallamos elegido el directorio por default.
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 10
11. Sub pestaña Cabeceras C, verificamos C:\Dev-Cpp\include
12. Y lo mismo para la pestaña Cabeceras C++
13. Ahora, que sucede si nos faltaba alguna ruta de las que están en las imágenes?, pues
bueno hay que agregarlas; ¿cómo? Muy fácil, fíjense que en cada sub pestaña (binarios,
librerías, cabeceras, etc) existe un ícono en la parte inferior lado derecho con forma a una
carpeta (la que está destacada con un cuadrado rojo en la imagen), dénle un clic y les
abrirá la ventana de búsqueda de carpeta, en esa ventana seleccionan la carpeta que les
falta, luego aceptar y aceptar.
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 11
Para Windows Vista:
Existen problemas para compilar con Dev-C++ en Windows Vista, el cual se debe a un error de
construcción (Build Error), para solucionar este problema, hay que instalar el Dev-C++ de
forma normal, para luego hacer algunas pequeñas modificaciones.
1. En Herramientas -> Opciones del compilador, y en la pestaña directorios sub pestaña
Binarios, en ella agregar la ruta C:\Dev-Cpp\libexec\gcc\mingw32\3.4.2, esto se realiza
como se menciono anteriormente, presionando el ícono inferior derecho con forma de
carpeta.
2. Luego en Pestaña Programas, modificar los archivos que ya están, agregando la ruta
completa del archivo, como se observa en la imagen.
Ejemplo: se dice gcc.exe debes agregar c:\Dev-Cpp\Bin\gcc.exe
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 12
Entorno de Dev C++
V. INVESTIGACIONES Y EJERCICIOS COMPLEMENTARIOS
Explora todo el menú principal del Software Dev-C++.
Investigar otros IDEs para desarrollar los algoritmos desarrollados en clases.
VI. EVALUACIÓN DE ANÁLISIS DE RESULTADOS
N° Criterios % Asignado
% Obtenido
Observación
1 Finalizó todos los ejercicios correctamente. 30 %
2 Hizo uso de comentarios para documentar los
ejercicios.
10 %
3 Realización en forma coherente y con lógica. 30 %
4 Resultados obtenidos fueron correctos. 20 %
5 Dedicación del estudiante durante la práctica. 10 %
TOTAL 100 %
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 13
Observaciones
________________________________________________________________________________
_______________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
Conclusiones
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 14
GUIA DE LABORATORIO N° 02
CONCEPTOS BÁSICOS DE LOS PROGRAMAS EN C++
I. OBJETIVOS
Conocer la estructura general de un programa en C++.
Conocer los tipos de datos, constantes, variables en C++.
Utilizar el entorno DEV C++.
II. INTRODUCCIÓN
1. Estructura general de un programa en C++.
a) Encabezado del programa (archivos de cabecera): # include <nombre_de_libreria>
b) Cuerpo del programa (función main):
int main()
{ declaracion de variables; sentencias; return 0 ; }
c) Variables: Lugar donde se almacena los datos a utilizar, que pueden ser de un tipo de dato
particular.
d) Constantes: Si un dato no va a cambiar su valor durante la ejecución del programa,
generalmente se declara como un valor constante (const).
2. Tipos de datos y tamaños del estándar ANSI de C++.
C++ es un lenguaje que hace distinción entre minúsculas y mayúsculas para las instrucciones
y variables; es decir que no es lo mismo digitar COUT o Cout que cout, por lo tanto se debe
tener en cuenta los siguientes recomendaciones:
a) Todas las palabras reservadas de C++ (return, int, ect), y funciones predefinidas (system(),
main, etc), deben escribirse en minúsculas.
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 15
b) Al declarar variables en C++, por ejemplo una variable entera “A”, considere que A
mayúscula es diferente de a minúscula.
c) Al declarar variables en C++, por ejemplo una variable entera “var uno”, considere que
produciría un error debido a que no se reconocen los espacios en blanco para la
declaración de variable, razón por la cual se sugiere utilizar un guion bajo(_) “var_uno” o
unirlas “varuno”.
3. Los comentarios.
Son señales que utiliza el programador para explicar que hacen las líneas de programación ó
para documentación interna, normalmente un programa tiene comentarios sólo en las
instrucciones que podrían dar lugar a dudas debido a que un programa con demasiados
comentarios innecesarios dificultan la lectura del programa, los comentarios son ignorados
por el compilador. Todos los comentarios en C++ comienzan con // para los de una línea y /*
*/ para comentarios multilínea.
4. Instrucciones de Entrada/Salida (E/S) en C++.
C++ tiene dos instrucciones principales para presentar y capturar datos :
cout trabaja con el operador de inserción <<
cin trabaja con el operador de extracción >>
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 16
La instrucción cout permite imprimir datos en la pantalla de la computadora, la sintaxis es la
siguiente:
cout<<"mensaje a desplegar"; o bien cout <<"el valor de X es:" <<X;
Donde "X" indica la variable o dato a imprimir.
La instrucción cin permite leer información desde el teclado, la sintaxis es la siguiente:
int var;
cin>>var;
Donde var es la variable a ser capturada desde el teclado.
III. MATERIALES Y EQUIPOS A UTILIZAR
Guía de Laboratorio (Disponible en la Dirección Electrónica www.unajma.edu.pe).
Laboratorio de Computo (20 PCs).
Software Dev C++.
Cañón Multimedia.
Laptop.
IV. PROCEDIMIENTOS
Realice los siguientes ejemplos en el Software Dev-C++.
Ejemplo N°01: holamundo.cpp
PROGRAMA Explicación línea por línea
/* programa realizado por: digite su nombre */
# include <iostream.h>
using namespace std;
int main ()
{
cout <<"hola";
system("PAUSE");
}
Indica que se va digitar un comentario.
Librerías que nos permiten hacer uso de
sentencias de escape "cout" y "cin".
La función main representa la cabecera del
programa.
Indica el inicio del programa.
Instrucción que imprime mensajes.
Realiza una pausa.
Finaliza el programa.
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 17
Para correr nuestro programa primero debemos compilarlo y luego ejecutarlo, ubique la siguiente
barra en el DEV C ++ , para compilar el programa hacemos click en el botón
, si el programa no contiene ningún error, hacemos click en ejecutar , tenemos un tercer
botón que realiza las dos funciones al mismo tiempo .
Ejemplo N°02: suma.cpp
Ejemplo N° 03:
En una empresa de calzado, se aplican los siguientes descuentos al sueldo base de cada uno
de sus empleados: Renta (10%), AFP Confía (7%) y Seguro Social (5%). Desarrollar un
programa en C++ que pida el sueldo base de un empleado y que determine los descuentos y
el sueldo neto a pagar.
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 18
Ejemplo N° 04:
Diseñar el programa que permita obtener el salario neto de un empleado, a partir del número
de horas trabajadas en el mes. Al salario nominal, se le aplica un descuento del 15%. Debe
mostrar como resultado un mensaje en donde debe verse el nombre del empleado, el
número de horas trabajadas, el salario nominal, el descuento aplicado y el salario neto.
V. INVESTIGACIONES Y EJERCICIOS COMPLEMENTARIOS
Esta tarea deberá ser entregada al docente la próxima semana, de manera digital e impreso.
1. Diseñar el programa que visualice la letra A mediante asteriscos.
2. Diseñar el programa que lea un texto de cinco líneas y lo presente en pantalla.
3. Diseñar el programa que lea 5 números enteros y tres números reales y los visualice.
4. Diseñar el programa que permita leer su nombre y dirección y visualice la misma.
5. Diseñar el programa que lea la base y la altura de un trapecio, y calcule su área.
6. Diseñar el programa que imprima una página de texto con no más de 40 caracteres por línea.
7. Diseñar el programa que lea el radio de una circunferencia y calcule su longitud.
8. Diseñar el programa que lea tres números reales, y los visualice.
9. Diseñe los programas de los algoritmos realizados en clase.
VI. Evaluación de Análisis de Resultados
N° Criterios % Asignado
% Obtenido
Observación
1 Finalizó todos los ejercicios correctamente 30 %
2 Hizo uso de comentarios para documentar los
ejercicios.
10 %
3 Realización en forma coherente y con lógica. 30 %
4 Resultados obtenidos fueron correctos. 20 %
5 Dedicación del estudiante durante la práctica. 10 %
6 TOTAL 100 %
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 19
Observaciones
________________________________________________________________________________
_______________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
Conclusiones
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 20
GUIA DE LABORATORIO N° 03
OPERADORES Y EXPRESIONES
I. OBJETIVOS
Conocer los Operadores y Expresiones en C++.
Utilizar el entorno DEV C++.
II. INTRODUCCIÓN
Operadores y Expresiones
Los programas C++ constan de datos, sentencias de programas y expresiones. Una expresión
es, una sucesión de operadores y operandos debidamente relacionados que especifican un
cálculo. C++ soporta un conjunto potente de operadores unitarios binarios y de otros tipos.
Tipo Operadores Descripción Ejemplo
Aritméticos
Suma: +
Resta: -
Multiplicación: *
División: /
Módulo: %
Operadores aritméticos elementales. Más
operaciones en las librerías matemáticas.
char c= 'A'-'a';
int i= c%4;
long l= 0xff*((double) 1);
double d= (2/3)*3;
Relacionales
Igual: ==
Distinto: !=
Menor: <
Menos o igual: <=
Mayor: >
Mayor o igual: >=
Operadores de comparación entre
enteros, caracteres y reales.
int cond1= (32>=4);
int cond2= (cond1<6);
cond1==cond2;
Booleanos
No lógico: !
Y lógico: &&
O lógico: ||
Operaciones lógicas, aplicadas sobre
enteros, siendo 0 false y otro valor
true.
int a, b, c;
(!(a && (b || c)))
Operaciones
con bits
No nivel bits: ~
Y nivel bits: &
O nivel bits: |
Operaciones lógicas aplicadas a nivel de
bits. En los desplazamientos: a << c,
significa desplazar c bits el valor a.
int a= 0xff, b= 0xf0;
(a & b);
(a | b);
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 21
Xor nivel bits: ^
Despl. izq.: <<
Despl. Der.: >>
a << 2;
Asignación
Asignación: =
Suma con asig.: +=
Resta con asig.: -=
*=, /=, …
Operaciones de asignación a una variable.
Las de forma:
a+= b, son equivalentes a: a= a + b
int a, b, c;
a= b= c= 0;
a+= 1;
b+= c+= a;
Incrementales
Preincremento: ++c
Postincremento: c++
Predecremento: --c
Postdecremento: c--
Preincremento: devuelve c y hace c= c+1
Postincremento: hace
c= c+1 y devuelve c
char c, d= 0;
c= d++;
d= c++;
Size of sizeof(tipo) Devuelve el tamaño (en bytes) de un tipo
de datos.
sizeof(char);
sizeof(double);
Concatenación
de expresiones expr1 , expr2
Sirve para unir varias expresiones en una
misma línea de código. El resultado final
es el de la derecha.
int i;
i= (i= 2, i++, i*= 2);
Condicional exp1 ? exp2:exp3 Expresión condicional. Si exp1 es true el
resultado es exp2, si no exp3.
int a, b, max, min;
max= (a>b ? a : b);
min= (a<b ? a : b);
III. MATERIALES Y EQUIPOS A UTILIZAR
Guía de Laboratorio (Disponible en la Dirección Electrónica www.unajma.edu.pe).
Laboratorio de Computo (20 PCs).
Software Dev C++.
Cañón Multimedia y Laptop.
Pizarra, Plumones y Mota.
IV. PROCEDIMIENTOS
Generar programas con los operadores descritos en la tabla anterior, para ello deberá crear
una carpeta en mis documentos o en el escritorio, donde guardara los ejercicios
desarrollados.
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 22
V. INVESTIGACIONES Y EJERCICIOS COMPLEMENTARIOS
Esta tarea deberá ser entregada al docente la próxima semana, de manera digital e impreso.
1. Escribir un programa que lea la hora de un día de notación de 24 horas y la respuesta en
notación de 12 horas. Por ejemplo, si la entrada es 13:45, la salida será 1:45 PM.
El programa pedirá al usuario que introduzca exactamente cinco caracteres. Por ejemplo, las
nueve en punto se introduce como 09:00.
2. Escribir un programa que acepte un año escrito en cifras arábigas y visualice el año escrito en
números romanos, dentro del rango 1000 a 2100.
Nota: Recuerde que V=5, X=10, L=50, C=100, D=500 y M=1000
IV = 4 XL = 40 CM = 900
MCM = 1900 MCML = 1950 MCMLX = 196
MCMXL = 1940 MCMLXXXIX = 1989
3. Escribir un programa que determine si un año es bisiesto. Un año es bisiesto si es múltiplo de
4(por ejemplo 1984). Sin embargo, los años múltiplos de 100 sólo son bisiestos cuando a la
vez son múltiplos de 400(por ejemplo, 1800 no es bisiesto, mientras que 2000 si lo es).
4. Construir un programa que indique si un número introducido por teclado es positivo, igual a
cero, o negativo, utilizar para hacer la selección el operador ?.
5. Escribir un programa que lea dos enteros y calcule e imprima su producto, cociente y el resto
cuando el primero se divide por el segundo.
6. Escribir un programa que lea tres números y nos escriba el mayor y el menor.
7. Escribir un programa que solicite al usuario la longitud y anchura de una habitación y, a
continuación, visualice su superficie y perímetro.
8. Escribir un programa que lea cuatro números y calcule la media aritmética.
9. Escribir un programa que lea el radio de un círculo y calcule su área, así como la longitud de la
circunferencia de ese radio.
10. Escribir un programa que lea el radio y la altura de un cono y calcule su volumen y área total.
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 23
11. Escribir un programa que lea tres enteros de tres dígitos y calcule y visualice la suma y su
producto. La salida será justificada a derecha.
12. Escribir un programa que lea tres números y si el tercero es positivo calcule y escriba la suma
de los tres números, y si es negativo calcule y escriba su producto.
13. Se desea calcular el salario neto semanal de los trabajadores de una empresa de acuerdo a las
siguientes normas:
Horas Semanales trabajadas < 38 a una tasa dada.
Horas extras (38 o más) a una tasa 50 por 100 superior a la ordinaria.
Impuestos 0 por 100, si el salario bruto es menor o igual a 600 soles
Impuestos 10 por 100, si el salario bruto es mayor de 600 soles.
VI. EVALUACIÓN DE ANÁLISIS DE RESULTADOS
N° Criterios % Asignado
% Obtenido
Observación
1 Finalizó todos los ejercicios correctamente 30 %
2 Hizo uso de comentarios para documentar los
ejercicios.
10 %
3 Realización en forma coherente y con lógica. 30 %
4 Resultados obtenidos fueron correctos. 20 %
5 Dedicación del estudiante durante la práctica. 10 %
6 TOTAL 100 %
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 24
Observaciones
________________________________________________________________________________
_______________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
Conclusiones
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 25
GUIA DE LABORATORIO N° 04
ESTRUCTURAS DE CONTROL SELECTIVAS
I. OBJETIVOS.
Conocer las Estructuras de Control Selectivas en C++.
Utilizar el entorno DEV C++.
II. INTRODUCCIÓN
Estructuras de control selectivas
Las sentencias if, if-else, if-else-if y switch, son utilizadas para construir estructuras de
control, la comparación de las mismas se muestra en el siguiente cuadro.
Estructuras de Selección (Simple)
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 26
Estructuras de Selección (Anidada: simple y múltiple)
Simple
Múltiple
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 27
III. MATERIALES Y EQUIPOS A UTILIZAR
Guía de Laboratorio (Disponible en la Dirección Electrónica www.unajma.edu.pe).
Laboratorio de Computo (20 PCs).
Software Dev C++.
Cañón Multimedia.
Laptop.
Pizarra, Plumones y Mota.
IV. PROCEDIMIENTOS
Ejercicio Nº 01
Crear un diagrama de flujo y programa en C++ que verifique si un número ingresado por el
usuario es positivo o negativo.
INICIO
LEER: A
A > 0
ESCRIBIR: Positivo ESCRIBIR: Negativo
FIN
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 28
Ejercicio Nº 02
Crear un programa que determine si un número es par o impar, en caso que el número sea
par verificar si el número está entre 10 y 100 incluyéndolos.
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 29
Ejercicio Nº 03
Se necesita un programa que muestre un menú con las siguientes opciones:
1. Suma 2. Multiplicación
3. Resta 4. División
Se pide que utilice la estructura switch
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 30
Ejercicio Nª 04:
Convertir el siguiente flujograma en su equivalente programa en C++
Ejercicio Nº 05: Modifique el ejercicio Nª 03, para validar la operación de la división, es decir
que si el usuario elige la división y el n2 es cero, envíe un mensaje de error.
Ejercicio Nº 06: Crear un programa que pida 3 números al usuario y determine cuál es el
mayor y menor de los números.
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 31
V. INVESTIGACIONES Y EJERCICIOS COMPLEMENTARIOS
Esta tarea deberá ser entregada al docente la próxima semana, de manera digital e impreso.
1. Diseñe un programa que solicite de una persona, su edad, sexo y teléfono; si el sexo es m ó M,
que muestre en pantalla el mensaje El señor nombre con edad se ha registrado o si es f o F La
señorita nombre con edad se ha registrado. En caso contrario mandar un mensaje: Sexo no
válido. Ejemplo:
2. Diseñar el programa que permita los siguiente, un vendedor recibe su salario con base a las
ventas. Si las ventas son menores de 200 recibe 200 + ventas. Si las ventas son igual a 200 en total
obtiene 500, pero si las ventas son mayores a 200 son 500 + 10% de la venta.
3. Diseñar el programa que permita determinar el máximo de tres números.
4. Diseñar el programa que determine el máximo y el mínimo de tres números.
5. Diseñar el programa que determine si un número es cuadrado perfecto.
6. Diseñar el programa que calcule el impuesto de los trabajadores de una empresa considerando
que aquellos empleados cuyo salario es el mínimo están exentos de este pago.
7. Diseñar el programa para que me muestre si una persona es mayor de edad o no ingresando para
ello la edad de la persona. Nota: Considerar la mayoría de edad los 18 años.
8. Si un ángulo es igual a 90 grados imprima el mensaje “El ángulo es un ángulo recto”, de lo
contrario imprima el mensaje “El ángulo no es ángulo recto”.
9. Si la temperatura está por encima de 100 grados desplegar el mensaje “arriba del punto de
ebullición del agua”, de lo contrario desplegar el mensaje “abajo del punto de ebullición del
agua”.
10. Escriba un programa en C++ que le pida al usuario que introduzca dos números. Si el primer
número introducido es mayor que el segundo número el programa deberá imprimir el mensaje
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 32
“El primer número es mayor”, de lo contrario deberá imprimir el mensaje “El primer número es
menor”. Pruebe su programa introduciendo los números 5 y 8 y luego usando los números 11 y 2.
11. Una fábrica pequeña genera su propia energía con un generador de 20 kilowatts y un generador
de 50 kilowatts. El gerente de la planta indica cuál generador se requiere al introducir un código
de carácter. Escriba un programa en C++ que acepte este código como entrada. Si se introduce el
código s deberá desplegarse un mensaje que le indique al capataz de la planta que use el
generador más pequeño; de lo contrario deberá ser la salida un mensaje que le indique el uso del
generador más grande.
VI. EVALUACIÓN DE ANÁLISIS DE RESULTADOS
N° Criterios % Asignado
% Obtenido
Observación
1 Finalizó todos los ejercicios correctamente 30 %
2 Hizo uso de comentarios para documentar los
ejercicios
10 %
3 Realización en forma coherente y con lógica 30 %
4 Resultados obtenidos fueron correctos 20 %
5 Dedicación del estudiante durante la práctica 10 %
6 TOTAL 100 %
Observaciones
_______________________________________________________________________________
________________________________________________________________________________
Conclusiones
________________________________________________________________________________
________________________________________________________________________________
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 33
GUIA DE LABORATORIO N° 05
ESTRUCTURAS DE CONTROL REPETITIVAS
I. OBJETIVOS
Conocer las Estructuras de Control Repetitivas en C++.
Utilizar el entorno DEV C++.
II. INTRODUCCIÓN
ESTRUCTURAS DE CONTROL REPETITIVAS
La sentencia while: El bucle while tiene una condición del bucle (expresión lógica) que
controla la secuencia de repetición. La posición de esta condición del bucle es delante del
cuerpo del bucle y significa que un bucle while es un bucle pretest de modo que cuando se
ejecuta el mismo, se evalúa la condición antes de que se ejecute el cuerpo del bucle.
ALGORITMO SINTAXIS
while ( condición )
{
Bloque de Instrucciones;
}
Las sentencias del cuerpo del bucle se repiten mientras que la expresión lógica (condición del
bucle) sea verdadera. Cuando se evalúa la expresión lógica y resulta falsa, se termina y se sale
del bucle y se ejecuta la siguiente sentencia de programa después de la sentencia while.
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 34
LA SENTENCIA FOR: El bucle for es el más adecuado para implementar bucles controlados por
contador que son bucles en los que un conjunto de sentencias se ejecutan una vez por cada
valor de un rango especificado, de acuerdo al algoritmo. Por cada valor de una variable
contador de un rango específico: ejecutar sentencias.
ALGORITMO SINTAXIS
for (i=1; i <= n ; i++)
{
Bloque de instrucciones;
}
El bucle for contiene las cuatro partes siguientes:
La parte de Iniciación_contador inicializa las variables de control del bucle.
La parte de Condición contiene una expresión lógica que hace que el bucle realice las
iteraciones de las sentencias.
La parte de progresión_contador incrementa la variable o variables de control del
bucle.
Las Sentencias, acciones o sentencias que se ejecutarán por cada iteración del bucle.
LA SENTENCIA DO WHILE: La sentencia do-while se utiliza para especificar un bucle
condicional que se ejecuta al menos una vez.
i = 1; i < = n ; i++
sentencia (accion)
Después de cada ejecución de sentencia se evalúa expresión. Si es verdadera se repite el cuerpo del bucle (sentencia). Si es falsa, se
termina el bucle y se ejecuta a siguiente sentencia
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 35
ALGORITMO SINTAXIS
do
{
Bloque de Instrucciones;
}
while ( condición );
III. MATERIALES Y EQUIPOS A UTILIZAR
Guía de Laboratorio (Disponible en la Dirección Electrónica www.unajma.edu.pe).
Laboratorio de Computo (20 PCs).
Software Dev C++.
Cañón Multimedia.
Laptop.
Pizarra, Plumones y Mota.
IV. PROCEDIMIENTOS
Crear una carpeta en mis documentos o en el escritorio con los programas desarrollados en el
laboratorio.
Esta tarea deberá ser entregada al docente la próxima semana, de manera digital e impreso.
Ejercicios de Instrucciones de repetición (While, For, Do While)
While
V. INVESTIGACIONES Y EJERCICIOS COMPLEMENTARIOS
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 36
1. Escriba un programa en C++ que convierta galones en litros. El programa deberá desplegar
galones de 10 a 20 en incrementos de un galón y los litros equivalentes correspondientes. Use la
relación que 1 galón contiene 3.785 litros.
2. Escriba un programa en C++ que convierta pies en metros. El programa deberá desplegar pies de
3 a 30 en incrementos de tres pies y los metros equivalentes correspondientes. Use la relación
que hay en 3.28 pies en un metro.
3. Una maquina comprada por 28000 dólares se deprecia 4000 dólares por año durante siete años.
Escriba y ejecute un programa en C++ que calcule y despliegue una tabla de depreciación para
siete años. La tabla deberá tener la forma:
Año Depreciación Valor al final del
año
Depreciación
acumulada
1 4000 24000 4000
2 4000 20000 8000
3 4000 16000 12000
4 4000 12000 16000
5 4000 8000 20000
6 4000 4000 24000
7 4000 0 28000
4. Un automóvil viaja a una velocidad promedio de 55 millas por hora durante cuatro horas. Escriba
un programa en C++ que despliegue la distancia, en millas, que el automóvil ha recorrido después
de 1, 2, etc.., horas hasta el final del viaje.
5. El valor del número de Euler, e, puede aproximarse usando la fórmula:
Usando esta fórmula, escriba un programa en C++ que aproxime el valor de e usando un ciclo
while que termine cuando la diferencia entre dos aproximaciones sucesivas difiera por menos
que 10 e-9.
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 37
6. Una serie aritmética se define por:
Donde a es el primer término, d es la “diferencia común” y n es el número de términos que se van
a sumar. Usando esta información, escriba un programa en C++ que use un ciclo while para
desplegar cada término y para determinar la suma de la serie aritmética si se tiene que a=1, d=3 y
n=100. Asegúrese que su programa despliegue el valor que ha calculado.
7. Una serie geométrica se define por:
Donde a es el primer término, r es la “razón común” y n es el número de términos en la serie.
Usando esta información, escriba un programa en C++ que utilice un ciclo while para desplegar
cada término y para determinar la suma de una serie geométrica si se tiene que a=1, r=0.5 y
n=10. Asegúrese que su programa despliega el valor que se ha calculado.
8. Además del promedio aritmético de un conjunto de número, se puede calcular una media
geométrica y una media armónica. La media geométrica de un conjunto de n números x1,x2,…xn
se define como:
Y la media armónica como:
Usando estas fórmulas, escriba un programa en C++ que continué aceptando números hasta que
se introduzca el número 999 y luego calcule y despliegue tanto la media geométrica como la
armónica de los números introducidos. (Sugerencia: Será necesario que su programa cuente en
forma correcta el número de valores introducidos)
For
9. Escriba y ejecute un programa en C++ que despliegue una tabla de 20 conversiones de
temperatura de Fahrenheit a Celsius. La tabla deberá comenzar con un valor Fahrenheit de 20
grados e incrementarse en valores de 4 grados. Recuerde que:
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 38
10. La expansión de un puente de acero conforme se calienta hasta una temperatura Celsius final, TF,
desde una temperatura Celsius inicial, T0, puede aproximarse usando la formula:
Donde a es el coeficiente de expansión (el cual para el acero es 11.7 e-6) y L es el largo del
puente a la temperatura T0. Usando esta fórmula, escriba un programa en C++ que despliegue
una tabla de longitudes de expansión para un puente de acero que tiene 7365 metros de
largo a 0 grados Celsius, conforme la temperatura incrementa a 40 grados en incrementos de
5 grados.
11. La probabilidad que una llamada telefónica individual dure menos de t minutos puede
aproximarse por la función de probabilidad exponencial:
Donde a es la duración de la llamada promedio y e es el numero de Euler (2.71828).Por
ejemplo, suponiendo que la duración de la llamada promedio es 2 minutos, la probabilidad
que una llamada durará menos de 1 minuto se calcula como 1-e-1/2=0.3297.
Usando esta ecuación de probabilidad, escriba un programa en C++ que calcule y despliegue
una lista de probabilidades de la duración de una llamada menor que 1 a menor que 10
minutos, en incrementos de un minuto.
12. El índice de llegadas de clientes en un banco concurrido en Andahuaylas puede estimarse usando
la función de probabilidad de Poisson.
Donde x = el número de clientes que llegan por minuto; λ=el número promedio de llegadas
por minuto y e el número de Euler (2.71828). Por ejemplo, si el número promedio de clientes
que entran en el banco es de tres clientes por minuto, entonces λ es igual a tres. Por tanto, la
probabilidad que un cliente llegue en cualquier minuto es:
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 39
Y la probabilidad que llegan dos clientes en cualquier minuto es:
Usando la función de probabilidad de Poisson, escriba un programa en C++ que calcule y
despliegue la probabilidad de llegada de 1 a 10 clientes en cualquier minuto cuando el índice
de llegadas promedio es de tres clientes por minuto.
13. Una pelota de golf es soltada desde un avión. La distancia, d, que cae la pelota en t segundos está
dada por la ecuación d=(1/2)gt2, donde g es la aceleración debida a la gravedad y es igual a 32
pies/s2. Usando esta información, escriba y ejecute un programa en C++ que despliegue la
distancia que cae en cada intervalo de un segundo para diez segundos y la distancia que cae la
pelota de golf al final de cada intervalo. La salida deberá completar la siguiente tabla:
Tiempo Distancia en el intervalo
actual
Distancia total
0 0.0 0.0
1 16.0 16.0
. . .
. .
10 . .
14. La secuencia de Fibonacci es 0,1,1,2,3,5,8,13,… donde los primeros dos términos son 0y 1, y cada
término a partir de entonces es la suma de los dos términos precedentes; es decir Fib[n]=Fib[n-
1]+Fib[n-2]. Usando esta información, escriba un programa en C++ que calcule el enésimo
número en una secuencia de Fibonacci, donde n sea introducido de manera iterativa en el
programa por el usuario. Por ejemplo si n=6, el programa deberá desplegar el valor de 5.
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 40
Do While
15. Usando una instrucción do, escriba un programa para aceptar una calificación. El programa
deberá solicitar una calificación en forma continua en tanto se introduzca una calificación
inválida. Una calificación inválida en cualquier calificación menor que 0 o mayor que 100.
Después que se ha introducido una calificación válida, su programa deberá desplegar el valor de
la calificación introducida.
16. Escriba un programa que solicite en forma continua que se introduzca una calificación. Si la
calificación es menor que 0 o mayor que 100, su programa deberá imprimir un mensaje
apropiado que informe al usuario que se ha introducido una calificación inválida, de lo contrario
la calificación deberá sumarse a un total. Cuando se introduzca una calificación de 999 el
programa deberá salir del ciclo de repetición y calcular y desplegar el promedio de las
calificaciones válidas introducidas.
17. Escriba un programa para invertir los dígitos de un número entero positivo. Por ejemplo, si se
introduce el número 8735, el número desplegado deberá ser 5378. (Sugerencia: Use una
instrucción do y continuamente quite y despliegue el dígito de las unidades del número. Si la
variable num en un inicio contiene el número introducido, el dígito de las unidades se obtiene
como (num % 10). Después que se despliega un dígito de unidades, dividir el número entre 10
establece el número para la siguiente iteración. Por tanto (8735%10) es 5 y (8735/10) es 873. La
instrucción do deberá continuar en tanto el número remanente no sea cero.
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 41
VI. EVALUACIÓN DE ANÁLISIS DE RESULTADOS
N° Criterios % Asignado
% Obtenido
Observación
1 Finalizó todos los ejercicios correctamente 30 %
2 Hizo uso de comentarios para documentar los
ejercicios
10 %
3 Realización en forma coherente y con lógica 30 %
4 Resultados obtenidos fueron correctos 20 %
5 Dedicación del estudiante durante la práctica 10 %
6 TOTAL 100 %
Observaciones
_______________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
Conclusiones
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 42
GUIA DE LABORATORIO N° 06
FUNCIONES Y MÓDULOS
I. OBJETIVOS
Conocer las Funciones y Módulos en C++.
Utilizar el entorno DEV C++.
II. INTRODUCCIÓN
Concepto de una Función
Una función es un conjunto de instrucciones independientes cuyo objetivo es el de minimizar
la complejidad de un problema, el procedimiento consiste en descomponerlos en
subproblemas más fáciles de resolver. Una función debe realizar una tarea específica. Como
resultado del conjunto de instrucciones de una función, se han tenido que realizar
operaciones y tal vez modificaciones de los datos que la función tenía a disposición,
generalmente este resultado se devuelve en forma de valor. Estábamos familiarizados con el
uso de la función principal void main(), que siempre debe de estar en cualquier programa,
pero resulta que podemos crear las funciones que nos parezcan necesarias para resolver de
una manera más sencilla el problema que estemos tratando.
¿Cuándo utilizar funciones?
Cuando veamos que secciones o bloques de código se repiten varias veces podemos
llevar esta tarea a una función, lo que nos ahorra esfuerzo y evita líneas de código
repetidas.
Cuando necesitemos realizar una operación sobre algún tipo de dato y producto de
ello necesitemos un valor de respuesta. Como por ejemplo calcular el cuadrado de un
número entero.
Una función tiene la siguiente sintaxis:
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 43
SINTAXIS
<tipo> Es el tipo de dato que
devuelve la función. Si se coloca
main la función no devuelve ningún
valor.
Cuerpo Es todo lo que se
encuentra entre las llaves {} y
contiene un conjunto de
sentencias.
return Esta sentencia se
usa si el tipo de dato de
retorno no es void. Return
devuelve una expresión. Se
pueden colocar varios
returns a lo largo de un
programa y cuando la
función encuentra a
cualquiera termina.
Parámetros Es un conjunto de
variables, las cuales se escriben con
su tipo de dato y su nombre,
separadas por comas, que vienen a
constituir los argumentos de la
función.
nombreF Es el nombre que
le damos a nuestra función
puede ser el que queramos
menos la palabras reservadas
del lenguaje
Ejemplo 01: En el siguiente ejemplo se definirá una función para que calcule el área de un triángulo.
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 44
En la línea 3 podemos ver que el tipo de dato que devolverá la función es un entero (int) que
el nombre de la función es areaTriangulo y tienen dos parámetros de tipo entero base y
altura. El cuerpo de la función comprende todas las líneas de código desde la línea 4 hasta la
línea 8.
Cuerpo de una función
El cuerpo de una función contiene todas las instrucciones que le permiten realizar su tarea,
podemos definir variables cuyo ámbito o vida tendrá duración sólo en el cuerpo de la función
(variables locales). También se puede hacer llamada a otras funciones o declarar tipos de
datos definidos por el usuario, en síntesis se puede trabajar en el cuerpo de una función con
todas las ventajas que el lenguaje nos ofrece pero orientado a la resolución de un problema
específico.
Ejemplo 02:
# include <iostream.h>
void mostrar (char nombre[])
{
cout <<nombre;
}
void main ()
{
Mostrar ("UMSS");
}
Valor de retorno
Una función después de haber realizado operaciones con los datos que se le proporciona
debe de devolver algo, ya sea en forma de un valor o si no haber efectuado alguna
modificación con los datos o sino mostrar algo por pantalla. El valor que devuelve la función
se fija con la instrucción return, cuando la función encuentra esa palabra acaba e
inmediatamente devuelve el valor que se indica. En el ejemplo 01 en la línea 7 se devuelve el
valor que contiene la variable área. Existen funciones que no devuelven ningún valor, estas
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 45
llevan como tipo de dato de retorno void, pero no significan que no hacen nada, pueden
realizar cálculos o simplemente mostrar algo por pantalla.
Ámbito de las Variables
Variables locales
Todas la variables que se crean dentro del cuerpo de una función tienen ámbito o vida sólo en
el cuerpo mismo de la función, estas variables son llamadas locales. Esto quiere decir que
podemos utilizar estas variables sólo en la función pues al terminar esta las variables se
destruyen.
Variables globales
Las variables globales son definidas fuera de cualquier función, están definidas de una manera
parecida a las librerías, estas variables tienen un alcance global en todo el programa, esto
quiere decir que pueden ser accedidas de cualquier parte del programa.
Llamada o Invocación a una función
Una vez escrita la función, podemos utilizarla escribiendo su nombre y luego dándole los
parámetros correspondientes: Sintaxis: NombreFuncion( parámetros ). En el ejemplo 1 en la
línea 13 se llama a la función areaTriangulo para que el valor de retorno se muestre.
¿Cómo trabaja una función?
Una función es un conjunto de sentencias independientes que se ejecutan cada vez que se
llama o invoca a una función. Cada vez que se encuentra una llamada a una función el control
del programa se pasa a la función, es decir, la ejecuta y cuando esta acaba entonces el control
vuelve a la sección del programa desde donde se hizo la llamada.
En cuanto a los parámetros, en el caso que utilicemos variables, no se debe de pensar de que
existe alguna relación entre las variables que se pasan y las que están definidas como
parámetros en la función, a menos que las referenciemos.
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 46
En el ejemplo 1 cuando se hace la llamada a la función areaTriangulo se utiliza dos variables
baseT y alturaT, estas dos variables nada tienen que ver con las variables que se definieron
como parámetros de la función en la línea 13 base y altura, lo que ocurre es que baseT es
correspondiente a base al igual que alturaT y altura. Lo que es importante es que las variables
que se pasen sean del mismo tipo que de los parámetros definidos en la función.
Los parámetros de una función.
Una función puede tener de 0 a n parámetros y lo más común es que utilice los valores que
guardan los parámetros para realizar la operación y luego devolver un resultado, está el caso
del ejemplo 1 en el que la función areaTriangulo tiene dos parámetros enteros base y altura,
estas variables contienen los valores a partir de los cuales se calculará el área del triángulo.
Debemos tener en cuenta que los parámetros son variables locales, sólo las podemos utilizar
dentro de la función.
Paso de parámetros por valor
Esto significa que cuando hacemos la llamada a la función como parámetros le damos valores,
si es que colocamos variables como parámetros la función solo toma los valores. En el
ejemplo 1 en la línea 13 se llama a la función areaTriangulo así: areaTriangulo (baseT,alturaT)
Cuando el paso de parámetros es por valor viene a ser como si solo los valores de las variables
baseT y alturaT se pasarán como parámetros a la función así: areaTriangulo(3,4).
Pasa de parámetros por Referencia
En este caso existe una formalidad de las variables, después de haberlas pasado como
parámetros en una función, estas sufren cambios, producto de las operaciones que se realizan
dentro de la función, para mostrar cómo funciona esta parte se resolverá el mismo problema
que en el ejemplo 1 utilizando paso de parámetros por referencia.
Para que los cambios de un parámetro se reflejen se debe de utilizar el operador de
referencia &, en el ejemplo anterior en la línea 3 se utiliza el operador & que va delante de la
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 47
variable base, esto quiere decir que lodos los cambios que se hagan sobre esta variable en la
función, tendrán efecto en la variable que se utilice al hacer la llamada, baseT en el anterior
ejemplo. En la línea 11, se llama a la función: areaTriangulo (baseT , alturaT);
En este caso la variable baseT es la correspondiente a la variable base de la función
areaTriangulo todos los cambios que se realicen en la variable base afectarán a la variable
baseT. Después de la línea 11 la variable baseT habrá cambiado conteniendo el área del
triángulo.
¿Por qué ocurre esto? :Porque ya no se pasan simplemente valores sino se pasa una dirección
de memoria.
Ejemplo 03
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 48
III. MATERIALES Y EQUIPOS A UTILIZAR
Guía de Laboratorio (Disponible en la Dirección Electrónica www.unajma.edu.pe).
Laboratorio de Computo (20 PCs).
Software Dev C++.
Cañón Multimedia.
Laptop.
Pizarra, Plumones y Mota.
IV. PROCEDIMIENTOS
Crear una carpeta en mis documentos o en el escritorio donde guardara los programas
desarrollados en el laboratorio.
Ejemplo 04: Escribir una función que calcule los primeros 10 números primos.
1: #include <iostream.h>
2: int esPrimo (int N)
3: {
4: for (int i = 2; i <= N/2; i++)
5: if (N % i = 0)
6: return 1;
7: }
8: void main ()
9: {
10: int NPrimo = 0, contador = 1;
11: while (NPrimo < 10)
12: {
13: if (esPrimo (contador))
14: {
15: NPrimo + +;
16: cout <<"El"<<NPrimo<<"Numero Primo es"<<contador<<endl;
17: }
18: contador ++;
19: }
20: }
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 49
V. INVESTIGACIONES Y EJERCICIOS COMPLEMENTARIOS
Esta tarea deberá ser entregada al docente la próxima semana, de manera digital e impreso.
1. Escribir una función que calcule la media de un conjunto de n>0 números leídos del teclado.
2. Escribir una función que decida si un número entero es capicúa. El número 24842 es capicúa.
El número 134 No lo es.
3. Escribir un programa que encuentre el valor mayor, el valor menor y la suma de los datos de
entrada. Obtener la media de los datos mediante una función.
4. Escribir una función que permita calcular la serie:
5. Escribir una función que sume los 30 primeros números impares.
6. Escribir una función que calcule la suma de los 20 primeros números primos.
7. Escribir una función que encuentre y escriba todos los números perfectos menores que un
valor constante max.
8. Escriba un programa que lea dos números x y n y calcule la suma de la progresión geométrica.
1+x+x2+x3+…+xn.
9. Escribir un programa que mediante funciones determine el área del círculo correspondiente a
la circunferencia circunscrita de un triángulo del que conocemos las coordenadas de los
vértices.
10. Escribir un programa que lea dos enteros positivos n y b y mediante un función CambiarBase
visualice la correspondiente representación del número de n en la base b.
11. Escribir el inverso de un número entero dado (1234, inverso 4321).
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 50
VI. EVALUACIÓN DE ANÁLISIS DE RESULTADOS
N° Criterios % Asignado
% Obtenido
Observación
1 Finalizó todos los ejercicios correctamente 30 %
2 Hizo uso de comentarios para documentar los
ejercicios
10 %
3 Realización en forma coherente y con lógica 30 %
4 Resultados obtenidos fueron correctos 20 %
5 Dedicación del estudiante durante la práctica 10 %
6 TOTAL 100 %
Observaciones
________________________________________________________________________________
_______________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
Conclusiones
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 51
GUIA DE LABORATORIO N° 07
ARRAYS (ARREGLOS)
I. OBJETIVOS
Conocer los Arrays(arreglos) en C++.
Utilizar el entorno DEV C++.
II. INTRODUCCIÓN
Arrays ( arreglos)
Un arreglo es un conjunto o colección finita de datos de un mismo tipo. Los elementos de un
arreglo pueden ser accedidos por medio de un subíndice i. Podemos considerar a un arreglo
desde el punto de vista matemático como un vector, y a un arreglo bidimensional una matriz.
Declaración de un arreglo
Un arreglo se define indicando el tipo de arreglo, es decir, el tipo de datos de todos los
elementos del arreglo, luego se le da un nombre al arreglo y finalmente se le da un tamaño.
<tipo> nombreArreglo [Tamaño]
Por ejemplo tengo un arreglo de números enteros: int arreglo[4];
En el caso anterior el tipo del arreglo es entero (int).
Se le da una dimensión al arreglo que va entre los caracteres '[' y ']' , en el caso anterior la
dimensión es 4, esto quiere decir que en la memoria se reservaron 4 posiciones para
almacenar 4 valores enteros.
Inicializar un Arreglo
Existen varias maneras de inicializar un arreglo, una manera muy sencilla es poner entre llaves
({ }), los elementos del arreglo separados por comas.
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 52
A = {51, 60, 70, 95};
También podemos utilizar la estructura de control for para inicializar los elementos del
arreglo.
Acceso a los elementos de un Arreglo
Puedo acceder a un elemento por medio de un subíndice, por ejemplo si yo quiero acceder al
primer elemento tendré que hacerlo de esta manera : int A = arreglo[0];
En la variable A se almacenara el valor de 51, para acceder al segundo valor: A = arreglo[1];
En la variable A se almacenará el valor de 60, y así sucesivamente con los demás elementos.
Si nos damos cuenta tener un arreglo es mucho más ventajoso que tener definidas 4
variables.
Desventajas.
En ocasiones, no podemos predecir con precisión el tamaño que un arreglo tendrá por lo que
podemos definir un arreglo muy grande, lo que nos lleva a desperdiciar memoria, por ejemplo
si defino un arreglo de 100 elemento (arreglo[100]), y sólo utilizo 5 posiciones de memoria, las
demás 95 estarán desperdiciadas, la solución a este problema la veremos más adelante en lo
que se denomina punteros.
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 53
Ejemplo 01
Se desea ingresar las notas finales de 10 alumnos de la materia de Introducción a la
programación, para luego emitir un reporte del promedio de todas las notas.
# include <iostream.h>
Void main ()
{
const int TAM =10;
int i , promedio = 0;
int arreglo [TAM];
for (i=0; i <TAM; i++)
{
cout <<"ingrese la nota del estudiante #"<<i+1<<":\n";
cin >>arreglo[i];
}
for (i=0; i <TAM; i++)
promedio = promedio + arreglo[i];
promedio = promedio / TAM;
cout << "el promedio de las notas es :"<<promedio;
}
No hubiera sido muy práctico manejar 10 variables diferentes para guardar las notas de los 10
alumnos, utilizando un arreglo se nos simplifican mucho las cosas.
Nota: Se puede declarar un arreglo dándole la dimensión o tamaño por un valor constante
const int TAM=10;
int arreglo[TAM];
si TAM no fuera constante el programa devolvería mensaje de error.
Arreglos Bidimensionales
Un arreglo bidimensional está compuesto, por un conjunto de elementos homogéneos y se
puede acceder a los datos utilizando dos subíndices, este tipo de arreglo es también conocido
como matriz.
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 54
Declaración
Un arreglo bidimensional se define así: int arreglo[10][10]; float matriz[10][10];
también podemos utilizar constantes para definir la dimensión del arreglo de dos
dimensiones: const int N = 10; int arreglo[N][N];
Inicialización
Una matriz o arreglo bidimensional se puede inicializar de este modo:
int matriz[3][3] = {{1,2,3},{4,5,6},{7,8,9}};
Con la anterior asignación se crea en memoria una matriz igual a la de abajo
0 1 2
0 1 2 3
1 4 5 6
2 7 8 9
También podemos utilizar una estructura for dentro de otra estructura for para inicializar los
valores de un arreglo de dos dimensiones como se muestra a continuación:
Acceso a los elementos de un arreglo bidimensional
En un arreglo de dos dimensiones necesitamos también dos índices para acceder a sus
elementos. Si utilizamos: matriz[i][j], entonces i se refiere a la fila y j a la columna.
Para acceder al elemento de la segunda fila y segunda columna de la matriz de la Fig. 8.1
hacemos: int nro = matriz[1][1];
En la variable nro se guardara el número 5.
Las matrices o arreglos bidimensionales se suelen utilizar en cálculos matemáticos,
operaciones con matrices, recorridos por matrices, y cualquier uso que nosotros le podamos
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 55
dar. Se pueden definir arreglos de más de 2 dimensiones, pero su manejo se dificultaría
enormemente.
III. MATERIALES Y EQUIPOS A UTILIZAR
Guía de Laboratorio (Disponible en la Dirección Electrónica www.unajma.edu.pe).
Laboratorio de Computo (20 PCs).
Software Dev C++.
Cañón Multimedia.
Laptop.
Pizarra, Plumones y Mota.
IV. PROCEDIMIENTOS
Crear una carpeta en mis documentos o en el escritorio en donde guardaras los programas
desarrolladas en el laboratorio.
Ejemplo 01: Leer desde teclado una matriz de números enteros de dimensión 3x3.
1: # include <iostream.h>
2: void main ()
3: {
4: const int TAM = 3;
5: int matriz [TAM][TAM];
6: for (int i=0 ; i <= TAM ; i++)
7: {
8: for (int j=0 ; j <= TAM ; j++)
9: {
10: cout <<"ingrese el elemento ["<<i<<","<<j<<"]";
11: cin >> matriz [i][j];
12: }
13: }
14: }
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 56
Ejemplo 02 (cuadrado perfecto)
Se debe imprimir un cuadrado mágico de tamaño N, donde N es un número impar
comprendido entre 3 y 11. Un cuadrado mágico está compuesto de números enteros entre 1
y N, con las siguientes características: la sumas de las filas, columnas, diagonales son iguales,
como se ve en el siguiente ejemplo:
8 1 6
3 5 7
4 9 2
El método de generación del cuadrado mágico consiste en situar el número 1 en la casilla del
centro de la primera fila, el siguiente número se debe situar en la casilla ubicada en la fila
anterior (por encima) y en la columna de la derecha. Este proceso se repite hasta colocar los N
números. Es importante saber que el cuadrado mágico es cíclico, es decir, la fila anterior
(encima) de la primera fila es la última fila y la columna a la derecha de la última es la primera
columna. En caso de que un número se debe colocar en una casilla que ya está ocupada,
entonces se elige la casilla que se encuentra debajo (en la siguiente fila, la misma columna)
del número que acabamos de ubicar.
Ejemplo 03 (MULTIPLICACIÓN de Matrices)
Se requiere un programa que realice la multiplicación de dos matrices, para tal efecto se
deben ingresar las dos matrices por teclado teniendo el cuidado de controlar que la primera
matriz tenga una dimensión de N*M y la segunda de M*N para que se pueda realizar la
multiplicación.
Solución . . . para que el lector lo trabaje en laboratorio.
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 57
V. INVESTIGACIONES Y EJERCICIOS COMPLEMENTARIOS
Esta tarea deberá ser entregada al docente la próxima semana, de manera digital e impreso.
1. Escribir un programa que convierta un número romano (en forma de cadena de caracteres) en
números arábigo.
2.
Escribir una función a la que se le proporcione una fecha (día, mes, año), así como número de
días a añadir a esta fecha. La función debe calcular la nueva fecha visualizarla.
3. Escribir una función que acepte como parámetro un vector que puede contener elementos
duplicados. La función debe sustituir cada valor repetido por -5 y devolver al punto donde fue
llamado el vector modificado y el número de entradas modificadas.
4. Escribir un programa que lea una colección de cadenas de caracteres de longitud arbitraria.
Por cada cadena leída, su programa hará lo siguiente:
a) Visualizar la longitud de la cadena.
b) Contar el número de ocurrencias de palabras de cuatro letras.
c) Sustituir cada palabra de cuatro letras por una cadena de cuatro asteriscos e imprimir
la nueva cadena.
5. Escribir un programa que lea una frase, sustituya todas las secuencias de dos o más blancos
por un solo blanco y visualice la frase restante.
6. Escribir un programa que desplace una palabra leída del teclado desde la izquierda hasta la
derecha de la pantalla.
7. Escribir un programa que lea una serie de cadenas, a continuación, determine si la cadena es
un identificador válido C++. Sugerencias: utilizar los siguientes subprogramas: longitud
M 1000
D 500
C 100
L 50
X 10
V 5
I 1
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 58
(tamaño del identificador en el rango permitido); primero (determinar si el nombre comienza
con un símbolo permitido); restantes (comprueba si los restantes son caracteres permitidos).
8. Escribir una función conversión que reciba como parámetro una cadena representando una
fecha en formato ‘dd/mm/aa’, como 17/11/91 y la devuelva en formato de texto: 17
noviembre 1991.
9. Escribir un programa que permita escribir en sentido inverso una cadena de caracteres.
10. Buscar una palabra en una cadena y calcular su frecuencia de aparición.
11. Escribir un programa en el que se genere aleatoriamente un vector de 20 números enteros. El
vector ha de quedar de tal forma que la suma de los 10 primeros elementos sea mayor que la
suma de los 10 últimos elementos. Mostrar el vector original y el vector con la distribución
indicada.
12. El juego del ahorcado se juega con dos personas(o una persona y una computadora). Un
jugador selecciona una palabra y el otro jugador trata de adivinar la palabra adivinando letras
individuales. Diseñar un programa para jugar al ahorcado. Sugerencia: almacenar una lista de
palabras en un array y seleccionar palabras aleatoriamente.
VI. EVALUACIÓN DE ANÁLISIS DE RESULTADOS
N° Criterios % Asignado
% Obtenido
Observación
1 Finalizó todos los ejercicios correctamente 30 %
2 Hizo uso de comentarios para documentar los
ejercicios
10 %
3 Realización en forma coherente y con lógica 30 %
4 Resultados obtenidos fueron correctos 20 %
5 Dedicación del estudiante durante la práctica 10 %
6 TOTAL 100 %
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 59
Observaciones
________________________________________________________________________________
_______________________________________________________________________________
________________________________________________________________________________
Conclusiones
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 60
GUIA DE LABORATORIO N° 08
CADENAS
I. OBJETIVOS
Conocer las Cadenas en C++.
Utilizar el entorno DEV C++.
II. INTRODUCCIÓN
Carácter: Un carácter es el átomo de los programas de computadora, un carácter es un
símbolo que puede ser una letra del alfabeto o un carácter especial. carácter ocupa 8 bits en
memoria, y existen 256 caracteres diferentes. Cada carácter se lo codifica en un número
entero, es decir, que cada carácter tiene su correspondiente representación entera, el código
ASCII es precisamente esto.
Cadenas: Una cadena o cadena de caracteres nos es más que una serie de caracteres
manipulados como una unidad. Si asemejamos una cadena al lenguaje castellano sería como
una palabra, que es un conjunto de sílabas y vocales en donde cada una de estas viene a ser
una carácter.
Visto desde otro punto vendría a ser un arreglo de caracteres. Una cadena puede contener
cualquier carácter, puede almacenar un nombre propio una dirección, es decir, lo que
nosotros precisemos.
Declaración
Una cadena se la define de la siguiente manera: char cadena[20];
La cadena anterior puede contener un máximo de 20 caracteres.
Inicialización
Se puede inicializar una cadena de la siguiente manera: cadena = "Hola" ;
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 61
Cualquier valor que se le asigne a una cadena va entre comillas dobles " ", como en el ejemplo
anterior "Hola" está entre comillas dobles.
Una cadena siempre finaliza con el carácter de fin de cadena ‘\0’, que siempre se añade al
final automáticamente, en el ejemplo anterior se añade al final de “Hola” el carácter de fin de
cadena.
También podemos considerar a una cadena como un arreglo de caracteres, y se puede
inicializar de la siguiente manera: cadena = { ‘H’, ‘o’, ‘l’, ‘a’ } ;
El arreglo de caracteres se vería de esta forma:
‘H’ ‘o’ ‘l’ ‘a’ ‘\0’
0 1 2 3 4
Nótese que en la posición 4 se aumenta el fin de cadena
Ejemplo 01
Se desea tener un programa que sea amable con el usuario, el programa deberá conocer el
nombre del usuario y responderle con un mensaje amigable.
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 62
En el ejemplo anterior el mensaje "¿Cuál es tu nombre?" es una cadena pues está entre
comillas. También es una cadena la variable nombre que recibirá un valor desde teclado.
Operaciones con Cadenas
Existen muchas operaciones que se pueden realizar utilizando cadenas, la mayoría de la
operación que podemos requerir se encuentran ya a nuestra disposición dentro de la librería
string.h
Longitud
La longitud de una cadena la podemos conocer utilizando la función strlen.
Sintaxis: strlen( cadena ) ;
Ejemplo 02
# include <iostream.h>
void main ()
{
char nombre [30];
int tamaño;
cout <<"cual es tu nombre?\n";
cin >>nombre;
tamaño = strlen (nombre);
cout <<"Tu nombre tiene "<< tamaño <<"letras";
}
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 63
Comparación
Para saber si dos cadenas son exactamente iguales utilizamos la función strcmp.
Sintaxis : strcmp ( cadena1, cadena2 );
Esta función devuelve un valor de acuerdo al resultado de la comparación. Devuelve:
0 si la dos cadenas son exactamente iguales
Mayor a 0 si la cadena 1 es mayor a la cadena 2
Menor a 0 si la cadena 1 es menor que la cadena 2
Ejemplo 03
# include <iostream.h>
# include <string.h>
void main ()
{
char contraseña [30], recontraseña [30];
int resultado;
cout <<"escribe tu contraseña \n";
cin>>contraseña;
cout << "re escribe tu contraseña \n";
cin >>recontraseña;
resultado = strcmp (contraseña, recontraseña);
if (resultado ==0)
cout << "la contraseña no coincide";
}
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 64
Copia
Podemos reflejar todo el contenido de una cadena a otra, en otras palabras la copiamos tal
cual, para esto utilizamos la función strcpy.
Sintaxis: strcpy( cadenaDestino, cadenaOrigen );
Todo el contenido de la cadenaOrigen se copia a la cadenaDestino, si esta última tuviera algún
valor este se borra.
Ejemplo 04
Concatenación
Podemos juntar o concatenar dos cadenas una a continuación de la otra. Utilizamos la función
strcat.
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 65
Sintaxis
strcat( cadenaDestino, cadenaOrigen );
Todo el contenido de la cadenaOrigen se añade a continuación de la cadenaDestino, si esta
última contiene algo entonces al final contendrá lo que contenía más el contenido de la
cadenaOrigen.
Ejemplo 05
Escriba una función que permita conocer la longitud de una cadena. La función deberá
llamarse longitud.
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 66
Ejemplo 05
III. MATERIALES Y EQUIPOS A UTILIZAR
Guía de Laboratorio (Disponible en la Dirección Electrónica www.unajma.edu.pe).
Laboratorio de Computo (20 PCs).
Software Dev C++.
Cañón Multimedia.
Laptop.
Pizarra, Plumones y Mota.
IV. PROCEDIMIENTOS
Crear una carpeta en mis documentos o en el escritorio donde guardara los programas realizados
en el laboratorio.
Elaborar los ejemplos anteriores con el propósito de familiarizarse con su funcionamiento.
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 67
V. INVESTIGACIONES Y EJERCICIOS COMPLEMENTARIOS
Esta tarea deberá ser entregada al docente la próxima semana, de manera digital e impreso.
1. Esta tarea deberá ser entregada al docente la próxima semana, de manera digital e impreso.
Hacer un programa que lee líneas del teclado hasta que se introduce control más Z. En cada
línea debe haber dos números reales. El programa presenta por cada línea leída otra línea con la
suma de los dos números.
2. Escribir un programa que encuentre dos cadenas introducidas por teclado que sean anagramas.
Se considera que dos cadenas son anagramas si contienen exactamente los mismos caracteres
en el mismo o en diferente orden. Hay que ignorar los blancos y considerar que las mayúsculas
y las minúsculas son iguales.
3. Escribir un programa para las líneas de un texto sabiendo que el máximo de caracteres por línea
es 80 caracteres. Contar el número de palabras que tiene cada línea, así como el número total
de palabras leídas.
4. Escribir una función que reciba como parámetro una cadena de caracteres y la invierta, sin usar
la función strrev.
5. Escribir un programa que lea líneas de texto obtenga las palabras de cada línea y las escriba en
pantalla en orden alfabético. Se puede considerar que el máximo número de palabras por línea
es 28.
6. Escribir un programa que lea una línea de texto y escriba en pantalla las palabras de que consta
la línea sin utilizar las funciones de string.h y particularmente sin usar strtok().
7. Un sistema de encriptación simple consiste en sustituir cada carácter de un mensaje por el
carácter que está situado a tres posiciones alfabéticas por adelante suyo. Escribir una función
que tome como parámetro una cadena y devuelva otra cifrada como se ha explicado.
8. Escribir un programa que lea un texto, y dos palabras claves, clave1 y clave2. El programa debe
sustituir todas las apariciones de clave1 por clave2, mostrar el nuevo texto, e indicar el número
de intercambios realizados.
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 68
9. Otro sistema de encriptación consiste en sustituir cada carácter del alfabeto por otro decidido
de antemano, pero siempre el mismo. Utilizar este método en una función que tome como
parámetros el mensaje a cifrar y una cadena con las correspondencias ordenadas de los
caracteres alfabéticos. La función devolverá un puntero a la cadena cifrada del mensaje.
10. Escribir una función que genere un código alfanumérico diferente cada vez que sea llamada
devolviéndolo en forma de cadena. El argumento de dicha función es el número de caracteres
que va a tener el código generado.
11. Escribir una función que reciba una palabra y genere todas las palabras que se pueden construir
con sus letras.
12. Modificar la función anterior para que sólo genere las palabras que comiencen por una
constante.
VI. EVALUACIÓN DE ANÁLISIS DE RESULTADOS
N° Criterios %
Asignado
%
Obtenido
Observación
1 Finalizó todos los ejercicios correctamente 30 %
2 Hizo uso de comentarios para documentar los
ejercicios
10 %
3 Realización en forma coherente y con lógica 30 %
4 Resultados obtenidos fueron correctos 20 %
5 Dedicación del estudiante durante la práctica 10 %
6 TOTAL 100 %
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 69
Observaciones
_______________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
Conclusiones
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 70
CUADERNILLO DE EJERCICIOS PROPUESTOS
1. Diseñe el programa que acepte dos números reales de un usuario y un código seleccionado. Si el
código seleccionado introducido es 1, haga que el programa sume los dos números introducidos
con anterioridad y despliegue el resultado; si el código seleccionado es 2, los números deberán
multiplicarse, y si el código seleccionado es 3, el primer número deberá ser dividido entre el
segundo número.
2. Escriba un programa para desplegar los dos indicadores siguientes:
a. Introduzca un mes (use 1 para Ene, etc.):
b. Introduzca un día del mes:
c. Haga que su programa acepte y almacene un número en la variable mes en respuesta al
primer indicador, y acepte y almacene un número en la variable día en respuesta al segundo
indicador. Si el mes introducido no está entre 1 y 12 inclusive, imprima un mensaje
informando al usuario que se ha introducido un mes inválido. Si el día introducido no está
entre 1 y 31, imprima un mensaje informando al usuario que se ha introducido un día
inválido.
3. El cuadrante en el que reside una línea trazada desde el origen es determinado por el ángulo que
forma la línea con el eje x positivo como sigue:
Ángulo desde el eje X positivo Cuadrante
Entre 0 y 90 grados I
Entre 90 y 180 grados II
Entre 180 y 270 grados III
Entre 270 y 360 grados IV
Usando esta información, escriba un programa en C++ que acepte el ángulo de la línea como una
entrada del usuario y determine y despliegue el cuadrante apropiado a los datos introducidos.
(Nota: Si el ángulo tiene exactamente 0, 90, 180 o 270 grados, la línea correspondiente no reside
en ningún cuadrante sino que se encuentra en un eje).
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 71
4. Modifique el programa anterior de modo que se despliegue un mensaje que identifique un
ángulo de cero grados como el eje x positivo, un ángulo de 90 grados con el eje y positivo, un
ángulo de 180 grados como el eje x negativo y un ángulo de 270 grados como el eje y negativo.
5. Todos los años que se dividen exactamente entre 400 o que son divisibles exactamente entre
cuatro y no son divisibles exactamente entre 100 son años bisiestos. Por ejemplo, en vista que
1600 es divisible exactamente entre 400, el año 1600 fue un año bisiesto. Del mismo modo, en
vista que 1988 es divisible exactamente entre cuatro pero no entre 100, el año 1988 también fue
un año bisiesto. Usando esta información, escriba un programa en C++ que acepte el año como
una entrada del usuario, determine si el año es un año bisiesto y despliegue un mensaje
apropiado que le indique al usuario si el año introducido es un año bisiesto o no.
6. Con base en el año del modelo y el peso de un automóvil la Provincia de Andahuaylas determina
la clase del vehículo y la tarifa de registro que le corresponde usando la siguiente tabla:
Año del modelo Peso Clase de
peso
Tarifa de
registro
1970 o anterior Menos de 2700 lbs. 1 S/. 16.50
2700 a 3800 lbs. 2 S/. 25.50
Más de 3800 lbs. 3 S/. 46.50
1971 a 1979 Menos de 2700 lbs. 4 S/. 27.00
2700 a 3800 lbs. 5 S/. 30.50
Más de 3800 lbs. 6 S/. 52.50
1980 o posterior Menos de 3500 lbs. 7 S/. 19.50
3500 lbs. a más 8 S/. 52.50
Usando esta información, escriba un programa en C++ que acepte el año y el peso de un
automóvil y determine y despliegue la clase y la tarifa de registro para el automóvil.
If anidadas
7. Un ángulo es considerado agudo si es menor que 90 grados, obtuso si es mayor que 90 grados y
ángulo recto si es igual a 90 grados. Usando esta información, escriba un programa en C++ que
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 72
acepte un ángulo, en grados, y despliegue el tipo de ángulo correspondiente a los grados
introducidos.
8. El nivel de grado de los estudiantes universitarios se determina de manera típica de acuerdo con
la siguiente tabla:
Número de créditos
completados
Grado
Menor que 2 Primer año
32 a 63 Segundo año
64 a 95 Tercer año
96 a más Cuarto año
9. Usando esta información, escriba un programa en C++ que acepte el número de créditos que ha
completado un estudiante, determine el grado del estudiante y lo despliegue.
10. La letra que representa las calificaciones de un estudiante se calcula de acuerdo con la siguiente
tabla:
Usando esta información, escriba un programa en C++ que acepte la calificación numérica de un
estudiante, convierta la calificación numérica a su calificación en letra equivalente y despliegue la
letra.
11. La tolerancia de componentes críticos en un sistema se determina por la aplicación de acuerdo
con la siguiente tabla:
CALIFICACIÓN NUMÉRICA LETRA
Mayor que o igual a 90 A
Menor que 90 pero mayor que o igual a 80 B
Menor que 80 pero mayor que o igual a 70 C
Menor que 70 pero mayor que o igual a 60 D
Menor que 60 F
UNAJMA
UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss
CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss
AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III
GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO
Ing. Carlos Alberto Silva Delgado - 2011 - I Página 73
ESTADO DE LA
ESPECIFICACIÓN
TOLERANCIA
Exploración espacial Menor que 0.1%
Grado militar Mayor que o igual a 0.1% y menor que 1%
Grado comercial Mayor que o igual a 1% y menor que 10%
Grado de juguete Mayor que o igual a 10%
12. Usando esta información, escriba un programa en C++ que acepte la lectura de tolerancia de un
componente y determine la especificación que debería asignarse al componente.
13. Escriba un programa en C++ que acepte un número seguido por un espacio y luego en letra. Si la
letra que sigue al número es f, el programa tratara al número introducido como una temperatura
en grados Fahrenheit, convertirá el número a los Grados Celsius equivalente y desplegara un
mensaje adecuado. Si la letra que sigue al número es c, el programa tratará al número
introducido como una temperatura en Celsius, convertirá el número a los grados Fahrenheit
equivalentes y desplegará un mensaje adecuado. Si la letra no es f ni c, el programa imprimirá el
mensaje que los datos introducidos, son incorrectos y terminara. Usé una cadena if-else en su
programa y use las fórmulas de conversión.
a. Celsius=(5.0/9.0)*(Fahrenheit-32.0)
b. Fahrenheit=(9.0/5.0)*Celsius+32.0