SlideShare una empresa de Scribd logo
1 de 28
Asignatura: Programación
Tema: Metodología para la
solución de problemas
Profesor: Josafat Poctzin Dircio
Bienvenido a tu curso
Presentación
Nombre: Josafat Poctzin Dircio.
Profesión: Lic. en Informática y Maestro en
Educación.
Gustos: Viajar con la familia, ir al cine, jugar
basquet ball y ajedrez, y pasar tiempo en casa con
la familia.
Experiencia laboral: Docente en el TESE, UACM,
UNADM y actualmente en el IEMS, CDMX.
Intereses: Aprender todo lo que me sea posible
sobre los nuevos lenguajes de programación, para
no desactualizarme.
Objetivo
Conocer los elementos básicos del diseño de
algoritmos, diagramas de flujo y pseudocódigos,
para poder realizar posteriormente la
programación en algún lenguaje, y dar soluciones a
diversos problemas.
Pregunta para puntos extra
1. Investiga ¿Cuál es la utilidad de diseñar un
Algoritmo, Diagrama de flujo o Pseudocódigo,
antes de escribir una solución usando algún
lenguaje de programación?
Modalidades de evaluación
Actividades
Se realizan tareas en semanas 2, 4, 6 y 7 (4 tareas en total),
y se participa en foros (2 etapas) en semanas 1, 3 y 5.
Exámenes parciales
Se realizan 3 exámenes quincenales que se activan los
lunes de las semanas 2, 4 y 6.
Trabajo final
Se entrega un proyecto que se desarrolla en 3 fases, cada
avance se sube en las semanas 2, 4 y 6.
Evidencia por competencias
Se evalúa con la evidencia de algún proyecto que hayas
desarrollado en el ámbito laboral, o bien con la constancia o
diploma de algún curso que hayas tomado, relacionado con
esta asignatura.
Resolución de problemas
Las fases de resolución de un problema con
computadora son:
• Análisis del problema.
• Diseño del algoritmo.
• Codificación.
• Compilación y ejecución.
• Verificación.
• Depuración.
• Mantenimiento.
• Documentación.
Análisis del problema: Requiere una clara definición, se contempla
lo que debe hacer el programa y el resultado o solución deseada.
Algoritmo: Descripción de un método preciso para resolver
automáticamente un problema.
Diagrama de flujo: Representación gráfica de un algoritmo.
Pseudocódigo: Es un lenguaje que permite la descripción o
especificación de algoritmos.
Características de un algoritmo
• Preciso (Indica el orden de realización en cada paso).
• Definido (Si se sigue dos veces, obtiene el mismo resultado cada
vez).
• Finito (Tiene fin; un número determinado de pasos).
Resolución de problemas
Simbología del diagrama de flujo
Ejemplo 1. Área de un trapecio.
Planteamiento del problema.
Se desea realizar un programa que permita obtener el
área de un trapecio.
Análisis del problema.
Datos de entrada: Base mayor, Base menor y Altura.
Proceso: Una vez capturados los datos de entrada,
calcular
Area = (Base mayor + Base menor) * Altura / 2
Datos de salida: Area del trapecio.
Algoritmo
1. Inicio.
2. Solicitar los datos necesarios para el cálculo:
bmayor, bmenor, altura
3. Aplicar la fórmula para obtener el área del trapecio,
la variable será A
A = (bmayor + bmenor) * altura / 2
4. Mostrar el resultado obtenido: A
5. Fin.
Ejemplo 1. Área de un trapecio.
Diagrama de flujo
Ejemplo 1. Área de un trapecio.
Inicio
Fin
bmayor = 0
bmenor = 0
altura = 0
“Introduce
base
mayor”,
bmayor
“Introduce
base
menor”,
bmenor
“Introduce
altura”,
altura
A = (bmayor +
bmenor) *
altura / 2
“El área del
trapecio
es”, A
Inicio
Fin
bmayor = 0
bmenor = 0
altura = 0
“Introduce
base
mayor”,
bmayor
“Introduce
base
menor”,
bmenor
“Introduce
altura”,
altura
A = (bmayor +
bmenor) *
altura / 2
“El área del
trapecio
es”, A
Pseudocódigo
Inicio
Escribir “Introduce la base mayor: ”
Leer bmayor
Escribir “Introduce la base menor: ”
Leer bmenor
Escribir “Introduce la altura: ”
Leer altura
A = (bmayor + bmenor) * altura / 2
Escribir “El valor del área es: ”, A
Fin
Ejemplo 1. Área de un trapecio.
Código en lenguaje C
#include <stdio.h>
int main()
{ float bmenor, bmayor, altura, A;
printf("Area de un trapecion");
printf("Introduce la base mayor: ");
scanf("%f", &bmayor);
printf("Introduce la base menor: ");
scanf("%f", &bmenor);
printf("Introduce la altura: ");
scanf("%f", &altura);
A=(bmayor+bmenor)*altura/2;
printf("El valor del área es: %f", A);
return 0; }
Ejemplo 1. Área de un trapecio.
Ejemplo 2. Mayor de edad.
Planteamiento del problema.
Se desea crear un programa que determine si una
persona es mayor de edad o menor de edad, una vez
leído este dato.
Análisis del problema.
Datos de entrada: Edad.
Proceso: Una vez capturada la edad del usuario, se
realizará una comparación contra el número 18 para
determinar si es mayor o menor de edad.
Datos de salida: Mensaje que imprima el resultado.
Algoritmo
1. Inicio.
2. Solicitar la edad del usuario: edad
3. Verificar si la edad introducida es menor a 18
4. Si la verificación resulta verdadera se mostrará:
"Eres menor de edad"
5. Si la verificación resulta falsa se mostrará: "Eres
mayor de edad"
6. Fin.
Ejemplo 2. Mayor de edad.
Diagrama de flujo
Ejemplo 2. Mayor de edad.
Inicio
Fin
“Introduce
tu edad ”,
edad
“Eres
menor de
edad”
“Eres
mayor de
edad”
edad
<
18
Verdadero
Falso
Pseudocódigo
Inicio
Escribir “Introduce tu edad: ”
Leer edad
Si edad < 18 entonces
Escribir “Eres menor de edad”
En caso contrario
Escribir “Eres mayor de edad”
Fin Si
Fin
Ejemplo 2. Mayor de edad.
Código en lenguaje C
#include <stdio.h>
int main()
{ int edad;
printf("Menor/Mayor de edadn");
printf("Introduce tu edad: ");
scanf("%d", &edad);
if(edad<18)
printf("Eres menor de edad");
else
printf("Eres mayor de edad");
return 0; }
Ejemplo 2. Mayor de edad.
Ejemplo 3. Cálculo del promedio.
Planteamiento del problema.
Se requiere un programa que calcule el promedio de
10 calificaciones.
Análisis del problema.
Datos de entrada: Las 10 calificaciones.
Proceso: Se debe capturar una calificación y
acumularla dentro de una variable, esto se debe
repetir 10 veces, después se debe dividir lo
acumulado entre 10 y asignarlo a promedio.
Datos de salida: Promedio de las 10 calificaciones.
Algoritmo
1. Inicio.
2. Inicializar variables: sumatoria = 0, i = 0
3. Solicitar el valor de la calificación: cal
4. Sumarle 1 a la variable que cuenta las calificaciones.
i = i + 1
5. Acumular la calificación introducida en la variable sumatoria
sumatoria = sumatoria + cal
6. Verificar si ya se introdujeron 10 calificaciones
Si la variable i es menor a 10
7. Si la verificación resulta verdadera, entonces regresamos al paso 3.
8. Si la verificación resulta falsa, continuamos con el siguiente paso.
9. Calculamos el promedio con la siguiente fórmula:
promedio = sumatoria / 10
10. Mostramos el resultado:
"El promedio de las 10 calificaciones es ", promedio
11. Fin.
Ejemplo 3. Cálculo del promedio.
Diagrama de flujo
Ejemplo 3. Cálculo del promedio.
Inicio
Fin
“Introduce
calificación”,
cal
“El promedio de
las 10
calificaciones
es”, promedio
i
<
10
Verdadero
Falso
sumatoria=0
i = 0
i = i + 1
sumatoria = sumatoria + cal
promedio = sumatoria / 10
Pseudocódigo
Inicio
sumatoria = 0
Para i = 0 hasta 9 hacer
Escribir “Introduce calificación: ”
Leer cal
sumatoria = sumatoria + cal
Fin Para
promedio = sumatoria / 10
Escribir “El promedio de las 10 calificaciones es ”,
promedio
Fin
Ejemplo 3. Cálculo del promedio.
Código en lenguaje C
#include <stdio.h>
int main()
{ int i;
float cal, sumatoria=0, promedio;
printf("Promedio de calificacionesn");
for(i=1; i<=10; i++)
{ printf("Introduce la calificación %d: ", i);
scanf("%f", &cal);
sumatoria = sumatoria + cal; }
promedio = sumatoria / 10;
printf("El promedio es %.2f", promedio);
return 0; }
Ejemplo 3. Cálculo del promedio.
Software recomendado: PSeInt
Es muy importante conocer la metodología
para la solución de problemas, ya que a través
de ella realizaremos todo el análisis y diseño de
algoritmos, como paso previo a la
programación de la solución, en algún lenguaje
de programación.
Conclusiones
Bibliografía
Programación estructurada y algoritmos en PASCAL
(Valls, 2004).
Capítulo 2, metodología de la programación y
desarrollo de software (Joyanes, 2005).
Sentencias de control repetitivas (Universidad de
Huelva, s.f.).
Fundamentos de programación piensa en C, Osvaldo
Cairó. Capítulos 2 y 3.
Pregunta para puntos extra
1. Investiga ¿Cuál es la utilidad de diseñar un
Algoritmo, Diagrama de flujo o Pseudocódigo,
antes de escribir una solución usando algún
lenguaje de programación?
Gracias por su
atención

