Diferencia entre revisiones de «PrInf05: Primer programa»

De MateWiki
Saltar a: navegación, buscar
(Comprobación de la práctica)
 
(No se muestran 18 ediciones intermedias del mismo usuario)
Línea 1: Línea 1:
{{ Práctica de Informática | Programa para transformar temperaturas | PrInf04: Comunicación con el usuario | PrInf05: Primer programa }}
+
{{ Práctica de Informática | Programa para transformar temperaturas | PrInf04: Comunicación con el usuario | PrInf06: Tomar decisiones en un programa }}
  
 
En esta práctica no vamos a añadir ningún nuevo comando, sino que vamos a realizar nuestro primer programa, combinando lo que ya sabemos de programación en lenguaje M. Este programa va a pedir al usuario el valor de una temperatura en grados Farenheit, y mostrará por pantalla un mensaje con la temperatura transformada en grados Celsius.
 
En esta práctica no vamos a añadir ningún nuevo comando, sino que vamos a realizar nuestro primer programa, combinando lo que ya sabemos de programación en lenguaje M. Este programa va a pedir al usuario el valor de una temperatura en grados Farenheit, y mostrará por pantalla un mensaje con la temperatura transformada en grados Celsius.
Línea 9: Línea 9:
 
* [[PrInf01: Primeros pasos en Octave UPM]]
 
* [[PrInf01: Primeros pasos en Octave UPM]]
 
* [[PrInf04: Comunicación con el usuario]]
 
* [[PrInf04: Comunicación con el usuario]]
 +
 +
== Vídeos posteriores ==
 +
 +
Después de realizar esta práctica, es conveniente ver este vídeo para afianzar las habilidades desarrolladas en esta práctica:
 +
 +
* [[Prog08: Ejemplo -- Primer programa]]
 +
* [[Prog09: Análisis del primer programa de ejemplo]]
  
 
== Contenido de la práctica ==
 
== Contenido de la práctica ==
 +
 +
=== Cómo escribir programas ===
  
 
Hasta el momento hemos estado introduciendo los comandos en la línea de comandos. Podíamos reutilizar algunos comandos gracias al histórico de comandos (usando las teclas del cursos arriba y abajo, o la ventana del histórico de comandos). Normalmente la línea de comandos se usa solo para realizar pruebas, pero cuando queremos crear un programa que contenga varios comandos juntos es mucho mejor escribirlos todos juntos en un fichero .m, usando el editor de código fuente.
 
Hasta el momento hemos estado introduciendo los comandos en la línea de comandos. Podíamos reutilizar algunos comandos gracias al histórico de comandos (usando las teclas del cursos arriba y abajo, o la ventana del histórico de comandos). Normalmente la línea de comandos se usa solo para realizar pruebas, pero cuando queremos crear un programa que contenga varios comandos juntos es mucho mejor escribirlos todos juntos en un fichero .m, usando el editor de código fuente.
  
Por tanto, el primer paso será crear un fichero .m
+
Por tanto, el primer paso será crear un fichero .m, usando el botón del folio en blanco (o el menú ''File -> New''). Recuerda que el nombre del fichero .m no puede contener espacios, ni tildes, ni eñes, y en general, no puede contener ningún símbolo que pueda ser interpretado como un operador de [[Octave UPM]].
 +
 
 +
Es conveniente también no llamar a nuestro programa como algún comando de [[Octave UPM]], ya que si usamos un nombre reservado, ese comando dejará de estar disponible, y nuestro programa pasará a ser su sustituto. Esto no tiene por qué ser un problema, pero en ocasiones [[Octave UPM]] usa internamente algunos comandos de manera inadvertida. Si estos comandos cambian, [[Octave UPM]] puede dejar de funcionar correctamente.
 +
 
 +
Una buena práctica de diseño de programas es intentar dividir nuestro programa en tres partes:
 +
* Entrada de datos
 +
* Algoritmo
 +
* Salida de datos
 +
 
 +
En la '''entrada de datos''', el programa recibe los datos que necesita para poder realizar los cálculos. Un programa puede recibir estos datos por diferentes vías. Una de ellas es el teclado, usando el comando ''input''. Otras alternativas son leer los datos desde un fichero almacenado en el disco duro, o que fueran argumentos de entrada de una función, como veremos en futuras prácticas.
 +
 
 +
