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 4, Ejercicios de Programación Informática

Asignatura: fp fundamentos de prgramación, Profesor: , Carrera: Ingeniería Informática, Universidad: UGR

Tipo: Ejercicios

2015/2016

Subido el 11/11/2016

victorcast97
victorcast97 🇪🇸

4.5

(2)

2 documentos

1 / 132

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Descargado en:
patatabrava.com
FP FUNDAMENTOS DE PRGRAMACIÓN (UGR)
PRÁCTICAS DE FP
CUBERO, JUAN CARLOS 15-16
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 4 y más Ejercicios en PDF de Programación Informática solo en Docsity!

Descargado en:

patatabrava .com

FP FUNDAMENTOS DE PRGRAMACIÓN (UGR)

PRÁCTICAS DE FP

CUBERO, JUAN CARLOS 15-

Fundamentos de Programación.

Guión de Prácticas.

Curso 2015/

Sobre el guión de prácticas

Sobre el guión de prácticas

El guión está dividido en sesiones. En cada sesión se plantean una serie de problemas de programación a resolver. En la semana número i se publicará la Sesión i. En dicha sesión se especifica la lista de problemas que el alumno tiene que resolver.

Las soluciones de los ejercicios deberán ser subidas a la plataforma de decsai, en el plazo que el profesor determine. Para ello, el alumno debe entrar en el acceso identificado de decsai, seleccionar Entrega Prácticas y a continuación la práctica correspondiente a la

semana en curso. El alumno subirá un fichero zip que contendrá los ficheros con extensión

cpp correspondientes a las soluciones de los ejercicios.

La defensa de la sesión i se hará la semana siguiente (semana i + 1), durante las horas de prácticas. El profesor llamará aleatoriamente a los alumnos para que defiendan dichos ejercicios (a veces explicándolos a sus compañeros) Simultáneamente a la defensa, todos los alumnos tendrán que ir realizando una serie de actividades que vienen descritas en este guión. Dichas actividades no se entregarán al profesor. Terminada la defensa, el profesor explicará los ejercicios a todos los alumnos. Es muy importante que el alumno revise estas soluciones y las compare con las que él había diseñado.

Los problemas a resolver en cada sesión están incluidos en las Relaciones de Problemas. Hay una relación de problemas por cada tema de la asignatura. Los problemas que hay que entregar son de dos tipos:

  1. Obligatorios: Todos los alumnos deben resolver estos problemas. Si se realizan correctamente estos ejercicios, el alumno podrá sacar hasta un 9 (sobre
    1. en la nota de prácticas.
  2. Opcionales: Su entrega no es obligatoria. Si se realizan correctamente estos ejercicios, el alumno podrá sacar hasta un 10 (so- bre 10) en la nota de prácticas. Para poder optar a la Matrícula de Honor es necesario realizar todos los ejercicios opcionales.

Para la realización de estas prácticas, se utilizará el entorno de programación Orwell Dev C++. En la página 3 se encuentran las instrucciones para su instalación en nuestra casa. En cualquier caso, el alumno puede instalar en su casa cualquier otro compilador.

Muy importante:

  • La resolución de los problemas y actividades puede hacerse en grupo, pero la defensa durante las horas de prácticas 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

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

El entorno de desarrollo que usaremos será Orwell Dev C++. Puede descargarse desde la página:

http://sourceforge.net/projects/orwelldevcpp/?source=typ_redirect

Cuando lo instalemos en nuestra casa, configurar las siguientes opciones:

Herramientas -> Opciones del Compilador

Compilador a configurar: TDM-GCC ... Debug

Configuración -> Code Warnings. Marcar los siguientes:

Show most warnings

Show some more warnings

Configuración -> Linker.

Generar información de Debug: Yes

Herramientas -> Opciones del editor

-> Principal

Desmarcar Tabuladores inteligentes

Tamaño del tabulador: 3

-> Autocompletar -> Symbol completion

Desmarcar Enable Symbol completion

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 varias 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.

c) Usar setlocale (buscad documentación en Internet)

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

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

F9 Compilar F10 Ejecutar F11 Compilar y Ejecutar F5 Depurar Empieza la depuración F7 Siguiente paso Ejecución paso a paso sin entrar en los métodos o funciones F8 Avanzar paso a paso Ejecución paso a paso entrando en los métodos o funciones

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

I Actividades a realizar en las aulas de ordenadores

Estas son las actividades que se realizarán durante las clases de prácticas en la segunda semana de clase.

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 podría no 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 https://decsai.

ugr.es (acceso identificado) o en la carpeta del Sistema Operativo instalado en las aulas

H:\CCIA\Grado_FP\

En el escritorio de Windows, se encuentra un acceso directo a dicha carpeta.

Muy Importante. Los ficheros que se encuentran en la unidad H: están protegidos y no

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

ser modificados.

El primer programa

Copiando el código fuente