Más contenido relacionado

Similar a Programación resolución problemas

Unidad 1 Introducción a los Algoritmos.ppt
Unidad 1 Introducción a los Algoritmos.pptUnidad 1 Introducción a los Algoritmos.ppt
Unidad 1 Introducción a los Algoritmos.pptssuser6eba56
 
Clase 1 Itinerario
Clase 1 ItinerarioClase 1 Itinerario
Clase 1 Itinerariovbalda
 
Fundamentos de programación.pptx
Fundamentos de programación.pptxFundamentos de programación.pptx
Fundamentos de programación.pptxvrykowayne1
 
Diagramas de flujo
Diagramas de flujoDiagramas de flujo
Diagramas de flujoBeto Aldana
 
Introducción a JavaScript 1
Introducción a JavaScript 1Introducción a JavaScript 1
Introducción a JavaScript 1Lorenzo Alejo
 
Lo básico para programar
Lo básico para programarLo básico para programar
Lo básico para programarCelestino Duran
 
Unidad 4 Metodología para el Análisis y Planteamiento de Problemas
Unidad 4 Metodología para el Análisis y Planteamiento de ProblemasUnidad 4 Metodología para el Análisis y Planteamiento de Problemas
Unidad 4 Metodología para el Análisis y Planteamiento de ProblemasYenny Salazar
 
