Está en la página 1de 43

Ingeniería en Sistemas Computacionales

Fundamentos de Programación

Unidad 1 | Diseño algorítmico

Instituto Tecnológico de León – Departamento de Sistemas y Computación, 2017


Ingeniería en Sistemas Computacionales
Fundamentos de Programación

Unidad 1 | Diseño algorítmico

Competencia de la unidad

Comprende y aplica los conceptos básicos,


nomenclatura y herramientas para el
diseño de algoritmos orientado a la
resolución de problemas.

Instituto Tecnológico de León – Ingeniería en Sistemas Computacionales – 2017


Instituto Tecnológico de León – Departamento de Sistemas y Computación, 2017
Esta materia pertenece al área de desarrollo de software y es esencial
para la formación de los ISC.

¿y qué es el
desarrollo de
Ingeniería en Sistemas Computacionales
Fundamentos de Programación
software?

Área | Desarrollo de software

Instituto Tecnológico de León – Ingeniería en Sistemas Computacionales – 2017


Instituto Tecnológico de León – Ingeniería en Sistemas Computacionales – 2017
El concepto de software va más allá
1.1 Conceptos
básicos
de los programas de cómputo en
sus distintos estados: código
fuente, archivo binario o código
ejecutable, también su
documentación y los datos para
procesar e información de usuario
forman parte del software: es decir,
abarca todo lo intangible, todo lo
relacionado que no es «físico».

El término software fue utilizado por


primera vez en este sentido por John
Wilder Tuckey en 1957

Instituto Tecnológico de León – Departamento de Sistemas y Computación, 2017


1.1 Conceptos Software
básicos

Es el conjunto de los programas de


cómputo, procedimientos, reglas,
documentación y datos asociados que
forman parte de las operaciones de un
sistema de computación.

IEEE Std, IEEE Software Engineering Standard: Glossary of


Software Engineering Terminology, IEEE Computer Society
Press, 1993

Instituto Tecnológico de León – Departamento de Sistemas y Computación, 2017


Lenguaje de programación.
1.1 Conceptos
básicos a) Es un conjunto de símbolos, reglas y palabras
especiales que permiten la escritura de programas
de computadora.

b) Es un idioma artificial diseñado para expresar


procesos que pueden ser llevados a cabo por
máquinas como las computadoras. Está formado por
un conjunto de símbolos, reglas sintácticas y
semánticas que definen su estructura y el
significado de sus elementos y expresiones.

Al proceso por el cual se escribe, se prueba, se depura,


se compila y se mantiene el código fuente de un
programa informático se le llama programación.

Instituto Tecnológico de León – Departamento de Sistemas y Computación, 2017


1.1 Conceptos
básicos

¿cuáles son
• Algoritmo los conceptos
• Programa básicos?
• Programación
• Paradigmas de programación
• Tipo de dato
• Constante
• Variable
• Operadores
• Diagrama de flujo
• Seudocódigo

Instituto Tecnológico de León – Departamento de Sistemas y Computación, 2017


1.1 Conceptos Algoritmo
básicos
De manera informal, un algoritmo es cualquier
procedimiento computacional bien definido,
que toma un valor, o conjunto de valores como
su entrada, a fin de producir algún valor, o
conjunto de valores, como su salida.

Entonces un algoritmo es una secuencia de


pasos computacionales que transforman
entradas en salidas.

Instituto Tecnológico de León – Departamento de Sistemas y Computación, 2017


1.1 Conceptos Algoritmo.
básicos
a) Es una secuencia finita, totalmente determinada de
instrucciones mediante las cuales los valores de las
variables de salida pueden ser calculadas desde los
valores de las variables de entrada.

b) Conjunto finito de reglas bien definidas para la solución


de un problema en un número finito de pasos.

c) Cualquier secuencia de operaciones para realizar una


tarea específica.

IEEE Std 1597.2TM-2010 IEEE Recommended Practice fpr Validation of Computational


Electromagnetics Computer Modeling and Simulations.

IEEE Std 610.12-1990 IEEE Standard Glossary of Software Engineering Terminology.

Instituto Tecnológico de León – Departamento de Sistemas y Computación, 2017


1.1 Conceptos
básicos

Lenguaje algorítmico

Lenguaje para la programación de


computadoras diseñado para expresar
algoritmos.

IEEE Std 610.12-1990 IEEE Standard Glossary of Software Engineering Terminology.

Instituto Tecnológico de León – Departamento de Sistemas y Computación, 2017


1.1 Conceptos
Lenguaje algorítmico - Cuando es textual es llamado
básicos pseudocódigo.

Instituto Tecnológico de León – Departamento de Sistemas y Computación, 2017