En el directorio H:\ccia\Grado_FP\ProblemasI se encuentra el directorio

I_Pitagoras. Copiadlo entero a vuestra carpeta local (dentro de U:\FP ).

Importante : Siempre hay que copiar localmente las carpetas que aparecen en la unidad H:

del departamento ya que están protegidos contra escritura y no se puede trabajar directa- mente sobre ellos. Desde el Explorador de Windows, entrad en la carpeta recién creada en vuestra cuenta:

U:\FP\I_Pitagoras

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

y haced doble click sobre el fichero I_Pitagoras.cpp. Debe aparecer una ventana como

la de la figura 1

Figura 1: Programa que implementa el algoritmo de Pitágoras

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

requiere una fase de prueba. Dicha fase intenta probar que el algoritmo planteado resuelve el problema propuesto. Para llevar a cabo esta fase, es necesario ejecutar el programa y verificar que los resultados que obtiene son los esperados.

Ahora que podemos ver el resultado obtenido por el programa implementado, verifiquemos mediante el siguiente conjunto de pruebas que el programa funciona de forma correcta.

lado1 lado2 hip 3 4 5 1 5 5. 2.7 4.3 5. 1.25 2.75 3.

Una vez que el algoritmo supera la fase de prueba, podemos considerar que se ha concluido con la fase inicial del desarrollo del software.

Introducción a la corrección de errores

Los errores de compilación

Ya hemos visto los pasos necesarios para construir un fichero ejecutable a partir del código fuente. El paso central de este proceso era la fase de compilación. En esta parte de este guión de prácticas aprenderemos a corregir los errores más comunes que impiden una compilación exitosa del fichero fuente.

Cargad el fichero I_Pitagoras.cpp. Quitadle una 'u' a alguna aparición de cout. In-

tentad compilar. Podemos observar que la compilación no se ha realizado con éxito. Cuando esto sucede, en la parte inferior de la ventana principal aparecen los errores que se han en- contrado. Aparece una descripción del error, así como otra información, como el número de línea en la que se produjo. Los pasos que debemos seguir para la corrección son los siguientes:

  1. Ir a la primera fila de la lista de errores.
  2. Leer el mensaje de error e intentar entenderlo.
  3. Hacer doble click sobre esa fila con el ratón. Esto nos posiciona sobre la línea en el fichero fuente donde el compilador detectó el error.
  4. Comprobar la sintaxis de la sentencia que aparece en esa línea. Si se detecta el error, corregirlo. Si no se detecta el error mirar en la línea anterior, comprobar la sintaxis y repetir el proceso hasta encontrar el error.
  5. Después de corregir el posible error, guardamos de nuevo el archivo y volvemos a compilar. Esto lo hacemos aunque aparezcan más errores en la ventana. La razón es que es posible que el resto de los errores sean consecuencia del primer error.

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 de Ohm, de la relación de problemas 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. Nos vamos a la carpeta U:\FP e introducimos el

nombre I_Voltaje.

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

TDM-GCC ... Debug

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

Figura 3: Creación de un programa nuevo

Ya estamos en condiciones de resolver el problema pedido. Escribimos el código en la ventana de edición. Habrá que leer desde teclado los valores de intensidad y resistencia y el programa imprimirá en pantalla el voltaje correspondiente. Recordad que compilamos

con F9 y ejecutamos con F10, o directamente ambas acciones con F11.

Nota. Cuando tenemos varias variables en el código, podemos empezar a escribir el nombre

de alguna de ellas y antes de terminar, pulsar Ctr-Barra espaciadora. La ayuda nos

mostrará los identificadores disponibles que empiecen por las letras tecleadas.

Implementad los ejercicios que había que resolver en papel para esta sesión. Guardad los programas en el directorio en red. No hace falta entregar la solución.

Tipos básicos y operadores

I Actividades a realizar en las aulas de ordenadores

El profesor irá corrigiendo individualmente (a algunos alumnos elegidos aleatoriamente) los ejercicios indicados en la página anterior. Mientras tanto, el resto de alumnos deben intentar resolver los ejercicios siguientes de la Relación de Problemas I, página RP-I.1.

Estos ejercicios no han de entregarse en decsai.

15 (Pasar a minutos y segundos enteros) 17 (Intercambiar tres valores)

Tipos básicos y operadores

Sesión 3

I Actividades a realizar en casa

Resolved los siguientes problemas:

  • Obligatorios: De la relación de Problemas I: 15 (Horas, minutos, segundos) 17 (Intercambiar tres variables) 20 (Pasar de mayúscula a minúscula) 21 (Pasar de carácter a entero) 23 (Expresiones diversas) 25 (Expresiones lógicas)
  • Opcionales: 24 (Precisión y desbordamiento)

Actividades de Ampliación

Hojear la página

http://catless.ncl.ac.uk/Risks

que publica periódicamente casos reales en los que un mal desarrollo del software ha tenido implicaciones importantes en la sociedad.