Unidad 2 introducción a los algoritmos
Unidad 2 introducción a los algoritmosUnidad 2 introducción a los algoritmos
Unidad 2 introducción a los algoritmosAlexandra Ochoa
 
Lo básico para programar
Lo básico para programarLo básico para programar
Lo básico para programarCelestino Duran
 
Jessica paola digitak pdf
Jessica paola digitak pdfJessica paola digitak pdf
Jessica paola digitak pdfPaola Cubillos
 
Manual de usuario dfd
Manual de usuario dfdManual de usuario dfd
Manual de usuario dfdMir TirHu
 
Diagramasdeflujo 141006093907-conversion-gate01 (1)
Diagramasdeflujo 141006093907-conversion-gate01 (1)Diagramasdeflujo 141006093907-conversion-gate01 (1)
Diagramasdeflujo 141006093907-conversion-gate01 (1)Josué Naquid
 
Manual de usuario dfd
Manual de usuario dfdManual de usuario dfd
Manual de usuario dfdMir TirHu
 
Diagramas de flujo
Diagramas de flujoDiagramas de flujo
Diagramas de flujojhon silva
 
Introducción a la Programación
Introducción a la ProgramaciónIntroducción a la Programación
Introducción a la ProgramaciónJeckson Loza
 

Similar a Programación resolución problemas (20)

