manual de laboratorio 2010 -i dev c++

73
COMPENDIO I I n n f f o o r r m m á á t t i i c c a a I I I I - - 2 2 0 0 1 1 1 1 E E l l a a b b o o r r a a d d o o p p o o r r e e l l P P R R O O F F . . I I N N G G . . C C A A R R L L O O S S A A L L B B E E R R T T O O S S I I L L V V A A D D E E L L G G A A D D O O

Upload: edwin-chambi-livise

Post on 20-Oct-2015

880 views

Category:

Documents


8 download

TRANSCRIPT

Page 1: Manual de Laboratorio 2010 -I Dev c++

COMPENDIO

IInnffoorrmmááttiiccaa IIII -- 22001111 EEElllaaabbbooorrraaadddooo pppooorrr eeelll PPPRRROOOFFF... IIINNNGGG... CCCAAARRRLLLOOOSSS AAALLLBBBEEERRRTTTOOO SSSIIILLLVVVAAA DDDEEELLLGGGAAADDDOOO

Page 2: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 2

ING. CARLOS ALBERTO SILVA DELGADO.

Ingeniero en Informática y Sistemas.

CIP Nro. 96047

EXPERIENCIA EN DOCENCIA UNIVERSITARIA

Universidad José Carlos Mariátegui - UJCM, Docente Contratado, 2006 - 2007 - 2008 .

Universidad Privada de Tacna - UPT, Docente Contratado, 2008.

Universidad Alas Peruanas - UPT, Docente Contratado, 2006 - 2007.

Universidad Nacional José María Arguedas - UNAJMA, Docente Ordinario, 2009.

EXPERIENCIA PROFESIONAL

Caja Municipal de Ahorro y Crédito de Tacna - CMAC-TACNA, Vicepresidente Directorio, 2006.

Gobierno Regional de Puno - PETT-PUNO, Administrador, 2005.

Empresa Prestadora de Servicios - EPS TACNA, Jefe División de Sistemas, 2003.

Page 3: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 3

PPRREESSEENNTTAACCIIOONN

El presente trabajo denominado "Guía de Laboratorio" fue elaborado con el propósito de

facilitar el proceso de enseñanza - aprendizaje, impartido en torno a la asignatura de Informática II,

de la Carrera Profesional de Ingeniería de Sistemas de la Universidad Nacional José María Arguedas

de la ciudad de Andahuaylas.

Los docentes responsables de impartir la enseñanza universitaria a inicios de cada ciclo

estamos obligados a plantearnos la necesidad de reforzar los esquemas ó estrategias metodológicas

que nos permitan llegar a la totalidad de los estudiantes. La guía de laboratorio no es otra cosa que la

recopilación de información, impartida por el suscrito en clases, por ello mi profundo agradecimiento

a los estudiantes de la CPIS - UNAJMA que con sus inquietudes y aciertos han contribuido de sobre

manera en la elaboración del presente manual.

Su estructura y organización tiene el propósito de permitir al estudiante de la CPIS, iniciar su

aprendizaje de experto en la resolución de ejercicios de algoritmos por medio del lenguaje de

programación Dev C++; herramienta valiosa que nos auxiliara en la creación de programas. Las

técnicas y métodos expuestos tienen la intención que el alumno realice los ejercicios de prácticas en

una forma razonada y no mecánica para esto se integra un respaldo teórico al inicio de cada unidad.

Finalmente el estudiante comprenderá de una manera global la importancia de resolver problemas

utilizando algoritmos lo que le permitirá diseñar mejores programas.

IInngg.. CCaarrllooss AAllbbeerrttoo SSiillvvaa DDeellggaaddoo

Docente Ordinario CPIS UNAJMA

Page 4: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 4

CONTENIDO

DESCRIPCIÓN GUÍA DE

LABORATORIO

PÁGINA

CARATULA 01

EL AUTOR 02

PRESENTACIÓN 03

CONTENIDO 04

INSTALACIÓN DEL ENTORNO DEV C++ Guía de Laboratorio

Nro. 01.

05 - 13

CONCEPTOS BÁSICOS DE LOS PROGRAMAS EN DEV C++ Guía de Laboratorio

Nro. 02.

14 - 19

OPERADORES Y EXPRESIONES Guía de Laboratorio

Nro. 03.

20 - 24

ESTRUCTURAS DE CONTROL SELECTIVAS Guía de Laboratorio

Nro. 04.

25 - 32

ESTRUCTURAS DE CONTROL REPETITIVAS Guía de Laboratorio

Nro. 05

33 - 41

FUNCIONES Y MÓDULOS Guía de Laboratorio

Nro. 06

42 - 50

ARRAYS (ARREGLOS) Guía de Laboratorio

Nro. 07

51 - 59

CADENAS Guía de Laboratorio

Nro. 08

60 - 69

CUADERNILLO DE EJERCICIOS PROPUESTOS 70 - 73

Page 5: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 5

GUIA DE LABORATORIO N° 01

INSTALACIÓN DEL ENTORNO DEV C++

I. OBJETIVOS

Conocer sobre el entorno de DEV C++.

Instalar en Entorno DEV C++.

Aprender a utilizar el entorno DEV C++.

II. INTRODUCCIÓN

DEV C++ : Bloodshed Dev-c++ es un entorno de desarrollo integrado (IDE por sus siglas en

inglés) para programar en lenguaje C/C++.

El entorno está desarrollado en el lenguaje Delphi de Borland. El cual tiene una página de

paquetes opcionales para instalar, con diferentes bibliotecas de código abierto.

¿Cómo obtenerlo? : Existen varias webs disponibles para descargarlo, pero nosotros

bajaremos desde la web del autor: http://www.bloodshed.net/dev/devcpp.html

III. MATERIALES Y EQUIPOS A UTILIZAR

Guía de Laboratorio (Disponible en la Dirección Electrónica www.unajma.edu.pe).

Laboratorio de Computo (20 PCs).

Instalador del software Dev C++.

Cañón Multimedia.

Laptop.

Pizarra, Plumones y Mota.

IV. PROCEDIMIENTOS

Instalación de Dev C++

1. Ejecutamos nuestro archivo descargado.

Page 6: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 6

2. Seleccionamos el idioma deseado.

3. Aceptamos la licencia.

Page 7: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 7

4. Seleccionamos las opciones que bien por default, o sea FULL. Luego siguiente:

5. Elegimos el directorio donde se instalará nuestro compilador, dejemos la ruta que por

defecto está predeterminado luego Instalara automáticamente.

6. Se da inicio a la instalación del compilador, copiado de archivos, etc.

Page 8: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 8

7. Una vez finalizado, apreciaremos ésta ventana, la que nos permitirá verificar la instalación

de nuestro compilador C++, seleccionamos Ejecutar Dev-C++ 5, para luego presionar el

botón Terminar.

8. Una vez que está cargado nuestro compilador, verificamos que las rutas a las librerías

están correctamente instaladas. Vamos a Herramientas -> Opciones del compilador.

Page 9: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 9

9. Vamos a la pestaña Directorios, luego a la sub pestaña Binarios y verificamos que la ruta

sea c:\Dev-Cpp\Bin (Se visualizara así siempre y cuando hayan instalado el compilador en

el directorio por default).

10. Luego sub pestaña Librerías, verificamos que la ruta sea C:\Dev-Cpp\lib, repito, ésta ruta

es siempre cuando en la instalación hallamos elegido el directorio por default.

Page 10: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 10

11. Sub pestaña Cabeceras C, verificamos C:\Dev-Cpp\include

12. Y lo mismo para la pestaña Cabeceras C++

13. Ahora, que sucede si nos faltaba alguna ruta de las que están en las imágenes?, pues

bueno hay que agregarlas; ¿cómo? Muy fácil, fíjense que en cada sub pestaña (binarios,

librerías, cabeceras, etc) existe un ícono en la parte inferior lado derecho con forma a una

carpeta (la que está destacada con un cuadrado rojo en la imagen), dénle un clic y les

abrirá la ventana de búsqueda de carpeta, en esa ventana seleccionan la carpeta que les

falta, luego aceptar y aceptar.

Page 11: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 11

Para Windows Vista:

Existen problemas para compilar con Dev-C++ en Windows Vista, el cual se debe a un error de

construcción (Build Error), para solucionar este problema, hay que instalar el Dev-C++ de

forma normal, para luego hacer algunas pequeñas modificaciones.

1. En Herramientas -> Opciones del compilador, y en la pestaña directorios sub pestaña

Binarios, en ella agregar la ruta C:\Dev-Cpp\libexec\gcc\mingw32\3.4.2, esto se realiza

como se menciono anteriormente, presionando el ícono inferior derecho con forma de

carpeta.

2. Luego en Pestaña Programas, modificar los archivos que ya están, agregando la ruta

completa del archivo, como se observa en la imagen.

Ejemplo: se dice gcc.exe debes agregar c:\Dev-Cpp\Bin\gcc.exe

Page 12: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 12

Entorno de Dev C++

V. INVESTIGACIONES Y EJERCICIOS COMPLEMENTARIOS

Explora todo el menú principal del Software Dev-C++.

Investigar otros IDEs para desarrollar los algoritmos desarrollados en clases.

VI. EVALUACIÓN DE ANÁLISIS DE RESULTADOS

N° Criterios % Asignado

% Obtenido

Observación

1 Finalizó todos los ejercicios correctamente. 30 %

2 Hizo uso de comentarios para documentar los

ejercicios.

10 %

3 Realización en forma coherente y con lógica. 30 %

