SlideShare una empresa de Scribd logo
1 de 23
Lógica de la Programación Armando Cabrera Silva 2010
Introducción La programación, en cierta forma, es la ciencia y el arte de solucionar problemas. Para ser un buen programador, debe ser bueno solucionando problemas. Para lograrlo, debe enfrentarlos en forma metódica:  desde la definición inicial e inspección del problema hasta la solución final, verificación y comentarios.  Cuando se inicia en la programación y se enfrenta a un problema, se verá tentado a codificar tan pronto como tenga una idea de cómo resolverlo.  Hay que resistirse a esta tentación.  Tal enfoque puede funcionar para problemas simples, pero no ocurre lo mismo con problemas complejos.
Objetivos: Aprenderá un método sistemático que lo convertirá en un buen solucionador de problemas y, por lo tanto, en un buen programador. A este método le llamaremos elalgoritmodel programador. Aprenderá y utilizará los pasos que se requieren para resolver casi cualquier problema de programación usando el método estructurado descendente o de arriba-abajo (top– down). Estudiará el concepto de abstracción que se requiere para un lenguaje de computadora, que permite ver los problemas en términos generales sin la angustia de los detalles de implantación. A partir de una solución inicial abstracta, refinará la solución paso a paso hasta que alcance un nivel que pueda ser codificado directamente en un lenguaje de programación.
El algoritmo del programador Un algoritmo es una secuencia ordenada de pasos, sin ambigüedades, que conducen a la solución de un problema dado y expresado en lenguaje natural, por ejemplo el castellano. Todo algoritmo debe ser: Preciso. Indicando el orden de realización de cada uno de los pasos. Definido. Si se sigue el algoritmo varias veces proporcionándole los mismos datos, se deben obtener siempre los mismos resultados. Finito. Al seguir el algoritmo, éste debe terminar en algún momento, es decir, debe terminar en un número finito de pasos.
El algoritmo del programador(1) Los algoritmos no son exclusivos de la computación. Cualquier conjunto de instrucciones, como las que se encuentran en una receta de cocina o guía de ensamblaje, pueden ser considerados algoritmos.  El algoritmo del programador es una receta que el programador sigue cuando desarrolla programas. Este algoritmo consta básicamente de cinco pasos: Definición del problema. Planeación de la solución del problema. Codificación del programa. Verificación y depuración del programa. Documentación del programa.
La definición de problema Es un paso obvio en la solución de cualquier problema. Es el que más se pasa por alto, en especial en programación.  La deficiencia de una buena definición del problema a menudo tiene como resultado tejer en el aire, especialmente en aplicaciones complejas de programación. Piense en un problema típico de programación: controlar el inventario de una gran tienda.  “¿Qué debe considerar como parte de la definición del problema?”
La definición de problema(1) La primera consideración es ¿qué se quiere lograr del sistema? La información consiste en un reporte impreso del inventario o adicionalmente,  ¿el sistema generará automáticamente las órdenes del producto basado en las ventas?  ¿Debe guardarse en disco cualquier información generada por la transacción de un cliente o puede ser descartada?  ¿Qué tipo de datos se encuentran en la información de salida o en que consiste?  ¿Es un dato numérico, de tipo carácter o ambos?  ¿Qué formato deben tener los datos de salida?  Todas estas preguntas deben contestarse para definir los requerimientos de salida.
La definición de problema(2) La segunda consideración es: dados los requerimientos de salida, ¿Cuáles son los requerimientos de entrada? Los requerimientos de salida por lo general sugieren lo que debe de introducirse (requerimientos de entrada) dentro del sistema. Por ejemplo, en nuestro problema de inventario, una salida podría ser un resumen de las compras de los clientes.  ¿Cómo se ingresan estas compras en el sistema?  ¿El dato se obtiene desde el teclado o es producto de la información que se ingresa en forma automática por un sistema óptico de reconocimientos de caracteres (OCR) que lee el precio del producto a través de código de barras ? La entrada consiste en ¿datos numéricos, datos de tipo carácter o una combinación de ambos?  ¿Cuál es el formato de los datos?
La definición del problema(4) La tercera consideración es: dados los requerimientos de salida y los de entrada 	¿Cuales son los procesos que deben de realizarse con las entradas para obtener las salidas deseadas? Para nuestro ejemplo de inventario, la mayor parte del procesamiento de los Clientes: ¿Se hace en la terminal de la caja registradora o será manejada por una computadora central de la tienda?  ¿Qué hay con respecto a la verificación de la tarjeta de crédito y los registros de inventarios? ¿Se hará este proceso en una microcomputadora local, una minicomputadora localizada dentro de la tienda o una macrocomputadora localizada en otra parte de la ciudad?  ¿Qué clase de programas se escribirán para realizar el procesamiento y quién los escribirá? ¿Qué clase de cálculos y decisiones deben hacerse a los datos dentro de los programas individuales para llevar a cabo la salida deseada?
La definición del problema(4) La definición del problema debe considerar los requerimientos de salida, entrada y procesamiento. Salida Entrada  Proceso Nombres Nombres Verbos
Planeación de la solución La etapa de planeación asociada con cualquier problema es tal vez la más importante de la solución.  Imagínese construyendo una casa sin un buen número de planos ¡Los resultados podrían ser catastróficos! Lo mismo sucede al desarrollar sistemas de información sin un buen plan.  Cuando se desarrollan sistemas de información, la etapa de planeación se implementa usando una serie de algoritmos.  Cuando se planean programas de computadora, se utilizan los algoritmos para esquematizar los pasos de la solución usando declaraciones en lenguaje natural como el castellano, llamadas seudo código, que requieren menos precisión que un lenguaje formal de programación.  Un buen algoritmo en seudocódigo debe ser independiente pero fácilmente traducible a cualquier lenguaje formal de programación.
Planeación de la solución(1) El prefijo seudo se usa para resaltar que no se pretende que este código sea compilado y ejecutado en una computadora.  La razón para usar seudo código es que nos permite transmitir en términos generales las ideas básicas de un algoritmo.  Si los programadores entienden el algoritmo que está siendo expresado por el seudo código, pueden implementarlo en el lenguaje de programación de su elección.  Un programa en seudo código simplemente expone los pasos necesarios para realizar algún cómputo mientras que el programa informático correspondiente es la traducción de estos pasos en la sintaxis de un lenguaje de programación particular. El seudo código básicamente consiste en palabras reservadas y frases afines al castellano que se utilizan para indicar el flujo de control.
Codificación del programa La codificación del programa es una de las actividades más sencillas dentro del proceso de programación, siempre y cuando se haya hecho un buen trabajo en la definición del problema y la planeación de la solución. La codificación implica la escritura real del programa en un lenguaje formal de programación.  El lenguaje que se utilice será determinado por la naturaleza del problema, los lenguajes disponibles y los límites de su sistema de cómputo.  Una vez que se selecciona un lenguaje, se escribe o codifica el programa, traduciendo los pasos de su algoritmo en código de lenguaje formal.
Codificación del programa(1) Sin embargo, la codificación es en realidad un proceso mecánico y debe ser considerada secundario para desarrollar algoritmos. En el futuro, las computadoras generarán sus propios códigos de programa a partir de algoritmos bien construidos.  La investigación en el campo de la inteligencia artificial ha dado origen al software de generación de código. Es necesario recordar que si bien las computadoras algún día puedan generar sus propios códigos de programación a partir de algoritmos, serán indispensables la creatividad y el sentido común de un humano en la planeación de la solución y el desarrollo del algoritmo.
Verificación y depuración del programa Es motivo de alegría cuando un programa corre sin ningún error por primera vez.  Una buena definición del problema y una buena planeación evitarán muchos errores en el programa. Sin embargo, siempre hay unas cuantas fallas que no son detectadas, sin importar que tan minuciosa haya sido la planeación.  Quitar las fallas del programa (depuración) a menudo es la parte del trabajo que consume más tiempo en todo el proceso de programación. Las estadísticas muestran que a menudo más de 50% del tiempo de un programador se consume en la depuración del programa.
Verificación y depuración del programa(1) No hay en absoluto un procedimiento correcto para depurar un programa, pero un enfoque sistemático puede ayudar a hacer más fácil ese proceso.  Los pasos básicos de depuración son: Darse cuenta que tiene un error Localizar y determinar la causa del error Corregir el error
Verificación y depuración del programa(2) Prueba de escritorio La prueba de escritorio de un programa es similar a revisar una carta o manuscrito. La idea es seguir el programa mentalmente para asegurarse que éste trabaja en forma lógica.  Debe considerar varias posibilidades de entrada y escribir cualquier resultado generado durante la ejecución del programa.  En particular, trate de determinar qué hará el programa con datos no muy comunes considerando posibilidades de entrada que no deberían pasar.  Siempre tenga presenta la ley de Murphy cuando haga una prueba de escritorio de un programa:  “si una condición dada no puede o no debe ocurrir, ¡ocurrirá!”
Operaciones de Seudo código
Operaciones de Seudo código Las operaciones de la tabla anterior se agrupan en tres categorías:  Secuencia,  incluye operaciones que producen una acción o resultado único. decisión e  incluye las operaciones que le permiten a la computadora tomar decisiones iteración.  incluye aquellas operaciones que se usan para ciclos o repeticiones dentro del algoritmo. “Estas categorías se llaman estructuras de control. “
Ejercicio 1 Problema Diseñar un algoritmo que lea e imprima una serie de números distintos de cero. El algoritmo debe terminar con un valor cero que no se debe imprimir. Finalmente se desea obtener la cantidad de valores leídos distintos de 0. Planteamiento de la solución  Se deben leer números dentro de un ciclo que terminará cuando el último número leído sea cero. Cada vez que ejecute dicho ciclo y antes que se lea el siguiente número se imprime éste y se incrementa el contador en una unidad. Una vez se haya salido del ciclo se debe escribir la cantidad de números leídos, es decir, el contador.
Ejercicio 1
Ejercicio 2 Problema Escribir un algoritmo para determinar el máximo común divisor de dos números enteros utilizando el algoritmo de Euclides. Planteamiento de la solución Para halla el máximo común divisor de dos números se debe dividir uno entre otro. Si la división es exacta, es decir si el residuo es 0, el máximo común divisor es el divisor. Si no, se deben dividir otra vez los números, pero en este caso el dividendo será el antiguo divisor y el divisor el residuo de la división anterior. El proceso se repetirá hasta que la división sea exacta.
Ejercicio 2

