Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad

Herramientas de programación para la solución de problemas con computadoras, Esquemas y mapas conceptuales de Introducción a Ingeniería Software

Una introducción a las herramientas de programación utilizadas para la solución de problemas con computadoras. Se explica el concepto de algoritmo y se presentan las herramientas de programación más comunes, como los diagramas de flujo y el pseudocódigo. Se muestran ejemplos de cómo utilizar estas herramientas para representar algoritmos y se explica cómo establecer cuál herramienta utilizar para representar los algoritmos diseñados para la solución de problemas.

Tipo: Esquemas y mapas conceptuales

2022/2023

Subido el 05/04/2024

alejandro-martinez-espindola
alejandro-martinez-espindola 🇲🇽

2 documentos

1 / 28

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
UNIDAD I
HERRAMIENTAS DE PROGRAMACIÓN
PARA LA SOLUCIÓN DE PROBLEMA
CON COMPUTADORAS
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c

Vista previa parcial del texto

¡Descarga Herramientas de programación para la solución de problemas con computadoras y más Esquemas y mapas conceptuales en PDF de Introducción a Ingeniería Software solo en Docsity!

UNIDAD I

HERRAMIENTAS DE PROGRAMACIÓN

PARA LA SOLUCIÓN DE PROBLEMA

CON COMPUTADORAS

UNIDAD I. HERRAMIENTAS DE PROGRAMACIÓN 15

Herramientas

Para implementar la solución de un problema mediante el uso de una computadora es necesario establecer una serie de pasos que permitan re- solver el problema, a este conjunto de pasos se le denomina algoritmo, el cual debe tener como característica final la posibilidad de transcribirlo fá- cilmente a un lenguaje de programación, para esto se utilizan herramien tas de programación, las cuales son métodos que permiten la elaboración- de algoritmos escritos en un lenguaje entendible. Un algoritmo, aparte de tener como característica la facilidad para transcribirlo, debe ser:

  1. Preciso. Debe indicar el orden en el cual debe realizarse cada uno de los pasos que conducen a la solución del problema.
  2. Definido. Esto implica que el resultado nunca debe cambiar bajo las mismas condiciones del problema, éste siempre debe
  3. ser el mismo.Finito. No se debe caer en repeticiones de procesos de manera innecesaria; deberá terminar en algún momento. y no ambiguas para ejecutar paso a paso que conducen a la resolución de^ Por consiguiente, el algoritmo es una serie de operaciones detalladas un problema, y se representan mediante una herramienta o técnica. bien, es una forma de describir la solución de un problema planteado en^1 O forma adecuada y de manera genérica. Además de esto, se debe considerar que el algoritmo, que posterior- mente se transformará en un programa de computadora, debe considerar las siguientes partes:
  • • Una descripción de los datos que serán manipulados.Una descripción de acciones que deben ser ejecutadas para ma-
  • nipular los datos.Los resultados que se obtendrán por la manipulación de los datos. (^1) Luis Joyanes Aguilar, programación estructurada Metodología de la programación, diagramas de flujo, algoritmos y , España, Mc Graw Hill, 1993.

UNIDAD I. HERRAMIENTAS DE PROGRAMACIÓN 17

Tipos de variables Los elementos que cambian durante la solución de un problema se deno-

minan variables, se clasifican dependiendo de lo que deben representar en el algoritmo, por lo cual pueden ser: de tipo entero, real y string o de ca- dena, sin embargo, existen otros tipos de variables que son permitidos con base en el lenguaje de programación que se utilice para crear los programas, por consiguiente, al momento de estudiar algún lenguaje de programación en especial se deben dar a conocer esas clasificaciones. todas aquellas cuyo valor no tenga valores decimales; contrario a las de tipo^ Para el caso de este libro, se denominará variables de tipo entero a real, la cual podrá tomar valores con decimales. Como ejemplo de variables enteras se puede considerar el número de personas, días trabajados, edad de una persona, etcétera. Y para el caso de reales, se puede considerar el sueldo de una persona, el porcentaje de equis cantidad, etcétera. narán^ En caso de que las variables tomen valores de caracteres, se desig string o de cadena; como ejemplo de éstas se pueden mencionar el- sexo de una persona, falso o verdadero, el nombre de una persona, el tipo de sangre, etcétera.