4 Resultados obtenidos fueron correctos. 20 %

5 Dedicación del estudiante durante la práctica. 10 %

TOTAL 100 %

Page 13: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 13

Observaciones

________________________________________________________________________________

_______________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

Conclusiones

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

Page 14: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 14

GUIA DE LABORATORIO N° 02

CONCEPTOS BÁSICOS DE LOS PROGRAMAS EN C++

I. OBJETIVOS

Conocer la estructura general de un programa en C++.

Conocer los tipos de datos, constantes, variables en C++.

Utilizar el entorno DEV C++.

II. INTRODUCCIÓN

1. Estructura general de un programa en C++.

a) Encabezado del programa (archivos de cabecera): # include <nombre_de_libreria>

b) Cuerpo del programa (función main):

int main()

{ declaracion de variables; sentencias; return 0 ; }

c) Variables: Lugar donde se almacena los datos a utilizar, que pueden ser de un tipo de dato

particular.

d) Constantes: Si un dato no va a cambiar su valor durante la ejecución del programa,

generalmente se declara como un valor constante (const).

2. Tipos de datos y tamaños del estándar ANSI de C++.

C++ es un lenguaje que hace distinción entre minúsculas y mayúsculas para las instrucciones

y variables; es decir que no es lo mismo digitar COUT o Cout que cout, por lo tanto se debe

tener en cuenta los siguientes recomendaciones:

a) Todas las palabras reservadas de C++ (return, int, ect), y funciones predefinidas (system(),

main, etc), deben escribirse en minúsculas.

Page 15: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 15

b) Al declarar variables en C++, por ejemplo una variable entera “A”, considere que A

mayúscula es diferente de a minúscula.

c) Al declarar variables en C++, por ejemplo una variable entera “var uno”, considere que

produciría un error debido a que no se reconocen los espacios en blanco para la

declaración de variable, razón por la cual se sugiere utilizar un guion bajo(_) “var_uno” o

unirlas “varuno”.

3. Los comentarios.

Son señales que utiliza el programador para explicar que hacen las líneas de programación ó

para documentación interna, normalmente un programa tiene comentarios sólo en las

instrucciones que podrían dar lugar a dudas debido a que un programa con demasiados

comentarios innecesarios dificultan la lectura del programa, los comentarios son ignorados

por el compilador. Todos los comentarios en C++ comienzan con // para los de una línea y /*

*/ para comentarios multilínea.

4. Instrucciones de Entrada/Salida (E/S) en C++.

C++ tiene dos instrucciones principales para presentar y capturar datos :

cout trabaja con el operador de inserción <<

cin trabaja con el operador de extracción >>

Page 16: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 16

La instrucción cout permite imprimir datos en la pantalla de la computadora, la sintaxis es la

siguiente:

cout<<"mensaje a desplegar"; o bien cout <<"el valor de X es:" <<X;

Donde "X" indica la variable o dato a imprimir.

La instrucción cin permite leer información desde el teclado, la sintaxis es la siguiente:

int var;

cin>>var;

Donde var es la variable a ser capturada desde el teclado.

III. MATERIALES Y EQUIPOS A UTILIZAR

Guía de Laboratorio (Disponible en la Dirección Electrónica www.unajma.edu.pe).

Laboratorio de Computo (20 PCs).

Software Dev C++.

Cañón Multimedia.

Laptop.

IV. PROCEDIMIENTOS

Realice los siguientes ejemplos en el Software Dev-C++.

Ejemplo N°01: holamundo.cpp

PROGRAMA Explicación línea por línea

/* programa realizado por: digite su nombre */

# include <iostream.h>

using namespace std;

int main ()

{

cout <<"hola";

system("PAUSE");

}

Indica que se va digitar un comentario.

Librerías que nos permiten hacer uso de

sentencias de escape "cout" y "cin".

La función main representa la cabecera del

programa.

Indica el inicio del programa.

Instrucción que imprime mensajes.

Realiza una pausa.

Finaliza el programa.

Page 17: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 17

Para correr nuestro programa primero debemos compilarlo y luego ejecutarlo, ubique la siguiente

barra en el DEV C ++ , para compilar el programa hacemos click en el botón

, si el programa no contiene ningún error, hacemos click en ejecutar , tenemos un tercer

botón que realiza las dos funciones al mismo tiempo .

Ejemplo N°02: suma.cpp

Ejemplo N° 03:

En una empresa de calzado, se aplican los siguientes descuentos al sueldo base de cada uno

de sus empleados: Renta (10%), AFP Confía (7%) y Seguro Social (5%). Desarrollar un

programa en C++ que pida el sueldo base de un empleado y que determine los descuentos y

el sueldo neto a pagar.

Page 18: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 18

Ejemplo N° 04:

Diseñar el programa que permita obtener el salario neto de un empleado, a partir del número

de horas trabajadas en el mes. Al salario nominal, se le aplica un descuento del 15%. Debe

mostrar como resultado un mensaje en donde debe verse el nombre del empleado, el

número de horas trabajadas, el salario nominal, el descuento aplicado y el salario neto.

V. INVESTIGACIONES Y EJERCICIOS COMPLEMENTARIOS

Esta tarea deberá ser entregada al docente la próxima semana, de manera digital e impreso.

1. Diseñar el programa que visualice la letra A mediante asteriscos.

2. Diseñar el programa que lea un texto de cinco líneas y lo presente en pantalla.

3. Diseñar el programa que lea 5 números enteros y tres números reales y los visualice.

4. Diseñar el programa que permita leer su nombre y dirección y visualice la misma.

5. Diseñar el programa que lea la base y la altura de un trapecio, y calcule su área.

6. Diseñar el programa que imprima una página de texto con no más de 40 caracteres por línea.

7. Diseñar el programa que lea el radio de una circunferencia y calcule su longitud.

8. Diseñar el programa que lea tres números reales, y los visualice.

9. Diseñe los programas de los algoritmos realizados en clase.

VI. Evaluación de Análisis de Resultados

N° Criterios % Asignado

% Obtenido

Observación

1 Finalizó todos los ejercicios correctamente 30 %

2 Hizo uso de comentarios para documentar los

ejercicios.

10 %

3 Realización en forma coherente y con lógica. 30 %

4 Resultados obtenidos fueron correctos. 20 %

5 Dedicación del estudiante durante la práctica. 10 %

6 TOTAL 100 %

Page 19: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 19

Observaciones

________________________________________________________________________________

_______________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

Conclusiones

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

Page 20: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 20

GUIA DE LABORATORIO N° 03

OPERADORES Y EXPRESIONES

I. OBJETIVOS

Conocer los Operadores y Expresiones en C++.

Utilizar el entorno DEV C++.

II. INTRODUCCIÓN

Operadores y Expresiones

Los programas C++ constan de datos, sentencias de programas y expresiones. Una expresión

es, una sucesión de operadores y operandos debidamente relacionados que especifican un

cálculo. C++ soporta un conjunto potente de operadores unitarios binarios y de otros tipos.

Tipo Operadores Descripción Ejemplo

Aritméticos

Suma: +

Resta: -

Multiplicación: *

División: /

Módulo: %

Operadores aritméticos elementales. Más

operaciones en las librerías matemáticas.

char c= 'A'-'a';

int i= c%4;

long l= 0xff*((double) 1);

double d= (2/3)*3;

Relacionales

Igual: ==

Distinto: !=

Menor: <

Menos o igual: <=

Mayor: >

Mayor o igual: >=

Operadores de comparación entre

enteros, caracteres y reales.

int cond1= (32>=4);

int cond2= (cond1<6);

cond1==cond2;

Booleanos

No lógico: !

Y lógico: &&

O lógico: ||

Operaciones lógicas, aplicadas sobre

enteros, siendo 0 false y otro valor

true.

int a, b, c;

(!(a && (b || c)))

Operaciones

con bits

No nivel bits: ~

Y nivel bits: &

O nivel bits: |

Operaciones lógicas aplicadas a nivel de

bits. En los desplazamientos: a << c,

significa desplazar c bits el valor a.

int a= 0xff, b= 0xf0;

(a & b);

(a | b);

Page 21: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 21

Xor nivel bits: ^

Despl. izq.: <<

Despl. Der.: >>

a << 2;

Asignación

Asignación: =

Suma con asig.: +=

Resta con asig.: -=

*=, /=, …

Operaciones de asignación a una variable.

Las de forma:

a+= b, son equivalentes a: a= a + b

int a, b, c;

a= b= c= 0;

a+= 1;

b+= c+= a;

Incrementales

Preincremento: ++c

Postincremento: c++

Predecremento: --c

Postdecremento: c--

Preincremento: devuelve c y hace c= c+1

Postincremento: hace

c= c+1 y devuelve c

char c, d= 0;

c= d++;

d= c++;

Size of sizeof(tipo) Devuelve el tamaño (en bytes) de un tipo

de datos.

sizeof(char);

sizeof(double);

Concatenación

de expresiones expr1 , expr2

Sirve para unir varias expresiones en una

misma línea de código. El resultado final

es el de la derecha.

int i;

i= (i= 2, i++, i*= 2);

Condicional exp1 ? exp2:exp3 Expresión condicional. Si exp1 es true el

resultado es exp2, si no exp3.

int a, b, max, min;

max= (a>b ? a : b);

min= (a<b ? a : b);

III. MATERIALES Y EQUIPOS A UTILIZAR

Guía de Laboratorio (Disponible en la Dirección Electrónica www.unajma.edu.pe).

Laboratorio de Computo (20 PCs).

