Download - Plan de Trabajo
![Page 1: Plan de Trabajo](https://reader036.vdocuments.co/reader036/viewer/2022083005/56813769550346895d9eff7e/html5/thumbnails/1.jpg)
Plan de Trabajo
Fases de Desarrollo de un Programa
![Page 2: Plan de Trabajo](https://reader036.vdocuments.co/reader036/viewer/2022083005/56813769550346895d9eff7e/html5/thumbnails/2.jpg)
Fases de desarrollo Análisis
Especificación y batería de pruebas
Pruebas de escritorio Diseño
Revisión y ampliación de la batería de pruebas
Pruebas de escritorio (trazas) Codificación
Revisión y ampliación de la batería de pruebas
Pruebas de ejecución
![Page 3: Plan de Trabajo](https://reader036.vdocuments.co/reader036/viewer/2022083005/56813769550346895d9eff7e/html5/thumbnails/3.jpg)
Análisis y Especificaciones
Entradas: Salidas: Objetivo: Método: Suposiciones: Entorno local
Constantes: Variables: Usa: ...
Batería de pruebas:
Caso Entrada Salida esperada Salida obtenida
1 ... ...
... ... ...
![Page 4: Plan de Trabajo](https://reader036.vdocuments.co/reader036/viewer/2022083005/56813769550346895d9eff7e/html5/thumbnails/4.jpg)
Análisis: Especificación Enunciado: Dados dos números enteros estrictamente
positivos, obtener sus máximo común divisor. Entradas: m, n números enteros estrictamente
positivos. Salidas: Su MCD Método: Algorítmo de Euclides
Se basa en que, si m >= n y r es el resto de m / n:(1) Si r = 0, n divide a m y el MCD es n(2) Si no, MCD(m,n) = MCD(n,r), y se rebaja el problema a un par
de números menoresRepitiendo el proceso se llegará a la situación (1)
Suposiciones: m, n > 0 Si no, se responderá con un mensaje
Entorno local: Variables: r para el resto de la división
![Page 5: Plan de Trabajo](https://reader036.vdocuments.co/reader036/viewer/2022083005/56813769550346895d9eff7e/html5/thumbnails/5.jpg)
Análisis: Batería de Pruebas
Caso Entrada Salida esperada Salida obtenida
1 120, 36 12
2 225, 49 1
3 225, 5 5
4 0, 7 ‘Dato inválido’
![Page 6: Plan de Trabajo](https://reader036.vdocuments.co/reader036/viewer/2022083005/56813769550346895d9eff7e/html5/thumbnails/6.jpg)
Diseño
Diseño descendenteRefinamientos sucesivos
Diseño modularDivide y vencerás
![Page 7: Plan de Trabajo](https://reader036.vdocuments.co/reader036/viewer/2022083005/56813769550346895d9eff7e/html5/thumbnails/7.jpg)
Diseño: Nivel 1inicio
leer m, nsi (m > 0) y (n > 0) entonces
si m < n entoncesintercambiar los valores de m y n
fin_sir ← m MOD nmientras r > 0 hacer
m ← nn ← rr ← m MOD n
fin_mientrasescribir ‘El MCD es ‘ n
si_noescribir ‘Dato inválido’
fin
![Page 8: Plan de Trabajo](https://reader036.vdocuments.co/reader036/viewer/2022083005/56813769550346895d9eff7e/html5/thumbnails/8.jpg)
Diseño: Nivel 2inicio
leer m, nsi (m > 0) y (n > 0) entonces
si m < n entoncesx ← mm ← nn ← x
fin_sir ← m MOD nmientras r > 0 hacer
m ← nn ← rr ← m MOD n
fin_mientrasescribir ‘El MCD es ‘ n
si_noescribir ‘Dato inválido’
fin
![Page 9: Plan de Trabajo](https://reader036.vdocuments.co/reader036/viewer/2022083005/56813769550346895d9eff7e/html5/thumbnails/9.jpg)
Diseño: Batería de Pruebas
Caso Entrada Salida esperada Salida obtenida
1 36,120 12
2 225, 49 1
3 225, 5 5
4 0, 7 ‘Dato inválido’
![Page 10: Plan de Trabajo](https://reader036.vdocuments.co/reader036/viewer/2022083005/56813769550346895d9eff7e/html5/thumbnails/10.jpg)
Pruebas de escritorio
Ejecución manual de un algoritmo sobre un caso de prueba.
Se representa como una tabla.Cada columna representa el entorno.Cada fila muestra la modificación del entorno
a medida que se simula la ejecución línea a línea del algoritmo.
![Page 11: Plan de Trabajo](https://reader036.vdocuments.co/reader036/viewer/2022083005/56813769550346895d9eff7e/html5/thumbnails/11.jpg)
0 inicio lin m n x r condición salida
1 leer m, n 0 ? ? ? ?
2 si (n>0) y (m>0) entonces 1 36 120 ? ?
3 si m<n entonces 2 36 120 ? ? (n>0) y (m>0) = T
4 x ← m 3 36 120 ? ? (m < n) = T
5 m ← n 4 36 120 36 ?
6 n ← x 5 120 120 36 ?
7 fin_si 6 120 36 36 ?
8 r ← m MOD n 7
9 mientras r > 0 hacer 8 120 36 36 12
10 m ← n 9 120 36 36 12 (r > 0) = T
11 n ← r 10 36 36 36 12
12 r ← m MOD n 11 36 12 36 12
13 fin_mientras 12 36 12 36 0
14 escribir ‘El MCD es’ n 13 36 12 36 0
15 si_no 9 36 12 36 0 (r > 0) = F
16 escribir ‘Dato inválido’ 14 36 mcd 12
17 fin_si 17 36
18 fin 18
![Page 12: Plan de Trabajo](https://reader036.vdocuments.co/reader036/viewer/2022083005/56813769550346895d9eff7e/html5/thumbnails/12.jpg)
Codificación
Traducción del algoritmo a un programa Lenguaje de programación
PASCAL
![Page 13: Plan de Trabajo](https://reader036.vdocuments.co/reader036/viewer/2022083005/56813769550346895d9eff7e/html5/thumbnails/13.jpg)
program mcd (input, output);var
m, n, r, x: integer;begin
readln (input, m, n);if (m > 0) and (n > 0) then
beginif (m < n) then
beginx := m;m := n;n := x;
end;r := m mod n;while (r > 0) do
beginm := n;n := r;r := m mod n;
end;writeln (output, ‘El MCD es ‘, n)
endelse
writeln (output, ‘Dato inválido’);end.