SlideShare una empresa de Scribd logo
Lógica de la ProgramaciónArmando Cabrera Silva2010
IntroducciónLa 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 problemahasta 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 deproblemas 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 programadorUn 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 problemaEs 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.SalidaEntrada ProcesoNombresNombresVerbos
Planeación de la soluciónLa 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 alcastellano que se utilizan para indicar el flujo de control.
Codificación del programaLa 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 programaEs 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 errorLocalizar y determinar la causa del errorCorregir el error
Verificación y depuración del programa(2)Prueba de escritorioLa 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ódigoLas 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 decisionesiteración. incluye aquellas operaciones que se usan para ciclos o repeticiones dentro del algoritmo.“Estas categorías se llaman estructuras de control. “
Ejercicio 1ProblemaDiseñ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 2ProblemaEscribir un algoritmo para determinar el máximo común divisor de dos números enteros utilizando el algoritmo de Euclides.Planteamiento de la soluciónPara 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

PPTX
UNIDAD ARITMETICA LOGICA - INFORMATICA
PPTX
Máquinas de Turing - Tipos y Aplicaciones
PPTX
Mi lenguaje de programación de preferencia
PPTX
Teoria de conjuntos y Algebra Booleana
PDF
algebra-booleana matematicas discretas
PPTX
Lenguajes regulares
UNIDAD ARITMETICA LOGICA - INFORMATICA
Máquinas de Turing - Tipos y Aplicaciones
Mi lenguaje de programación de preferencia
Teoria de conjuntos y Algebra Booleana
algebra-booleana matematicas discretas
Lenguajes regulares

La actualidad más candente (20)

DOCX
Manual de usuario (C/C++)
PPTX
Tipos de autómatas
PDF
Lenguajes Regulares y Autómatas Finitos - Clase 7
PPTX
Metodo de montecarlo
PDF
Ejercicio 2 diagrama de flujo
DOCX
Cuestionario de algoritmoss2
PPTX
Expresiones Regulares
PDF
automatas finitos
DOCX
HA2NV50 EQ8-StarUML
PPTX
TIPOS DE LENGUAJES ENSAMBLADOR Y CLASIFICACION DE MEMORIAS
PDF
Unidad1 2 Lenguajes y automatas
DOCX
preguntas de algoritmos
PDF
Grafos propuestos
DOCX
1 . la resolución de problemas con computadoras y las herramientas de program...
PDF
Interfaz - Qué es, concepto, tipos, características y ejemplos.pdf
PPTX
PRUEBAS Y DEPURACIÓN
PPT
Conjuntos
PPTX
Características de un algoritmo
PPTX
Leyes del álgebra de proposiciones
Manual de usuario (C/C++)
Tipos de autómatas
Lenguajes Regulares y Autómatas Finitos - Clase 7
Metodo de montecarlo
Ejercicio 2 diagrama de flujo
Cuestionario de algoritmoss2
Expresiones Regulares
automatas finitos
HA2NV50 EQ8-StarUML
TIPOS DE LENGUAJES ENSAMBLADOR Y CLASIFICACION DE MEMORIAS
Unidad1 2 Lenguajes y automatas
preguntas de algoritmos
Grafos propuestos
1 . la resolución de problemas con computadoras y las herramientas de program...
Interfaz - Qué es, concepto, tipos, características y ejemplos.pdf
PRUEBAS Y DEPURACIÓN
Conjuntos
Características de un algoritmo
Leyes del álgebra de proposiciones
Publicidad

Destacado (20)