Software Dev C++.

Cañón Multimedia y Laptop.

Pizarra, Plumones y Mota.

IV. PROCEDIMIENTOS

Generar programas con los operadores descritos en la tabla anterior, para ello deberá crear

una carpeta en mis documentos o en el escritorio, donde guardara los ejercicios

desarrollados.

Page 22: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 22

V. INVESTIGACIONES Y EJERCICIOS COMPLEMENTARIOS

Esta tarea deberá ser entregada al docente la próxima semana, de manera digital e impreso.

1. Escribir un programa que lea la hora de un día de notación de 24 horas y la respuesta en

notación de 12 horas. Por ejemplo, si la entrada es 13:45, la salida será 1:45 PM.

El programa pedirá al usuario que introduzca exactamente cinco caracteres. Por ejemplo, las

nueve en punto se introduce como 09:00.

2. Escribir un programa que acepte un año escrito en cifras arábigas y visualice el año escrito en

números romanos, dentro del rango 1000 a 2100.

Nota: Recuerde que V=5, X=10, L=50, C=100, D=500 y M=1000

IV = 4 XL = 40 CM = 900

MCM = 1900 MCML = 1950 MCMLX = 196

MCMXL = 1940 MCMLXXXIX = 1989

3. Escribir un programa que determine si un año es bisiesto. Un año es bisiesto si es múltiplo de

4(por ejemplo 1984). Sin embargo, los años múltiplos de 100 sólo son bisiestos cuando a la

vez son múltiplos de 400(por ejemplo, 1800 no es bisiesto, mientras que 2000 si lo es).

4. Construir un programa que indique si un número introducido por teclado es positivo, igual a

cero, o negativo, utilizar para hacer la selección el operador ?.

5. Escribir un programa que lea dos enteros y calcule e imprima su producto, cociente y el resto

cuando el primero se divide por el segundo.

6. Escribir un programa que lea tres números y nos escriba el mayor y el menor.

7. Escribir un programa que solicite al usuario la longitud y anchura de una habitación y, a

continuación, visualice su superficie y perímetro.

8. Escribir un programa que lea cuatro números y calcule la media aritmética.

9. Escribir un programa que lea el radio de un círculo y calcule su área, así como la longitud de la

circunferencia de ese radio.

10. Escribir un programa que lea el radio y la altura de un cono y calcule su volumen y área total.

Page 23: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 23

11. Escribir un programa que lea tres enteros de tres dígitos y calcule y visualice la suma y su

producto. La salida será justificada a derecha.

12. Escribir un programa que lea tres números y si el tercero es positivo calcule y escriba la suma

de los tres números, y si es negativo calcule y escriba su producto.

13. Se desea calcular el salario neto semanal de los trabajadores de una empresa de acuerdo a las

siguientes normas:

Horas Semanales trabajadas < 38 a una tasa dada.

Horas extras (38 o más) a una tasa 50 por 100 superior a la ordinaria.

Impuestos 0 por 100, si el salario bruto es menor o igual a 600 soles

Impuestos 10 por 100, si el salario bruto es mayor de 600 soles.

VI. EVALUACIÓN DE ANÁLISIS DE RESULTADOS

N° Criterios % Asignado

% Obtenido

Observación

1 Finalizó todos los ejercicios correctamente 30 %

2 Hizo uso de comentarios para documentar los

ejercicios.

10 %

3 Realización en forma coherente y con lógica. 30 %

4 Resultados obtenidos fueron correctos. 20 %

5 Dedicación del estudiante durante la práctica. 10 %

6 TOTAL 100 %

Page 24: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 24

Observaciones

________________________________________________________________________________

_______________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

Conclusiones

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

Page 25: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 25

GUIA DE LABORATORIO N° 04

ESTRUCTURAS DE CONTROL SELECTIVAS

I. OBJETIVOS.

Conocer las Estructuras de Control Selectivas en C++.

Utilizar el entorno DEV C++.

II. INTRODUCCIÓN

Estructuras de control selectivas

Las sentencias if, if-else, if-else-if y switch, son utilizadas para construir estructuras de

control, la comparación de las mismas se muestra en el siguiente cuadro.

Estructuras de Selección (Simple)

Page 26: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 26

Estructuras de Selección (Anidada: simple y múltiple)

Simple

Múltiple

Page 27: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 27

III. MATERIALES Y EQUIPOS A UTILIZAR

Guía de Laboratorio (Disponible en la Dirección Electrónica www.unajma.edu.pe).

Laboratorio de Computo (20 PCs).

Software Dev C++.

Cañón Multimedia.

Laptop.

Pizarra, Plumones y Mota.

IV. PROCEDIMIENTOS

Ejercicio Nº 01

Crear un diagrama de flujo y programa en C++ que verifique si un número ingresado por el

usuario es positivo o negativo.

INICIO

LEER: A

A > 0

ESCRIBIR: Positivo ESCRIBIR: Negativo

FIN

Page 28: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 28

Ejercicio Nº 02

Crear un programa que determine si un número es par o impar, en caso que el número sea

par verificar si el número está entre 10 y 100 incluyéndolos.

Page 29: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 29

Ejercicio Nº 03

Se necesita un programa que muestre un menú con las siguientes opciones:

1. Suma 2. Multiplicación

3. Resta 4. División

Se pide que utilice la estructura switch

Page 30: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 30

Ejercicio Nª 04:

Convertir el siguiente flujograma en su equivalente programa en C++

Ejercicio Nº 05: Modifique el ejercicio Nª 03, para validar la operación de la división, es decir

que si el usuario elige la división y el n2 es cero, envíe un mensaje de error.

Ejercicio Nº 06: Crear un programa que pida 3 números al usuario y determine cuál es el

mayor y menor de los números.

Page 31: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 31

V. INVESTIGACIONES Y EJERCICIOS COMPLEMENTARIOS

Esta tarea deberá ser entregada al docente la próxima semana, de manera digital e impreso.

1. Diseñe un programa que solicite de una persona, su edad, sexo y teléfono; si el sexo es m ó M,

que muestre en pantalla el mensaje El señor nombre con edad se ha registrado o si es f o F La

señorita nombre con edad se ha registrado. En caso contrario mandar un mensaje: Sexo no

válido. Ejemplo:

2. Diseñar el programa que permita los siguiente, un vendedor recibe su salario con base a las

ventas. Si las ventas son menores de 200 recibe 200 + ventas. Si las ventas son igual a 200 en total

obtiene 500, pero si las ventas son mayores a 200 son 500 + 10% de la venta.

3. Diseñar el programa que permita determinar el máximo de tres números.

4. Diseñar el programa que determine el máximo y el mínimo de tres números.

5. Diseñar el programa que determine si un número es cuadrado perfecto.

6. Diseñar el programa que calcule el impuesto de los trabajadores de una empresa considerando

que aquellos empleados cuyo salario es el mínimo están exentos de este pago.

7. Diseñar el programa para que me muestre si una persona es mayor de edad o no ingresando para

ello la edad de la persona. Nota: Considerar la mayoría de edad los 18 años.

8. Si un ángulo es igual a 90 grados imprima el mensaje “El ángulo es un ángulo recto”, de lo

contrario imprima el mensaje “El ángulo no es ángulo recto”.

9. Si la temperatura está por encima de 100 grados desplegar el mensaje “arriba del punto de

ebullición del agua”, de lo contrario desplegar el mensaje “abajo del punto de ebullición del

agua”.

10. Escriba un programa en C++ que le pida al usuario que introduzca dos números. Si el primer

número introducido es mayor que el segundo número el programa deberá imprimir el mensaje

Page 32: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 32

“El primer número es mayor”, de lo contrario deberá imprimir el mensaje “El primer número es

menor”. Pruebe su programa introduciendo los números 5 y 8 y luego usando los números 11 y 2.

11. Una fábrica pequeña genera su propia energía con un generador de 20 kilowatts y un generador

de 50 kilowatts. El gerente de la planta indica cuál generador se requiere al introducir un código

de carácter. Escriba un programa en C++ que acepte este código como entrada. Si se introduce el

código s deberá desplegarse un mensaje que le indique al capataz de la planta que use el

generador más pequeño; de lo contrario deberá ser la salida un mensaje que le indique el uso del

generador más grande.

VI. EVALUACIÓN DE ANÁLISIS DE RESULTADOS

N° Criterios % Asignado

% Obtenido

Observación

1 Finalizó todos los ejercicios correctamente 30 %

2 Hizo uso de comentarios para documentar los

ejercicios

10 %

3 Realización en forma coherente y con lógica 30 %

4 Resultados obtenidos fueron correctos 20 %

5 Dedicación del estudiante durante la práctica 10 %

6 TOTAL 100 %

Observaciones

_______________________________________________________________________________

________________________________________________________________________________

Conclusiones

________________________________________________________________________________

________________________________________________________________________________

Page 33: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 33

GUIA DE LABORATORIO N° 05

ESTRUCTURAS DE CONTROL REPETITIVAS

I. OBJETIVOS

Conocer las Estructuras de Control Repetitivas en C++.

Utilizar el entorno DEV C++.

II. INTRODUCCIÓN

ESTRUCTURAS DE CONTROL REPETITIVAS

La sentencia while: El bucle while tiene una condición del bucle (expresión lógica) que

controla la secuencia de repetición. La posición de esta condición del bucle es delante del

cuerpo del bucle y significa que un bucle while es un bucle pretest de modo que cuando se

ejecuta el mismo, se evalúa la condición antes de que se ejecute el cuerpo del bucle.

