UNIVERSIDAD TECNOLÓGICA DE LOS ANDES INGENIERÍA DE SISTEMAS E INFORMÁTICA ALGORITMOS Y ESTRUCTURAS DE DATOS DOCENTE: Ing. Ronald Rentería Ayquipa OBJETIVOS Realizar la ejecución de su primer programa en el entorno Borland C++. Realizar sus primeros programas de estructura secuencial aplicando las diferentes etapas del desarrollo de programas. Compilar y ejecutar los algoritmos en Pseint, DFD y Borland C++ MARCO TEORICO VARIABLES EN C++. Una variable es un símbolo que como su nombre lo indica, puede cambiar de contenido a lo largo de una determinada operación. Una variable corresponde a un área reservada en la memoria principal del computador: suma = a + b Variable dependiente Ejemplo 1: a b c a b c a b c = = = = = = = = = Variables independientes Ejemplo 2: 10 20 5 a+3 b+4–a a+b+c a+c 4 c+3-b+2 a b c d a b c d a = = = = = = = = = 18 18 18 18 a+b a-b a+b a-b a-b Después de tener clara la definición de una variable ahora aprenderemos las reglas para una correcta declaración de una variable. a. Una variable siempre tendrá como carácter inicial una letra de la A-Z en mayúscula o minúscula, o también el símbolo _, pero no un número. b. Luego la variable podrá tener como carácter siguiente cualquier letra mayúscula o minúscula, número o el símbolo _. c. No se podrá declarar una con el mismo nombre más de una vez, así se declare con distinto tipo de dato. d. Dos variables serán diferentes si alguno de sus caracteres no son iguales, los caracteres en mayúscula y minúscula se consideran como diferentes, ejemplo la variable Edad es diferente a la variable edad. Ejemplo Universidad Tecnológica de los Andes Fundamentos de Programación 1/13 Ingeniería de Sistemas e Informática Ing. Ronald Rentería A. Veamos algunos ejemplos declaración de variables correctas e incorrectas. Variable Suma Correcto numero Correcto _edad Correcto $edad Incorrecto (Comienza con el símbolo $) Número Incorrecto (La variable tiene tilde) _nombre Correcto 1digito Incorrecto (Comienza con un número) digito1 Correcto Ojo que las variables, tienen como función almacenar valores, recuerda que valor que toma una variable, puede cambiar a lo largo de la ejecución del programa. TIPOS DE DATOS PREDEFINIDOS EN C++. Los tipos de datos predefinidos en C++, son: tipos enteros, tipos reales, y tipos carácter. El en C++ estos tipos de datos los escribimos y representamos de la siguiente manera: Tipo De Dato Tamaño en bits Rango unsigned char 8 bits 0 a 255 char 8 bits -128 a 127 Enum 16 bits -32,768 a 32,767 unsigned int 16 bits 0 a 65,535 short int 16 bits -32,768 a 32,767 Int 16 bits -32,768 a 32,767 unsigned long 32 bits 0 a 4,294,967,295 Long 32 bits -2,147,483,648 a 2,147,483,647 float 32 bits 3.4 * (10**-38) a 3.4 * (10**+38) double 64 bits 1.7 * (10**-308) a 1.7 * (10**+308) Long double 80 bits 3.4 * (10**-4932) a 1.1 * (10**+4932) DECLARACIÓN DE VARIABLES. Para poder declarar una variable en C++, debemos de tener en cuenta lo tocado anteriormente en el tema de variables. La declaración de variables es muy sencilla ya que solo anteponiendo un tipo de dato a una variable, ya se tiene declarada una variable. Ejemplos: int edad; float pi = 3.1416; char caracter; char cadena[10]; tipo entero. tipo coma flotante. tipo carácter. esta declaración nos indica una variable llamada cadena que puede tener hasta 10 caracteres como máximo. ASIGNACION DE VALOR A LAS VARIABLES. Para asignar valor a una variable debemos considerar que al lado izquierdo siempre va una variable y al lado derecho el valor de la variable, otra variable o una operación. a=b a = 10 Variable Valor de variable Universidad Tecnológica de los Andes Variable Variable Fundamentos de Programación 2/13 Ingeniería de Sistemas e Informática Ing. Ronald Rentería A. s=a+b Variable Operación ESTRUCTURA DE UN PROGRAMA. Como todo tiene un orden en esta vida, la estructura de un programa en Borland C++, también tiene su orden que se tiene que respetar ya que si no se sigue dicho orden puede que al momento de ejecutar el programa nos aparezca un error, bueno a continuación detallamos la estructura y algunas características que en estas se presentan. #include <conio.h> #include <iostream.h> Inclusión de librerías PARTE 1 void main() { //... } Función Principal Y Cuerpo del programa PARTE 2 NOTA: Sobre los comentarios. Estos comentarios no son tomados en cuenta por el compilador, es decir que no importa lo que se escriba en estos comentarios. Comentario Corto: Los comentarios cortos se representan mediante dos barras //. Solo se puede escribir en una línea, ejemplo: // Este es un comentario corto Comentario Largo: Los comentarios largos se representan mediante una barra y un asterisco juntos, para hacer un comentario largo tenemos que abrir y cerrar este comentario, lo abrimos mediante la barra y el asterisco /* y lo cerramos con el asterisco y la barra */, todo lo que este dentro de estos símbolos no serán tomados en cuenta por el compilador del programa, ejemplo: /* Así se abre el comentario largo. Este es un comentario largo, y puedo escribir en esta línea, En esta otra línea también puedo escribir. Así se cierra el comentario largo */ Ambas partes tanto la 1 como la 2 son siempre necesarias para realizar un programa útil. En la PARTE 1, tenemos la inclusión de librerías, esta parte no es indispensable, ya que podemos hacer programas sin usar librerías. En la PARTE 2, la función principal main y el cuerpo del programa, esta es la parte más importante de un programa, La función main() es indispensable ya que en esta parte se ejecutan las órdenes o sentencias del programa, sin esta función un programa nunca se podrá ejecutar, el cuerpo del programa, esta es la parte en la cual van las sentencias, declaración de variables, etc., es decir nuestro programa. Universidad Tecnológica de los Andes Fundamentos de Programación 3/13 Ingeniería de Sistemas e Informática Ing. Ronald Rentería A. JERARQUIA DE OPERADORES. El orden de prioridad de operadores es similar al orden de prioridad de operadores usados en las matemáticas, con la pequeña diferencia que en este caso solo se utilizan paréntesis para anidar operaciones, veamos: Primero se realizan las operaciones encerradas entre paréntesis, desde las más internas. Luego se realizan las operaciones de potenciación y radicación. Después se resuelven las multiplicaciones y divisiones. Y por último las sumas y las restas. Para agrupar una expresión dentro de otra, solo se utilizan los paréntesis, como mencionamos anteriormente, Ejemplo: x=(((a+b)*c)+d)-(a-b)/(c*d) Donde: x, a, b, c, d son las variables. Las operaciones principales como son suma, resta, multiplicación, división, también el resto de la división (residuo) se representan de la siguiente manera. OPERADOR Suma Resta Multiplicación División Resto División SIMBOLO + * (asterisco) / (slash) % (porcentaje) EJEMPLO 2+3=5 5-3=2 3*8=24 10/5=2 5%3=2 La potenciación y radicación son funciones implementadas en C++, se representan de la siguiente manera: Función Pow Sqrt Representación Ejemplo pow(base,pot) sqrt(rad) pow(5,2)=25 sqrt(4)=2 Forma Matemática 5² √4 = 2 Las funciones pow y sqrt devuelven el valor de un número elevado a una potencia y la raíz cuadrada de un número respectivamente, veamos un ejemplo: raiz=sqrt(15); potencia=pow(2,5); ENTRADA Y SALIDA DE DATOS (E/S). ENTRADA O INGRESO DE DATOS: El ingreso de datos nos permite almacenar un dato (un número o una cadena de caracteres), ingresado desde el teclado, en una variable. Universidad Tecnológica de los Andes Fundamentos de Programación 4/13 Ingeniería de Sistemas e Informática Ing. Ronald Rentería A. El ingreso de datos se realiza mediante el flujo cin, acompañado del operador >>, ahora para que podamos ingresar un dato solo tenemos escribir el siguiente código: cin>>nombre_variable; En C, el ingreso de datos es a través la palabra scanf, de la siguiente manera: scanf(“%formato”,&nombre_variable); Los formatos los especificamos a continuación. %d indica que la variable que se ingresará es entera. %f indica que la variable es de tipo float. %c indica que la variable es de tipo carácter. %s indica que la variable es de una cadena de caracteres. %lf indica que la variable es un real de doble precisión (double) %ld indica que la variable es un entero largo (long) Siempre se direcciona la la variable con el operador &. SALIDA DE DATOS: La salida de datos nos sirve para visualizar por pantalla algún dato o resultado obtenido de alguna operación. De forma similar al ingreso de datos, la salida de datos utiliza el flujo cout, acompañado del operador <<, de la siguiente manera. cout<<nombre_variable; O también: cout<<”Podrá Escribir cualquier mensaje”; En este caso se visualizará en la pantalla lo que está escrito entre comillas. En C, para imprimir o mostrar el valor de alguna variable se usara la palabra printf, de la siguiente manera. printf(“%formato”,nombre_variable); Los formatos se usan de la misma manera tanto para el scanf y el printf. COMPILACIÓN Y EJECUCIÓN DE PROGRAMAS. La compilación y ejecución de un programa son pasos muy importantes ya que con estos podremos ver los resultados o los errores que cometimos durante la edición del programa. Para poder compilar un programa sólo bastará con presionar las teclas Alt+F9, cuando realicemos esta operación la computadora nos informará si existe algún error, en caso que lo hubiera nos indicara una posibilidad de donde se ubique el error. Para ejecutar un programa presionaremos las teclas Ctrl+F9, si no existe ningún error podremos ver los resultados del código fuente escrito, en caso no fuera así se tendrá que depurar los errores uno por uno hasta que no quede ninguno. Universidad Tecnológica de los Andes Fundamentos de Programación 5/13 Ingeniería de Sistemas e Informática Ing. Ronald Rentería A. El proceso de compilación consiste en traducir un programa fuente escrito en lenguaje de alto nivel en su correspondiente programa objeto, para luego enlazarlo con las librerías del C++, obteniéndose así un programa ejecutable; además de este proceso se encarga de la detección de errores de escritura del programa fuente. ESTRUCTURA SECUENCIAL. Es la estructura más sencilla que existe para dar la solución a un problema por computador. Esta estructura simplemente deja guiar en forma consecutiva una solución de un problema, es decir se utiliza en aquellos casos en donde se da solución a fórmulas. EJERCICIOS DEMOSTRATIVOS MI PRIMER PROGRAMA - HOLA MUNDO. Llegamos a la parte más interesante, Mi Primer Programa – Hola Mundo, este es un programa sencillo pero vital e interesante para que pueda comprender el comportamiento de los programas, aquí aplicaremos lo que hemos aprendido, copia este programa tal y como está en el editor del Borland C++ y luego de copiarlo, compílalo y ejecútalo. /******************************* INICIO DEL PROGRAMA MI PRIMER PROGRAMA *******************************/ #include<iostream.h> #include<conio.h> //----> LINEA 1 // ----> LINEA 2 void main() { clrscr(); // ----> LINEA 3 // ----> LINEA 4 // ----> LINEA 5 } cout<<"HOLA MUNDO"; // ----> LINEA 6 getch(); // ----> LINEA 7 // ----> LINEA 8 IMPORTANTE: Toda sentencia terminará con un punto y coma (;), en caso de no ser así el compilador nos enviará uno o más errores. EXPLICACION: Te ofreceremos una breve explicación, esta explicación te indicará como es que este programa se ejecuta exactamente. Universidad Tecnológica de los Andes Fundamentos de Programación 6/13 Ingeniería de Sistemas e Informática Ing. Ronald Rentería A. Primeramente tiene que saber que lo que se ejecuta en un programa, es lo que se encuentra dentro de la función principal (main()), es decir que primero se busca la función main(), si esta no se encuentra, el programa no se podrá ejecutar y enviará un mensaje de error, luego se ejecuta una por una las líneas de código existentes. Luego de esta explicación deberás haber entendido a la perfección el programa, si no es así siga leyendo la explicación junto con el código. LINEA 1: Se tiene la librería conio.h, que contiene a las funciones clrscr() y getch(). LINEA 2: cout y cin. Esta es la librería iostream.h, esta librería contiene los flujos de entrada y salida LINEA 3: Esta línea nos muestra la función principal main, esta línea es indispensable para cualquier programa. LINEA 4: La llave “ { “ nos indica el inicio del programa. LINEA 5: programa. La función clrscr(), se encarga de limpiar la pantalla en cada ejecución del LINEA 6: En esta línea gracias al flujo cout<<, podemos visualizar en la pantalla lo escrito entre comillas. LINEA 7: La función getch(), es una pausa para ver los resultados, gracias a este podemos ver los resultados del programa. LINEA 8: La llave “ } ” nos indica el fin del programa. ETAPAS EN LA IMPLEMENTACIÓN DE UN ALGORITMO. Ejercicio 1. Hacer un algoritmo para calcular el área de un triángulo rectángulo. Solución: Pasos: 01. Análisis del problema: Para calcular el área de un triangulo rectángulo requerimos conocer la fórmula matemática: Altura Base Área de triangulo rectángulo basexaltur a 2 02. Declaración de variables: Entrada Base, altura : reales Universidad Tecnológica de los Andes Fundamentos de Programación 7/13 Ingeniería de Sistemas e Informática Ing. Ronald Rentería A. Salida Area : real 03. Pseudocódigo : // Problema nº 01 // Desarrollado por: Nombre y apellidos Grupo // Calcula el área de un triángulo rectángulo Inicio // lectura de variables de entrada Leer (Base,altura) // Proceso del cálculo del área Area← (base * altura)/2 // Salida de variable Escribir (Area) Fin 04. Prueba de Escritorio. Ingrese los siguientes datos y verifique las respuestas: Base 5 3 35.5 Altura 5 9 12 Área = (Base x Altura)/2 12.5 13.5 213 05. ETAPAS DE COMPILACIÓN: Ahora debemos convertir nuestro algoritmo a los diferentes lenguajes de programación para poder compilarlo, ejecutarlo y si es necesario modificarlo. PSEINT En este programa se escribe el pseudocódigo generado anteriormente con algunas modificaciones propias del programa. 1. Escribir el siguiente código en PSeInt Proceso sin_titulo // lectura de variables de entrada Leer base Leer altura // Proceso del cálculo del área Area <- (base*altura)/2 // Salida de variable Escribir Area FinProceso Universidad Tecnológica de los Andes Fundamentos de Programación 8/13 Ingeniería de Sistemas e Informática Ing. Ronald Rentería A. 2. Para ejecutar el código presionar el icono correspondiente en la barra de herramientas o presionar F9. DFD 1. Ingreso de comentarios en el inicio, para realizar este procedimiento hacer doble clic en inicio. Inicio 2. Insertar el objeto de lectura, para seguidamente hacer doble clic e ingresar las variables de entrada. 3. Realizar el proceso de cálculo en objeto asignación, para lo cual hacer doble clic. 4. Insertar el objeto de salida, hacer doble clic e ingresar la variable de salida. NOTA Para la impresión de cadena de caracteres (texto), utilizar el símbolo apostrofe ( ‘ ) (Alt + 39). Para concatenar utilizar comas. Universidad Tecnológica de los Andes Fundamentos de Programación 9/13 Ingeniería de Sistemas e Informática Ing. Ronald Rentería A. 5. Para ejecutar presiona la tecla [F9] ó haga clic en el icono de play (reproducir), seguidamente ingrese los datos para la evaluación. Gráfico DFD finalizado C++ 1. Escribir en BORLAND C++ 5.0, el siguiente programa: //CABECERA //DECLARACION DE LIBRERIAS #include <iostream.h> #include <conio.h> #include <stdio.h> //FUNCION PRINCIPAL main() //INICIO DEL PROGRAMA { //DECLARACION DE VARIABLES float base,altura,area; //INGRESO DE DATOS cout<<"Ingrese la base del triangulo: "; cin>>base; cout<<"Ingrese la altura del triangulo: "; cin>>altura; //PROCESO area=(base*altura)/2; //SALIDA DE DATOS cout<<"El área del triangulo es: "; cout<<area; getch(); } //FIN DEL PROGRAMA Universidad Tecnológica de los Andes Fundamentos de Programación 10/13 Ingeniería de Sistemas e Informática Ing. Ronald Rentería A. 2. Finalmente nos muestra una pantalla de ejecución del programa en la que debemos ingresar los datos de entrada y nos mostrará los resultados calculados. Ejercicio 2 Hacer un algoritmo que calcule el Promedio de 3 notas ingresadas de un alumno. Solución: Pasos: 01. Análisis del problema: Para calcular el promedio de tres notas se utiliza la siguiente fórmula estadística: Pr omedio nota1 nota 2 nota 3 3 02. Declaración de variables: Entrada nota1, nota2, nota3 : reales Salida promedio : real 03. Pseudocódigo : // Problema nº 01 // Desarrollado por: Nombre y apellidos Grupo // Calcula el área de un triángulo rectángulo Inicio // lectura de variables de entrada Leer (nota1, nota2,nota3 ) // Proceso del cálculo del promedio promedio← (nota1+nota2+nota3)/3 // Salida de variable Escribir (promedio) Fin 04. Prueba de Escritorio. Ingrese los siguientes datos y verifique las respuestas: Universidad Tecnológica de los Andes Fundamentos de Programación 11/13 Ingeniería de Sistemas e Informática nota1 5 12 20 nota2 nota3 10 5 15 9 18 12 Ing. Ronald Rentería A. promedio = (nota1+nota2+nota3)/3 6.6666666666666 12 16.6666666666666 05. ETAPAS DE COMPILACIÓN: PSEINT Proceso PROMEDIO // lectura de variables de entrada Leer nota1 Leer nota2 Leer nota3 // Proceso del cálculo del área promedio <- (nota1+nota2+nota3)/3 // Salida de variable Escribir promedio FinProceso DFD Universidad Tecnológica de los Andes Fundamentos de Programación 12/13 Ingeniería de Sistemas e Informática Ing. Ronald Rentería A. C++ //CABECERA //DECLARACION DE LIBRERIAS #include <iostream.h> #include <conio.h> //FUNCION PRINCIPAL main() //INICIO DEL PROGRAMA { //DECLARACION DE VARIABLES float nota1,nota2,nota3,promedio; //INGRESO DE DATOS cout<<"Ingrese la nota 1: "; cin>>nota1; cout<<"Ingrese la nota 2: "; cin>>nota2; cout<<"Ingrese la nota 3: "; cin>>nota3; //PROCESO DEL CALCULO DEL PROMEDIO promedio=(nota1+nota2+nota3)/3; //SALIDA DE DATOS cout<<"El promedio de las notas es: "; cout<<promedio; getch(); } //FIN DEL PROGRAMA Ejercicio 3 Realice en clase un algoritmo para hallar el residuo de dos números enteros ingresados por el usuario. Universidad Tecnológica de los Andes Fundamentos de Programación 13/13