Más contenido relacionado

La actualidad más candente

Variables y Constantes en C++
Variables y Constantes en C++Variables y Constantes en C++
Variables y Constantes en C++
ivanjvic
 
10 ejercicios-de-do-while
10 ejercicios-de-do-while10 ejercicios-de-do-while
10 ejercicios-de-do-while
Delvi Ramirez
 

La actualidad más candente (20)

Sintaxis del lenguaje c++
Sintaxis del lenguaje c++Sintaxis del lenguaje c++
Sintaxis del lenguaje c++
 
Mapa Conceptual del Lenguaje C
Mapa Conceptual del Lenguaje CMapa Conceptual del Lenguaje C
Mapa Conceptual del Lenguaje C
 
PRUEBAS Y DEPURACIÓN
PRUEBAS Y DEPURACIÓNPRUEBAS Y DEPURACIÓN
PRUEBAS Y DEPURACIÓN
 
Compiladores, Analisis Lexico
Compiladores, Analisis LexicoCompiladores, Analisis Lexico
Compiladores, Analisis Lexico
 
Unidad 8
Unidad 8Unidad 8
Unidad 8
 
Introduccion al Pensamiento Algoritmico
Introduccion al Pensamiento AlgoritmicoIntroduccion al Pensamiento Algoritmico
Introduccion al Pensamiento Algoritmico
 