ALGORITMO SINTAXIS

while ( condición )

{

Bloque de Instrucciones;

}

Las sentencias del cuerpo del bucle se repiten mientras que la expresión lógica (condición del

bucle) sea verdadera. Cuando se evalúa la expresión lógica y resulta falsa, se termina y se sale

del bucle y se ejecuta la siguiente sentencia de programa después de la sentencia while.

Page 34: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 34

LA SENTENCIA FOR: El bucle for es el más adecuado para implementar bucles controlados por

contador que son bucles en los que un conjunto de sentencias se ejecutan una vez por cada

valor de un rango especificado, de acuerdo al algoritmo. Por cada valor de una variable

contador de un rango específico: ejecutar sentencias.

ALGORITMO SINTAXIS

for (i=1; i <= n ; i++)

{

Bloque de instrucciones;

}

El bucle for contiene las cuatro partes siguientes:

La parte de Iniciación_contador inicializa las variables de control del bucle.

La parte de Condición contiene una expresión lógica que hace que el bucle realice las

iteraciones de las sentencias.

La parte de progresión_contador incrementa la variable o variables de control del

bucle.

Las Sentencias, acciones o sentencias que se ejecutarán por cada iteración del bucle.

LA SENTENCIA DO WHILE: La sentencia do-while se utiliza para especificar un bucle

condicional que se ejecuta al menos una vez.

i = 1; i < = n ; i++

sentencia (accion)

Después de cada ejecución de sentencia se evalúa expresión. Si es verdadera se repite el cuerpo del bucle (sentencia). Si es falsa, se

termina el bucle y se ejecuta a siguiente sentencia

Page 35: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 35

ALGORITMO SINTAXIS

do

{

Bloque de Instrucciones;

}

while ( condición );

III. MATERIALES Y EQUIPOS A UTILIZAR

Guía de Laboratorio (Disponible en la Dirección Electrónica www.unajma.edu.pe).

Laboratorio de Computo (20 PCs).

Software Dev C++.

Cañón Multimedia.

Laptop.

Pizarra, Plumones y Mota.

IV. PROCEDIMIENTOS

Crear una carpeta en mis documentos o en el escritorio con los programas desarrollados en el

laboratorio.

Esta tarea deberá ser entregada al docente la próxima semana, de manera digital e impreso.

Ejercicios de Instrucciones de repetición (While, For, Do While)

While

V. INVESTIGACIONES Y EJERCICIOS COMPLEMENTARIOS

Page 36: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 36

1. Escriba un programa en C++ que convierta galones en litros. El programa deberá desplegar

galones de 10 a 20 en incrementos de un galón y los litros equivalentes correspondientes. Use la

relación que 1 galón contiene 3.785 litros.

2. Escriba un programa en C++ que convierta pies en metros. El programa deberá desplegar pies de

3 a 30 en incrementos de tres pies y los metros equivalentes correspondientes. Use la relación

que hay en 3.28 pies en un metro.

3. Una maquina comprada por 28000 dólares se deprecia 4000 dólares por año durante siete años.

Escriba y ejecute un programa en C++ que calcule y despliegue una tabla de depreciación para

siete años. La tabla deberá tener la forma:

Año Depreciación Valor al final del

año

Depreciación

acumulada

1 4000 24000 4000

2 4000 20000 8000

3 4000 16000 12000

4 4000 12000 16000

5 4000 8000 20000

6 4000 4000 24000

7 4000 0 28000

4. Un automóvil viaja a una velocidad promedio de 55 millas por hora durante cuatro horas. Escriba

un programa en C++ que despliegue la distancia, en millas, que el automóvil ha recorrido después

de 1, 2, etc.., horas hasta el final del viaje.

5. El valor del número de Euler, e, puede aproximarse usando la fórmula:

Usando esta fórmula, escriba un programa en C++ que aproxime el valor de e usando un ciclo

while que termine cuando la diferencia entre dos aproximaciones sucesivas difiera por menos

que 10 e-9.

Page 37: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 37

6. Una serie aritmética se define por:

Donde a es el primer término, d es la “diferencia común” y n es el número de términos que se van

a sumar. Usando esta información, escriba un programa en C++ que use un ciclo while para

desplegar cada término y para determinar la suma de la serie aritmética si se tiene que a=1, d=3 y

n=100. Asegúrese que su programa despliegue el valor que ha calculado.

7. Una serie geométrica se define por:

Donde a es el primer término, r es la “razón común” y n es el número de términos en la serie.

Usando esta información, escriba un programa en C++ que utilice un ciclo while para desplegar

cada término y para determinar la suma de una serie geométrica si se tiene que a=1, r=0.5 y

n=10. Asegúrese que su programa despliega el valor que se ha calculado.

8. Además del promedio aritmético de un conjunto de número, se puede calcular una media

geométrica y una media armónica. La media geométrica de un conjunto de n números x1,x2,…xn

se define como:

Y la media armónica como:

Usando estas fórmulas, escriba un programa en C++ que continué aceptando números hasta que

se introduzca el número 999 y luego calcule y despliegue tanto la media geométrica como la

armónica de los números introducidos. (Sugerencia: Será necesario que su programa cuente en

forma correcta el número de valores introducidos)

For

9. Escriba y ejecute un programa en C++ que despliegue una tabla de 20 conversiones de

temperatura de Fahrenheit a Celsius. La tabla deberá comenzar con un valor Fahrenheit de 20

grados e incrementarse en valores de 4 grados. Recuerde que:

Page 38: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 38

10. La expansión de un puente de acero conforme se calienta hasta una temperatura Celsius final, TF,

desde una temperatura Celsius inicial, T0, puede aproximarse usando la formula:

Donde a es el coeficiente de expansión (el cual para el acero es 11.7 e-6) y L es el largo del

puente a la temperatura T0. Usando esta fórmula, escriba un programa en C++ que despliegue

una tabla de longitudes de expansión para un puente de acero que tiene 7365 metros de

largo a 0 grados Celsius, conforme la temperatura incrementa a 40 grados en incrementos de

5 grados.

11. La probabilidad que una llamada telefónica individual dure menos de t minutos puede

aproximarse por la función de probabilidad exponencial:

Donde a es la duración de la llamada promedio y e es el numero de Euler (2.71828).Por

ejemplo, suponiendo que la duración de la llamada promedio es 2 minutos, la probabilidad

que una llamada durará menos de 1 minuto se calcula como 1-e-1/2=0.3297.

Usando esta ecuación de probabilidad, escriba un programa en C++ que calcule y despliegue

una lista de probabilidades de la duración de una llamada menor que 1 a menor que 10

minutos, en incrementos de un minuto.

12. El índice de llegadas de clientes en un banco concurrido en Andahuaylas puede estimarse usando

la función de probabilidad de Poisson.

Donde x = el número de clientes que llegan por minuto; λ=el número promedio de llegadas

por minuto y e el número de Euler (2.71828). Por ejemplo, si el número promedio de clientes

que entran en el banco es de tres clientes por minuto, entonces λ es igual a tres. Por tanto, la

probabilidad que un cliente llegue en cualquier minuto es:

Page 39: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 39

Y la probabilidad que llegan dos clientes en cualquier minuto es:

Usando la función de probabilidad de Poisson, escriba un programa en C++ que calcule y

despliegue la probabilidad de llegada de 1 a 10 clientes en cualquier minuto cuando el índice

de llegadas promedio es de tres clientes por minuto.

13. Una pelota de golf es soltada desde un avión. La distancia, d, que cae la pelota en t segundos está

dada por la ecuación d=(1/2)gt2, donde g es la aceleración debida a la gravedad y es igual a 32

pies/s2. Usando esta información, escriba y ejecute un programa en C++ que despliegue la

distancia que cae en cada intervalo de un segundo para diez segundos y la distancia que cae la

pelota de golf al final de cada intervalo. La salida deberá completar la siguiente tabla:

Tiempo Distancia en el intervalo

actual

Distancia total

0 0.0 0.0

1 16.0 16.0

. . .

. .

10 . .

14. La secuencia de Fibonacci es 0,1,1,2,3,5,8,13,… donde los primeros dos términos son 0y 1, y cada

término a partir de entonces es la suma de los dos términos precedentes; es decir Fib[n]=Fib[n-

1]+Fib[n-2]. Usando esta información, escriba un programa en C++ que calcule el enésimo

número en una secuencia de Fibonacci, donde n sea introducido de manera iterativa en el

programa por el usuario. Por ejemplo si n=6, el programa deberá desplegar el valor de 5.

Page 40: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 40

Do While

15. Usando una instrucción do, escriba un programa para aceptar una calificación. El programa

deberá solicitar una calificación en forma continua en tanto se introduzca una calificación

inválida. Una calificación inválida en cualquier calificación menor que 0 o mayor que 100.

Después que se ha introducido una calificación válida, su programa deberá desplegar el valor de

la calificación introducida.

16. Escriba un programa que solicite en forma continua que se introduzca una calificación. Si la

calificación es menor que 0 o mayor que 100, su programa deberá imprimir un mensaje

apropiado que informe al usuario que se ha introducido una calificación inválida, de lo contrario

la calificación deberá sumarse a un total. Cuando se introduzca una calificación de 999 el

programa deberá salir del ciclo de repetición y calcular y desplegar el promedio de las

calificaciones válidas introducidas.

17. Escriba un programa para invertir los dígitos de un número entero positivo. Por ejemplo, si se

