Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


practica alem, Ejercicios de Álgebra

Asignatura: algebra, Profesor: urbano urbano, Carrera: Ingeniería Informática, Universidad: UGR

Tipo: Ejercicios

2016/2017

Subido el 08/10/2017

alejandrogomez3
alejandrogomez3 🇪🇸

2.9

(16)

10 documentos

1 / 161

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
FUNDAMENTOS DE PROGRAMACIÓN
Grado en Ingeniería Informática
GRUPO B
Guión de Prácticas
Curso 2016/2017
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57
pf58
pf59
pf5a
pf5b
pf5c
pf5d
pf5e
pf5f
pf60
pf61
pf62
pf63
pf64

Vista previa parcial del texto

¡Descarga practica alem y más Ejercicios en PDF de Álgebra solo en Docsity!

FUNDAMENTOS DE PROGRAMACIÓN

Grado en Ingeniería Informática

GRUPO B

Guión de Prácticas

Curso 2016/

  • Sobre el guión de prácticas
  • Instalación de Orwell Dev C++ en nuestra casa
  • Tabla resumen de accesos directos usados en Orwell Dev C++
  • SESIÓN
  • El Entorno de Programación. Compilación de Programas
  • SESIÓN
  • Problemas básicos (entrada / cálculos / salida) (I)
  • SESIÓN
  • Problemas básicos (entrada / cálculos / salida) (II)
  • Redireccionando las entradas de cin y las salidas a cout
  • SESIÓN
  • Estructuras condicionales
  • Depuración
  • SESIÓN
  • Estructuras Repetitivas (I): ciclos while y do-while
  • SESIÓN
  • Estructuras Repetitivas (II): ciclos for y ciclos anidados
  • SESIÓN
  • Estructuras Repetitivas (III) - Funciones (I)
  • Depuración de funciones
  • SESIÓN
  • Funciones (II)
  • SESIÓN
  • Registros, vectores y matrices (I)
  • SESIÓN
  • Registros, vectores y matrices (II)
  • SESIÓN
  • Clases (I)
  • Inspección de objetos Índice del Guión de Prácticas
  • SESIÓN
  • Clases (II)
  • SESIÓN
  • Clases (III): Secuencias. Métodos y objetos
  • SESIÓN
  • Clases (IV): Objetos como datos miembro de otros objetos
  • RELACIÓN DE PROBLEMAS I. Introducción a C++ RP-I.
  • RELACIÓN DE PROBLEMAS II. Estructuras de Control RP-II.
  • RELACIÓN DE PROBLEMAS III. Funciones RP-III.
  • RELACIÓN DE PROBLEMAS IV. Registros, vectores y matrices RP-IV.
  • RELACIÓN DE PROBLEMAS V. Clases (I) RP-V.
  • RELACIÓN DE PROBLEMAS VI. Clases (Segunda parte) RP-VI.

Índice del Guión de Prácticas

Autor: Francisco José Cortijo Bon ([email protected])

Basados en el guión original de: Juan Carlos Cubero ([email protected])

"Lo que tenemos que aprender a hacer, lo aprendemos haciéndolo". Aristóteles

"In theory, there is no difference between theory and practice. But, in practice, there is". Jan L. A. van de Snepscheut

"The gap between theory and practice is not as wide in theory as it is in practice".

"Theory is when you know something, but it doesn’t work. Practice is when something works, but you don’t know why. Programmers combine theory and practice: Nothing works and they don’t know why".

Sobre el guión de prácticas

Sobre el guión de prácticas

Este guión de prácticas contiene las actividades a realizar por el alumno, especificando las que debe realizar de forma presencial (en las aulas de la ETS de Ingenierías Informática y de Telecomunicación) como no presencial (individual y en grupo).

El guión está dividido en sesiones , que corresponden a cada semana lectiva. Las activi- dades no presenciales de una sesión deben realizarse antes de la correspondiente sesión de prácticas presencial. La primera sesión presencial de prácticas (página 9) tendrá lugar durante la segunda semana de clases, por lo que el alumno deberá realizar con anterioridad las actividades encargadas.