Glosario de ing. de software
Glosario de ing. de softwareGlosario de ing. de software
Glosario de ing. de software
 
Tipos de datos, identificadores, variables y constantes
Tipos de datos, identificadores,  variables y constantesTipos de datos, identificadores,  variables y constantes
Tipos de datos, identificadores, variables y constantes
 
ejercicios-pascal
ejercicios-pascalejercicios-pascal
ejercicios-pascal
 
Manejo de memoria
Manejo de memoriaManejo de memoria
Manejo de memoria
 
PARADIGMA IMPERATIVO
PARADIGMA IMPERATIVOPARADIGMA IMPERATIVO
PARADIGMA IMPERATIVO
 
Lenguajes de programacion tema 2_compiladores e interpretes
Lenguajes de programacion tema 2_compiladores e interpretesLenguajes de programacion tema 2_compiladores e interpretes
Lenguajes de programacion tema 2_compiladores e interpretes
 
Integral indefinida
Integral indefinidaIntegral indefinida
Integral indefinida
 
Variables y Constantes en C++
Variables y Constantes en C++Variables y Constantes en C++
Variables y Constantes en C++
 
Aplicaciones del calculo integral
Aplicaciones del calculo integralAplicaciones del calculo integral
Aplicaciones del calculo integral
 
Topicos Avanzados de Programacion - Unidad 2 GUI Interfaz Grafica de Usuario
Topicos Avanzados de Programacion - Unidad 2 GUI Interfaz Grafica de UsuarioTopicos Avanzados de Programacion - Unidad 2 GUI Interfaz Grafica de Usuario
Topicos Avanzados de Programacion - Unidad 2 GUI Interfaz Grafica de Usuario
 
10 ejercicios-de-do-while
10 ejercicios-de-do-while10 ejercicios-de-do-while
10 ejercicios-de-do-while
 
Estructuras repetitivas(while, for, repeat)
Estructuras repetitivas(while, for, repeat)Estructuras repetitivas(while, for, repeat)
Estructuras repetitivas(while, for, repeat)
 
Funcion monotona
Funcion monotonaFuncion monotona
Funcion monotona
 