introduce el número 8735, el número desplegado deberá ser 5378. (Sugerencia: Use una

instrucción do y continuamente quite y despliegue el dígito de las unidades del número. Si la

variable num en un inicio contiene el número introducido, el dígito de las unidades se obtiene

como (num % 10). Después que se despliega un dígito de unidades, dividir el número entre 10

establece el número para la siguiente iteración. Por tanto (8735%10) es 5 y (8735/10) es 873. La

instrucción do deberá continuar en tanto el número remanente no sea cero.

Page 41: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 41

VI. EVALUACIÓN DE ANÁLISIS DE RESULTADOS

N° Criterios % Asignado

% Obtenido

Observación

1 Finalizó todos los ejercicios correctamente 30 %

2 Hizo uso de comentarios para documentar los

ejercicios

10 %

3 Realización en forma coherente y con lógica 30 %

4 Resultados obtenidos fueron correctos 20 %

5 Dedicación del estudiante durante la práctica 10 %

6 TOTAL 100 %

Observaciones

_______________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

Conclusiones

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

Page 42: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 42

GUIA DE LABORATORIO N° 06

FUNCIONES Y MÓDULOS

I. OBJETIVOS

Conocer las Funciones y Módulos en C++.

Utilizar el entorno DEV C++.

II. INTRODUCCIÓN

Concepto de una Función

Una función es un conjunto de instrucciones independientes cuyo objetivo es el de minimizar

la complejidad de un problema, el procedimiento consiste en descomponerlos en

subproblemas más fáciles de resolver. Una función debe realizar una tarea específica. Como

resultado del conjunto de instrucciones de una función, se han tenido que realizar

operaciones y tal vez modificaciones de los datos que la función tenía a disposición,

generalmente este resultado se devuelve en forma de valor. Estábamos familiarizados con el

uso de la función principal void main(), que siempre debe de estar en cualquier programa,

pero resulta que podemos crear las funciones que nos parezcan necesarias para resolver de

una manera más sencilla el problema que estemos tratando.

¿Cuándo utilizar funciones?

Cuando veamos que secciones o bloques de código se repiten varias veces podemos

llevar esta tarea a una función, lo que nos ahorra esfuerzo y evita líneas de código

repetidas.

Cuando necesitemos realizar una operación sobre algún tipo de dato y producto de

ello necesitemos un valor de respuesta. Como por ejemplo calcular el cuadrado de un

número entero.

Una función tiene la siguiente sintaxis:

Page 43: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 43

SINTAXIS

<tipo> Es el tipo de dato que

devuelve la función. Si se coloca

main la función no devuelve ningún

valor.

Cuerpo Es todo lo que se

encuentra entre las llaves {} y

contiene un conjunto de

sentencias.

return Esta sentencia se

usa si el tipo de dato de

retorno no es void. Return

devuelve una expresión. Se

pueden colocar varios

returns a lo largo de un

programa y cuando la

función encuentra a

cualquiera termina.

Parámetros Es un conjunto de

variables, las cuales se escriben con

su tipo de dato y su nombre,

separadas por comas, que vienen a

constituir los argumentos de la

función.

nombreF Es el nombre que

le damos a nuestra función

puede ser el que queramos

menos la palabras reservadas

del lenguaje

Ejemplo 01: En el siguiente ejemplo se definirá una función para que calcule el área de un triángulo.

Page 44: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 44

En la línea 3 podemos ver que el tipo de dato que devolverá la función es un entero (int) que

el nombre de la función es areaTriangulo y tienen dos parámetros de tipo entero base y

altura. El cuerpo de la función comprende todas las líneas de código desde la línea 4 hasta la

línea 8.

Cuerpo de una función

El cuerpo de una función contiene todas las instrucciones que le permiten realizar su tarea,

podemos definir variables cuyo ámbito o vida tendrá duración sólo en el cuerpo de la función

(variables locales). También se puede hacer llamada a otras funciones o declarar tipos de

datos definidos por el usuario, en síntesis se puede trabajar en el cuerpo de una función con

todas las ventajas que el lenguaje nos ofrece pero orientado a la resolución de un problema

específico.

Ejemplo 02:

# include <iostream.h>

void mostrar (char nombre[])

{

cout <<nombre;

}

void main ()

{

Mostrar ("UMSS");

}

Valor de retorno

Una función después de haber realizado operaciones con los datos que se le proporciona

debe de devolver algo, ya sea en forma de un valor o si no haber efectuado alguna

modificación con los datos o sino mostrar algo por pantalla. El valor que devuelve la función

se fija con la instrucción return, cuando la función encuentra esa palabra acaba e

inmediatamente devuelve el valor que se indica. En el ejemplo 01 en la línea 7 se devuelve el

valor que contiene la variable área. Existen funciones que no devuelven ningún valor, estas

Page 45: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 45

llevan como tipo de dato de retorno void, pero no significan que no hacen nada, pueden

realizar cálculos o simplemente mostrar algo por pantalla.

Ámbito de las Variables

Variables locales

Todas la variables que se crean dentro del cuerpo de una función tienen ámbito o vida sólo en

el cuerpo mismo de la función, estas variables son llamadas locales. Esto quiere decir que

podemos utilizar estas variables sólo en la función pues al terminar esta las variables se

destruyen.

Variables globales

Las variables globales son definidas fuera de cualquier función, están definidas de una manera

parecida a las librerías, estas variables tienen un alcance global en todo el programa, esto

quiere decir que pueden ser accedidas de cualquier parte del programa.

Llamada o Invocación a una función

Una vez escrita la función, podemos utilizarla escribiendo su nombre y luego dándole los

parámetros correspondientes: Sintaxis: NombreFuncion( parámetros ). En el ejemplo 1 en la

línea 13 se llama a la función areaTriangulo para que el valor de retorno se muestre.

¿Cómo trabaja una función?

Una función es un conjunto de sentencias independientes que se ejecutan cada vez que se

llama o invoca a una función. Cada vez que se encuentra una llamada a una función el control

del programa se pasa a la función, es decir, la ejecuta y cuando esta acaba entonces el control

vuelve a la sección del programa desde donde se hizo la llamada.

En cuanto a los parámetros, en el caso que utilicemos variables, no se debe de pensar de que

existe alguna relación entre las variables que se pasan y las que están definidas como

parámetros en la función, a menos que las referenciemos.

Page 46: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 46

En el ejemplo 1 cuando se hace la llamada a la función areaTriangulo se utiliza dos variables

baseT y alturaT, estas dos variables nada tienen que ver con las variables que se definieron

como parámetros de la función en la línea 13 base y altura, lo que ocurre es que baseT es

correspondiente a base al igual que alturaT y altura. Lo que es importante es que las variables

que se pasen sean del mismo tipo que de los parámetros definidos en la función.

Los parámetros de una función.

Una función puede tener de 0 a n parámetros y lo más común es que utilice los valores que

guardan los parámetros para realizar la operación y luego devolver un resultado, está el caso

del ejemplo 1 en el que la función areaTriangulo tiene dos parámetros enteros base y altura,

estas variables contienen los valores a partir de los cuales se calculará el área del triángulo.

Debemos tener en cuenta que los parámetros son variables locales, sólo las podemos utilizar

dentro de la función.

Paso de parámetros por valor

Esto significa que cuando hacemos la llamada a la función como parámetros le damos valores,

si es que colocamos variables como parámetros la función solo toma los valores. En el

ejemplo 1 en la línea 13 se llama a la función areaTriangulo así: areaTriangulo (baseT,alturaT)

Cuando el paso de parámetros es por valor viene a ser como si solo los valores de las variables

baseT y alturaT se pasarán como parámetros a la función así: areaTriangulo(3,4).

Pasa de parámetros por Referencia

En este caso existe una formalidad de las variables, después de haberlas pasado como

parámetros en una función, estas sufren cambios, producto de las operaciones que se realizan

dentro de la función, para mostrar cómo funciona esta parte se resolverá el mismo problema

que en el ejemplo 1 utilizando paso de parámetros por referencia.

Para que los cambios de un parámetro se reflejen se debe de utilizar el operador de

referencia &, en el ejemplo anterior en la línea 3 se utiliza el operador & que va delante de la

Page 47: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 47

variable base, esto quiere decir que lodos los cambios que se hagan sobre esta variable en la

función, tendrán efecto en la variable que se utilice al hacer la llamada, baseT en el anterior

ejemplo. En la línea 11, se llama a la función: areaTriangulo (baseT , alturaT);

En este caso la variable baseT es la correspondiente a la variable base de la función

areaTriangulo todos los cambios que se realicen en la variable base afectarán a la variable

baseT. Después de la línea 11 la variable baseT habrá cambiado conteniendo el área del

triángulo.

¿Por qué ocurre esto? :Porque ya no se pasan simplemente valores sino se pasa una dirección

de memoria.

Ejemplo 03

Page 48: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 48

III. MATERIALES Y EQUIPOS A UTILIZAR

Guía de Laboratorio (Disponible en la Dirección Electrónica www.unajma.edu.pe).

Laboratorio de Computo (20 PCs).

Software Dev C++.

Cañón Multimedia.

Laptop.

Pizarra, Plumones y Mota.

IV. PROCEDIMIENTOS

Crear una carpeta en mis documentos o en el escritorio donde guardara los programas

desarrollados en el laboratorio.

Ejemplo 04: Escribir una función que calcule los primeros 10 números primos.

1: #include <iostream.h>

2: int esPrimo (int N)

3: {

4: for (int i = 2; i <= N/2; i++)

5: if (N % i = 0)

6: return 1;

7: }

8: void main ()

9: {

10: int NPrimo = 0, contador = 1;

11: while (NPrimo < 10)

12: {

13: if (esPrimo (contador))

14: {

15: NPrimo + +;

16: cout <<"El"<<NPrimo<<"Numero Primo es"<<contador<<endl;

17: }

18: contador ++;

19: }

20: }

Page 49: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 49

V. INVESTIGACIONES Y EJERCICIOS COMPLEMENTARIOS

Esta tarea deberá ser entregada al docente la próxima semana, de manera digital e impreso.

1. Escribir una función que calcule la media de un conjunto de n>0 números leídos del teclado.

2. Escribir una función que decida si un número entero es capicúa. El número 24842 es capicúa.

El número 134 No lo es.

3. Escribir un programa que encuentre el valor mayor, el valor menor y la suma de los datos de

entrada. Obtener la media de los datos mediante una función.

4. Escribir una función que permita calcular la serie:

5. Escribir una función que sume los 30 primeros números impares.

6. Escribir una función que calcule la suma de los 20 primeros números primos.

7. Escribir una función que encuentre y escriba todos los números perfectos menores que un

valor constante max.

8. Escriba un programa que lea dos números x y n y calcule la suma de la progresión geométrica.

1+x+x2+x3+…+xn.

9. Escribir un programa que mediante funciones determine el área del círculo correspondiente a

la circunferencia circunscrita de un triángulo del que conocemos las coordenadas de los

vértices.

10. Escribir un programa que lea dos enteros positivos n y b y mediante un función CambiarBase

visualice la correspondiente representación del número de n en la base b.

11. Escribir el inverso de un número entero dado (1234, inverso 4321).

Page 50: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 50

VI. EVALUACIÓN DE ANÁLISIS DE RESULTADOS

N° Criterios % Asignado

% Obtenido

Observación

1 Finalizó todos los ejercicios correctamente 30 %

2 Hizo uso de comentarios para documentar los

ejercicios

10 %

3 Realización en forma coherente y con lógica 30 %

4 Resultados obtenidos fueron correctos 20 %

5 Dedicación del estudiante durante la práctica 10 %

6 TOTAL 100 %

Observaciones

________________________________________________________________________________

_______________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

Conclusiones

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

Page 51: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 51

GUIA DE LABORATORIO N° 07

ARRAYS (ARREGLOS)

I. OBJETIVOS

Conocer los Arrays(arreglos) en C++.

Utilizar el entorno DEV C++.

II. INTRODUCCIÓN

Arrays ( arreglos)

Un arreglo es un conjunto o colección finita de datos de un mismo tipo. Los elementos de un

arreglo pueden ser accedidos por medio de un subíndice i. Podemos considerar a un arreglo

desde el punto de vista matemático como un vector, y a un arreglo bidimensional una matriz.

Declaración de un arreglo

Un arreglo se define indicando el tipo de arreglo, es decir, el tipo de datos de todos los

elementos del arreglo, luego se le da un nombre al arreglo y finalmente se le da un tamaño.

<tipo> nombreArreglo [Tamaño]

Por ejemplo tengo un arreglo de números enteros: int arreglo[4];

En el caso anterior el tipo del arreglo es entero (int).

Se le da una dimensión al arreglo que va entre los caracteres '[' y ']' , en el caso anterior la

dimensión es 4, esto quiere decir que en la memoria se reservaron 4 posiciones para

almacenar 4 valores enteros.

Inicializar un Arreglo

Existen varias maneras de inicializar un arreglo, una manera muy sencilla es poner entre llaves

({ }), los elementos del arreglo separados por comas.

Page 52: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 52

A = {51, 60, 70, 95};

También podemos utilizar la estructura de control for para inicializar los elementos del

arreglo.

Acceso a los elementos de un Arreglo

Puedo acceder a un elemento por medio de un subíndice, por ejemplo si yo quiero acceder al

primer elemento tendré que hacerlo de esta manera : int A = arreglo[0];

En la variable A se almacenara el valor de 51, para acceder al segundo valor: A = arreglo[1];

En la variable A se almacenará el valor de 60, y así sucesivamente con los demás elementos.

Si nos damos cuenta tener un arreglo es mucho más ventajoso que tener definidas 4

variables.

Desventajas.

En ocasiones, no podemos predecir con precisión el tamaño que un arreglo tendrá por lo que

podemos definir un arreglo muy grande, lo que nos lleva a desperdiciar memoria, por ejemplo

si defino un arreglo de 100 elemento (arreglo[100]), y sólo utilizo 5 posiciones de memoria, las

demás 95 estarán desperdiciadas, la solución a este problema la veremos más adelante en lo

que se denomina punteros.

Page 53: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 53

Ejemplo 01

Se desea ingresar las notas finales de 10 alumnos de la materia de Introducción a la

programación, para luego emitir un reporte del promedio de todas las notas.

# include <iostream.h>

Void main ()

{

const int TAM =10;

int i , promedio = 0;

int arreglo [TAM];

for (i=0; i <TAM; i++)

{

cout <<"ingrese la nota del estudiante #"<<i+1<<":\n";

cin >>arreglo[i];

}

for (i=0; i <TAM; i++)

promedio = promedio + arreglo[i];

promedio = promedio / TAM;

cout << "el promedio de las notas es :"<<promedio;

}

No hubiera sido muy práctico manejar 10 variables diferentes para guardar las notas de los 10

alumnos, utilizando un arreglo se nos simplifican mucho las cosas.

Nota: Se puede declarar un arreglo dándole la dimensión o tamaño por un valor constante

const int TAM=10;

int arreglo[TAM];

si TAM no fuera constante el programa devolvería mensaje de error.

Arreglos Bidimensionales

Un arreglo bidimensional está compuesto, por un conjunto de elementos homogéneos y se

puede acceder a los datos utilizando dos subíndices, este tipo de arreglo es también conocido

como matriz.

Page 54: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 54

Declaración

Un arreglo bidimensional se define así: int arreglo[10][10]; float matriz[10][10];

también podemos utilizar constantes para definir la dimensión del arreglo de dos

dimensiones: const int N = 10; int arreglo[N][N];

Inicialización

Una matriz o arreglo bidimensional se puede inicializar de este modo:

int matriz[3][3] = {{1,2,3},{4,5,6},{7,8,9}};

Con la anterior asignación se crea en memoria una matriz igual a la de abajo

0 1 2

0 1 2 3

1 4 5 6

2 7 8 9

También podemos utilizar una estructura for dentro de otra estructura for para inicializar los

valores de un arreglo de dos dimensiones como se muestra a continuación:

Acceso a los elementos de un arreglo bidimensional

En un arreglo de dos dimensiones necesitamos también dos índices para acceder a sus

elementos. Si utilizamos: matriz[i][j], entonces i se refiere a la fila y j a la columna.

Para acceder al elemento de la segunda fila y segunda columna de la matriz de la Fig. 8.1

hacemos: int nro = matriz[1][1];

En la variable nro se guardara el número 5.

Las matrices o arreglos bidimensionales se suelen utilizar en cálculos matemáticos,

operaciones con matrices, recorridos por matrices, y cualquier uso que nosotros le podamos

Page 55: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 55

dar. Se pueden definir arreglos de más de 2 dimensiones, pero su manejo se dificultaría

enormemente.

III. MATERIALES Y EQUIPOS A UTILIZAR

Guía de Laboratorio (Disponible en la Dirección Electrónica www.unajma.edu.pe).

Laboratorio de Computo (20 PCs).

Software Dev C++.

Cañón Multimedia.

Laptop.

Pizarra, Plumones y Mota.

IV. PROCEDIMIENTOS

Crear una carpeta en mis documentos o en el escritorio en donde guardaras los programas

desarrolladas en el laboratorio.

Ejemplo 01: Leer desde teclado una matriz de números enteros de dimensión 3x3.

1: # include <iostream.h>

2: void main ()

3: {

4: const int TAM = 3;

5: int matriz [TAM][TAM];

6: for (int i=0 ; i <= TAM ; i++)

7: {

8: for (int j=0 ; j <= TAM ; j++)

9: {

10: cout <<"ingrese el elemento ["<<i<<","<<j<<"]";

11: cin >> matriz [i][j];

12: }

13: }

14: }

Page 56: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 56

Ejemplo 02 (cuadrado perfecto)

Se debe imprimir un cuadrado mágico de tamaño N, donde N es un número impar

comprendido entre 3 y 11. Un cuadrado mágico está compuesto de números enteros entre 1

y N, con las siguientes características: la sumas de las filas, columnas, diagonales son iguales,

como se ve en el siguiente ejemplo:

8 1 6

3 5 7

4 9 2

El método de generación del cuadrado mágico consiste en situar el número 1 en la casilla del

centro de la primera fila, el siguiente número se debe situar en la casilla ubicada en la fila

anterior (por encima) y en la columna de la derecha. Este proceso se repite hasta colocar los N

números. Es importante saber que el cuadrado mágico es cíclico, es decir, la fila anterior

(encima) de la primera fila es la última fila y la columna a la derecha de la última es la primera

columna. En caso de que un número se debe colocar en una casilla que ya está ocupada,

entonces se elige la casilla que se encuentra debajo (en la siguiente fila, la misma columna)

del número que acabamos de ubicar.

Ejemplo 03 (MULTIPLICACIÓN de Matrices)

Se requiere un programa que realice la multiplicación de dos matrices, para tal efecto se

deben ingresar las dos matrices por teclado teniendo el cuidado de controlar que la primera

matriz tenga una dimensión de N*M y la segunda de M*N para que se pueda realizar la

multiplicación.

Solución . . . para que el lector lo trabaje en laboratorio.

Page 57: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 57

V. INVESTIGACIONES Y EJERCICIOS COMPLEMENTARIOS

Esta tarea deberá ser entregada al docente la próxima semana, de manera digital e impreso.

1. Escribir un programa que convierta un número romano (en forma de cadena de caracteres) en

números arábigo.

2.

Escribir una función a la que se le proporcione una fecha (día, mes, año), así como número de

días a añadir a esta fecha. La función debe calcular la nueva fecha visualizarla.

3. Escribir una función que acepte como parámetro un vector que puede contener elementos

duplicados. La función debe sustituir cada valor repetido por -5 y devolver al punto donde fue

llamado el vector modificado y el número de entradas modificadas.

4. Escribir un programa que lea una colección de cadenas de caracteres de longitud arbitraria.

Por cada cadena leída, su programa hará lo siguiente:

a) Visualizar la longitud de la cadena.

