Actualizado el 15 de Diciembre del 2018 (Publicado el 30 de Noviembre del 2018)
1.060 visualizaciones desde el 30 de Noviembre del 2018
197,2 KB
7 paginas
Creado hace 13a (04/03/2012)
Prácticas de Programación
Algoritmos y Programas
© 2012 Xavier Baró Solé – Prácticas de Programación – www.uoc.edu
Algoritmos y Programas
• Algoritmo: Descripción “formal” de los pasos a
seguir para resolver un problema dado.
– No ambiguo y preciso.
– Lenguaje cercano a los humanos.
• Programa: Traducción de un algoritmo a un
lenguaje de programación.
– No ambiguo y preciso.
– Lenguaje cercano a la máquina.
– Podemos utilizar distintos lenguajes para un mismo
algoritmo (C,JAVA, PHP, ...)
Problema
Diseño
Algoritmo
Codificación
Programa
© 2012 Xavier Baró Solé – Prácticas de Programación – www.uoc.edu
Algoritmos y Programas
k
i
1
ix
x
1
k
Problema
Diseño
Algoritmo
Codificación
Programa
algoritmo mediana
var
n, suma, i, k: entero;
resultado: real;
fvar
suma := 0;
i := 1;
leerEntero(k);
mientras i ≤ k hacer
leerEntero(n);
suma := suma + n;
i := i + 1;
fmientras
resultado := enteroAReal(suma)/enteroAReal(k);
escriureReal(resultat);
falgoritmo
© 2012 Xavier Baró Solé – Prácticas de Programación – www.uoc.edu
Algoritmos y Programas
x
1
k
Problema
Diseño
Algoritmo
Codificación
Programa
k
i
1
ix
void main(void) {
int n, suma, i, k;
float resultado;
suma=0;
i=1;
scanf("%d",&k);
while(i <= k) {
scanf("%d",&n);
suma=suma+n;
i=i+1;
}
resultado = (float)suma/(float)k;
printf("%f",resultado);
}
mediana.c
© 2012 Xavier Baró Solé – Prácticas de Programación – www.uoc.edu
Algoritmos y Programas
k
i
1
ix
x
1
k
Problema
Diseño
Algoritmo
Codificación
Programa
import java.io.*;
public class Mediana{
public static void main(String[] args) {
int n, suma, i, k;
float resultado;
String line;
BufferedReader is = new BufferedReader(
new InputStreamReader(System.in));
suma=0;
i=1;
try {
}
while(i <= k) {
try {
line = is.readLine();
k = Integer.parseInt(line);
} catch (NumberFormatException ex) {
System.err.println("No es un entero valido: " + line);
} catch (IOException e) {
System.err.println("Error desconocido: " + e);
line = is.readLine();
n = Integer.parseInt(line);
} catch (NumberFormatException ex) {
System.err.println("No es un entero valido: " + line);
} catch (IOException e) {
System.err.println("Error desconocdo: " + e);
© 2012 Xavier Baró Solé – Prácticas de Programación – www.uoc.edu
}
suma=suma+n;
i=i+1;
}
resultatdo= (float)suma/(float)k;
System.out.print(resultado);
}
}
}
Mediana.java
Algorismes i Programes
x
1
k
Problema
Diseño
Algoritmo
Codificación
Programa
k
i
1
ix
<html>
<body>
<p> Programa mediana</p>
<?php
$line = $_GET["line"];
$valores = explode(" ",$line);
$suma = 0;
$i = 1;
$k = array_shift ($valores);
while ($i <= $k)
{
$n = array_shift ($valores);
$suma = $suma + $n;
$i = $i +1;
}
$resultado = $suma / $k;
print $resultado;
?>
</body>
</html>
© 2012 Xavier Baró Solé – Prácticas de Programación – www.uoc.edu
mediana.php
Algoritmos y Programas
• Comentarios finales:
– Los algoritmos os ayudarán a organizar los pasos para resolver un determinado problema.
Aunque en las actividades teóricas se pide trabajar con algoritmos, en las partes prácticas podéis
trabajar directamente con el lenguaje de programación, haciendo el diseño y la codificación en el
mismo paso. De todos modos, hasta que no adquiráis mucha práctica programando, os será de
ayuda pensar la estructura del
lenguaje algorítmico para evitar que vuestros programas sean
caóticos y desorganizados. En problemas complejos, también es aconsejable hacer un buen
diseño inicial.
– Un buen programa no es solo ese que funciona, o sea, que compila y se ejecuta sin errores,
obteniendo los resultados esperados. Un buen programa también debe ser legible, optimo,
mantenible, estable, .... A continuación os damos algunos consejos y buenas prácticas:
•
•
•
•
•
•
Comentad bien el código, con comentarios que ayuden a entender qué se está haciendo, y evitando comentarios obvios.
Utilizad nombres de variables entendibles, que faciliten entender para qué se utiliza cada variable
Utilizad controles de errores, comprobando que los valores de los parámetros están dentro de los rangos que esperáis, y
desconfiando siempre de cualquier entrada externa a vuestro programa, especialmente de la entrada de información por
teclado por parte del usuario. Si un paso de vuestro programa puede fallar, verificad que ha funcionado antes de
continuar.
Intentad pensar en el coste computacional de vuestras operaciones, especialmente dentro de composiciones iterativas.
Hacia el final de la asignatura veremos maneras de calcular éste coste de modo formal, pero el sentido común os
ayudará si paráis a penar que hace vuestro algoritmo.
Haced un código modular, con funciones y acciones para aquellas operaciones que sean generales, o que se repitan
muchas veces. Reutilizar código ahorra mucho tiempo y facilita la detección de errores.
Probad vuestro código, tanto por lo que a resultados finales refiere, cómo a resultados parciales, probando vuestras
funciones y acciones en casos conocidos. Debéis buscar la peor situación, y comprobar que vuestros mecanismos de
control de errores funcionen.
© 2012 Xavier Baró Solé – Prácticas de Programación – www.uoc.edu
Comentarios de: Prácticas de Programación - Algoritmos y Programas (0)
No hay comentarios