Pseudocódigo

Sin duda, en el mundo de la programación el pseudocódigo es una de las herramientas más conocidas para el diseño de solución de problemas por computadora. Esta herramienta permite pasar casi de manera directa la solución del problema a un lenguaje de programación específico. El pseu- docódigo es una serie de pasos bien detallados y claros que conducen a la resolución de un problema. putadora ha dado como resultado que muchos programadores implemen^ La facilidad de pasar casi de forma directa el pseudocódigo a la com-- ten de forma directa los programas en la computadora, cosa que no es muy recomendable, sobre todo cuando no se tiene la suficiente experien- cia para tal aventura, pues se podrían tener errores propios de la poca experiencia acumulada con la solución de diferentes problemas. caja de dimensiones A, B y C se puede establecer de la siguiente forma:^ Por ejemplo, el pseudocódigo para determinar el volumen de una

    1. Inicio.Leer las medidas A, B y C.
  1. Realizar el producto de A * B * C y guardarlo en V (V = A * B * C).
    1. Escribir el resultado V.Fin. pasos por realizar; además, si se le proporciona siempre los mismos valo^ Como se puede ver, se establece de forma precisa la secuencia de los- res a las variables A, B y C, el resultado del volumen será el mismo y, por consiguiente, se cuenta con un final.

Diagramas de flujo

Los diagramas de flujo son una herramienta que permite representar vi sualmente qué operaciones se requieren y en qué secuencia se deben efec-- tuar para solucionar un problema dado. Por consiguiente, un diagrama de flujo es la representación gráfica mediante símbolos especiales, de los pasos o procedimientos de manera secuencial y lógica que se deben reali zar para solucionar un problema dado. -

A

B^ C

18 PROBLEMARIO DE ALGORITMOS RESUELTOS CON DIAGRAMAS DE FLUJO Y PSEUDOCÓDIGO

de un problema, ya que facilitan la comprensión de problemas complica^ Los diagramas de flujo desempeñan un papel vital en la programación- dos y sobre todo aquellos en que sus procesos son muy largos; mente, los diagramas de flujo se dibujan antes de comenzar a programar el^2 general- código fuente, que se ingresará posteriormente a la computadora. Los diagramas de flujo facilitan la comunicación entre los programa- dores y los usuarios, además de que permiten de una manera más rápida detectar los posibles errores de lógica que se presenten al implementar el algoritmo. En la tabla 1.1 se muestran algunos de los principales símbolos utilizados para construir un diagrama de flujo. se presentan en la tabla 1.2, con los cuales se indican las operaciones que se^ Dentro de los diagramas de flujo se pueden utilizar los símbolos que efectuarán a los datos con el fin de producir un resultado. Símbolo Significado Terminal /Inicio. Entrada de datos. Proceso. Decisión.

Decisión múltiple.

Imprimir resultados. Flujo de datos. Conectores.

(^2) Idem.

Tabla 1.1 Principales símbolos utilizados para construir los diagramas de flujo.

20 PROBLEMARIO DE ALGORITMOS RESUELTOS CON DIAGRAMAS DE FLUJO Y PSEUDOCÓDIGO

Diagramas Nassi-Schneiderman N/S