b) Contar el número de ocurrencias de palabras de cuatro letras.

c) Sustituir cada palabra de cuatro letras por una cadena de cuatro asteriscos e imprimir

la nueva cadena.

5. Escribir un programa que lea una frase, sustituya todas las secuencias de dos o más blancos

por un solo blanco y visualice la frase restante.

6. Escribir un programa que desplace una palabra leída del teclado desde la izquierda hasta la

derecha de la pantalla.

7. Escribir un programa que lea una serie de cadenas, a continuación, determine si la cadena es

un identificador válido C++. Sugerencias: utilizar los siguientes subprogramas: longitud

M 1000

D 500

C 100

L 50

X 10

V 5

I 1

Page 58: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 58

(tamaño del identificador en el rango permitido); primero (determinar si el nombre comienza

con un símbolo permitido); restantes (comprueba si los restantes son caracteres permitidos).

8. Escribir una función conversión que reciba como parámetro una cadena representando una

fecha en formato ‘dd/mm/aa’, como 17/11/91 y la devuelva en formato de texto: 17

noviembre 1991.

9. Escribir un programa que permita escribir en sentido inverso una cadena de caracteres.

10. Buscar una palabra en una cadena y calcular su frecuencia de aparición.

11. Escribir un programa en el que se genere aleatoriamente un vector de 20 números enteros. El

