You are on page 1of 14

1/14

GUIA DE LABORATORIO N1
OBJETIVOS
1. Introducir al estudiante al uso del lenguaje C++ 2. Conocer las clases de datos de C++
3. Mostrar el uso y aplicacin de los operadores de asignacin, de relacin, aritmticos, lgicos y a nivel de bits de C++

En la presente sesin, el alumno debe escribir, los programas que se listan a continuacin y probar sus respectivas corridas. As mismo debe analizar los resultados y relacionarlos con los conceptos tericos dados en el aula de clases. PARTE I: C++ BSICO Ejem 1. * Uso de la instruccion cout */ #include <iostream> using namespace std; int main() { cout<<"Hola, Bienvenido al C++!\n"; system("PAUSE"); } // Fin de programa

Ejem 2. #include <iostream> using namespace std; /* muestra el uso de los comentarios en C y C++. Este programa visualiza los numeros pares que existen entre 1 y 100 inclusive. */ // Programa principal int main() { int impar; for ( impar = 1; impar < 100; impar = impar+2) cout<<impar<<"\t"; cout<<endl; system("PAUSE"); } // Fin de programa //A ejecutar el programa observara la siguiente salida

Algoritmos y Programacin

Ing. Felix Huari Evangelista

2/14

1 21 41 61 81

3 23 43 63 83

5 25 45 65 85

7 27 47 67 87

9 29 49 69 89

11 31 51 71 91

13 33 53 73 93

15 35 55 75 95

17 37 57 77 97

19 39 59 79 99

Presione cualquier tecla para continuar . . . PARTE II: CLASES DE DATOS Ejem 3. /* esto es un comentario en C */ // esto es un comentario en C++ #include <iostream> #include <limits.h> /* Las constantes INT_MAX, UINT_MAX, SHRT_MAX, etc, son constantes ya predifinidas y estan dentro de la libreria limits.h, estos devuelven nmeros enteros que indican los limites en cada caso */ // Programa principal int main() { cout<<"Entero sin signo maximo "<<UINT_MAX; cout<<"\nEntero corto con signo maximo "<<SHRT_MAX; cout<<"\nEntero corto con signo minimo "<<SHRT_MIN; cout<<"\nEntero largo con signo minimo "<<LONG_MIN; cout<<"\nEntero largo con signo maximo "<<LONG_MAX; cout<<"\nEntero con signo maximo "<<INT_MAX; cout<<"\nEntero con signo minimo "<<INT_MIN; cout<<"\nChar maximo "<<CHAR_MAX; cout<<"\nChar minimo "<<CHAR_MIN; cout<<"\nChar sin signo maximo "<<UCHAR_MAX; cout<<endl; system("PAUSE"); } // Fin de programa Ejem 4. #include <iostream> #include <float.h> /* Las constantes FLT_MAX, FLT_MIX, DBL_MAX, etc, son constantes ya predifinidas y estan dentro de la libreria float.h, estos devuelven nmeros reales que indican los limites en cada caso */ // Programa principal int main() { cout<<"Flotante maximo "<<FLT_MAX; cout<<"\nFlotante minimo "<<FLT_MIN; cout<<"\nDouble minimo "<<DBL_MIN;
Algoritmos y Programacin Ing. Felix Huari Evangelista

3/14

cout<<"\nDouble Maximo "<<DBL_MAX; cout<<endl; system("PAUSE"); } // Fin de programa Ejem 5. #include <iostream> using namespace std; int main() { cout<<"Un short tiene "<<sizeof(short)<<" Bytes"<<endl; cout<<"Un int tiene "<<sizeof(int)<<" Bytes"<<endl; cout<<"Un unsigned int tiene "<<sizeof(unsigned int)<<" Bytes"<<endl; cout<<"Un long int "<<sizeof(long int)<<" Bytes"<<endl; cout<<"Un unsigned long tiene "<<sizeof(unsigned long)<<" Bytes"<<endl; system("PAUSE"); }

Ejem 6. #include <iostream> #include <stdlib.h> int main() { cout<<"Un char "<<sizeof(char)<<" Bytes"<<endl; cout<<"Un unsigned char "<<sizeof(unsigned char)<<" Bytes"<<endl; system("PAUSE"); } Ejem 7. #include <iostream> #include <stdlib.h> int main() { cout<<"Un float tiene "<<sizeof(float)<<" Bytes"<<endl; cout<<"Un double tiene "<<sizeof(double)<<" Bytes"<<endl; cout<<"Un long double tiene "<<sizeof(long double)<<" Bytes"<<endl; system("PAUSE"); }