Una actividad no presencial recurrente es la resolución de problemas, organizados en Re- laciones de Problemas , que encontrará al final de este documento.

La organización de cada una de las sesiones de prácticas será, generalmente, la siguiente.

  • El profesor propone con antelación suficiente la resolución de una serie de ejercicios de una relación de problemas ( Actividades a realizar en casa ). Estos ejercicios de- berán resolverse en casa, y las soluciones se entregarán suguiendo las indicaciones

y plazos estrablecidos usando la plataforma decsai.ugr.es

  • El alumno deberá defenderlos individualmente (a veces públicamente, explicándolo a sus compañeros) en las sesiones de prácticas presenciales, durante la primera hora. La defensa será individual y forma parte de la nota final de la asignatura (10 % tal y como se explica en el método de evaluación de la asignatura).
  • Mientras se realiza la defensa de los ejercicios entregados, los demás alumnos desa- rrollarán las actividades presenciales ( Actividades a realizar en las aulas de or- denadores ) de la correspondiente sesión. Cuando las hayan terminado, se pueden poner a trabajar en los problemas de la próxima sesión.
  • Terminada la defensa, el profesor explicará algunos ejercicios a toda la clase y se debatirá sobre sus soluciones.

Del conjunto de problemas básicos , en el guión de prácticas se distinguirá entre:

  1. Obligatorios: Si se realizan correctamente estos ejercicios, el alumno podrá sacar hasta un 9 (sobre
    1. de nota.
  2. Opcionales: Si se realizan correctamente estos ejercicios, el alumno podrá sacar hasta un 10 (so- bre 10) de nota.

Sobre el guión de prácticas

Encontrará también actividades de ampliación. Son problemas cuya solución (general- mente) no se verá, pero que sirven para afianzar conocimientos. El alumno debería intentar resolver por su cuenta un alto porcentaje de éstos.

Para la realización de estas prácticas, se utilizará, preferentemente, el entorno de progra- mación Orwell Dev C++. En la página 5 se encuentran las instrucciones para su instalación en nuestra casa. En cualquier caso, el alumno puede instalar y usar en su casa cualquier

otro compilador, como por ejemplo Code::Blocks → http://www.codeblocks.org/

Muy importante:

  • La resolución de los problemas y actividades puede hacerse en grupo, pero la defensa durante las sesiones presenciales es individual.
  • Es muy importante que la asignatura se lleve al día para poder realizar los ejercicios propuestos en estos guiones.

Instalación de Orwell Dev C++ en nuestra casa

Preparar y acceder a la consola del sistema

La consola de Windows (la ventana con fondo negro que aparece al ejecutar el comando

cmd.exe, o bien la que sale al ejecutar un programa en Dev C++) no está preparada por

defecto para mostrar adecuadamente caracteres latinos como los acentos. Por ejemplo, al ejecutar la sentencia de C++

cout << "Atención"

saldrá en la consola un mensaje en la forma

Atenci3/4n

Para que podamos ver correctamente dichos caracteres, debemos seguir los siguientes pasos:

  1. Cambiar la fuente de la consola a una que acepte caracteres Unicode. En la versión de XP de las aulas ya se ha realizado dicho cambio. En nuestra casa, tendremos que hacer lo siguiente:

Inicio -> Ejecutar -> cmd

Una vez que se muestre la consola, hacemos click con la derecha y seleccionamos

Predeterminados. Seleccionamos la fuente Lucida Console y aceptamos.

Instalación de Orwell Dev C++ en nuestra casa

  1. Debemos cargar la página de códigos correspondiente al alfabeto latino. Para ello, tenemos dos alternativas:

a) Si queremos que la consola siempre cargue la tabla de caracteres latinos, debe- mos modificar el registro de Windows. Lo abrimos desde

Inicio->Ejecutar->regedit

Nos situamos en la clave

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\

\Control\Nls\CodePage

y cambiamos el valor que hubiese dentro de OEMCP y ACP por el de 1252. Esta es

