Prof. Dr. Paul Bustamante



Documentos relacionados
Prof. Dr. Paul Bustamante

Prof. Dr. Paul Bustamante

Prof. Dr. Paul Bustamante

Prof. Dr. Paul Bustamante

Preliminares. Tipos de variables y Expresiones

1. Introducción. 1.1 Ejercicio 1: Estación Meteorológica (4.0 pts.) Ejercicio 2: Gestión Académica: Alumnos (5.0 pts.)...

Examen Junio- Grupo A Lunes 17 de Junio - Programación en C++ Pág. 1

Prof. Dr. Paul Bustamante

8.1 Un primer bucle FOR Varias formas de utilizar el bucle FOR Calcular el factorial de un número mediante un bucle FOR...

Prof. Dr. Paul Bustamante

Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero.

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal)

Prof. Dr. Paul Bustamante

Tutorial Básico de vbscript

Introducción al tipo de dato ARRAY

Prof. Dr. Paul Bustamante

Modulo 1 El lenguaje Java

Sistema de Inscripciones en Línea de la Olimpiada Mexicana de Matemáticas, Delegación Yucatán MANUAL DE USUARIO

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

1 Estructura básica de un programa C++

Examen Septiembre Curso Programación en C++ Pág. 1

SISTEMAS DE NUMERACIÓN. Sistema decimal

MACROS. Automatizar tareas a través del uso de las macros.

Porcentajes. Cajón de Ciencias. Qué es un porcentaje?

Examen escrito de Programación 1

Matemática de redes Representación binaria de datos Bits y bytes

Ejemplos de conversión de reales a enteros

Programa diseñado y creado por Art-Tronic Promotora Audiovisual, S.L.

Proceso de cifrado. La fortaleza de los algoritmos es que son públicos, es decir, se conocen todas las transformaciones que se aplican al documento

GESTIÓN DE EXCEPCIONES EN JAVA. CAPTURA CON BLOQUES TRY CATCH Y FINALLY. EJEMPLOS RESUELTOS. (CU00927C)

Índice ÍNDICE EJERCICIO 1: CÁLCULO FINANCIERO (5 PTOS.) EJERCICIO 2: AGENCIA DE COLOCACIONES (5 PTOS.)...4

by Tim Tran:

1. Ejemplo de clase : La clase Cuenta 2. Uso de la clase Cuenta. 3. Métodos y objetos receptores de mensajes (Importante)

INFORMÁTICA. Matemáticas aplicadas a la Informática

MANUAL DE CS-ALMACENES

FDR Electrónicos. Su mejor opción en tecnología y servicios computacionales. Manual de uso para programa de facturación electrónica

MANUAL SISTEMA ENCRIPTACIÓN DE HECHOS RESERVADOS

Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java

SISTEMAS NUMERICOS CAMILO ANDREY NEIRA IBAÑEZ UNINSANGIL INTRODUCTORIO A LA INGENIERIA LOGICA Y PROGRAMACION

TEMA 1: SISTEMAS INFORMÁTICOS. Parte 2: representación de la información

Correo Electrónico: Webmail: Horde 3.1.1

Informática FACULTAD DE FÍSICAS

Manual de rol gestor de GAV para moodle 2.5

Guía de Uso Básico de Prolog

TRADUCTORES, COMPILADORES E INTÉRPRETES. EJERCICIOS TEMA 5, 6, 7 y 8.

GENERACIÓN DE TRANSFERENCIAS

Programación Orientada a Objetos con Java

Sintaxis y Convenciones de Java. M. en C. Erika Vilches

Se guardan en archivos con extencion c y los cabezales con extension h

El Entorno Integrado de Desarrollo Dev-C++ (Ayuda básica para las primeras sesiones de prácticas)

Cuestionario: Programación en C y máscaras (II)

QUIERES COMPROBAR CÓMO LAS REDES DETECTAN Y CORRIGEN ERRORES?

Tema 2: La clase string

Fundamentos de Informática. Primer Curso de Ingenieros Químicos. Práctica 1. Dev C++ Compilador de C para Windows

EJERCICIOS DEL TEMA 1

Tipos de variables en Visual Basic (integer, single, double, string, object, etc.). Ejemplos. (CU00308A)

Prof. Dr. Paul Bustamante

GENERACIÓN DE ANTICIPOS DE CRÉDITO