Ejercicios (Algoritmo: Pseudocódigo-Diagrama de Flujo)
Ejercicios (Algoritmo: Pseudocódigo-Diagrama de Flujo)Ejercicios (Algoritmo: Pseudocódigo-Diagrama de Flujo)
Ejercicios (Algoritmo: Pseudocódigo-Diagrama de Flujo)
 

Destacado

Energía Alternativa
Energía Alternativa Energía Alternativa
Energía Alternativa
Camila Flores
 
Plan estratégico seguridad de los pacientes de extremadura
Plan estratégico seguridad de los pacientes de extremaduraPlan estratégico seguridad de los pacientes de extremadura
Plan estratégico seguridad de los pacientes de extremadura
SociosaniTec
 
Marco del buen desempeño docente
Marco del buen desempeño docenteMarco del buen desempeño docente
Marco del buen desempeño docente
0013
 
1ºBACH Economía Tema 5 Oferta y demanda
1ºBACH Economía Tema 5 Oferta y demanda1ºBACH Economía Tema 5 Oferta y demanda
1ºBACH Economía Tema 5 Oferta y demanda
Geohistoria23
 

Destacado (20)

Energía Alternativa
Energía Alternativa Energía Alternativa
Energía Alternativa
 
Pasivo A Corto Y Largo Plazo
Pasivo A Corto Y Largo PlazoPasivo A Corto Y Largo Plazo
Pasivo A Corto Y Largo Plazo
 
Plan estratégico seguridad de los pacientes de extremadura
Plan estratégico seguridad de los pacientes de extremaduraPlan estratégico seguridad de los pacientes de extremadura
Plan estratégico seguridad de los pacientes de extremadura
 
Informe mantenimiento mecanico
Informe mantenimiento mecanicoInforme mantenimiento mecanico
Informe mantenimiento mecanico
 
Proyectos_de_innovacion
Proyectos_de_innovacionProyectos_de_innovacion
Proyectos_de_innovacion
 
Training Schrijven voor het Web
Training Schrijven voor het WebTraining Schrijven voor het Web
Training Schrijven voor het Web
 
Marco del buen desempeño docente
Marco del buen desempeño docenteMarco del buen desempeño docente
Marco del buen desempeño docente
 
Primer Paquete Económico 2017 Zacatecas (2/9)
Primer Paquete Económico 2017 Zacatecas (2/9)Primer Paquete Económico 2017 Zacatecas (2/9)
Primer Paquete Económico 2017 Zacatecas (2/9)
 
"Protección de la salud mental luego del terremoto y tsunami del 27 de febrer...
"Protección de la salud mental luego del terremoto y tsunami del 27 de febrer..."Protección de la salud mental luego del terremoto y tsunami del 27 de febrer...
"Protección de la salud mental luego del terremoto y tsunami del 27 de febrer...
 
Wal Mart México 2009: lo barato sale caro
Wal Mart México 2009: lo barato sale caroWal Mart México 2009: lo barato sale caro
Wal Mart México 2009: lo barato sale caro
 
Análisis situacional integral de salud final
 Análisis situacional integral de salud final Análisis situacional integral de salud final
Análisis situacional integral de salud final
 
Portafolio de Evidencias de mi Práctica Docente
Portafolio de Evidencias de mi Práctica DocentePortafolio de Evidencias de mi Práctica Docente
Portafolio de Evidencias de mi Práctica Docente
 
Guia para el aviso de privacidad
Guia para el aviso de privacidadGuia para el aviso de privacidad
Guia para el aviso de privacidad
 
De impact van adhd
De impact van adhdDe impact van adhd
De impact van adhd
 
PMP Sonora Saludable 2010 2015
PMP Sonora Saludable 2010   2015  PMP Sonora Saludable 2010   2015
PMP Sonora Saludable 2010 2015
 
El emprendedor y el empresario profesional cert
El emprendedor y el empresario profesional certEl emprendedor y el empresario profesional cert
El emprendedor y el empresario profesional cert
 
1ºBACH Economía Tema 5 Oferta y demanda
1ºBACH Economía Tema 5 Oferta y demanda1ºBACH Economía Tema 5 Oferta y demanda
1ºBACH Economía Tema 5 Oferta y demanda
 
Tears In The Rain
Tears In The RainTears In The Rain
Tears In The Rain
 
Implementación de la Administración de Integridad de ductos en México
Implementación de la Administración de Integridad de ductos en MéxicoImplementación de la Administración de Integridad de ductos en México
Implementación de la Administración de Integridad de ductos en México
 
Onderzoeksrapport acrs v3.0_definitief
Onderzoeksrapport acrs v3.0_definitiefOnderzoeksrapport acrs v3.0_definitief
Onderzoeksrapport acrs v3.0_definitief
 