la forma recomendada y la que se ha usado en las aulas de prácticas. Requiere reiniciar el ordenador. Muy Importante: Si se usa otra tabla (distinta a 1252), el sistema operativo podría incluso no arrancar. b) Si queremos hacerlo para una única consola, basta ejecutar el comando

chcp 1252

sobre la consola. El problema es que cada vez que se abre una nueva consola (por ejemplo, como resultado de ejecutar un programa desde Orwell Dev C++) hay que realizar este cambio. En nuestro caso, pondríamos (por ejemplo, al inicio del programa, justo después de las declaraciones de las variables) lo siguiente:

system("chcp 1252");

En cualquier caso, remarcamos que esta solución no es necesaria si se adopta la primera, es decir, el cambio del registro de Windows.

Tabla resumen de accesos directos usados en Orwell Dev C++

Sesión 1

La primera sesión de prácticas tendrá lugar la segunda semana de clase. En cualquier caso, antes de la primera sesión el alumno debe realizar las siguientes tareas en su casa:

I Actividades a realizar en casa

Actividad: Conseguir login y password.

Antes de empezar la primera sesión de prácticas el alumno debe registrarse electrónica- mente como alumno de la Universidad, tal y como se indica en http://csirc.ugr.es/informatica/cuentasinstitucionales/AccesoIdentificado.html De esta forma, obtendremos un login y un password que habrá que introducir al arrancar los ordenadores en las aulas de prácticas. La cuenta tarda 48 horas an activarse, por lo que el registro debe realizarse al menos dos días antes de la primera sesión de prácticas. Para obtener una dirección de correo electrónico de la Universidad, hay que seguir las instrucciones detalladas en http://csirc.ugr.es/informatica/correoelectronico/SolicitarCuentaCorreo.html

Actividad: Instalación de Orwell Dev C++.

Durante la primera semana de clase, el alumno debería instalar en su casa el compilador Orwell Dev C++. Consultad la sección de instalación (página 5) de este guión.

Actividad: Resolución de Problemas.

Leer las actividades que se van a realizar durante las horas de prácticas en las aulas de ordenadores (ver página siguiente). Resolved los ejercicios:

1 (Salario) I_Salario.cpp

2 (Voltaje) I_Voltaje.cpp

3 (Circunferencia) I_Circunferencia.cpp

4 (Interés bancario) I_Interes.cpp

y escribid la solución en un fichero .cpp que sea accesible (pendrive o cualquier carpeta

en la nube). Leer el artículo de Norvig: Aprende a programar en diez años

http://loro.sourceforge.net/notes/21-dias.html

sobre la dificultad del aprendizaje de una disciplina como la Programación.

El Entorno de Programación. Compilación de Programas

I Actividades a realizar en las aulas de ordenadores

Durante esta sesión de prácticas, el profesor guiará a los alumnos en el desarrollo de las siguientes actividades que se desarrollarán en el aula de prácticas.

El Entorno de Programación. Compilación de Programas

Arranque del Sistema Operativo

Para poder arrancar el SO en las aulas de ordenadores, es necesario obtener el login y password indicados en las actividades a realizar en casa.

En la casilla etiquetada como Código, introduciremos fp. Al arrancar el SO, aparecerá una

instalación básica de Windows con el compilador Orwell Dev C++. Todo lo que escribamos

en la unidad C: se perderá al apagar el ordenador. Por ello, el alumno dispone de un di-

rectorio de trabajo en la unidad lógica U:, cuyos contenidos permanecerán durante todo el

curso académico. En cualquier caso, es recomendable no saturar el espacio usado ya que, en caso contrario, el compilador no podrá funcionar.

El alumno deberá crear el directorio (U:\FP).

Si durante la sesión se requiere abrir algún fichero, éste puede encontrarse en

la plataforma web de la asignatura (decsai.ugr.es, acceso identificado, sección

Material Asignaturas, subsección Prácticas | Actividades Aulas).

Muy Importante. No emplearemos los ficheros que se encuentran en la unidad H:. Si

usted decidiera hacerlo, sepa que esos ficheros están protegidos y no pueden modificarse.

Por tanto, habrá que copiarlos a la unidad local U:, dónde sí podrán ser modificados.