Unidad 1 Introducción a los Algoritmos.ppt
Unidad 1 Introducción a los Algoritmos.pptUnidad 1 Introducción a los Algoritmos.ppt
Unidad 1 Introducción a los Algoritmos.ppt
 
Clase 1 Itinerario
Clase 1 ItinerarioClase 1 Itinerario
Clase 1 Itinerario
 
Fundamentos de programación.pptx
Fundamentos de programación.pptxFundamentos de programación.pptx
Fundamentos de programación.pptx
 
Diagramas de flujo
Diagramas de flujoDiagramas de flujo
Diagramas de flujo
 
Introducción a JavaScript 1
Introducción a JavaScript 1Introducción a JavaScript 1
Introducción a JavaScript 1
 
Lo básico para programar
Lo básico para programarLo básico para programar
Lo básico para programar
 
Metodologia de la Programción
Metodologia de la ProgramciónMetodologia de la Programción
Metodologia de la Programción
 
Introduccion a los algoritmos
Introduccion  a los algoritmosIntroduccion  a los algoritmos
Introduccion a los algoritmos
 
Unidad 4 Metodología para el Análisis y Planteamiento de Problemas
Unidad 4 Metodología para el Análisis y Planteamiento de ProblemasUnidad 4 Metodología para el Análisis y Planteamiento de Problemas
Unidad 4 Metodología para el Análisis y Planteamiento de Problemas
 
Visual Basic
Visual BasicVisual Basic
Visual Basic
 
Unidad 2 introducción a los algoritmos
Unidad 2 introducción a los algoritmosUnidad 2 introducción a los algoritmos
Unidad 2 introducción a los algoritmos
 
Lo básico para programar
Lo básico para programarLo básico para programar
Lo básico para programar
 
Jessica paola digitak pdf
Jessica paola digitak pdfJessica paola digitak pdf
Jessica paola digitak pdf
 
Manual de usuario dfd
Manual de usuario dfdManual de usuario dfd
Manual de usuario dfd
 
Diagramas de flujo
Diagramas de flujoDiagramas de flujo
Diagramas de flujo
 
Diagramasdeflujo 141006093907-conversion-gate01 (1)
Diagramasdeflujo 141006093907-conversion-gate01 (1)Diagramasdeflujo 141006093907-conversion-gate01 (1)
Diagramasdeflujo 141006093907-conversion-gate01 (1)
 
Manual de usuario dfd
Manual de usuario dfdManual de usuario dfd
Manual de usuario dfd
 
Andy
AndyAndy
Andy
 
Diagramas de flujo
Diagramas de flujoDiagramas de flujo
Diagramas de flujo
 
Introducción a la Programación
Introducción a la ProgramaciónIntroducción a la Programación
Introducción a la Programación
 