Ejem 8. #include <iostream> #include <stdlib.h> #include <ctype.h>


Algoritmos y Programacin Ing. Felix Huari Evangelista

4/14

// La function toascii, devuelve el codigo ASCII de un caracter int main() { char car; cout<<"\nLetras mayusculas"<<endl; for (car='A'; car<= 'Z'; car++) cout<<car<<" = "<<toascii(car)<<"\t"; cout<<"\nLetras minusculas"<<endl; for (car='a'; car<= 'z'; car++) cout<<car<<" = "<<toascii(car)<<"\t"; cout<<endl<<endl; system("PAUSE"); }

Ejem 9. #include <iostream> #include <stdlib.h> /* constantes simbolicas al estilo del C */ #define FALSE 0 #define TRUE 1 int main() { int a,b; cout<<"ingrese dos numeros "; cin>>a>>b; if (a>b) cout<<"a Si es mayor b: "<<TRUE<<endl; else cout<<"a No es mayor que b: "<<FALSE<<endl; system("PAUSE"); }

Ejem 10. #include <iostream> #include <stdlib.h> // constantes al estilo del C++ const int FALSE = 0; const int TRUE = 1;

Algoritmos y Programacin

Ing. Felix Huari Evangelista

5/14

int main() { int a,b; cout<<"ingrese dos nmeros "; cin>>a>>b; if (a>b) cout<<"a Si es mayor b: "<<TRUE<<endl; else cout<<"a No es mayor que b: "<<FALSE<<endl; system("PAUSE"); }

Ejem 11. #include <iostream> #include <stdlib.h> enum Bool{FALSE,TRUE}; int main() { int a,b; cout<<"ingrese dos numeros "; cin>>a>>b; if (a>b) cout<<"Es verdad <<a<<><<b<<=<<TRUE<<endl; else cout<<"Es falso <<a<<><<b<<=<<FALSE<<endl; system("PAUSE"); } Ejem 12. #include <iostream> #include <stdlib.h> enum Semana{DOM,LUN,MAR,MIER,JUE,VIE,SAB}; Semana dia; // dia es variable del tipo semana int main() { int dia; for (dia=DOM; dia<= SAB;dia++) switch(dia) { case 0: cout<<"\n El dia domingo es "<<dia<<endl; break;
Algoritmos y Programacin Ing. Felix Huari Evangelista

6/14

case 1: cout<<"\n El dia lunes es "<<dia<<endl; break; case 2: cout<<"\n El dia martes es "<<dia<<endl; break; case 3: cout<<"\n El dia miercoles es "<<dia<<endl; break; case 4: cout<<"\n El dia jueves es "<<dia<<endl; break; case 5: cout<<"\n El dia viernes es "<<dia<<endl; break; case 6: cout<<"\n El dia sabado es "<<dia<<endl; break; } system("PAUSE"); }

Ejem 13. #include <iostream> #include <stdlib.h> enum Semana{DOM=1,LUN,MAR,MIER,JUE,VIE,SAB}; Semana dia; // dia es variable del tipo semana int main() { int dia; for (dia=DOM; dia<=SAB; dia++) switch(dia) { case 1: cout<<"\n El dia domingo es "<<dia<<endl; break; case 2: cout<<"\n El dia lunes es "<<dia<<endl; break; case 3: cout<<"\n El dia martes es "<<dia<<endl; break; case 4: cout<<"\n El dia miercoles es "<<dia<<endl; break; case 5: cout<<"\n El dia jueves es "<<dia<<endl; break; case 6: cout<<"\n El dia viernes es "<<dia<<endl; break; case 7: cout<<"\n El dia sabado es "<<dia<<endl; break; } system("PAUSE");

Algoritmos y Programacin

Ing. Felix Huari Evangelista

7/14

Ejem 14. #include <iostream> #include <stdlib.h> int main() { cout<<"Alarma (bell) \a"; cout<<"Nueva linea \n"; cout<<"Tabulacion\thorizontal\n"; cout<<"Retorno\rde carro"; system("PAUSE"); } Ejem 15. #include <iostream> #include <stdlib.h> int main() { char c; cout<<endl<<"ingrese un carcter o un digito "; cin>>c; if (c>='0' && c<='9') cout<<endl<<c<<" es digito "; else cout<<endl<<c<<" no es digito"; cout<<endl; system("PAUSE"); }

PARTE III: OPERADORES DE C++ Ejem 16. #include <iostream> #include <stdlib.h> int main() //opearit.cpp { int x = 20,y = 7; cout<<"La suma es: "<<(x+y)<<endl; cout<<"La resta es: "<<(x-y)<<endl;
Algoritmos y Programacin Ing. Felix Huari Evangelista