El diagrama N-S es una técnica en la cual se combina la descripción tex tual que se utiliza en el pseudocódigo y la representación gráfica de los- diagramas de flujo. Este tipo de técnica se presenta de una manera más compacta que las dos anteriores, contando con un conjunto de símbolos muy limitado para la representación de los pasos que se van a seguir por un algoritmo; por consiguiente, para remediar esta situación, se utilizan expresiones del lenguaje natural, sinónimos de las palabras propias de un lenguaje de programación (leer, hacer, escribir, repetir, etcétera). determinar el volumen de una caja de dimensiones A, B y C como se mues^ Por ejemplo, se puede establecer la solución del diagrama N/S para- tra en la figura 1.2. Como se puede ver de este ejemplo, los diagramas N/S son como los diagramas de flujo en el que se omiten las flechas de unión y las cajas son contiguas. Las acciones sucesivas se escriben dentro de las cajas sucesivas y, como en los diagramas de flujo, se pueden escribir diferentes acciones en una caja. 3 Inicio A B C

Leer A, B, C Hacer volumen = A * B * C Escribir volumen Fin

diseñados para la solución de problemas estará en función del gusto y pre^ Establecer cuál herramienta utilizar para representar los algoritmos- ferencia del programador, y quizás no tanto en función de la complejidad de los problemas, ya que si bien es cierto que los diagramas N/S tienen pocos símbolos, presentan la ventaja de que por lo compacto que resul tan sus representaciones suelen ser más fáciles de leer y de transcribir al- lenguaje de programación que se utilizará, pero luego resulta complicado acomodar las acciones al construir el diagrama. tipo de estructura para la solución del problema, esas estructuras pueden^ Los símbolos más utilizados en diagrama N/S corresponden a un ser: secuenciales de decisión y de ciclo. Estas estructuras de los diagramas N/S se presentan en la tabla 1.3.

(^3) Luis Joyanes Aguilar, 1990. Turbo Basic Manual de Programación , España, Mc Graw Hill,

Figura 1.2 Diagrama N/S para obtener el volumen de un cubo.

UNIDAD I. HERRAMIENTAS DE PROGRAMACIÓN 21

Símbolo Tipo de estructura Acción 1Acción 2 Acción N^ Secuencial Sí Expresión lógicaNo Acción A Acción B^ Selectiva Mientras condiciónAcciones Fin mientras De ciclo

tructuras de los diagramas N/S, tal es el caso de la figura 1.3 que muestra^ A continuación, se muestran ejemplos sobre cómo utilizar las es- un diagrama N/S con el algoritmo para obtener el área de un rectángulo, en el cual la solución tiene una estructura secuencial. Inicio Leer b, h a = b * h Escribir “area:”, a Fin

tiene la solución de un algoritmo para determinar cuál de dos cantidades^ Para una estructura de decisión se muestra la figura 1.4, en la cual se es la mayor. InicioLeer C1, C Sí C1 > C2 No M = C1 (^) Escribir MM = C Fin

es como el que se muestra en la figura 1.5, en el cual están presentes una^ Finalmente para una estructura de ciclo, el símbolo que se utiliza combinación de estructuras secuenciales con la de ciclo. En este diagrama se presenta la solución de la suma de diez cantidades cualesquiera.

Tabla 1.3 Principales estructuras utilizadas para construir los diagramas N/S.

Figura 1.3 Diagrama N/S con una estructura secuencial.

Figura 1.4 Estructura selectiva de un diagrama N/S.

UNIDAD I. HERRAMIENTAS DE PROGRAMACIÓN 23

tos, de tal forma que para la solución se planteara algún cuestionamiento^ Ahora, si el mismo problema que se planteó se piensa en otros aspec- como: culo?”, la solución que se propondría ya no sería igual que la anterior, y “¿Se debe considerar que el dinero alcanzó para comprar el arti- podría plantearse de la forma como se muestra en la figura 1.7.

Nombre de las variables CP Costo de producto CD Cantidad de dinero

Inicio

Fin

CP, CD CP > CD No alcanzó Cambio

Cambio = CD - CP