El '''algoritmo''' se encarga de transformar los datos de entrada en los de salida, aplicando cálculos. Es la parte principal del programa.
 +
 
 +
Por último, la '''salida de datos''' se encarga de mostrar los resultados del algoritmo. Al igual que con la entrada de datos, esto se puede realizar de diferentes maneras. Una de ellas es mostrar un mensaje en pantalla, como ya hemos visto. Otras alternativas incluyen escribir los datos en un fichero de disco, o devolver los resultados como argumentos de salida de una función.
 +
 
 +
=== Programa para transformar temperaturas ===
 +
 
 +
Para transformar la temperatura en grados Farenheit <math>F</math> en temperatura en grado Celsius <math>C</math> hay que aplicar la fórmula <math>\displaystyle C = (F-32)\frac{5}{9}</math>
 +
 
 +
Tenemos que hacer un programa que pida al usuario la temperatura en grados Farenheit por teclado, y escriba un mensaje como el siguiente
 +
 
 +
<pre>El equivalente a 212.00 F en grados Celsius es 100.00 C</pre>
 +
 
 +
En este caso, la entrada sería 212, y el valor calculado por el algoritmo usando la fórmula anterior sería 100.
 +
{{ Tarea | Escribe el programa pedido usando la estructura dada en el párrafo siguiente como plantilla}}
 +
Para empezar a escribir el programa es una buena idea escribir comentarios, indicando las partes principales del programa, y luego ir refinando paso a paso, transformando los comentarios en código. Por ejemplo, la primera plantilla para el programa puede ser la siguiente (los números de línea no forman parte del programa, son meramente orientativos):
 +
 
 +
{{ matlab | codigo=
 +
% Entrada de datos
 +
% Pide al usuario ºF
 +
 
 +
% Algoritmo
 +
% Fórmula para transformar ºF en ºC
 +
 
 +
% Salida de datos
 +
% Muestra resultado del cálculo}}
 +
Aunque vayamos sustituyendo los comentarios por código, siempre es una buena idea dejar algunos comentarios en el código, explicando qué hacer el programa (no cómo se hace, de eso se encarga el código). Por ejemplo, los comentarios que indican las partes del programa (entrada, algoritmo, salida) pueden quedarse en la versión final del código que produzcamos.
 +
 
 +
== Comprobación de la práctica ==
 +
 
 +