8/14

cout<<"El producto es: "<<(x*y)<<endl; cout<<"La division es: "<<(x/y)<<endl; cout<<"El modulo o resto es: "<<(x%y)<<endl; cout<<"Incremento en uno para x: "<<(++x)<<endl; cout<<"Decremento en uno para y: "<<(--y)<<endl; cout<<"Asignar + a expresion cast(x+y): "<<+(x+y)<<endl; cout<<"Asignar - a expresion cast(x+y): "<<-(x+y)<<endl; cout<<"La division con cast a float es: "<<(x/float (y))<<endl; system("PAUSE"); return 0; } Ejem 17. #include <iostream> #include <stdlib.h> int main() { int x = 10, y = 5; cout<<" x = "<<x<<" y= "<<y<<endl; cout<<"valor de x+=y es: "<<(x+=y)<<endl; cout<<"valor de x*=y es: "<<(x*=y)<<endl; cout<<"valor de x/=y es: "<<(x/=y)<<endl; cout<<"valor de x%=y es: "<<(x%=y)<<endl; cout<<"valor de x+=x+y es: "<<(x+=x+y)<<endl; cout<<"valor de x-=x+y es: "<<(x-=x+y)<<endl; system("PAUSE"); } Ejem 18. #include <iostream> #include <stdlib.h> #define TRUE 1 #define FALSE !TRUE int and_logico(int x, int y, int z); int or_logico(int x, int y, int z); int negacion_log(int x, int y); int main() { int a=3, b=4, c=5; cout<<"a = "<<a<<" b= "<<b<<" c = "<<c<<endl; cout<<"c>b>a : "<<and_logico(a,b,c)<<endl; cout<<"c>a o c>b : "<<or_logico(a,b,c)<<endl; cout<<"no(b>a) : "<<negacion_log(a,b)<<endl; system("PAUSE"); }
Algoritmos y Programacin Ing. Felix Huari Evangelista

9/14

int and_logico(int x, int y, int z) { if ((z>y) && (y> x)) return TRUE; else return FALSE; } int or_logico(int x, int y, int z) { if ((z>x) || (z>y)) return TRUE; else return FALSE; } int negacion_log(int x, int y) { if (!(y>x)) return TRUE; else return FALSE; }

Ejem 19. #include <iostream> #include <stdlib.h> int x[]={256,1,-1,350,-45,1024}; int main() { int i; for(i=0;i<sizeof(x)/sizeof(int);i++) { cout<<endl<<"En decimal " <<dec<<x[i]; cout<<endl<<"En hexadecimal " <<hex<<x[i]; cout<<endl<<"En octal " <<oct<<x[i]<<endl; } system("PAUSE"); }

Ejem 20. /* imprime un entero sin signo en bits */


Algoritmos y Programacin Ing. Felix Huari Evangelista

10/14

#include <iostream> #include <stdlib.h> #include <stdio.h> void mostrarBits(unsigned); int main() { unsigned n; void mostrarBits(unsigned); cout<<"\nIngrese un entero sin signo "; cin>>n; mostrarBits(n); system("PAUSE"); } void mostrarBits(unsigned valor) { unsigned i, mostrarMask=1<<15; cout<<valor<<"\t"; for(i=1; i<=16; i++) { putchar(valor & mostrarMask ? '1':'0'); //imprime un caracter valor<<=1; if (i%8 == 0) putchar(' '); } putchar('\n'); }

Ejem 21. /* usa los operadores de bits: AND, OR inclusivo, OR exclusivo y el operador complemento a uno */ #include <iostream> #include <stdlib.h> void mostrarBits(unsigned int); int main() { unsigned num1, num2, mask; num1 = 32767; mask = 1; cout<<"\nEl resultado de combinar lo siguiente:\n"; mostrarBits(num1); mostrarBits(mask);
Algoritmos y Programacin Ing. Felix Huari Evangelista

11/14