Similar a Clase de programacion

Fases de programacion
Fases de programacionFases de programacion
Fases de programacion
brayan_2012
 
Conceptos básicos y metodología de la programación
Conceptos básicos y metodología de la programaciónConceptos básicos y metodología de la programación
Conceptos básicos y metodología de la programación
justo morales
 
Metodología para la solución de problemas utilizando la computadora 2°Am Prog...
Metodología para la solución de problemas utilizando la computadora 2°Am Prog...Metodología para la solución de problemas utilizando la computadora 2°Am Prog...
Metodología para la solución de problemas utilizando la computadora 2°Am Prog...
Dulcevelazquez6
 
Diagramas de flujo
Diagramas de flujoDiagramas de flujo
Diagramas de flujo
casdilacol
 

Similar a Clase de programacion (20)

Las fases de la programación
Las fases de la programaciónLas fases de la programación
Las fases de la programación
 
Fases de programacion
Fases de programacionFases de programacion
Fases de programacion
 
Resolver problemas con_una_computadora
Resolver problemas con_una_computadoraResolver problemas con_una_computadora
Resolver problemas con_una_computadora
 
Resolver problemas con_una_computadora
Resolver problemas con_una_computadoraResolver problemas con_una_computadora
Resolver problemas con_una_computadora
 
Conceptos básicos y metodología de la programación
Conceptos básicos y metodología de la programaciónConceptos básicos y metodología de la programación
Conceptos básicos y metodología de la programación
 
Bloque 1
Bloque 1Bloque 1
Bloque 1
 
Metodologia
MetodologiaMetodologia
Metodologia
 
Diseño Estructurado de Algoritmos
Diseño Estructurado de AlgoritmosDiseño Estructurado de Algoritmos
Diseño Estructurado de Algoritmos
 
Metodología para la solución de problemas utilizando la computadora 2°Am Prog...
Metodología para la solución de problemas utilizando la computadora 2°Am Prog...Metodología para la solución de problemas utilizando la computadora 2°Am Prog...
Metodología para la solución de problemas utilizando la computadora 2°Am Prog...
 
resolucion de problemas: Algoritmos y programas
resolucion de problemas: Algoritmos y programas resolucion de problemas: Algoritmos y programas
resolucion de problemas: Algoritmos y programas
 
Lenguajes de programación parte i.3
Lenguajes de programación parte i.3Lenguajes de programación parte i.3
Lenguajes de programación parte i.3
 
ALGORITMO Y METODOLOGÍA PARA LA RESOLUCIÓN PROBLEMAS BASADOS EN EL COMPUTADOR
ALGORITMO Y METODOLOGÍA PARA LA RESOLUCIÓN PROBLEMAS BASADOS EN EL COMPUTADOR ALGORITMO Y METODOLOGÍA PARA LA RESOLUCIÓN PROBLEMAS BASADOS EN EL COMPUTADOR
ALGORITMO Y METODOLOGÍA PARA LA RESOLUCIÓN PROBLEMAS BASADOS EN EL COMPUTADOR
 
Clase 1 lógica de programación
Clase 1 lógica de programaciónClase 1 lógica de programación
Clase 1 lógica de programación
 
Introduccion A La Programacion
Introduccion A La ProgramacionIntroduccion A La Programacion
Introduccion A La Programacion
 
01 texto - módulo n° 1 • algoritmos
01 texto - módulo n° 1 • algoritmos01 texto - módulo n° 1 • algoritmos
01 texto - módulo n° 1 • algoritmos
 
Srahi garcia ruiz_2am_programacion2
Srahi garcia ruiz_2am_programacion2Srahi garcia ruiz_2am_programacion2
Srahi garcia ruiz_2am_programacion2
 
Diagramas de flujo
Diagramas de flujoDiagramas de flujo
Diagramas de flujo
 
Introduccion a-la-programacion-1234039307400760-3
Introduccion a-la-programacion-1234039307400760-3Introduccion a-la-programacion-1234039307400760-3
Introduccion a-la-programacion-1234039307400760-3
 
Fp03
Fp03Fp03
Fp03
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 

Más de Andrea Jimenez (14)

Web 2.0
Web 2.0Web 2.0
Web 2.0
 
Introduccion a la Arquitectura
Introduccion a la ArquitecturaIntroduccion a la Arquitectura
Introduccion a la Arquitectura
 
Literatura 3
Literatura 3Literatura 3
Literatura 3
 
Desarrollo Espiritual
Desarrollo EspiritualDesarrollo Espiritual
Desarrollo Espiritual
 
Desarrollo Espiritual
Desarrollo EspiritualDesarrollo Espiritual
Desarrollo Espiritual
 