dado dependerá de cómo se considere su planteamiento, y también tendrá^ Como se puede ver, en ocasiones exponer la solución de un problema mucho que ver la forma en la que el diseñador lo conceptualice; debido a esto, es muy importante, cuando se realicen algoritmos para la solución de problemas prácticos, que se plantee de manera correcta lo que se quiere y se aclaren los puntos necesarios que permitan diseñar la solución más óptima, pues hay que recordar que un algoritmo es siempre perfectible. Para los siguientes capítulos se propondrá la solución de problemas donde se utilicen para su representación principalmente pseudocódigo y diagramas de flujo, y en otros casos diagramas N/S. necesario dejar bien claro que las soluciones planteadas en este texto no^ Pero antes de pasar al planteamiento y solución de problemas, es son únicas, y pueden ser mejoradas por los lectores.

Figura 1.7 Diagrama de flujo para determinar el cambio que recibirá una persona al adquirir un producto.

UNIDAD II

SOLUCIÓN DE PROBLEMAS SECUENCIALES

28 PROBLEMARIO DE ALGORITMOS RESUELTOS CON DIAGRAMAS DE FLUJO Y PSEUDOCÓDIGO

Estructuras de control

Sin importar qué herramienta o técnica se utilice para la solución de un problema dado, ésta tendrá una estructura, que se refiere a la secuencia en que se realizan las operaciones o acciones para resolver el problema; esas estructuras pueden ser: secuenciales, de decisión y de ciclo o repetición, las cuales se analizarán en su momento. Debe tenerse presente que la solución de un problema dado mediante el uso de una computadora es un sistema, el cual debe tener una entrada de datos, los cuales serán procesados para obtener una salida, que es la solu- ción o información que se busca. En la figura 2.1 se muestra el esquema de un sistema que transforma los datos en información mediante un proceso. Entrada (^) Proceso Salida

Estructuras secuenciales

En este tipo de estructura las instrucciones se realizan o se ejecutan una después de la otra y, por lo general, se espera que se proporcione uno o va- rios datos, los cuales son asignados a variables para que con ellos se produz can los resultados que representen la solución del problema que se planteó.- Los algoritmos tienen como fin actuar sobre los datos proporcionados por el usuario, a los que se les aplican procesos con el fin de generar la información o un resultado. El algoritmo es realmente la representación funcional de un sistema, como el que se muestra en la figura 2.1. rramienta es necesario entender y establecer con qué datos se cuenta, los^ Para resolver un problema mediante la utilización de cualquier he- procesos que se deben realizar y la secuencia apropiada para obtener la solución que se desea.

Ejemplo 2.

Se desea implementar un algoritmo para obtener la suma de dos números cualesquiera. Se debe partir de que para poder obtener la suma es necesa- rio contar con dos números, pues el proceso que debemos realizar es pre cisamente la suma de éstos, la cual se asigna a una variable que se reporta- como resultado del proceso. Los pasos por seguir son los mostrados en el pseudocódigo 2.1, que corresponde al algoritmo que permite determinar la suma de dos números cualesquiera.

    1. InicioLeer A, B
    1. Hacer S = A + BEscribir S
  1. Fin

resultado de la suma. Al representar la solución del problema utilizando^ Como se puede ver,^ A^ y^ B^ representan los valores para sumar, y^ S^ el pseudocódigo, se está utilizando un lenguaje que comúnmente utiliza mos, sólo que de una forma ordenada y precisa. -

Figura 2.1. Un sistema de transformación.

Pseudocódigo 2.1 Algoritmo para determinar la suma de dos números cua lesquiera. -

UNIDAD II. SOLUCIÓN DE PROBLEMAS SECUENCIALES 29

utilizan, señalando lo que representan y sus características, esta acción^ Es recomendable indicar mediante una tabla las variables que se facilitará la lectura de la solución de un problema dado, sin importar qué herramienta de programación se esté utilizando para la representación de la solución del problema. Para el problema de la suma de dos números, la tabla 2.2 muestra las variables utilizadas en la solución. Nombre de la variable A (^) Primer número para sumar Descripción (^) Entero Tipo B S Segundo número para sumarResultado de la suma EnteroEntero