Apéndice 5 Manual de usuario de ColeXión. ColeXión 1.0. Manual de usuario

Guía de uso del sistema CV-Online

Anexo B. Comunicaciones entre mc y PC

Tutorial de herramientas de Google

Sistema binario. Representación

República Bolivariana de Venezuela Aldea Universitaria Liceo Fray Pedro de Agreda. Lenguaje C++ Contadores y Acumuladores

Pasos para Realizar un Programa de lenguaje C en modo Consola en Visual Studio 2008 INDICE

Creación y administración de grupos de dominio

Creando una webquests

Capítulo 0. Introducción.

UNIDADES DE ALMACENAMIENTO DE DATOS

Curso de PHP con MySQL Gratis

Universidad de la Frontera

AGREGAR UN EQUIPO A UNA RED Y COMPARTIR ARCHIVOS CON WINDOWS 7

Crear una Nueva Solución Vacía:

Ecuaciones de primer grado con dos incógnitas

Práctica 3ProgramacionRS232: Programación básica de la RS232

CAPÍTULO IV BREVE DESCRIPCIÓN DE LA INFRAESTRUCTURA DE CÓMPUTO VISUAL BASIC 6.0 PARA WINDOWS

Concesionario de coches

UNIDAD 1. LOS NÚMEROS ENTEROS.

Acciones pueden haber en Flash más de 1000 por lo tanto no se trata de aprenderlas de memoria sino de utilizarlas cuando nos interese.

El control de la tesorería consiste en gestionar desde la aplicación los cobros y pagos generados a partir de las facturas de venta y de compra.

Índice. Página 2 de 14

Instalación y Registro Versiones Educativas 2013

1. Solicitud Acreditación 9 3. Descarga e instalación Copia de seguridad 14

QUÉ ES LA RENTABILIDAD Y CÓMO MEDIRLA. La rentabilidad mide la eficiencia con la cual una empresa utiliza sus recursos financieros.

Direcciones IP y máscaras de red

FACULTAD DE INGENIERÍA

Manual Ingreso Notas y Acta Electrónica

Tema 6. Reutilización de código. Programación Programación - Tema 6: Reutilización de código

5. Composer: Publicar sus páginas en la web

DESARROLLO DE HABILIDADES DEL PENSAMIENTO LÓGICO

COMO MEDIR LA EFECTIVIDAD DE LA CONCIENTIZACIÓN

MANUAL DE AYUDA MÓDULOS 2011 MACOS

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL

CONCEPTOS BASICOS. Febrero 2003 Página - 1/10

Para trabajar este tema vamos a situarlo un poco más en el lenguaje común:

Por ejemplo convertir el número 131 en binario se realiza lo siguiente: Ahora para convertir de un binario a decimal se hace lo siguiente:

Informática Bioingeniería

Dev C++. Compilador de C para Windows

Transcripción:

Prácticas de C++ Practica Nº 1 Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante

Prácticas de Programación en C++ Pág. 1 ÍNDICE ÍNDICE... 1 1. Introducción... 1 1.1 Ejercicio 1: Cálculo de la letra del NIF a través del DNI... 1 1.2 Ejercicio 2: Mejorando el programa anterior... 2 1.3 Ejercicio 3: Encriptación V1.1... 2 1.4 Ejercicio 4: Detección de errores: CheckSum... 3 1.5 Ejercicio 5: MiniCalculadora v1.0... 4 1.6 Ejercicio 6: MiniCalculadora v1.1... 5 1. Introducción. Comienza Informática II y Fundamentos de Programación, y comienza con algunos ejemplos sencillos, de repaso, referidos a la programación en C++, que nos ayuden a recordar los conceptos básicos vistos en Informática I y Fundamentos de Computadores I. No es importante que hagan todos los ejercicios durante la práctica, sino que entiendan muy bien cómo y por qué se hacen las cosas. Es preferible que entiendan muy bien un programa a que hayan acabado todo sin haberse enterado de nada. Los primeros ejercicios servirán para familiarizarse con el modo de programar y para que vayan entendiendo las cosas. Les animamos a que intenten hacer uds. mismos modificaciones y variaciones, incluso hay veces que un mismo problema puede resolverse de varias maneras diferentes que son igualmente correctas. Para realizar los Ejercicios de esta práctica debe apoyarse en el entorno de programación de Visual C++ 6.0, recordando de utilizar siempre el Debugger. Para cada Ejercicio deberá crear un Proyecto en un subdirectorio especial. Todos estos subdirectorios estarán dentro de un directorio de su disco G:\. 1.1 Ejercicio 1: Cálculo de la letra del NIF a través del DNI Para que su introducción en esta asignatura de Programación en C++ sea todo un éxito, le hemos preparado un sencillo programa de bienvenida. Este consiste en calcular la letra que va al final del DNI. Como ya sabéis, esta letra se calcula de acuerdo a un algoritmo, el cual es muy sencillo. Esto permite que nadie se invente un número de DNI y una letra no válida. Sin más preámbulos, a continuación se muestra el programa que realiza esta tarea. // Calculo de la Letra del DNI #include <string.h> #include <stdlib.h> char DNI[20]; char letras[] = "TRWAGMYFPDXBNJZSQVHLCKE"; int len=0; while(len!=8) cout << "Dar el número del DNI(XX - Salir):"; cin >> DNI; if ( strcmp(dni,"xx") == 0) return; //fin len = strlen(dni);