Para acceder a la unidad U: desde nuestras casas, debemos usar cualquier programa de

ftp que use el protocolo ssh, como por ejemplo filezilla o winscp. Instalamos este

programa en nuestra casa y simplemente nos conectamos a turing.ugr.es con nuestras

credenciales.

El primer programa

Copiando el código fuente

En la sección Prácticas | Actividades Aulas de decsai se encuentra la carpeta

Sesión_1, que contiene el fichero I_Pitagoras.cpp.

El Entorno de Programación. Compilación de Programas

Algunas consideraciones con respecto a la escritura de código en C++ (ver figura 2)

  • Es bueno que, desde el principio se incluyan comentarios indicando el objetivo del programa y resaltando los aspectos más importantes de la implementación.
  • Es muy importante una correcta tabulación de los programas. Por ahora, incluiremos todas las sentencias del programa principal con una tabulación. Sólo es necesario incluir la primera; el resto las pone automáticamente el entorno, al pasar a la siguiente línea.
  • Para facilitar la lectura del código fuente, se deben usar espacios en blanco para se- parar las variables en la línea en la que van declaradas, así como antes y después

del símbolo = en una sentencia de asignación. Dejad también un espacio en blanco

antes y después de << y >> en las sentencias que contienen una llamada a cout y

cin respectivamente.

Figura 2: Escritura de código

No respetar las normas de escritura de código baja puntos en todos los exámenes y prácticas de la asignatura

El Entorno de Programación. Compilación de Programas

Compilación

Una vez cargado el programa, pasamos a comprobar si las sentencias escritas son sintác-

ticamente correctas, es decir, pasamos a compilar el programa. Para ello pulsamos F9, o

bien sobre el icono.

Para que el proceso de compilación se realice de forma correcta y se obtenga el programa ejecutable, es necesario que el código fuente no contenga errores sintácticos. Si aparecen errores, es necesario volver a la fase de edición, guardar de nuevo el código fuente y repetir la fase de compilación.

Como resultado de la fase de compilación, en la parte de abajo del entorno debe aparecer un mensaje del tipo:

Compilation succeeded

Una vez compilado el programa, habremos obtenido el fichero I_Pitagoras.exe. Para

ejecutarlo desde el entorno basta pulsar sobre F10. Si se quiere, ambos pasos (compilación

y ejecución) pueden realizarse pulsando sobre F11. Debe aparecer una ventana de coman-

dos del Sistema, en la que se estará ejecutando el programa. La ejecución del programa se detendrá en aquellos puntos del mismo donde se requiera la interacción del usuario para poder proseguir, es decir, en la operaciones de entrada de datos a través del dispositivo

estándar de entrada. En este ejemplo, sería en las dos operaciones cin. En el resto de los

casos, la ejecución del programa continuará hasta el final. La introducción de datos median-

te la sentencia cin se hace siempre de la misma manera; primero se introduce el valor que

se desee y al terminar se pulsa la tecla RETURN.

Introducid ahora los valores pedidos en el ejemplo de Pitágoras y comprobad la respuesta del programa.

Como hemos indicado anteriormente, en la fase de generación del ejecutable se ha creado un fichero en el Sistema que se llama igual que nuestro fichero pero sustituyendo la exten-

sión ”cpp” por ”exe”, es decir, I_Pitagoras.exe. Este fichero se encuentra en el mismo

directorio que el del fichero cpp. Para mostrar que el fichero generado es independiente del

entorno de programación, hacemos lo siguiente:

  1. Cerramos Orwell Dev C++.
  2. Abrid una ventana de Mi PC.
  3. Situarse en la carpeta que contiene el ejecutable.

4. Haced doble click sobre el fichero I_Pitagoras.exe.

Prueba del programa

Uno podría pensar que una vez que consigo un fichero ejecutable a partir de mi código fuen- te, el problema está terminado. Sin embargo esto no es así. Tras el proceso de compilado se

El Entorno de Programación. Compilación de Programas

  1. Si después de corregir el error aparecen nuevos errores, volver a repetir el proceso desde el paso 1.