ma paralela o, bien, al término del pseudocódigo o del diagrama según^ La construcción de las tablas de variables se puede realizar en for- sea el caso. La representación del algoritmo mediante la utilización de un dia- grama de flujo sería como el que se muestra en el diagrama de flujo 2.1. Se inicia el proceso

Se hace la suma de los nú meros y el resultado se- asigna a S.

Se finaliza el proceso.

Inicio

Fin

A, B S = A + B S

Se leen los números por sumar A y B.

Se escribe el resultado de la suma S.

lores que se van a sumar, y^ De igual forma, como en el pseudocódigo, S el resultado de la suma. Ahora el resultado se^ A^ y^ B^ representan los va- presenta de manera gráfica. Ahora bien, si se plantea la solución del mismo problema, pero ahora utilizando los diagramas de Nassi-Schneiderman, la solución sería como la mostrada en el diagrama N/S 2.1. Inicio Leer A, B Hacer S = A + B Escribir S Fin

Tabla 2.2 Variables utilizadas para determinar la suma de dos números cualesquiera.

Diagrama de flujo 2.1 Algoritmo para determinar la suma de dos números.

Diagrama N/S 2.1 Algoritmo para determinar la suma de dos números.

UNIDAD II. SOLUCIÓN DE PROBLEMAS SECUENCIALES 31

Se leen las calificaciones ob tenidas C1, C2, C3, C4. -

Se obtiene el promedio de las calificaciones y se asig- na a P.

Se finaliza el proceso.

Inicio

Fin

C1, C2, C3, C

P = S / 4 P

S = C1 + C2 + C3 + C

Se inicia el proceso.

Se realiza la suma de las calificaciones respectivas y se asigna a S.

Se obtenido P. escribe el promedio

pero ahora presentado en forma gráfica, que es una de las características de^ Como se puede ver, prácticamente lo que se tiene es el pseudocódigo, los diagramas de flujo. Como una herramienta alternativa de solución del problema, se pre- senta el diagrama N/S 2.2. Inicio Leer C1, C2, C3, C Hacer S = C1 + C2 + C3 + C Hacer P = S / 4 Escribir P Fin

código y de un diagrama de flujo, sólo que para este tipo de diagrama se^ Se puede observar que realmente es una combinación de pseudo- omiten las flechas de flujo.

Ejemplo 2.

Se requiere conocer el área de un rectángulo. Realice un algoritmo para tal fin y represéntelo mediante un diagrama de flujo y el pseudocódigo para realizar este proceso. Como se sabe, para poder obtener el área del rectángulo, primera- mente se tiene que conocer la base y la altura, y una vez obtenidas se pre senta el resultado. - el algoritmo correspondiente.^ La tabla 2.4 muestra las variables que se van a utilizar para elaborar

Diagrama de flujo 2.2 Algoritmo para determinar el promedio de cuatro calificaciones.

Diagrama N/S 2.2 Algoritmo para determinar el promedio de cuatro califica ciones. -

32 PROBLEMARIO DE ALGORITMOS RESUELTOS CON DIAGRAMAS DE FLUJO Y PSEUDOCÓDIGO

Nombre de la variable A (^) Altura del rectángulo Descripción (^) Tipo Real Área^ B^ Base del rectánguloÁrea del rectángulo^ RealReal Fórmula: Área = (base*altura)

ritmo apropiado, de acuerdo a lo planteado anteriormente.^ El diagrama de flujo 2.3 muestra la solución correspondiente al algo- Se inicia el proceso.

Se aplica la fórmula para obtener el área.

Se finaliza el proceso.

Inicio

Fin

A, B Área = B * A Área

Se lee la altura y la base del rectángulo.

Se escribe el resultado del área obtenida.

te obtener el área del rectángulo.^ La estructura del pseudocódigo 2.3 muestra el algoritmo que permi-

    1. InicioLeer A, B
    1. Hacer Área = B * AEscribir Área
  1. Fin

