COMPENDIO
Informática II - 2011 EEllaabboorraaddoo ppoorr eell PPRRO OFF.. IIN NG G.. CCAARRLLO OSS AALLBBEERRTTO O SSIILLVVAA DDEELLG GAADDO O
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass UNAJMA
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III
CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
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.
Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 2
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass UNAJMA
GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
PRESENTACION 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.
Ing. Carlos Alberto Silva Delgado Docente Ordinario CPIS UNAJMA
Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 3
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass UNAJMA
CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
CONTENIDO DESCRIPCIÓN
GUÍA DE
PÁGINA
LABORATORIO CARATULA
01
EL AUTOR
02
PRESENTACIÓN
03
CONTENIDO
04
INSTALACIÓN DEL ENTORNO DEV C++
Guía de Laboratorio
05 - 13
Nro. 01. CONCEPTOS BÁSICOS DE LOS PROGRAMAS EN DEV C++
Guía de Laboratorio
14 - 19
Nro. 02. OPERADORES Y EXPRESIONES
Guía de Laboratorio
20 - 24
Nro. 03. ESTRUCTURAS DE CONTROL SELECTIVAS
Guía de Laboratorio
25 - 32
Nro. 04. ESTRUCTURAS DE CONTROL REPETITIVAS
Guía de Laboratorio
33 - 41
Nro. 05 FUNCIONES Y MÓDULOS
Guía de Laboratorio
42 - 50
Nro. 06 ARRAYS (ARREGLOS)
Guía de Laboratorio
51 - 59
Nro. 07 CADENAS
Guía de Laboratorio
60 - 69
Nro. 08 CUADERNILLO DE EJERCICIOS PROPUESTOS
Ing. Carlos Alberto Silva Delgado - 2011 - I
70 - 73
Página 4
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
UNAJMA
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
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
IV.
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. PROCEDIMIENTOS
Instalación de Dev C++ 1. Ejecutamos nuestro archivo descargado. Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 5
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass UNAJMA
CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
2. Seleccionamos el idioma deseado.
3. Aceptamos la licencia.
Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 6
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass UNAJMA
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III
CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
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. Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 7
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass UNAJMA
CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
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. Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 8
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass UNAJMA
CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
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.
Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 9
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass UNAJMA
CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
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.
Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 10
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass UNAJMA
CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
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
Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 11
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass UNAJMA
CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
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
1
Finalizó todos los ejercicios correctamente.
2
Hizo uso de comentarios para documentar los
% Asignado 30 %
% Obtenido
Observación
10 %
ejercicios. 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
Ing. Carlos Alberto Silva Delgado - 2011 - I
100 %
Página 12
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass UNAJMA
CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
Observaciones ________________________________________________________________________________ _______________________________________________________________________________ ________________________________________________________________________________ ________________________________________________________________________________
Conclusiones ________________________________________________________________________________ ________________________________________________________________________________ ________________________________________________________________________________
Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 13
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
UNAJMA
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
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
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.
Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 14
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
UNAJMA
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
>>
Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 15
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
UNAJMA
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
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:" <
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 /* programa realizado por: digite su nombre */
Explicación línea por línea Indica que se va digitar un comentario.
# include
Librerías que nos permiten hacer uso de
using namespace std;
sentencias de escape "cout" y "cin".
int main ()
La función main representa la cabecera del programa.
{
Indica el inicio del programa.
cout <<"hola";
Instrucción que imprime mensajes.
system("PAUSE");
Realiza una pausa.
}
Finaliza el programa.
Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 16
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass UNAJMA
CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
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 botón que realiza las dos funciones al mismo tiempo
, tenemos un tercer
.
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. Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 17
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass UNAJMA
GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
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
1
Finalizó todos los ejercicios correctamente
% Asignado 30 %
2
Hizo uso de comentarios para documentar los
10 %
% Obtenido
Observación
ejercicios. 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 %
Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 18
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass UNAJMA
CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
Observaciones ________________________________________________________________________________ _______________________________________________________________________________ ________________________________________________________________________________ ________________________________________________________________________________ Conclusiones ________________________________________________________________________________ ________________________________________________________________________________ ________________________________________________________________________________
Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 19
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III
CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
UNAJMA
GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
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
Suma: + Resta: Aritméticos
Multiplicación: * División: /
Ejemplo char c= 'A'-'a';
Operadores aritméticos elementales. Más
int i= c%4;
operaciones en las librerías matemáticas.
long l= 0xff*((double) 1); double d= (2/3)*3;
Módulo: % Igual: == Distinto: != Relacionales
Menor: <
Operadores de comparación entre
Menos o igual: <=
enteros, caracteres y reales.
Mayor: >
int cond1= (32>=4); int cond2= (cond1<6); cond1==cond2;
Mayor o igual: >=
Booleanos
Operaciones con bits
No lógico: !
Operaciones lógicas, aplicadas sobre
Y lógico: &&
enteros, siendo 0 false y otro valor
O lógico: ||
true.
No nivel bits: ~
Operaciones lógicas aplicadas a nivel de
int a= 0xff, b= 0xf0;
Y nivel bits: &
bits. En los desplazamientos: a << c,
(a & b);
O nivel bits: |
significa desplazar c bits el valor a.
(a | b);
Ing. Carlos Alberto Silva Delgado - 2011 - I
int a, b, c; (!(a && (b || c)))
Página 20
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III
CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
UNAJMA
GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
Xor nivel bits: ^
a << 2;
Despl. izq.: << Despl. Der.: >> Asignación: = Asignación
Suma con asig.: += Resta con asig.: -= *=, /=, … Preincremento: ++c
Incrementales
Postincremento: c++ Predecremento: --c Postdecremento: c--
Size of
Concatenación de expresiones
Condicional
sizeof(tipo)
Operaciones de asignación a una variable. Las de forma: a+= b, son equivalentes a: a= a + b
a+= 1; b+= c+= a; char c, d= 0;
Postincremento: hace
c= d++;
c= c+1 y devuelve c
d= c++;
Devuelve el tamaño (en bytes) de un tipo
sizeof(char);
de datos.
sizeof(double);
misma línea de código. El resultado final es el de la derecha.
exp1 ? exp2:exp3
a= b= c= 0;
Preincremento: devuelve c y hace c= c+1
Sirve para unir varias expresiones en una expr1 , expr2
int a, b, c;
Expresión condicional. Si exp1 es true el resultado es exp2, si no exp3.
int i; i= (i= 2, i++, i*= 2); int a, b, max, min; max= (a>b ? a : b); min= (a
III. MATERIALES Y EQUIPOS A UTILIZAR
IV.
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.
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.
Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 21
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass UNAJMA
CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
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.
Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 22
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass UNAJMA
GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
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
1
Finalizó todos los ejercicios correctamente
% Asignado 30 %
2
Hizo uso de comentarios para documentar los
10 %
% Obtenido
Observación
ejercicios. 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 %
Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 23
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass UNAJMA
CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
Observaciones ________________________________________________________________________________ _______________________________________________________________________________ ________________________________________________________________________________ ________________________________________________________________________________ Conclusiones ________________________________________________________________________________ ________________________________________________________________________________ ________________________________________________________________________________
Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 24
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
UNAJMA
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
GUIA DE LABORATORIO N° 04 ESTRUCTURAS DE CONTROL SELECTIVAS I.
II.
OBJETIVOS.
Conocer las Estructuras de Control Selectivas en C++.
Utilizar el entorno DEV C++.
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)
Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 25
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass UNAJMA
CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
Estructuras de Selección (Anidada: simple y múltiple) Simple
Múltiple
Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 26
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass UNAJMA
CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
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: Negativo
ESCRIBIR: Positivo
FIN
Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 27
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass UNAJMA
CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
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.
Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 28
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass UNAJMA
CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
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
Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 29
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass UNAJMA
CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
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. Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 30
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass UNAJMA
V.
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III
CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
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
Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 31
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass UNAJMA
CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
“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
1
Finalizó todos los ejercicios correctamente
2
Hizo uso de comentarios para documentar los
% Asignado 30 %
% Obtenido
Observación
10 %
ejercicios 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 ________________________________________________________________________________ ________________________________________________________________________________
Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 32
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
UNAJMA
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
GUIA DE LABORATORIO N° 05 ESTRUCTURAS DE CONTROL REPETITIVAS I.
II.
OBJETIVOS
Conocer las Estructuras de Control Repetitivas en C++.
Utilizar el entorno DEV C++.
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.
Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 33
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III
CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
UNAJMA
GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
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
i = 1; i < = n ; i++
for (i=1; i <= n ; i++) { Bloque de instrucciones;
sentencia (accion)
}
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.
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
Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 34
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass UNAJMA
CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
ALGORITMO
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
SINTAXIS
do { Bloque de Instrucciones; } while ( condición );
III.
IV.
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. PROCEDIMIENTOS
Crear una carpeta en mis documentos o en el escritorio con los programas desarrollados en el laboratorio. V.
INVESTIGACIONES Y EJERCICIOS COMPLEMENTARIOS
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
Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 35
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
UNAJMA
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
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 Depreciación año
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. Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 36
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass UNAJMA
CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
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:
Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 37
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass UNAJMA
CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
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: Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 38
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass UNAJMA
CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
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 Distancia total actual
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[n1]+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. Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 39
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass UNAJMA
CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
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.
Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 40
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass UNAJMA
CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
VI. EVALUACIÓN DE ANÁLISIS DE RESULTADOS
N°
Criterios
1
Finalizó todos los ejercicios correctamente
2
Hizo uso de comentarios para documentar los
% Asignado 30 %
% Obtenido
Observación
10 %
ejercicios 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 ________________________________________________________________________________ ________________________________________________________________________________ ________________________________________________________________________________
Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 41
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
UNAJMA
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
GUIA DE LABORATORIO N° 06 FUNCIONES Y MÓDULOS I.
II.
OBJETIVOS
Conocer las Funciones y Módulos en C++.
Utilizar el entorno DEV C++.
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: Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 42
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass UNAJMA
CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
SINTAXIS
Es el tipo de dato que devuelve la función. Si se coloca main la función no devuelve ningún valor. 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.
Cuerpo Es todo lo que se encuentra entre las llaves {} y contiene un conjunto de sentencias. nombreF Es el nombre que le damos a nuestra función puede ser el que queramos menos la palabras reservadas del lenguaje
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.
Ejemplo 01: En el siguiente ejemplo se definirá una función para que calcule el área de un triángulo.
Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 43
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass UNAJMA
CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
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
void main ()
void mostrar (char nombre[])
{
{
Mostrar ("UMSS");
cout <
}
} 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
Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 44
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass UNAJMA
CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
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. Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 45
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass UNAJMA
CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
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 Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 46
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass UNAJMA
CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
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
Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 47
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
UNAJMA
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
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
12: {
2: int esPrimo (int N)
13: if (esPrimo (contador))
3: {
14: {
4: for (int i = 2; i <= N/2; i++)
15: NPrimo + +;
5: if (N % i = 0)
16: cout <<"El"<
6: return 1;
17: }
7: }
18: contador ++;
8: void main ()
19: }
9: {
20: }
10: int NPrimo = 0, contador = 1; 11: while (NPrimo < 10)
Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 48
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass UNAJMA
V.
CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
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). Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 49
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass UNAJMA
CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
VI. EVALUACIÓN DE ANÁLISIS DE RESULTADOS
N°
Criterios
1
Finalizó todos los ejercicios correctamente
% Asignado 30 %
2
Hizo uso de comentarios para documentar los
10 %
% Obtenido
Observación
ejercicios 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 ________________________________________________________________________________ ________________________________________________________________________________ ________________________________________________________________________________
Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 50
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
UNAJMA
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
GUIA DE LABORATORIO N° 07 ARRAYS (ARREGLOS) I.
II.
OBJETIVOS
Conocer los Arrays(arreglos) en C++.
Utilizar el entorno DEV C++.
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. 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. Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 51
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass UNAJMA
CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
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. Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 52
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III
CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
UNAJMA
GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
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
cout <<"ingrese la nota del estudiante #"<
Void main ()
cin >>arreglo[i];
{
}
const int TAM =10;
for (i=0; i
int i , promedio = 0;
promedio = promedio + arreglo[i];
int arreglo [TAM];
promedio = promedio / TAM;
for (i=0; i
cout << "el promedio de las notas es :"<
{
}
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. Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 53
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass UNAJMA
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III
CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
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
Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 54
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass UNAJMA
CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
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
10: cout <<"ingrese el elemento ["<
2: void main ()
11: cin >> matriz [i][j];
3: {
12: }
4: const int TAM = 3;
13: }
5: int matriz [TAM][TAM];
14: }
6: for (int i=0 ; i <= TAM ; i++) 7: { 8: for (int j=0 ; j <= TAM ; j++) 9: { Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 55
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass UNAJMA
CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
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.
Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 56
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass UNAJMA
V.
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III
CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
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. M
1000
D
500
C
100
L
50
X
10
V
5
I
1
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 Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 57
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass UNAJMA
CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
(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
1
Finalizó todos los ejercicios correctamente
2
Hizo uso de comentarios para documentar los
% Asignado 30 %
% Obtenido
Observación
10 %
ejercicios 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 %
Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 58
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass UNAJMA
CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
Observaciones ________________________________________________________________________________ _______________________________________________________________________________ ________________________________________________________________________________ Conclusiones ________________________________________________________________________________ ________________________________________________________________________________ ________________________________________________________________________________
Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 59
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
UNAJMA
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
GUIA DE LABORATORIO N° 08 CADENAS I.
II.
OBJETIVOS
Conocer las Cadenas en C++.
Utilizar el entorno DEV C++.
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" ; Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 60
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass UNAJMA
CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
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’ 0
1
‘l’
‘a’ ‘\0’
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.
Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 61
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass UNAJMA
CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
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 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"; }
Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 62
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass UNAJMA
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III
CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
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 # include 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"; } Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 63
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass UNAJMA
CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
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.
Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 64
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass UNAJMA
CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
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.
Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 65
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass UNAJMA
CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
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. Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 66
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass UNAJMA
V.
CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
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.
Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 67
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass UNAJMA
CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
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
1
Finalizó todos los ejercicios correctamente
2
Hizo uso de comentarios para documentar los
% Asignado 30 %
% Obtenido
Observación
10 %
ejercicios 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 %
Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 68
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass UNAJMA
CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
Observaciones _______________________________________________________________________________ ________________________________________________________________________________ ________________________________________________________________________________ Conclusiones ________________________________________________________________________________ ________________________________________________________________________________ ________________________________________________________________________________
Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 69
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass UNAJMA
CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
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). Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 70
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass UNAJMA
CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
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
1970 o anterior
1971 a 1979
1980 o posterior
Peso
Clase de
Tarifa de
peso
registro
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
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
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
Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 71
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass UNAJMA
CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
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 Grado completados Primer año Menor que 2 Segundo año 32 a 63 Tercer año 64 a 95 Cuarto año 96 a más 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: 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
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:
Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 72
U Unniivveerrssiiddaadd N Naacciioonnaall JJoosséé M Maarrííaa AArrgguueeddaass UNAJMA
CCaarrrreerraa PPrrooffeessiioonnaall ddee IInnggeenniieerrííaa ddee SSiisstteem maass ESTADO
DE
AAssiiggnnaattuurraa:: IInnffoorrm mááttiiccaa III GGUUIIAA DDEE LLAABBOORRAATTOORRIIOO
LA TOLERANCIA
ESPECIFICACIÓN Menor que 0.1% Exploración espacial Mayor que o igual a 0.1% y menor que 1% Grado militar Mayor que o igual a 1% y menor que 10% Grado comercial Mayor que o igual a 10% Grado de juguete 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
Ing. Carlos Alberto Silva Delgado - 2011 - I
Página 73