Jardines en la Revolucion industrial
Jardines en la Revolucion industrialJardines en la Revolucion industrial
Jardines en la Revolucion industrial
 
ComputacióN BáSica
ComputacióN BáSicaComputacióN BáSica
ComputacióN BáSica
 
Ingles
InglesIngles
Ingles
 
Semiotica
SemioticaSemiotica
Semiotica
 
Andrea Jimenez Origen De La Arquitectura
Andrea Jimenez  Origen De La ArquitecturaAndrea Jimenez  Origen De La Arquitectura
Andrea Jimenez Origen De La Arquitectura
 
Introduccion a la Arquitectura
Introduccion a la ArquitecturaIntroduccion a la Arquitectura
Introduccion a la Arquitectura
 
Andrea Jimenez Origen De Las Universidades
Andrea Jimenez Origen De Las UniversidadesAndrea Jimenez Origen De Las Universidades
Andrea Jimenez Origen De Las Universidades
 
El Intelectualismo Barroco
El Intelectualismo BarrocoEl Intelectualismo Barroco
El Intelectualismo Barroco
 
Conservatorio De MúSica ‘‘Salvador Bustamante Celi’’
Conservatorio De MúSica ‘‘Salvador Bustamante Celi’’Conservatorio De MúSica ‘‘Salvador Bustamante Celi’’
Conservatorio De MúSica ‘‘Salvador Bustamante Celi’’
 

Último

6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
Wilian24
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
patriciaines1993
 

Último (20)

Tema 11. Dinámica de la hidrosfera 2024
Tema 11.  Dinámica de la hidrosfera 2024Tema 11.  Dinámica de la hidrosfera 2024
Tema 11. Dinámica de la hidrosfera 2024
 
PP_Comunicacion en Salud: Objetivación de signos y síntomas
PP_Comunicacion en Salud: Objetivación de signos y síntomasPP_Comunicacion en Salud: Objetivación de signos y síntomas
PP_Comunicacion en Salud: Objetivación de signos y síntomas
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024
 
Louis Jean François Lagrenée. Erotismo y sensualidad. El erotismo en la Hist...
Louis Jean François Lagrenée.  Erotismo y sensualidad. El erotismo en la Hist...Louis Jean François Lagrenée.  Erotismo y sensualidad. El erotismo en la Hist...
Louis Jean François Lagrenée. Erotismo y sensualidad. El erotismo en la Hist...
 
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
 
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADOTIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
 
prostitución en España: una mirada integral!
prostitución en España: una mirada integral!prostitución en España: una mirada integral!
prostitución en España: una mirada integral!
 
Sesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdfSesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdf
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
 
AEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptxAEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptx
 
Novena de Pentecostés con textos de san Juan Eudes
Novena de Pentecostés con textos de san Juan EudesNovena de Pentecostés con textos de san Juan Eudes
Novena de Pentecostés con textos de san Juan Eudes
 
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdf
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
 
Usos y desusos de la inteligencia artificial en revistas científicas
Usos y desusos de la inteligencia artificial en revistas científicasUsos y desusos de la inteligencia artificial en revistas científicas
Usos y desusos de la inteligencia artificial en revistas científicas
 
Los avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesLos avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtuales
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024
 
Desarrollo y Aplicación de la Administración por Valores
Desarrollo y Aplicación de la Administración por ValoresDesarrollo y Aplicación de la Administración por Valores
Desarrollo y Aplicación de la Administración por Valores
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
 