pondiente.^ Y de igual forma, el diagrama N/S 2.3 muestra la solución corres- Inicio Leer A, B Hacer Área = A * B Escribir Área Fin

Tabla 2.4 Variables utilizadas para determinar el área de un rectángulo.

Diagrama de flujo 2.3 Algoritmo para determinar el área de un rectángulo.

Pseudocódigo 2.3 Algoritmo para determinar el área de un rectángulo.

Diagrama N/S 2.3 Algoritmo para determinar el área de un rectángulo.

34 PROBLEMARIO DE ALGORITMOS RESUELTOS CON DIAGRAMAS DE FLUJO Y PSEUDOCÓDIGO

    1. InicioLeer R
    1. Hacer PI = 3.1416Hacer Área = PI * R * R
    1. Escribir ÁreaFin

pondiente a este problema, mediante esta herramienta.^ De la misma forma, el diagrama N/S 2.4 muestra la solución corres- Inicio Leer R PI = 3. Hacer Área = PI * R * R Escribir Área Fin

ción de los problemas anteriores son realmente sencillos en la solución^ Como se puede ver, los diagramas N/S que resultaron en la solu- de problemas de tipo secuenciales, por tal motivo, por el momento sólo se presentarán soluciones con dos de las herramientas que se tiene contem- plado analizar en el presente libro.

Ejemplo 2.

Una empresa constructora vende terrenos con la forma A de la figura 2.2. Realice un algoritmo y represéntelo mediante un diagrama de flujo y el pseudocódigo para obtener el área respectiva de un terreno de medidas de cualquier valor.

Forma A^ B

(A – C)

Forma B

A C

compuesta por dos figuras: un^ Para resolver este problema se debe identificar que la forma A está triángulo de base B y de altura (A - C); y por otro lado, un consideraciones se puede establecer la tabla 2.6 con las variables que se rectángulo que tiene base B y altura C. Con estas requieren para implementar el algoritmo de solución.

Pseudocódigo 2.4 Algoritmo para determinar el área de una circunferencia.

Diagrama N/S 2.4 Algoritmo para determinar el área de una circunferencia.

Figura 2.2 Forma del terreno y cómo se puede dividir.

UNIDAD II. SOLUCIÓN DE PROBLEMAS SECUENCIALES 35

de la variable^ Nombre Descripción^ Tipo B A Base del triángulo y del rectánguloAltura del triángulo y rectángulo unidos RealReal C Altura del rectángulo (^) Fórmula Real AT AR Área del triánguloÁrea del rectángulo Área = (base * altura)/ 2Área = (base * altura) RealReal Área Área de la figura Área = AT + AR Real

las respectivas áreas de las figuras que conforman el terreno, las cuales^ Por consiguiente, como se puede ver, se establecen variables para determinarán el área total del respectivo terreno. Ahora, con estas consideraciones, se puede representar el algoritmo mediante el diagrama de flujo 2.5, el cual permite la solución del problema.

Se leen las alturas y la base de la figura.

Se calcula el área del rec tángulo. -

Se escribe el área obte nida. -

Inicio

Fin

A, B, C

AR = B * C

Área

AT = (B * (A - C) )/

Área = AT + AR

Se inicia el proceso.

Se calcula el área del trián gulo. -

Se obtiene el área total de la figura.

Se finaliza el proceso.

diente mediante este método de representación.^ De igual forma, el pseudocódigo 2.5 muestra la solución correspon-

    1. InicioLeer A, B, C
    1. Hacer AT = (B * (A - C))/2Hacer AR = B * C
    1. Hacer Área = AT + AREscribir Área
  1. Fin

Tabla 2.6 Variables utilizadas para determinar el área de un terreno.

Diagrama de flujo 2.5 Algoritmo para determinar el área de un terreno.

Pseudocódigo 2.5 Algoritmo para determinar el área de un terreno.