cout<<"usando el operador a nivel de bits AND & es\n"; mostrarBits(num1 & mask); cout<<"\nEl resultado de combinar lo siguiente:\n"; mostrarBits(num1); mostrarBits(mask); cout<<"usando el operador a nivel de bits OR | inclusivo es\n"; mostrarBits(num1 | mask); num1 = 100; num2 = 1000; cout<<"\nEl resultado de combinar lo siguiente:\n"; mostrarBits(num1); mostrarBits(num2); cout<<"usando el operador a nivel de bits OR ^ exclusivo es\n"; mostrarBits(num1 ^ num2); num1 = 65535; cout<<"\nEl complemento a uno de:\n"; mostrarBits(num1); cout<<"es\n"; mostrarBits(~num1); system("PAUSE"); } void mostrarBits(unsigned valor) { unsigned i, displayMask = 1 << 15; cout<<valor<<" = "; for (i = 1; i <= 16; i++) { cout<<(valor & displayMask ? '1' : '0'); valor <<= 1; if (i % 8 == 0) cout<<' '; } cout<<"\n"; } Ejem 22. /* usa los operadores de desplazamiento a la izquierda << y a la derecha a nivel de bits: << , >> */ #include <iostream> #include <stdlib.h> void mostrarBits(unsigned);

Algoritmos y Programacin

Ing. Felix Huari Evangelista

12/14

int main() { unsigned num1=1100; cout<<"\nEl resultado de desplazar a la izquierda \n"; mostrarBits(num1); cout<<"8 posiciones usando el operador de "; cout<<"desplazamiento a la izquierda << es\n"; mostrarBits(num1 << 8); cout<<"\nEl resultado de desplazar a la derecha\n"; mostrarBits(num1); cout<<"8 posiciones usando el operador de "; cout<<"desplazamiento a la derecha >> es\n"; mostrarBits(num1 >> 8); system("PAUSE"); } void mostrarBits(unsigned valor) { unsigned i, mostrarMask = 1 << 15; cout<<valor<<" = "; for (i = 1; i <= 16; i++) { cout<<(valor & mostrarMask ? '1' : '0'); valor <<= 1; if (i % 8 == 0) cout<<' '; } cout<<"\n"; } Ejem 23. /* usa los operadores de bits: AND, OR inclusivo, OR exclusivo y el operador complemento a uno */ #include <iostream> #include <stdlib.h> void mostrarBits(unsigned); int main() { unsigned num1, num2, mask; num1 = 32767; num2 = 11100; cout<<"\nEl resultado de combinar lo siguiente:\n"; mostrarBits(num1); mostrarBits(num2); cout<<"usando el operador a nivel de bits AND & es\n"; mostrarBits(num1 & num2);

Algoritmos y Programacin

Ing. Felix Huari Evangelista

13/14

cout<<"\nEl resultado de combinar lo siguiente:\n"; mostrarBits(num1); mostrarBits(num2); cout<<"usando el operador a nivel de bits OR | inclusivo es\n"; mostrarBits(num1 | num2); cout<<"\nEl resultado de combinar lo siguiente:\n"; mostrarBits(num1); mostrarBits(num2); cout<<"usando el operador a nivel de bits OR ^ exclusivo es\n"; mostrarBits(num1 ^ num2); num1 = 65535; cout<<"\nEl complemento a uno de:\n"; mostrarBits(num1); cout<<"es\n"; mostrarBits(~num1); system("PAUSE"); } void mostrarBits(unsigned valor) { unsigned i, displayMask = 1 << 15; cout<<valor<<" = "; for (i = 1; i <= 16; i++) { cout<<(valor & displayMask ? '1' : '0'); valor <<= 1; if (i % 8 == 0) cout<<' '; } cout<<"\n"; }

PROBLEMAS PROPUESTOS
Escribir un programa que permita mostrar el nombre y el numero de mes tal como se indica a continuacin: Numero Mes -----------------------1 Enero 2 Febrero 3 Marzo 4 Abril .... ............ .... ............

Algoritmos y Programacin

Ing. Felix Huari Evangelista

14/14

12 Diciembre Para ello plantee utilizando una funcin Para el problema del caso anterior resuelva el mismo usando for. Dado el vector A[]={*,+,&,#,?,%,=,:,!}, se pide escribir una funcin que envi como parmetro el vector, para luego escribir dentro de la funcin el contenido del vector y adems retorne al programa principal y escriba el tamao del vector A. Escribir un programa que permita ingresar un nmero entero sin signo para luego mostrar los bits de dicho nmero en formato de 8, 16 y 32 bits. Escribir una funcin llamado BitON que acepte como parmetro un nmero entero sin signo para luego retornar 1 si el total de bits iguales a 1 sea par, en caso contrario retornara 0. Resolver el problema utilizando operaciones a nivel de bits. Escribir una funcin que reciba como parmetro un numero entero sin signo, para luego devolver verdadero si ambos bytes son iguales, caso contrario deben devolver falso. Representar el numero en 2 bytes ( 16 bits).

Algoritmos y Programacin

Ing. Felix Huari Evangelista