Clase de programacion

  • 1. Lógica de la Programación Armando Cabrera Silva 2010
  • 2. Introducción La programación, en cierta forma, es la ciencia y el arte de solucionar problemas. Para ser un buen programador, debe ser bueno solucionando problemas. Para lograrlo, debe enfrentarlos en forma metódica: desde la definición inicial e inspección del problema hasta la solución final, verificación y comentarios. Cuando se inicia en la programación y se enfrenta a un problema, se verá tentado a codificar tan pronto como tenga una idea de cómo resolverlo. Hay que resistirse a esta tentación. Tal enfoque puede funcionar para problemas simples, pero no ocurre lo mismo con problemas complejos.
  • 3. Objetivos: Aprenderá un método sistemático que lo convertirá en un buen solucionador de problemas y, por lo tanto, en un buen programador. A este método le llamaremos elalgoritmodel programador. Aprenderá y utilizará los pasos que se requieren para resolver casi cualquier problema de programación usando el método estructurado descendente o de arriba-abajo (top– down). Estudiará el concepto de abstracción que se requiere para un lenguaje de computadora, que permite ver los problemas en términos generales sin la angustia de los detalles de implantación. A partir de una solución inicial abstracta, refinará la solución paso a paso hasta que alcance un nivel que pueda ser codificado directamente en un lenguaje de programación.
  • 4. El algoritmo del programador Un algoritmo es una secuencia ordenada de pasos, sin ambigüedades, que conducen a la solución de un problema dado y expresado en lenguaje natural, por ejemplo el castellano. Todo algoritmo debe ser: Preciso. Indicando el orden de realización de cada uno de los pasos. Definido. Si se sigue el algoritmo varias veces proporcionándole los mismos datos, se deben obtener siempre los mismos resultados. Finito. Al seguir el algoritmo, éste debe terminar en algún momento, es decir, debe terminar en un número finito de pasos.
  • 5. El algoritmo del programador(1) Los algoritmos no son exclusivos de la computación. Cualquier conjunto de instrucciones, como las que se encuentran en una receta de cocina o guía de ensamblaje, pueden ser considerados algoritmos. El algoritmo del programador es una receta que el programador sigue cuando desarrolla programas. Este algoritmo consta básicamente de cinco pasos: Definición del problema. Planeación de la solución del problema. Codificación del programa. Verificación y depuración del programa. Documentación del programa.
  • 6. La definición de problema Es un paso obvio en la solución de cualquier problema. Es el que más se pasa por alto, en especial en programación. La deficiencia de una buena definición del problema a menudo tiene como resultado tejer en el aire, especialmente en aplicaciones complejas de programación. Piense en un problema típico de programación: controlar el inventario de una gran tienda. “¿Qué debe considerar como parte de la definición del problema?”
  • 7. La definición de problema(1) La primera consideración es ¿qué se quiere lograr del sistema? La información consiste en un reporte impreso del inventario o adicionalmente, ¿el sistema generará automáticamente las órdenes del producto basado en las ventas? ¿Debe guardarse en disco cualquier información generada por la transacción de un cliente o puede ser descartada? ¿Qué tipo de datos se encuentran en la información de salida o en que consiste? ¿Es un dato numérico, de tipo carácter o ambos? ¿Qué formato deben tener los datos de salida? Todas estas preguntas deben contestarse para definir los requerimientos de salida.
  • 8. La definición de problema(2) La segunda consideración es: dados los requerimientos de salida, ¿Cuáles son los requerimientos de entrada? Los requerimientos de salida por lo general sugieren lo que debe de introducirse (requerimientos de entrada) dentro del sistema. Por ejemplo, en nuestro problema de inventario, una salida podría ser un resumen de las compras de los clientes. ¿Cómo se ingresan estas compras en el sistema? ¿El dato se obtiene desde el teclado o es producto de la información que se ingresa en forma automática por un sistema óptico de reconocimientos de caracteres (OCR) que lee el precio del producto a través de código de barras ? La entrada consiste en ¿datos numéricos, datos de tipo carácter o una combinación de ambos? ¿Cuál es el formato de los datos?
  • 9. La definición del problema(4) La tercera consideración es: dados los requerimientos de salida y los de entrada ¿Cuales son los procesos que deben de realizarse con las entradas para obtener las salidas deseadas? Para nuestro ejemplo de inventario, la mayor parte del procesamiento de los Clientes: ¿Se hace en la terminal de la caja registradora o será manejada por una computadora central de la tienda? ¿Qué hay con respecto a la verificación de la tarjeta de crédito y los registros de inventarios? ¿Se hará este proceso en una microcomputadora local, una minicomputadora localizada dentro de la tienda o una macrocomputadora localizada en otra parte de la ciudad? ¿Qué clase de programas se escribirán para realizar el procesamiento y quién los escribirá? ¿Qué clase de cálculos y decisiones deben hacerse a los datos dentro de los programas individuales para llevar a cabo la salida deseada?
  • 10. La definición del problema(4) La definición del problema debe considerar los requerimientos de salida, entrada y procesamiento. Salida Entrada Proceso Nombres Nombres Verbos
  • 11. Planeación de la solución La etapa de planeación asociada con cualquier problema es tal vez la más importante de la solución. Imagínese construyendo una casa sin un buen número de planos ¡Los resultados podrían ser catastróficos! Lo mismo sucede al desarrollar sistemas de información sin un buen plan. Cuando se desarrollan sistemas de información, la etapa de planeación se implementa usando una serie de algoritmos. Cuando se planean programas de computadora, se utilizan los algoritmos para esquematizar los pasos de la solución usando declaraciones en lenguaje natural como el castellano, llamadas seudo código, que requieren menos precisión que un lenguaje formal de programación. Un buen algoritmo en seudocódigo debe ser independiente pero fácilmente traducible a cualquier lenguaje formal de programación.
  • 12. Planeación de la solución(1) El prefijo seudo se usa para resaltar que no se pretende que este código sea compilado y ejecutado en una computadora. La razón para usar seudo código es que nos permite transmitir en términos generales las ideas básicas de un algoritmo. Si los programadores entienden el algoritmo que está siendo expresado por el seudo código, pueden implementarlo en el lenguaje de programación de su elección. Un programa en seudo código simplemente expone los pasos necesarios para realizar algún cómputo mientras que el programa informático correspondiente es la traducción de estos pasos en la sintaxis de un lenguaje de programación particular. El seudo código básicamente consiste en palabras reservadas y frases afines al castellano que se utilizan para indicar el flujo de control.
  • 13. Codificación del programa La codificación del programa es una de las actividades más sencillas dentro del proceso de programación, siempre y cuando se haya hecho un buen trabajo en la definición del problema y la planeación de la solución. La codificación implica la escritura real del programa en un lenguaje formal de programación. El lenguaje que se utilice será determinado por la naturaleza del problema, los lenguajes disponibles y los límites de su sistema de cómputo. Una vez que se selecciona un lenguaje, se escribe o codifica el programa, traduciendo los pasos de su algoritmo en código de lenguaje formal.
  • 14. Codificación del programa(1) Sin embargo, la codificación es en realidad un proceso mecánico y debe ser considerada secundario para desarrollar algoritmos. En el futuro, las computadoras generarán sus propios códigos de programa a partir de algoritmos bien construidos. La investigación en el campo de la inteligencia artificial ha dado origen al software de generación de código. Es necesario recordar que si bien las computadoras algún día puedan generar sus propios códigos de programación a partir de algoritmos, serán indispensables la creatividad y el sentido común de un humano en la planeación de la solución y el desarrollo del algoritmo.
  • 15. Verificación y depuración del programa Es motivo de alegría cuando un programa corre sin ningún error por primera vez. Una buena definición del problema y una buena planeación evitarán muchos errores en el programa. Sin embargo, siempre hay unas cuantas fallas que no son detectadas, sin importar que tan minuciosa haya sido la planeación. Quitar las fallas del programa (depuración) a menudo es la parte del trabajo que consume más tiempo en todo el proceso de programación. Las estadísticas muestran que a menudo más de 50% del tiempo de un programador se consume en la depuración del programa.
  • 16. Verificación y depuración del programa(1) No hay en absoluto un procedimiento correcto para depurar un programa, pero un enfoque sistemático puede ayudar a hacer más fácil ese proceso. Los pasos básicos de depuración son: Darse cuenta que tiene un error Localizar y determinar la causa del error Corregir el error
  • 17. Verificación y depuración del programa(2) Prueba de escritorio La prueba de escritorio de un programa es similar a revisar una carta o manuscrito. La idea es seguir el programa mentalmente para asegurarse que éste trabaja en forma lógica. Debe considerar varias posibilidades de entrada y escribir cualquier resultado generado durante la ejecución del programa. En particular, trate de determinar qué hará el programa con datos no muy comunes considerando posibilidades de entrada que no deberían pasar. Siempre tenga presenta la ley de Murphy cuando haga una prueba de escritorio de un programa: “si una condición dada no puede o no debe ocurrir, ¡ocurrirá!”
  • 19. Operaciones de Seudo código Las operaciones de la tabla anterior se agrupan en tres categorías: Secuencia, incluye operaciones que producen una acción o resultado único. decisión e incluye las operaciones que le permiten a la computadora tomar decisiones iteración. incluye aquellas operaciones que se usan para ciclos o repeticiones dentro del algoritmo. “Estas categorías se llaman estructuras de control. “
  • 20. Ejercicio 1 Problema Diseñar un algoritmo que lea e imprima una serie de números distintos de cero. El algoritmo debe terminar con un valor cero que no se debe imprimir. Finalmente se desea obtener la cantidad de valores leídos distintos de 0. Planteamiento de la solución Se deben leer números dentro de un ciclo que terminará cuando el último número leído sea cero. Cada vez que ejecute dicho ciclo y antes que se lea el siguiente número se imprime éste y se incrementa el contador en una unidad. Una vez se haya salido del ciclo se debe escribir la cantidad de números leídos, es decir, el contador.
  • 22. Ejercicio 2 Problema Escribir un algoritmo para determinar el máximo común divisor de dos números enteros utilizando el algoritmo de Euclides. Planteamiento de la solución Para halla el máximo común divisor de dos números se debe dividir uno entre otro. Si la división es exacta, es decir si el residuo es 0, el máximo común divisor es el divisor. Si no, se deben dividir otra vez los números, pero en este caso el dividendo será el antiguo divisor y el divisor el residuo de la división anterior. El proceso se repetirá hasta que la división sea exacta.