PPTX
Energía Alternativa
DOC
Pasivo A Corto Y Largo Plazo
PDF
Plan estratégico seguridad de los pacientes de extremadura
DOCX
Informe mantenimiento mecanico
PDF
Proyectos_de_innovacion
PPTX
Training Schrijven voor het Web
PDF
Marco del buen desempeño docente
PDF
Primer Paquete Económico 2017 Zacatecas (2/9)
PDF
"Protección de la salud mental luego del terremoto y tsunami del 27 de febrer...
PDF
Wal Mart México 2009: lo barato sale caro
PDF
Análisis situacional integral de salud final
PDF
Portafolio de Evidencias de mi Práctica Docente
PDF
Guia para el aviso de privacidad
DOC
De impact van adhd
PDF
PDF
El emprendedor y el empresario profesional cert
PPSX
1ºBACH Economía Tema 5 Oferta y demanda
PDF
Implementación de la Administración de Integridad de ductos en México
PDF
Onderzoeksrapport acrs v3.0_definitief
Energía Alternativa
Pasivo A Corto Y Largo Plazo
Plan estratégico seguridad de los pacientes de extremadura
Informe mantenimiento mecanico
Proyectos_de_innovacion
Training Schrijven voor het Web
Marco del buen desempeño docente
Primer Paquete Económico 2017 Zacatecas (2/9)
"Protección de la salud mental luego del terremoto y tsunami del 27 de febrer...
Wal Mart México 2009: lo barato sale caro
Análisis situacional integral de salud final
Portafolio de Evidencias de mi Práctica Docente
Guia para el aviso de privacidad
De impact van adhd
El emprendedor y el empresario profesional cert
1ºBACH Economía Tema 5 Oferta y demanda
Implementación de la Administración de Integridad de ductos en México
Onderzoeksrapport acrs v3.0_definitief
Publicidad

Similar a Clase de programacion (20)

PPTX
El proceso de programación y algoritmo c3. p1.
PPTX
El proceso de programación y algoritmo c3. p1.pptx
PDF
Presentacion 5
PDF
Presentacion 5
DOC
Fases de programacion
DOC
Las fases de la programación
PPTX
ALGORITMO Y METODOLOGÍA PARA LA RESOLUCIÓN PROBLEMAS BASADOS EN EL COMPUTADOR
PDF
0000261 programacion estructurada
DOCX
Pp
PDF
Algoritmos
DOCX
Metodología para la resolución de problemas
PPTX
Unidad 1
PDF
Pasos para la solución de un problema por computador
PDF
Pasos para la solución de un problema por computador
PPTX
Pre logica
PPT
Tarea5
PPT
Tarea5
PPT
Tarea5
PDF
Pasos para la solución de un problema por computador
PDF
Pasos para la solución de un problema por computador
El proceso de programación y algoritmo c3. p1.
El proceso de programación y algoritmo c3. p1.pptx
Presentacion 5
Presentacion 5
Fases de programacion
Las fases de la programación
ALGORITMO Y METODOLOGÍA PARA LA RESOLUCIÓN PROBLEMAS BASADOS EN EL COMPUTADOR
0000261 programacion estructurada
Pp
Algoritmos
Metodología para la resolución de problemas
Unidad 1
Pasos para la solución de un problema por computador
Pasos para la solución de un problema por computador
Pre logica
Tarea5
Tarea5
Tarea5
Pasos para la solución de un problema por computador
Pasos para la solución de un problema por computador

Más de Andrea Jimenez (14)

PPTX
PDF
Introduccion a la Arquitectura
DOC
Literatura 3
PDF
Desarrollo Espiritual
PDF
Desarrollo Espiritual
PPT
Jardines en la Revolucion industrial
DOC
ComputacióN BáSica
DOC
DOC
Semiotica
DOC
Andrea Jimenez Origen De La Arquitectura
PDF
Introduccion a la Arquitectura
PPT
Andrea Jimenez Origen De Las Universidades
PPT
El Intelectualismo Barroco
PPT
Conservatorio De MúSica ‘‘Salvador Bustamante Celi’’
Introduccion a la Arquitectura
Literatura 3
Desarrollo Espiritual
Desarrollo Espiritual
Jardines en la Revolucion industrial
ComputacióN BáSica
Semiotica
Andrea Jimenez Origen De La Arquitectura
Introduccion a la Arquitectura
Andrea Jimenez Origen De Las Universidades
El Intelectualismo Barroco
Conservatorio De MúSica ‘‘Salvador Bustamante Celi’’

Último (20)