vector ha de quedar de tal forma que la suma de los 10 primeros elementos sea mayor que la

suma de los 10 últimos elementos. Mostrar el vector original y el vector con la distribución

indicada.

12. El juego del ahorcado se juega con dos personas(o una persona y una computadora). Un

jugador selecciona una palabra y el otro jugador trata de adivinar la palabra adivinando letras

individuales. Diseñar un programa para jugar al ahorcado. Sugerencia: almacenar una lista de

palabras en un array y seleccionar palabras aleatoriamente.

VI. EVALUACIÓN DE ANÁLISIS DE RESULTADOS

N° Criterios % Asignado

% Obtenido

Observación

1 Finalizó todos los ejercicios correctamente 30 %

2 Hizo uso de comentarios para documentar los

ejercicios

10 %

3 Realización en forma coherente y con lógica 30 %

4 Resultados obtenidos fueron correctos 20 %

5 Dedicación del estudiante durante la práctica 10 %

6 TOTAL 100 %

Page 59: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 59

Observaciones

________________________________________________________________________________

_______________________________________________________________________________

________________________________________________________________________________

Conclusiones

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

Page 60: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 60

GUIA DE LABORATORIO N° 08

CADENAS

I. OBJETIVOS

Conocer las Cadenas en C++.

Utilizar el entorno DEV C++.

II. INTRODUCCIÓN

Carácter: Un carácter es el átomo de los programas de computadora, un carácter es un

símbolo que puede ser una letra del alfabeto o un carácter especial. carácter ocupa 8 bits en

memoria, y existen 256 caracteres diferentes. Cada carácter se lo codifica en un número

entero, es decir, que cada carácter tiene su correspondiente representación entera, el código

ASCII es precisamente esto.

Cadenas: Una cadena o cadena de caracteres nos es más que una serie de caracteres

manipulados como una unidad. Si asemejamos una cadena al lenguaje castellano sería como

una palabra, que es un conjunto de sílabas y vocales en donde cada una de estas viene a ser

una carácter.

Visto desde otro punto vendría a ser un arreglo de caracteres. Una cadena puede contener

cualquier carácter, puede almacenar un nombre propio una dirección, es decir, lo que

nosotros precisemos.

Declaración

Una cadena se la define de la siguiente manera: char cadena[20];

La cadena anterior puede contener un máximo de 20 caracteres.

Inicialización

Se puede inicializar una cadena de la siguiente manera: cadena = "Hola" ;

Page 61: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 61

Cualquier valor que se le asigne a una cadena va entre comillas dobles " ", como en el ejemplo

anterior "Hola" está entre comillas dobles.

Una cadena siempre finaliza con el carácter de fin de cadena ‘\0’, que siempre se añade al

final automáticamente, en el ejemplo anterior se añade al final de “Hola” el carácter de fin de

cadena.

También podemos considerar a una cadena como un arreglo de caracteres, y se puede

inicializar de la siguiente manera: cadena = { ‘H’, ‘o’, ‘l’, ‘a’ } ;

El arreglo de caracteres se vería de esta forma:

‘H’ ‘o’ ‘l’ ‘a’ ‘\0’

0 1 2 3 4

Nótese que en la posición 4 se aumenta el fin de cadena

Ejemplo 01

Se desea tener un programa que sea amable con el usuario, el programa deberá conocer el

nombre del usuario y responderle con un mensaje amigable.

Page 62: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 62

En el ejemplo anterior el mensaje "¿Cuál es tu nombre?" es una cadena pues está entre

comillas. También es una cadena la variable nombre que recibirá un valor desde teclado.

Operaciones con Cadenas

Existen muchas operaciones que se pueden realizar utilizando cadenas, la mayoría de la

operación que podemos requerir se encuentran ya a nuestra disposición dentro de la librería

string.h

Longitud

La longitud de una cadena la podemos conocer utilizando la función strlen.

Sintaxis: strlen( cadena ) ;

Ejemplo 02

# include <iostream.h>

void main ()

{

char nombre [30];

int tamaño;

cout <<"cual es tu nombre?\n";

cin >>nombre;

tamaño = strlen (nombre);

cout <<"Tu nombre tiene "<< tamaño <<"letras";

}

Page 63: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 63

Comparación

Para saber si dos cadenas son exactamente iguales utilizamos la función strcmp.

Sintaxis : strcmp ( cadena1, cadena2 );

Esta función devuelve un valor de acuerdo al resultado de la comparación. Devuelve:

0 si la dos cadenas son exactamente iguales

Mayor a 0 si la cadena 1 es mayor a la cadena 2

Menor a 0 si la cadena 1 es menor que la cadena 2

Ejemplo 03

# include <iostream.h>

# include <string.h>

void main ()

{

char contraseña [30], recontraseña [30];

int resultado;

cout <<"escribe tu contraseña \n";

cin>>contraseña;

cout << "re escribe tu contraseña \n";

cin >>recontraseña;

resultado = strcmp (contraseña, recontraseña);

if (resultado ==0)

cout << "la contraseña no coincide";

}

Page 64: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 64

Copia

Podemos reflejar todo el contenido de una cadena a otra, en otras palabras la copiamos tal

cual, para esto utilizamos la función strcpy.

Sintaxis: strcpy( cadenaDestino, cadenaOrigen );

Todo el contenido de la cadenaOrigen se copia a la cadenaDestino, si esta última tuviera algún

valor este se borra.

Ejemplo 04

Concatenación

Podemos juntar o concatenar dos cadenas una a continuación de la otra. Utilizamos la función

strcat.

Page 65: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 65

Sintaxis

strcat( cadenaDestino, cadenaOrigen );

Todo el contenido de la cadenaOrigen se añade a continuación de la cadenaDestino, si esta

última contiene algo entonces al final contendrá lo que contenía más el contenido de la

cadenaOrigen.

Ejemplo 05

Escriba una función que permita conocer la longitud de una cadena. La función deberá

llamarse longitud.

Page 66: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 66

Ejemplo 05

III. MATERIALES Y EQUIPOS A UTILIZAR

Guía de Laboratorio (Disponible en la Dirección Electrónica www.unajma.edu.pe).

Laboratorio de Computo (20 PCs).

Software Dev C++.

Cañón Multimedia.

Laptop.

Pizarra, Plumones y Mota.

IV. PROCEDIMIENTOS

Crear una carpeta en mis documentos o en el escritorio donde guardara los programas realizados

en el laboratorio.

Elaborar los ejemplos anteriores con el propósito de familiarizarse con su funcionamiento.

Page 67: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 67

V. INVESTIGACIONES Y EJERCICIOS COMPLEMENTARIOS

Esta tarea deberá ser entregada al docente la próxima semana, de manera digital e impreso.

1. Esta tarea deberá ser entregada al docente la próxima semana, de manera digital e impreso.

Hacer un programa que lee líneas del teclado hasta que se introduce control más Z. En cada

línea debe haber dos números reales. El programa presenta por cada línea leída otra línea con la

suma de los dos números.

2. Escribir un programa que encuentre dos cadenas introducidas por teclado que sean anagramas.

Se considera que dos cadenas son anagramas si contienen exactamente los mismos caracteres

en el mismo o en diferente orden. Hay que ignorar los blancos y considerar que las mayúsculas

y las minúsculas son iguales.