Prácticas de Programación en C++ Pág. 2 if (len < 8) cout << "\a"; //algoritmo para calcular la letra int num=atoi(dni); int pos=num%23; char let = letras[pos]; cout << "El DNI es: " << DNI <<"-"<<let << endl; cout << "Adios...\n"; /* fin de main() */ Deberá copiar este programa en el editor del Visual C++, compilarlo y ejecutarlo para comprobar su funcionamiento. El nombre del proyecto será Ejer1 y el del programa será Ejer1.cpp. Para compilar y linkar el programa debe utilizar el menú Build y las opciones Compile File (para compilar), Build (para linkar) y Execute (para ejecutar). Cada opción comprende las anteriores, esto es, si se quiere ejecutar y no se ha compilado y linkado, se realizan primero estas operaciones. Si ha olvidado cómo se crea un proyecto en C++, recurra a la documentación del entorno que se le dio en clase. 1.2 Ejercicio 2: Mejorando el programa anterior Seguro que el programa del ejercicio anterior le ha dejado con ganas de continuar programando. Pues sigamos adelante.. En este nuevo ejercicio, que realizará Ud. solo, debe lograr dos cosas: Que permita recibir por la línea de argumentos el DNI y haga el cálculo de la Letra correspondiente, de tal forma que el programa se pueda ejecutar de la siguiente manera: Ejer2 87645327 Que el programa pida un número de DNI con la letra incluida (o el NIF) y que haga el cálculo y diga si ese número es correcto o no. Para este ejercicio debe crear un proyecto llamado Ejer02, en el cual debe escribir el código correspondiente. 1.3 Ejercicio 3: Encriptación V1.1. Después de estos dos ejercicios, vamos a profundizar un poco más en los algoritmos matemáticos con C++. Como Ud. ya sabe, la Encriptación es una medida de seguridad utilizada para que al momento de almacenar y/o transmitir información sensible, ésta no pueda ser obtenida con facilidad por terceros. La encriptación hace uso de diversas fórmulas matemáticas, con el propósito de transformar el texto en algo ilegible. Después existe el proceso de Desencriptación, que permite obtener el texto nuevamente. En este ejercicio vamos a realizar un programa (versión 1.1), que para encriptar primero rota los bits del carácter y luego le hace una operación lógica XOR. Para desencriptar se hace el proceso contrario. Escriba el programa y sálvelo como Encriptar.cpp. // Encriptación de Datos