Programación resolución problemas

  • 1. Asignatura: Programación Tema: Metodología para la solución de problemas Profesor: Josafat Poctzin Dircio Bienvenido a tu curso
  • 2. Presentación Nombre: Josafat Poctzin Dircio. Profesión: Lic. en Informática y Maestro en Educación. Gustos: Viajar con la familia, ir al cine, jugar basquet ball y ajedrez, y pasar tiempo en casa con la familia. Experiencia laboral: Docente en el TESE, UACM, UNADM y actualmente en el IEMS, CDMX. Intereses: Aprender todo lo que me sea posible sobre los nuevos lenguajes de programación, para no desactualizarme.
  • 3. Objetivo Conocer los elementos básicos del diseño de algoritmos, diagramas de flujo y pseudocódigos, para poder realizar posteriormente la programación en algún lenguaje, y dar soluciones a diversos problemas.
  • 4. Pregunta para puntos extra 1. Investiga ¿Cuál es la utilidad de diseñar un Algoritmo, Diagrama de flujo o Pseudocódigo, antes de escribir una solución usando algún lenguaje de programación?
  • 5. Modalidades de evaluación Actividades Se realizan tareas en semanas 2, 4, 6 y 7 (4 tareas en total), y se participa en foros (2 etapas) en semanas 1, 3 y 5. Exámenes parciales Se realizan 3 exámenes quincenales que se activan los lunes de las semanas 2, 4 y 6. Trabajo final Se entrega un proyecto que se desarrolla en 3 fases, cada avance se sube en las semanas 2, 4 y 6. Evidencia por competencias Se evalúa con la evidencia de algún proyecto que hayas desarrollado en el ámbito laboral, o bien con la constancia o diploma de algún curso que hayas tomado, relacionado con esta asignatura.
  • 6. Resolución de problemas Las fases de resolución de un problema con computadora son: • Análisis del problema. • Diseño del algoritmo. • Codificación. • Compilación y ejecución. • Verificación. • Depuración. • Mantenimiento. • Documentación.
  • 7. Análisis del problema: Requiere una clara definición, se contempla lo que debe hacer el programa y el resultado o solución deseada. Algoritmo: Descripción de un método preciso para resolver automáticamente un problema. Diagrama de flujo: Representación gráfica de un algoritmo. Pseudocódigo: Es un lenguaje que permite la descripción o especificación de algoritmos. Características de un algoritmo • Preciso (Indica el orden de realización en cada paso). • Definido (Si se sigue dos veces, obtiene el mismo resultado cada vez). • Finito (Tiene fin; un número determinado de pasos). Resolución de problemas
  • 9. Ejemplo 1. Área de un trapecio. Planteamiento del problema. Se desea realizar un programa que permita obtener el área de un trapecio. Análisis del problema. Datos de entrada: Base mayor, Base menor y Altura. Proceso: Una vez capturados los datos de entrada, calcular Area = (Base mayor + Base menor) * Altura / 2 Datos de salida: Area del trapecio.
  • 10. Algoritmo 1. Inicio. 2. Solicitar los datos necesarios para el cálculo: bmayor, bmenor, altura 3. Aplicar la fórmula para obtener el área del trapecio, la variable será A A = (bmayor + bmenor) * altura / 2 4. Mostrar el resultado obtenido: A 5. Fin. Ejemplo 1. Área de un trapecio.
  • 11. Diagrama de flujo Ejemplo 1. Área de un trapecio. Inicio Fin bmayor = 0 bmenor = 0 altura = 0 “Introduce base mayor”, bmayor “Introduce base menor”, bmenor “Introduce altura”, altura A = (bmayor + bmenor) * altura / 2 “El área del trapecio es”, A Inicio Fin bmayor = 0 bmenor = 0 altura = 0 “Introduce base mayor”, bmayor “Introduce base menor”, bmenor “Introduce altura”, altura A = (bmayor + bmenor) * altura / 2 “El área del trapecio es”, A
  • 12. Pseudocódigo Inicio Escribir “Introduce la base mayor: ” Leer bmayor Escribir “Introduce la base menor: ” Leer bmenor Escribir “Introduce la altura: ” Leer altura A = (bmayor + bmenor) * altura / 2 Escribir “El valor del área es: ”, A Fin Ejemplo 1. Área de un trapecio.
  • 13. Código en lenguaje C #include <stdio.h> int main() { float bmenor, bmayor, altura, A; printf("Area de un trapecion"); printf("Introduce la base mayor: "); scanf("%f", &bmayor); printf("Introduce la base menor: "); scanf("%f", &bmenor); printf("Introduce la altura: "); scanf("%f", &altura); A=(bmayor+bmenor)*altura/2; printf("El valor del área es: %f", A); return 0; } Ejemplo 1. Área de un trapecio.
  • 14. Ejemplo 2. Mayor de edad. Planteamiento del problema. Se desea crear un programa que determine si una persona es mayor de edad o menor de edad, una vez leído este dato. Análisis del problema. Datos de entrada: Edad. Proceso: Una vez capturada la edad del usuario, se realizará una comparación contra el número 18 para determinar si es mayor o menor de edad. Datos de salida: Mensaje que imprima el resultado.
  • 15. Algoritmo 1. Inicio. 2. Solicitar la edad del usuario: edad 3. Verificar si la edad introducida es menor a 18 4. Si la verificación resulta verdadera se mostrará: "Eres menor de edad" 5. Si la verificación resulta falsa se mostrará: "Eres mayor de edad" 6. Fin. Ejemplo 2. Mayor de edad.
  • 16. Diagrama de flujo Ejemplo 2. Mayor de edad. Inicio Fin “Introduce tu edad ”, edad “Eres menor de edad” “Eres mayor de edad” edad < 18 Verdadero Falso
  • 17. Pseudocódigo Inicio Escribir “Introduce tu edad: ” Leer edad Si edad < 18 entonces Escribir “Eres menor de edad” En caso contrario Escribir “Eres mayor de edad” Fin Si Fin Ejemplo 2. Mayor de edad.
  • 18. Código en lenguaje C #include <stdio.h> int main() { int edad; printf("Menor/Mayor de edadn"); printf("Introduce tu edad: "); scanf("%d", &edad); if(edad<18) printf("Eres menor de edad"); else printf("Eres mayor de edad"); return 0; } Ejemplo 2. Mayor de edad.
  • 19. Ejemplo 3. Cálculo del promedio. Planteamiento del problema. Se requiere un programa que calcule el promedio de 10 calificaciones. Análisis del problema. Datos de entrada: Las 10 calificaciones. Proceso: Se debe capturar una calificación y acumularla dentro de una variable, esto se debe repetir 10 veces, después se debe dividir lo acumulado entre 10 y asignarlo a promedio. Datos de salida: Promedio de las 10 calificaciones.
  • 20. Algoritmo 1. Inicio. 2. Inicializar variables: sumatoria = 0, i = 0 3. Solicitar el valor de la calificación: cal 4. Sumarle 1 a la variable que cuenta las calificaciones. i = i + 1 5. Acumular la calificación introducida en la variable sumatoria sumatoria = sumatoria + cal 6. Verificar si ya se introdujeron 10 calificaciones Si la variable i es menor a 10 7. Si la verificación resulta verdadera, entonces regresamos al paso 3. 8. Si la verificación resulta falsa, continuamos con el siguiente paso. 9. Calculamos el promedio con la siguiente fórmula: promedio = sumatoria / 10 10. Mostramos el resultado: "El promedio de las 10 calificaciones es ", promedio 11. Fin. Ejemplo 3. Cálculo del promedio.
  • 21. Diagrama de flujo Ejemplo 3. Cálculo del promedio. Inicio Fin “Introduce calificación”, cal “El promedio de las 10 calificaciones es”, promedio i < 10 Verdadero Falso sumatoria=0 i = 0 i = i + 1 sumatoria = sumatoria + cal promedio = sumatoria / 10
  • 22. Pseudocódigo Inicio sumatoria = 0 Para i = 0 hasta 9 hacer Escribir “Introduce calificación: ” Leer cal sumatoria = sumatoria + cal Fin Para promedio = sumatoria / 10 Escribir “El promedio de las 10 calificaciones es ”, promedio Fin Ejemplo 3. Cálculo del promedio.
  • 23. Código en lenguaje C #include <stdio.h> int main() { int i; float cal, sumatoria=0, promedio; printf("Promedio de calificacionesn"); for(i=1; i<=10; i++) { printf("Introduce la calificación %d: ", i); scanf("%f", &cal); sumatoria = sumatoria + cal; } promedio = sumatoria / 10; printf("El promedio es %.2f", promedio); return 0; } Ejemplo 3. Cálculo del promedio.
  • 25. Es muy importante conocer la metodología para la solución de problemas, ya que a través de ella realizaremos todo el análisis y diseño de algoritmos, como paso previo a la programación de la solución, en algún lenguaje de programación. Conclusiones
  • 26. Bibliografía Programación estructurada y algoritmos en PASCAL (Valls, 2004). Capítulo 2, metodología de la programación y desarrollo de software (Joyanes, 2005). Sentencias de control repetitivas (Universidad de Huelva, s.f.). Fundamentos de programación piensa en C, Osvaldo Cairó. Capítulos 2 y 3.
  • 27. Pregunta para puntos extra 1. Investiga ¿Cuál es la utilidad de diseñar un Algoritmo, Diagrama de flujo o Pseudocódigo, antes de escribir una solución usando algún lenguaje de programación?