3. Escribir un programa para las líneas de un texto sabiendo que el máximo de caracteres por línea

es 80 caracteres. Contar el número de palabras que tiene cada línea, así como el número total

de palabras leídas.

4. Escribir una función que reciba como parámetro una cadena de caracteres y la invierta, sin usar

la función strrev.

5. Escribir un programa que lea líneas de texto obtenga las palabras de cada línea y las escriba en

pantalla en orden alfabético. Se puede considerar que el máximo número de palabras por línea

es 28.

6. Escribir un programa que lea una línea de texto y escriba en pantalla las palabras de que consta

la línea sin utilizar las funciones de string.h y particularmente sin usar strtok().

7. Un sistema de encriptación simple consiste en sustituir cada carácter de un mensaje por el

carácter que está situado a tres posiciones alfabéticas por adelante suyo. Escribir una función

que tome como parámetro una cadena y devuelva otra cifrada como se ha explicado.

8. Escribir un programa que lea un texto, y dos palabras claves, clave1 y clave2. El programa debe

sustituir todas las apariciones de clave1 por clave2, mostrar el nuevo texto, e indicar el número

de intercambios realizados.

Page 68: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 68

9. Otro sistema de encriptación consiste en sustituir cada carácter del alfabeto por otro decidido

de antemano, pero siempre el mismo. Utilizar este método en una función que tome como

parámetros el mensaje a cifrar y una cadena con las correspondencias ordenadas de los

caracteres alfabéticos. La función devolverá un puntero a la cadena cifrada del mensaje.

10. Escribir una función que genere un código alfanumérico diferente cada vez que sea llamada

devolviéndolo en forma de cadena. El argumento de dicha función es el número de caracteres

que va a tener el código generado.

11. Escribir una función que reciba una palabra y genere todas las palabras que se pueden construir

con sus letras.

12. Modificar la función anterior para que sólo genere las palabras que comiencen por una

constante.

VI. EVALUACIÓN DE ANÁLISIS DE RESULTADOS

N° Criterios %

Asignado

%

Obtenido

Observación

1 Finalizó todos los ejercicios correctamente 30 %

2 Hizo uso de comentarios para documentar los

ejercicios

10 %

3 Realización en forma coherente y con lógica 30 %

4 Resultados obtenidos fueron correctos 20 %

5 Dedicación del estudiante durante la práctica 10 %

6 TOTAL 100 %

Page 69: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 69

Observaciones

_______________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

Conclusiones

________________________________________________________________________________

________________________________________________________________________________

________________________________________________________________________________

Page 70: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 70

CUADERNILLO DE EJERCICIOS PROPUESTOS

1. Diseñe el programa que acepte dos números reales de un usuario y un código seleccionado. Si el

código seleccionado introducido es 1, haga que el programa sume los dos números introducidos

con anterioridad y despliegue el resultado; si el código seleccionado es 2, los números deberán

multiplicarse, y si el código seleccionado es 3, el primer número deberá ser dividido entre el

segundo número.

2. Escriba un programa para desplegar los dos indicadores siguientes:

a. Introduzca un mes (use 1 para Ene, etc.):

b. Introduzca un día del mes:

c. Haga que su programa acepte y almacene un número en la variable mes en respuesta al

primer indicador, y acepte y almacene un número en la variable día en respuesta al segundo

indicador. Si el mes introducido no está entre 1 y 12 inclusive, imprima un mensaje

informando al usuario que se ha introducido un mes inválido. Si el día introducido no está

entre 1 y 31, imprima un mensaje informando al usuario que se ha introducido un día

inválido.

3. El cuadrante en el que reside una línea trazada desde el origen es determinado por el ángulo que

forma la línea con el eje x positivo como sigue:

Ángulo desde el eje X positivo Cuadrante

Entre 0 y 90 grados I

Entre 90 y 180 grados II

Entre 180 y 270 grados III

Entre 270 y 360 grados IV

Usando esta información, escriba un programa en C++ que acepte el ángulo de la línea como una

entrada del usuario y determine y despliegue el cuadrante apropiado a los datos introducidos.

(Nota: Si el ángulo tiene exactamente 0, 90, 180 o 270 grados, la línea correspondiente no reside

en ningún cuadrante sino que se encuentra en un eje).

Page 71: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 71

4. Modifique el programa anterior de modo que se despliegue un mensaje que identifique un

ángulo de cero grados como el eje x positivo, un ángulo de 90 grados con el eje y positivo, un

ángulo de 180 grados como el eje x negativo y un ángulo de 270 grados como el eje y negativo.

5. Todos los años que se dividen exactamente entre 400 o que son divisibles exactamente entre

cuatro y no son divisibles exactamente entre 100 son años bisiestos. Por ejemplo, en vista que

1600 es divisible exactamente entre 400, el año 1600 fue un año bisiesto. Del mismo modo, en

vista que 1988 es divisible exactamente entre cuatro pero no entre 100, el año 1988 también fue

un año bisiesto. Usando esta información, escriba un programa en C++ que acepte el año como

una entrada del usuario, determine si el año es un año bisiesto y despliegue un mensaje

apropiado que le indique al usuario si el año introducido es un año bisiesto o no.

6. Con base en el año del modelo y el peso de un automóvil la Provincia de Andahuaylas determina

la clase del vehículo y la tarifa de registro que le corresponde usando la siguiente tabla:

Año del modelo Peso Clase de

peso

Tarifa de

registro

1970 o anterior Menos de 2700 lbs. 1 S/. 16.50

2700 a 3800 lbs. 2 S/. 25.50

Más de 3800 lbs. 3 S/. 46.50

1971 a 1979 Menos de 2700 lbs. 4 S/. 27.00

2700 a 3800 lbs. 5 S/. 30.50

Más de 3800 lbs. 6 S/. 52.50

1980 o posterior Menos de 3500 lbs. 7 S/. 19.50

3500 lbs. a más 8 S/. 52.50

Usando esta información, escriba un programa en C++ que acepte el año y el peso de un

automóvil y determine y despliegue la clase y la tarifa de registro para el automóvil.

If anidadas

7. Un ángulo es considerado agudo si es menor que 90 grados, obtuso si es mayor que 90 grados y

ángulo recto si es igual a 90 grados. Usando esta información, escriba un programa en C++ que

Page 72: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 72

acepte un ángulo, en grados, y despliegue el tipo de ángulo correspondiente a los grados

introducidos.

8. El nivel de grado de los estudiantes universitarios se determina de manera típica de acuerdo con

la siguiente tabla:

Número de créditos

completados

Grado

Menor que 2 Primer año

32 a 63 Segundo año

64 a 95 Tercer año

96 a más Cuarto año

9. Usando esta información, escriba un programa en C++ que acepte el número de créditos que ha

completado un estudiante, determine el grado del estudiante y lo despliegue.

10. La letra que representa las calificaciones de un estudiante se calcula de acuerdo con la siguiente

tabla:

Usando esta información, escriba un programa en C++ que acepte la calificación numérica de un

estudiante, convierta la calificación numérica a su calificación en letra equivalente y despliegue la

letra.

11. La tolerancia de componentes críticos en un sistema se determina por la aplicación de acuerdo

con la siguiente tabla:

CALIFICACIÓN NUMÉRICA LETRA

Mayor que o igual a 90 A

Menor que 90 pero mayor que o igual a 80 B

Menor que 80 pero mayor que o igual a 70 C

Menor que 70 pero mayor que o igual a 60 D

Menor que 60 F

Page 73: Manual de Laboratorio 2010 -I Dev c++

UNAJMA

UUUnnniiivvveeerrrsssiiidddaaaddd NNNaaaccciiiooonnnaaalll JJJooosssééé MMMaaarrríííaaa AAArrrggguuueeedddaaasss

CCCaaarrrrrreeerrraaa PPPrrrooofffeeesssiiiooonnnaaalll dddeee IIInnngggeeennniiieeerrríííaaa dddeee SSSiiisssttteeemmmaaasss

AAAsssiiigggnnnaaatttuuurrraaa ::: IIInnnfffooorrrmmmááátttiiicccaaa III III

GGGUUUIIIAAA DDDEEE LLLAAABBBOOORRRAAATTTOOORRRIIIOOO

Ing. Carlos Alberto Silva Delgado - 2011 - I Página 73

ESTADO DE LA

ESPECIFICACIÓN

TOLERANCIA

Exploración espacial Menor que 0.1%

Grado militar Mayor que o igual a 0.1% y menor que 1%

Grado comercial Mayor que o igual a 1% y menor que 10%

Grado de juguete Mayor que o igual a 10%

12. Usando esta información, escriba un programa en C++ que acepte la lectura de tolerancia de un

componente y determine la especificación que debería asignarse al componente.

13. Escriba un programa en C++ que acepte un número seguido por un espacio y luego en letra. Si la

letra que sigue al número es f, el programa tratara al número introducido como una temperatura

en grados Fahrenheit, convertirá el número a los Grados Celsius equivalente y desplegara un

mensaje adecuado. Si la letra que sigue al número es c, el programa tratará al número

introducido como una temperatura en Celsius, convertirá el número a los grados Fahrenheit

equivalentes y desplegará un mensaje adecuado. Si la letra no es f ni c, el programa imprimirá el

mensaje que los datos introducidos, son incorrectos y terminara. Usé una cadena if-else en su

programa y use las fórmulas de conversión.

a. Celsius=(5.0/9.0)*(Fahrenheit-32.0)

b. Fahrenheit=(9.0/5.0)*Celsius+32.0