1.1 Conceptos
básicos
Lenguaje algorítmico

Cuando es gráfico es
llamado diagrama de
flujo.

Instituto Tecnológico de León – Departamento de Sistemas y Computación, 2017


1.1 Conceptos
básicos
Programa.

Una combinación de instrucciones para


computadora y definiciones de datos que
permiten que el hardware de la computadora
realice cálculos o funciones de control.

IEEE Std 610.12-1990 IEEE Standard Glossary of Software Engineering Terminology.

Instituto Tecnológico de León – Departamento de Sistemas y Computación, 2017


1.1 Conceptos
básicos
Programación.

La programación es una actividad humana


relacionada con el hecho de extender o de
cambiar la funcionalidad de un sistema.

La programación de computadoras se
concentra en el desarrollo de sistemas
computacionales – sistemas en software.

Peter Van Roy & Seif Haridi, “Concepts, Techniques, and Models of Computer
Programming, The MIT Press

Instituto Tecnológico de León – Departamento de Sistemas y Computación, 2017


1.1 Conceptos Paradigma.
básicos

Es un modelo
computacional
descrito como un
sistema formal que
define la forma de
procesar
instrucciones.

Peter Van Roy & Seif Haridi, “Concepts, Techniques, and Models of Computer
Programming, The MIT Press

Instituto Tecnológico de León – Departamento de Sistemas y Computación, 2017


1.1 Conceptos
básicos
Paradigma.

Un paradigma de programación corresponde


a un estilo de programar computadoras.

Ese estilo influye en la forma en la que se


definen los datos, se procesan las
operaciones, y en general, en la manera en la
que se estructuran los programas en un
lenguaje.

Instituto Tecnológico de León – Departamento de Sistemas y Computación, 2017


1.1 Conceptos
básicos
Tipo de dato.

Es una clase de datos, caracterizada por los


valores que pueden tener los miembros de la
clase y por las operaciones que pueden
aplicarse a ellos.

Ejemplos de tipos de datos son: boolean,


integer, real, character, string.

IEEE Std 610.12-1990 IEEE Standard Glossary of Software Engineering Terminology.

Instituto Tecnológico de León – Departamento de Sistemas y Computación, 2017


1.1 Conceptos
básicos Tipo de dato.

Identificador Tipo Valor


Nombre String ITL
Estatura Real 1.72
CantidadBilletes Integer 20
HoySeJuegaFutbol Boolean False
Sexo Character ‘M’

Instituto Tecnológico de León – Departamento de Sistemas y Computación, 2017


1.1 Conceptos
básicos
Constante.
Cantidad o dato cuyo valor no puede ser
cambiado; por ejemplo el dato FIVE, con un
valor no modificable de 5; contrasta con el
término “variable”

IEEE Std 610.12-1990 IEEE Standard Glossary of Software Engineering Terminology.

Instituto Tecnológico de León – Departamento de Sistemas y Computación, 2017


1.1 Conceptos
básicos
Variable.
Cantidad o dato cuyo valor puede cambiar;
por ejemplo el dato current_time, que puede
tomar los valores de la hora del día ya se en
formato de 12 o de 24 horas; contrasta con el
término “constante”

IEEE Std 610.12-1990 IEEE Standard Glossary of Software Engineering Terminology.

Instituto Tecnológico de León – Departamento de Sistemas y Computación, 2017


1.1 Conceptos
básicos
Operador.
Símbolo matemático o lógico que representa
una acción que se realizará en una operación.
Por ejemplo, en la expresión A = B + 3, el + es
el operador que representa la adición.

IEEE Std 610.12-1990 IEEE Standard Glossary of Software Engineering Terminology.

Instituto Tecnológico de León – Departamento de Sistemas y Computación, 2017


1.2 Representación
de algoritmos

Descripción de alto nivel de un algoritmo. Hace uso


de una combinación de lenguaje natural con algunas
convenciones sintácticas que pertenecen a los
lenguajes de programación de computadoras, como
por ejemplo para la realización de asignaciones y la
ejecución de ciclos y de condicionales.

Instituto Tecnológico de León – Departamento de Sistemas y Computación, 2017


1.2 Representación
de algoritmos

Descripción de alto nivel de un algoritmo. Hace uso


de una representación gráfica con notación icónica
en la que cada símbolo representa una acción a
realizar.

Instituto Tecnológico de León – Departamento de Sistemas y Computación, 2017


Represente un algoritmo que lleve a cabo la
conversión siguiente:
1.2 Representación
de algoritmos Una temperatura dada en grados Celsius a grados
Fahrenheit de acuerdo a la fórmula:

F = 9/5 C + 32

La solución se representará en
pseudocódigo y en diagrama de
flujo utilizando Pse Int