A veces, el compilador no indica la línea exacta en la que se produce el error, sino alguna posterior. Para comprobarlo, haced lo siguiente:

  • Comentad la línea de cabecera #include desde el principio. El com-

pilador no reconocerá las apariciones de cin o cout.

  • Quitad un punto y coma al final de alguna sentencia. Dará el error en la línea siguiente.

Para familiarizarnos con los errores más frecuentes y su corrección vamos a realizar el

siguiente proceso: a partir del código fuente del ejemplo I_Pitagoras.cpp, iremos intro-

duciendo deliberadamente errores para conocer los mensajes que nos aparecen. A conti- nuación se muestran algunos errores posibles. No deben introducirse todos ellos a la vez, sino que han de probarse por separado.

  1. Cambiad algún punto y coma por cualquier otro símbolo

2. Cambiad double por dpuble

3. Cambiad la línea using namespace std; por using namespace STD;

4. Poned en lugar de iostream, el nombre iotream.

5. Borrad alguno de los paréntesis de la declaración de la función main

6. Introducid algún identificador incorrecto, como por ejemplo cour

  1. Usad una variable no declarada. Por ejemplo, en la definición de variables cambiad el

nombre a la variable lado1 por el identificador lado11.

  1. Borrad alguna de las dobles comillas en una constante de cadena de caracteres, tanto las comillas iniciales como las finales.
  2. Borrad alguna de las llaves que delimitan el inicio y final del programa.

10. Borrad la línea using namespace std; (basta con comentarla con //)

11. Cambiad un comentario iniciado con //, cambiando las barras anteriores por las si-

guientes \

12. Cambiad la aparición de << en cout por las flechas cambiadas, es decir, >>. Haced

lo mismo con cin.

13. Suprimid todo el main. No hace falta borrar el código, basta con comentarlo.

El Entorno de Programación. Compilación de Programas

Además de los errores, el compilador puede generar avisos. Estos se muestran como

Warning en la misma ventana de la lista de errores. Estas advertencias indican que algún

código puede generar problemas durante la ejecución. Por ejemplo, al usar una variable que todavía no tiene un valor asignado, al intentar asignar un entero grande a un entero chico, etc. Sin embargo, no son errores de compilación, por lo que es posible generar el programa ejecutable correspondiente.

Los errores lógicos y en tiempo de ejecución

Aunque el programa compile, esto no significa que sea correcto. Puede producirse una excepción durante la ejecución, de forma que el programa terminará bruscamente (típico error en Windows de Exception Violation Address) o, lo que es peor, dará una salida que no es correcta (error lógico).

Sobre el programa I_Pitagoras.cpp, haced lo siguiente:

  • Cambiad la sentencia

sqrt(lado1lado1 + lado2lado2) por:

sqrt(lado1lado2 + lado2lado2)

Ejecutad introduciendo los lados 2 y 3. El resultado no es correcto, pero no se produce ningún error de compilación ni en ejecución. Es un error lógico.

  • Para mostrar un error de ejecución, declarad tres variables ENTERAS ( tipo

int) resultado, numerador y denominador. Asignadle cero a denominador

y 7 a numerador. Asignadle a resultado la división de numerador entre

denominador. Imprimid el resultado. Al ejecutar el programa, se produce una ex-

cepción o error de ejecución al intentar dividir un entero entre cero.

Creación de un programa nuevo

En esta sección vamos a empezar a crear nuestros propios programas desde Orwell Dev C++. El primer ejemplo que vamos a implementar corresponde al ejercicio 2 sobre la Ley

RELACIÓN DE PROBLEMAS I. Introducción a C++ RP-I.

Para crear un programa nuevo, abrimos Orwell Dev C++ y elegimos

Archivo->Nuevo Código Fuente (Ctr-N)

Para cambiar el nombre asignado por defecto, seleccionamos

Archivo -> Guardar Como. Seleccionamos la carpeta de la asignatura e introdu-

cimos el nombre I_Voltaje.

Confirmad que en la esquina superior derecha está seleccionada la opción de compilación

TDM-GCC ... Debug