Puedes comprobar si tu programa es correcto usando el programa [https://mat.caminos.upm.es/w/images/3/33/CompruebaPr05.m CompruebaPr05.m]
 +
 
 +
Dale al botón derecho y elige guardar como. Cópialo en el mismo directorio donde hayas guardado la solución de la práctica. Luego puedes comprobar si tu programa es correcto escribiendo
 +
 
 +
{{#tag:source|CompruebaPr05('miSolucion');|lang="matlab"}}
 +
 
 +
En este caso, la solución de la práctica está guardada en un fichero llamado ''miSolucion.m''. Cambia el nombre al llamar a ''CompruebaPr05'' si tu programa se llama diferente.
 +
 
 +
El programa comprueba que el mensaje de salida es exactamente el mismo que se pide en la práctica (las mayúsculas y los espacios son importantes), y que la conversión de temperaturas realiza el cálculo correctamente.
 +
 
 +
[[Categoría:Prácticas de Informática]]

Revisión actual del 12:39 30 sep 2013

Práctica de Informática
Programa para transformar temperaturas
Práctica anterior Siguiente práctica
Este artículo es un guión de prácticas de Informática


En esta práctica no vamos a añadir ningún nuevo comando, sino que vamos a realizar nuestro primer programa, combinando lo que ya sabemos de programación en lenguaje M. Este programa va a pedir al usuario el valor de una temperatura en grados Farenheit, y mostrará por pantalla un mensaje con la temperatura transformada en grados Celsius.

1 Requisitos previos

Es conveniente haber realizado al menos las siguientes prácticas antes de empezar con esta práctica:

2 Vídeos posteriores

Después de realizar esta práctica, es conveniente ver este vídeo para afianzar las habilidades desarrolladas en esta práctica:

3 Contenido de la práctica

3.1 Cómo escribir programas

Hasta el momento hemos estado introduciendo los comandos en la línea de comandos. Podíamos reutilizar algunos comandos gracias al histórico de comandos (usando las teclas del cursos arriba y abajo, o la ventana del histórico de comandos). Normalmente la línea de comandos se usa solo para realizar pruebas, pero cuando queremos crear un programa que contenga varios comandos juntos es mucho mejor escribirlos todos juntos en un fichero .m, usando el editor de código fuente.

Por tanto, el primer paso será crear un fichero .m, usando el botón del folio en blanco (o el menú File -> New). Recuerda que el nombre del fichero .m no puede contener espacios, ni tildes, ni eñes, y en general, no puede contener ningún símbolo que pueda ser interpretado como un operador de Octave UPM.

Es conveniente también no llamar a nuestro programa como algún comando de Octave UPM, ya que si usamos un nombre reservado, ese comando dejará de estar disponible, y nuestro programa pasará a ser su sustituto. Esto no tiene por qué ser un problema, pero en ocasiones Octave UPM usa internamente algunos comandos de manera inadvertida. Si estos comandos cambian, Octave UPM puede dejar de funcionar correctamente.

Una buena práctica de diseño de programas es intentar dividir nuestro programa en tres partes:

  • Entrada de datos
  • Algoritmo
  • Salida de datos

En la entrada de datos, el programa recibe los datos que necesita para poder realizar los cálculos. Un programa puede recibir estos datos por diferentes vías. Una de ellas es el teclado, usando el comando input. Otras alternativas son leer los datos desde un fichero almacenado en el disco duro, o que fueran argumentos de entrada de una función, como veremos en futuras prácticas.

El algoritmo se encarga de transformar los datos de entrada en los de salida, aplicando cálculos. Es la parte principal del programa.

Por último, la salida de datos se encarga de mostrar los resultados del algoritmo. Al igual que con la entrada de datos, esto se puede realizar de diferentes maneras. Una de ellas es mostrar un mensaje en pantalla, como ya hemos visto. Otras alternativas incluyen escribir los datos en un fichero de disco, o devolver los resultados como argumentos de salida de una función.

3.2 Programa para transformar temperaturas

Para transformar la temperatura en grados Farenheit [math]F[/math] en temperatura en grado Celsius [math]C[/math] hay que aplicar la fórmula [math]\displaystyle C = (F-32)\frac{5}{9}[/math]

Tenemos que hacer un programa que pida al usuario la temperatura en grados Farenheit por teclado, y escriba un mensaje como el siguiente

El equivalente a 212.00 F en grados Celsius es 100.00 C

En este caso, la entrada sería 212, y el valor calculado por el algoritmo usando la fórmula anterior sería 100.

Lapiz.png Tarea: Escribe el programa pedido usando la estructura dada en el párrafo siguiente como plantilla


Para empezar a escribir el programa es una buena idea escribir comentarios, indicando las partes principales del programa, y luego ir refinando paso a paso, transformando los comentarios en código. Por ejemplo, la primera plantilla para el programa puede ser la siguiente (los números de línea no forman parte del programa, son meramente orientativos):

% Entrada de datos
% Pide al usuario ºF

% Algoritmo
% Fórmula para transformar ºF en ºC

% Salida de datos
% Muestra resultado del cálculo

Aunque vayamos sustituyendo los comentarios por código, siempre es una buena idea dejar algunos comentarios en el código, explicando qué hacer el programa (no cómo se hace, de eso se encarga el código). Por ejemplo, los comentarios que indican las partes del programa (entrada, algoritmo, salida) pueden quedarse en la versión final del código que produzcamos.

4 Comprobación de la práctica

Puedes comprobar si tu programa es correcto usando el programa CompruebaPr05.m

Dale al botón derecho y elige guardar como. Cópialo en el mismo directorio donde hayas guardado la solución de la práctica. Luego puedes comprobar si tu programa es correcto escribiendo

CompruebaPr05('miSolucion');

En este caso, la solución de la práctica está guardada en un fichero llamado miSolucion.m. Cambia el nombre al llamar a CompruebaPr05 si tu programa se llama diferente.

El programa comprueba que el mensaje de salida es exactamente el mismo que se pide en la práctica (las mayúsculas y los espacios son importantes), y que la conversión de temperaturas realiza el cálculo correctamente.