PDF
Crear o Morir - Andres Oppenheimer Ccesa007.pdf
PDF
Escuela Sabática 6. A través del Mar Rojo.pdf
PDF
CONFERENCIA-Deep Research en el aula universitaria-UPeU-EduTech360.pdf
PDF
Didactica de la Investigacion Educativa SUE Ccesa007.pdf
PDF
OK OK UNIDAD DE APRENDIZAJE 5TO Y 6TO CORRESPONDIENTE AL MES DE AGOSTO 2025.pdf
PDF
La Evaluacion Formativa en Nuevos Escenarios de Aprendizaje UGEL03 Ccesa007.pdf
DOCX
V UNIDAD - SEGUNDO GRADO. del mes de agosto
DOCX
III Ciclo _ Plan Anual 2025.docx PARA ESTUDIANTES DE PRIMARIA
PDF
DI, TEA, TDAH.pdf guía se secuencias didacticas
PDF
Gasista de unidades unifuncionales - pagina 23 en adelante.pdf
DOCX
PROYECTO DE APRENDIZAJE para la semana de fiestas patrias
PDF
SESION 12 INMUNIZACIONES - CADENA DE FRÍO- SALUD FAMILIAR - PUEBLOS INDIGENAS...
PDF
Salvese Quien Pueda - Andres Oppenheimer Ccesa007.pdf
PDF
Conecta con la Motivacion - Brian Tracy Ccesa007.pdf
PDF
GUIA DE: CANVA + INTELIGENCIA ARTIFICIAL
PDF
COMUNICACION EFECTIVA PARA LA EDUCACION .pdf
PPTX
caso clínico iam clinica y semiología l3.pptx
PDF
el - LIBRO-PACTO-EDUCATIVO-GLOBAL-OIEC.pdf
PDF
Romper el Circulo de la Creatividad - Colleen Hoover Ccesa007.pdf
PPTX
AGENTES PATÓGENOS Y LAS PRINCIPAL ENFERMEAD.pptx
Crear o Morir - Andres Oppenheimer Ccesa007.pdf
Escuela Sabática 6. A través del Mar Rojo.pdf
CONFERENCIA-Deep Research en el aula universitaria-UPeU-EduTech360.pdf
Didactica de la Investigacion Educativa SUE Ccesa007.pdf
OK OK UNIDAD DE APRENDIZAJE 5TO Y 6TO CORRESPONDIENTE AL MES DE AGOSTO 2025.pdf
La Evaluacion Formativa en Nuevos Escenarios de Aprendizaje UGEL03 Ccesa007.pdf
V UNIDAD - SEGUNDO GRADO. del mes de agosto
III Ciclo _ Plan Anual 2025.docx PARA ESTUDIANTES DE PRIMARIA
DI, TEA, TDAH.pdf guía se secuencias didacticas
Gasista de unidades unifuncionales - pagina 23 en adelante.pdf
PROYECTO DE APRENDIZAJE para la semana de fiestas patrias
SESION 12 INMUNIZACIONES - CADENA DE FRÍO- SALUD FAMILIAR - PUEBLOS INDIGENAS...
Salvese Quien Pueda - Andres Oppenheimer Ccesa007.pdf
Conecta con la Motivacion - Brian Tracy Ccesa007.pdf
GUIA DE: CANVA + INTELIGENCIA ARTIFICIAL
COMUNICACION EFECTIVA PARA LA EDUCACION .pdf
caso clínico iam clinica y semiología l3.pptx
el - LIBRO-PACTO-EDUCATIVO-GLOBAL-OIEC.pdf
Romper el Circulo de la Creatividad - Colleen Hoover Ccesa007.pdf
AGENTES PATÓGENOS Y LAS PRINCIPAL ENFERMEAD.pptx

Clase de programacion

  • 1. Lógica de la ProgramaciónArmando Cabrera Silva2010
  • 2. IntroducciónLa 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 problemahasta 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 deproblemas 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 programadorUn 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 problemaEs 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.SalidaEntrada ProcesoNombresNombresVerbos
  • 11. Planeación de la soluciónLa 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 alcastellano que se utilizan para indicar el flujo de control.
  • 13. Codificación del programaLa 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 programaEs 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 errorLocalizar y determinar la causa del errorCorregir el error
  • 17. Verificación y depuración del programa(2)Prueba de escritorioLa 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ódigoLas 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 decisionesiteración. incluye aquellas operaciones que se usan para ciclos o repeticiones dentro del algoritmo.“Estas categorías se llaman estructuras de control. “
  • 20. Ejercicio 1ProblemaDiseñ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 2ProblemaEscribir un algoritmo para determinar el máximo común divisor de dos números enteros utilizando el algoritmo de Euclides.Planteamiento de la soluciónPara 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.