Instituto Tecnológico de León – Departamento de Sistemas y Computación, 2017


Algoritmo para convertir una temperatura dada en grados Celsius a
grados Fahrenheit de acuerdo a la fórmula: F = 9/5 C + 32

1.2 Representación
de algoritmos

Instituto Tecnológico de León – Departamento de Sistemas y Computación, 2017


Los algoritmos se diseñan para resolver problemas
Para resolver problemas es conveniente:

a) Entender el problema
¿qué me piden?, ¿qué datos conozco?, ¿qué datos debo obtener?, ¿qué
decisiones debo tomar?, ¿qué fórmulas debo aplicar?

1.3 Diseño de b) Diseñar un plan


algoritmos ¿Cuáles pasos se requieren?, ¿cuál es la secuencia de ejecución?, ¿qué
consideraciones adicionales se requieren?, ¿es correcta la secuencia de
pasos?

c) Ejecutar lo planeado
Seleccionar datos para probar el comportamiento de la solución diseñada.

d) Verificar lo obtenido
Examinar los resultados para verificar la corrección del algoritmo.

Instituto Tecnológico de León – Departamento de Sistemas y Computación, 2017


Fase de resolución
(en papel)
Codificación
Análisis del
problema
Compilación

1.3 Diseño de
algoritmos Diseño del
algoritmo Verificación

Verificación Depuración
manual del
algoritmo Fase de implementación
(en la computadora)

Instituto Tecnológico de León – Departamento de Sistemas y Computación, 2017


En el diseño de algoritmos es importante determinar
tres elementos para resolver un problema.

Entradas Salidas
1.3 Diseño de
algoritmos

Procesos

Instituto Tecnológico de León – Departamento de Sistemas y Computación, 2017


1.3 Diseño de
algoritmos

Instituto Tecnológico de León – Departamento de Sistemas y Computación, 2017


Entrada

1.3 Diseño de
algoritmos
Procesamiento

Salida

Instituto Tecnológico de León – Departamento de Sistemas y Computación, 2017


La flecha de la
esquina superior
derecha indica que es
un proceso de entrada
1.3 Diseño de
algoritmos

La flecha de la
esquina superior
derecha indica que es
un proceso de salida

Instituto Tecnológico de León – Departamento de Sistemas y Computación, 2017


Ejemplo:

Realice el análisis, el diagrama de flujo, el


pseudocódigo y una prueba para determinar la
hipotenusa de un triángulo rectángulo.

1.3 Diseño de Debe capturar de teclado el valor de los catetos B y C e


algoritmos
imprimir la hipotenusa resultante.

Utilice la fórmula

Hipotenusa = ((Cateto B)2 + (Cateto C)2) ½

Instituto Tecnológico de León – Departamento de Sistemas y Computación, 2017


1.3 Diseño de
algoritmos

Instituto Tecnológico de León – Departamento de Sistemas y Computación, 2017


1.3 Diseño de
algoritmos

Instituto Tecnológico de León – Departamento de Sistemas y Computación, 2017


1.3 Diseño de
algoritmos

Instituto Tecnológico de León – Departamento de Sistemas y Computación, 2017


1.3 Diseño de
algoritmos

Los lenguajes cuentan con recursos


predeterminados para que algunos procesos
se puedan realizar

Instituto Tecnológico de León – Departamento de Sistemas y Computación, 2017


Subproceso

• {variable_de_retorno}: si su función/subproceso calcula y devuelve algún valor,


1.4 Diseño de complete aquí el nombre de la variable que se utilizará para almacenar ese valor; si su
funciones función/subproceso no devuelve nada puede eliminar la variable y la flecha de
asignación.
• {nombre}: introduzca aquí el nombre que recibirá la función/subproceso.
• {argumentos}: introduzca aquí la lista de argumentos que requiere su función, utilizando
comas para separarlos, e ingresando el identificador para cada uno y opcionalmente las
palabras clave “por valor” o “por referencia” para indicar el modo de paso; si la
función/subproceso no requiere argumentos puede dejar en blanco y opcionalmente
omitir los paréntesis.

Instituto Tecnológico de León – Departamento de Sistemas y Computación, 2017


Las funciones primero se definen
Luego se mandan llamar.

1.4 Diseño de
funciones

Instituto Tecnológico de León – Departamento de Sistemas y Computación, 2017


1.4 Diseño de
funciones

Instituto Tecnológico de León – Departamento de Sistemas y Computación, 2017


1.4 Diseño de
funciones

Instituto Tecnológico de León – Departamento de Sistemas y Computación, 2017


1.4 Diseño de
funciones

Instituto Tecnológico de León – Departamento de Sistemas y Computación, 2017

También podría gustarte