Prácticas de Programación en C++ Pág. 3 #include <iomanip.h> #include <string.h> //para strlen() int len; const int NUM=120; //num. maximo de caracteres. unsigned char texto[num],key; cout << "Escriba un texto:"; cin.getline(texto,120); cout << "Introduzca la clave para codificar (un digito):"; cin >> key; len=strlen((char*)texto); cout << "\t*** texto Codificado ***\n"; for (int i=0;i<len;i++) texto[i] = (texto[i] >> i%8) (texto[i]<<(8-i%8));//rot a la der texto[i] = texto[i] ^ key; //XOR cout << texto << endl; cout.fill('*'); cout << setw(50) << " Transmitiendo texto "; cout << setw(30) << " "<<endl; cout << "\t*** texto DeCodificado ***\n"; for (i=0;i<len;i++) texto[i] = texto[i] ^ key; texto[i] = (texto[i] << i%8) (texto[i]>>(8-i%8));//rot a la izq. cout << texto << endl << endl; 1.4 Ejercicio 4: Detección de errores: CheckSum. En comunicaciones de datos, por ejemplo envío de ficheros, se debe verificar que la transmisión ha sido correcta, para lo cual se utilizan diversas técnicas de detección de errores, donde el algoritmo más sencillo de implementar es el CheckSum, el cual también se envía al final de la transmisión de dichos datos. El checksum consiste en ir sumando los valores de los bytes a enviar, e ir almacenando el valor resultante en un byte. El resultado se comprueba con el valor enviado, y si los datos son iguales, la transmisión ha sido correcta, caso contrario hay error en la transmisión. A continuación tenemos el código: // Cálculo del CheckSum #include <iomanip.h> #include <string.h> #include <stdlib.h> #define NUM 5 char array[num+1]; int dat; int num=0; //uno para el checksum

Prácticas de Programación en C++ Pág. 4 char chk=0; for (int i=0;i<num;i++) cout << "Dato["<<i<<"]:?"; cin >> dat; //directamente no se puede poner array[i] array[i] = dat; chk += array[i]; //calcula el checksum array[num] = chk; //transmitir datos for ( i=0;i<num+1;i++) //SendData( array[i] ); //transmision dat = array[i] & 0xFF; cout << setw(3) << hex << dat; cout << "\nel Byte de Checksum es: " << (int)(array[num]&0xff); cout << "\nadios..."<<endl; Para comprender bien el funcionamiento del programa, debe ir ejecutándolo paso a paso con el debugger e ir viendo los valores en el array array[i] y en la variable chk. Debe crear un proyecto Ejer4 y al nombre del fichero fuente llámele checksum.cpp. 1.5 Ejercicio 5: MiniCalculadora v1.0 Este ejercicio consiste en hacer un programa que permita realizar las 4 operaciones básicas: Suma, Resta, Multiplicación y División. Este programa tendrá un funcionamiento similar a Matlab, es decir que la operación se dará completa, por ejemplo: >>5.5*15.6 y luego Enter. El resultado aparecerá en la consola y estará listo para escribir otra operación. El programa finaliza con la letra E. A continuación se da el código. Recuerde que no solo basta con escribir el código, hay que entenderlo: // MiniCalculadora Version 1.0 #include <string.h> #include <math.h> char str[30]; bool ope=false; char op1[20],op2[20]; int cont=0; char chope; //operador double dop1=0,dop2=0, val; while(true) cout << ">>"; cin.getline(str,30); if (str[0]=='e') break; ope=false; cont=0; for (int i=0;i<strlen(str);i++) if (str[i]=='+' str[i]=='-' str[i]=='*' str[i]=='/') ope=true;

Prácticas de Programación en C++ Pág. 5 op1[cont]=0; cont=0; chope=str[i]; else if (!ope) op1[cont++]=str[i]; else op2[cont++]=str[i]; op2[cont]=0; dop1=atof(op1); dop2=atof(op2); switch(chope) case '+': val = dop1 + dop2; break; case '-': val = dop1 - dop2; break; case '*': val = dop1 * dop2; break; case '/': val = dop1 / dop2; break; default: val=0; //fin de cadena op1 //para segundo contador //almacena qué operador es cout << "\tans = " << val << endl; cout << "Fin de la MiniCalculadora" << endl; 1.6 Ejercicio 6: MiniCalculadora v1.1 En este ejercicio haremos la versión 1.1 de la MiniCalculadora, agregando lo siguiente: Agregar el operador % para hallar el resto de una división de ENTEROS. El resultado de una operación anterior sea almacenado en una variable (por ejemplo a ), de tal forma que pueda hacer una nueva operación con esa variable. Véase el ejemplo: 3.5*10 ( Mostrar resultado (35) y almacenar internamente en variable a ) a/7 ( Mostrar resultado, que será igual a 5) La variable puede usarse en cualquier operando, ya sea el de la derecha como en el de la izquierda. Notas: - No olvide poner siempre ; al final de cada sentencia. - No olvide cerrar las comillas, los paréntesis y las llaves. - No olvide declarar las variables, antes de usarlas. - Por último, recuerde que C++ distingue de minúsculas y mayúsculas.