Está en la página 1de 23

MANUAL DE PRÁCTICAS

PROGRAMACIÓN ESTRUCTURADA

UNIVERSIDAD DE GUADALAJARA

CENTRO UNIVERSITARIO DE LOS LAGOS


DIVISIÓN DE ESTUDIOS DE LA BIODIVERSIDAD E INNOVACIÓN
TECNOLÓGICA
DEPARTAMENTO DE CIENCIAS EXACTAS Y TECNOLOGÍA

Alumno: Luevano Mora Miguel Ángel


Carrera: Ingeniería en Electrónica y Computación
Código: 216518077
MANUAL DE PRÁCTICAS

DATOS GENERALES

Materia: Programación Estructurada Créditos: 6 Clave: ID939

Carrera: IELC Periodo: 2021-A

JIMENEZ GUTIERREZ AURIA LUCIA


Maestro: Fechas en que se cursará: Enero – Junio

Taller ( Seminario ( Curso-


Tipo de curso: Tradicional ( ) Laboratorio ( ) Otro (x)
) ) Laboratorio
PRÁCTICA 2. Diseño de programas
Seudocódigos
Objetivos
El alumno empleará algoritmos que le permitan resolver un problema de
ingeniería sencillo
Al final de esta práctica el alumno podrá:
1. Analizar el problema e identificar los datos que se tienen y cuáles se
necesitan.
2. Seleccionar la mejor alternativa que produce la resolución del problema.
3. Plantear de manera detallada los pasos a seguir para resolver el problema
Introducción
Un algoritmo es un método para resolver un problema mediante una serie de
pasos precisos, definidos y finitos, además es una serie de operaciones
detalladas que se pueden formular de muchas formas con el cuidado de que no
exista ambigüedad.
Existen dos tipos de algoritmos:
• Cualitativos: Son aquellos en los que se describen los pasos utilizando
palabras.
• Cuantitativos: Son aquellos en los que se utilizan cálculos numéricos para
definir los pasos del proceso.
Formalmente se define un algoritmo como un conjunto de pasos, procedimientos
o acciones que permiten alcanzar un resultado o resolver un problema.
Un algoritmo tiene las siguientes características:

1. Preciso: debe indicar el orden de realización en cada paso y no puede


tener ambigüedad.

2. Definido: si se sigue dos veces o más, se obtiene el mismo resultado cada


vez.

3. Finito: tiene fin, es decir, un número determinado de pasos.

4. Correcto.

5. Debe tener al menos una salida y ésta debe ser tangible.

6. Debe ser sencillo y legible.

7. Eficiente y efectivo.

8. Se ha de desarrollar en el menor tiempo posible.


Tipos de lenguajes algorítmicos
• Gráficos: es la representación gráfica de las operaciones que realiza un
algoritmo. Se le conoce como diagrama de flujo. Por ejemplo:

• No gráficos: representa en forma descriptiva las operaciones que debe realizar


un algoritmo. Se le conoce como pseudocódigo. Por ejemplo:

INICIO Edad: Entero


ESCRIBA “¿Cuál es tu edad?”
LEA Edad SI Edad >=18
Entonces
ESCRIBA “Eres mayor de Edad”
FIN DEL SI EN CASO CONTRARIO
ESCRIBA “No eres mayor de Edad”
FIN DE EN CASO CONTRARIO
ESCRIBA “fin del algoritmo” FIN

Un algoritmo consta de tres etapas para la resolución de un problema:


a) Análisis del problema: es decir, con qué datos se cuenta, cuáles son
necesarios como valores de entrada, qué restricciones deben considerarse,
cómo debe ser la salida para que el problema se resuelva.
b) Construcción del algoritmo: se refiere a la descripción detallada de los pasos
que deben seguirse para resolver el problema.
c) Verificación del algoritmo: consiste en el seguimiento del mismo empleando
datos que son representativos del problema que se desea resolver (esto se
conoce como prueba de escritorio).

Para llegar a la realización de un programa es necesario el diseño previo de un


algoritmo, de modo que sin el algoritmo no puede existir un programa. Los
algoritmos son independientes tanto del lenguaje de programación en que se
expresan como de la computadora que los ejecuta. En cada problema el
algoritmo se puede expresar en un lenguaje diferente de programación y
ejecutarse en una computadora distinta; sin embargo, el algoritmo será siempre
el mismo.
Ventajas de los Diagramas de Flujo

• Favorecen la comprensión del proceso a través de mostrarlo como un


dibujo. El cerebro humano reconoce fácilmente los dibujos. Un buen diagrama
de flujo reemplaza varias páginas de texto.
• Permiten identificar los problemas y las oportunidades de mejora del
proceso. Se identifican los pasos redundantes, los flujos de los reprocesos, los
conflictos de autoridad, las responsabilidades, los cuellos de botella, y los puntos
de decisión.
• Muestran las interfaces usuario-desarrollador y las tareas que en ellas se
realizan, facilitando a los desarrolladores el análisis de las mismas.

• Son una excelente herramienta para capacitar a los nuevos empleados


usuarios y también a los que desarrollan la tarea, cuando se realizan mejoras en
el proceso.
Ejemplo de algoritmos:

Ejemplo 1.1 Problema: Se desea realizar el cálculo de la velocidad de un


automóvil que recorre una distancia x en un cierto tiempo t. (Emplear la fórmula
v =x/t).
a) Análisis del problema:
• Como datos de entrada se necesita el valor de la distancia (x) y el valor
del tiempo (t).
• En las restricciones se observa que el tiempo no puede ser nulo pues se
indeterminada la operación, tampoco puede ser negativo. La distancia puede ser
positiva o negativa, ya que el automóvil puede ir retrocediendo, pero no puede
ser nula porque el problema indica que el automóvil recorre una cierta distancia.

Finalmente se obtiene como resultado la velocidad tras aplicar la fórmula v =(x/t),


donde la velocidad puede aumentar (si el resultado es positivo) o disminuir (si el
resultado es negativo).
b) Construcción del algoritmo:
1. Inicio.
2. Leer el valor de x.
3. Si x=0 regresar al paso 2, en caso contrario ir al paso 4.
4. Leer el valor de t.
5. Si t ≤ 0 entonces ir al paso 7, en caso contrario ir al paso 6.
6. Realizar v = (x/t)
7. Fin.

c) Prueba de escritorio
Dados los valores x=3, t=0.

1. Inicio.
2. x=3.
3. ¿x=0? NO, al paso 4.
4. t=0.
5. ¿t ≤ 0? SÍ, ir al paso 7.
7. Fin.

Dados los valores x=5, t=7.


1. Inicio.
2. x=5.
3. ¿x=0? NO, al paso 4.
4. t=7.
5. ¿t ≤ 0? NO, ir al paso 6. 5
6. v = = 0.715.
7. Fin.
Errores más comunes que se pueden cometer

1. Crear un algoritmo sin analizar el problema previamente.


2. Dar por sentado que el algoritmo está bien diseñado sin haber realizado la
prueba de escritorio para verificarlo.
3. No detallar los pasos que se siguen en el algoritmo, dando paso a las
ambigüedades en el mismo.
4. No realizar la prueba de escritorio tomando valores críticos, pues éstos
demostrarían si el algoritmo toma o no en cuenta las restricciones
establecidas.
5. Olvidar que los pasos son secuenciales y saltarse a un paso determinado,
debido a una suposición, sin que el algoritmo así lo indique

Requerimientos
 Computadora
 Procesador de textos

Diagramas de flujo

Objetivos

El alumno planteará, mediante un diagrama de flujo, los pasos que deberán


seguirse para resolver un problema de ingeniería sencillo.

Al final de esta práctica el alumno podrá:

1. Analizar el problema e identificar los datos que se tienen y cuáles se


necesitan.
2. Seleccionar la mejor alternativa que produce la resolución del problema.
3. Plantear de manera detallada el diagrama de flujo que se debe seguir
para resolver el problema

Antecedentes

1. Conocer y manejar el diseño de algoritmos para la resolución de problemas


Introducción

Un diagrama de flujo es un esquema para representar gráficamente un algoritmo.


En realidad, muestra gráficamente los pasos o procesos a seguir para alcanzar
la solución de un problema. Se basa en la utilización de diversos símbolos para
representar operaciones específicas. Se les llama diagramas de flujo porque los
símbolos utilizados se conectan por medio de flechas para indicar la secuencia
de la operación. Su correcta construcción es sumamente importante porque a
partir del mismo se escribe un programa en algún lenguaje de programación. Si
el diagrama de flujo está completo y correcto, el paso del mismo a un lenguaje
de programación es relativamente simple y directo.

Para hacer comprensible los diagramas a todas las personas, los símbolos se
sometieron a una normalización, o lo que es en realidad se hicieron símbolos
casi universales, ya que, en un principio cada usuario podría tener sus propios
símbolos para representar sus procesos en forma de diagrama de flujo. A
continuación, en la Tabla 1 se muestra la simbología utilizada en los diagramas
de flujo con base en las recomendaciones de la Organización Internacional para
la Estandarización (ISO) y el Instituto Nacional Americano de Estándares (ANSI):

Tabla 1. Símbolos empleados en los diagramas de flujo

Representación del símbolo Explicación del símbolo

Marca el inicio y el fin del diagrama de flujo

Para introducir los datos de entrada. Expresa lectura

Para representar un proceso. En su interior se expresan


asignaciones, operaciones aritméticas, cambios de
valor de celdas en memoria.

Para representar una decisión, en su interior se


almacena una condición y dependiendo del resultado
de la evaluación de la misma se sigue por alguna de las
ramas.

Para representar la impresión de un resultado. Expresa


escritura.
Para expresar la dirección del flujo del diagrama

Para expresar conexión dentro de la misma página

Para expresar conexión entre páginas diferentes.

Para representar una decisión múltiple. En su interior se


almacena un selector y dependiendo del valor de éste
se sigue por una de las ramas o caminos alternativos.

Las reglas que permiten la construcción de diagramas de flujo se muestran


a continuación:

1. Todo diagrama de flujo debe tener un inicio y un fin.


2. Las líneas utilizadas para indicar la dirección del flujo del diagrama deben ser
rectas verticales y horizontales.
3. Todas las líneas utilizadas para indicar la dirección del flujo del diagrama
deben estar conectadas. La conexión puede ser a un símbolo que exprese
lectura, proceso, decisión, impresión, conexión o fin de programa.
4. El diagrama de flujo debe ser construido de arriba hacia abajo y de izquierda
a derecha.
5. La notación utilizada en el diagrama de flujo debe ser independiente del
lenguaje de programación.

6. Es conveniente cuando se realice una tarea compleja poner comentarios que


expresen o ayuden a entender lo que se hizo.
7. Si el diagrama requiere más de una hoja para su construcción se debe utilizar
el o los conectores adecuados y enumerar las páginas convenientemente.
8. No puede llegar más de una línea a un símbolo.
Un diagrama de flujo consta de tres etapas para la resolución de un problema:

a) Análisis profundo del problema: es decir, con qué datos se cuenta, cuáles son
necesarios como valores de entrada, qué restricciones deben considerarse,
cómo debe ser la salida para que el problema se resuelva.

b) Construcción del diagrama de flujo: dibujar detalladamente qué pasos se


deben seguir para resolver el problema.

c) Verificación del diagrama de flujo: consiste en el seguimiento del mismo


empleando datos que son representativos del problema que se desea resolver
(esto se conoce como prueba de escritorio).

Ejemplo de diagramas de flujo

Ejemplo: Se desea realizar el cálculo de la velocidad de un automóvil que recorre


una distancia x en un cierto tiempo t. (Emplear la fórmula):

a) Análisis del problema:

• Como datos de entrada se necesita el valor de la distancia (x) y el valor del


tiempo (t)

• En las restricciones se observa que el tiempo no puede ser nulo pues se


indetermina la operación, tampoco puede ser negativo. La distancia puede ser
positiva o negativa, ya que el automóvil puede ir retrocediendo, pero no puede
ser nula porque el problema indica que el automóvil recorre una cierta distancia.

Finalmente se obtiene como resultado la velocidad tras aplicar la fórmula:

Donde la velocidad puede aumentar (si el resultado es positivo) o disminuir (si el


resultado es negativo

b) Construcción del diagrama de flujo


Prueba de escritorio:

1. Inicio
2. x=3
3. ¿x=0? NO, al paso 4
4. t=0
5. ¿t 0? SÍ, ir al paso 7
6. v=3/0=0
Dados los valores x=3, t=0

1. Inicio
2. x=3
3. ¿x=0? NO, al paso 4
4. t=0
5. ¿t 0? SÍ, ir al paso 7
6. v=3/0=0
7. Fin

Dados los valores x=5, t=7


1. Inicio
2. x=5
3. ¿x=0? NO, al paso 4
4. t=7
5. ¿t ≤ 0? NO, ir al paso 6
6. v=5/7=0.715
7. Fin

Errores más comunes que se pueden cometer

1. Crear un diagrama de flujo sin analizar el problema previamente.

2. Dar por sentado que el diagrama de flujo está bien diseñado sin haber
realizado la prueba de escritorio para verificarlo.

3. No seguir las indicaciones dadas para diseñar diagramas de flujo.

4. No realizar la prueba de escritorio tomando valores críticos, pues éstos


demostrarían si el diagrama de flujo toma o no en cuenta las restricciones
establecidas.

Estructura secuencial
Objetivos
El alumno conocerá los elementos indispensables de un ambiente de
programación y será capaz de realizar programas básicos en lenguaje C.
Al final de esta práctica el alumno podrá:

1. Decir cuáles son las partes básicas de un programa en lenguaje C.


2. Conocer un ambiente de programación.

3. Realizar exitosamente programas básicos (compilación y ejecución).

Introducción
Cuando se desarrolla un programa de computadora, éste debe ser convertido
del lenguaje de programación en que fue escrito, por ejemplo, C, a una forma
que la computadora pueda ejecutar, es decir a binario. El primero se denomina
el código fuente del programa y el segundo constituye el programa ejecutable.
En DOS y WINDOWS el programa ejecutable se reconoce porque tiene la
extensión .exe. Normalmente la elaboración de programas de computadora se
efectúa en lo que se denomina un ambiente integrado de desarrollo. Éste es un
programa que contiene un editor en donde el programador escribe el código
fuente del programa que desarrolla, el sistema completo del compilador, que
incluye el compilador, el enlazador y un depurador para la búsqueda de errores
de lógica, y finalmente un sistema de ayuda que incluye apoyo para la sintaxis
del lenguaje. Los pasos que se siguen para elaborar un programa en lenguaje C
son:
a) Edición del programa, es decir, escritura del código fuente. b) Compilación del
programa que incluye el preprocesado, la compilación y el enlazado con
funciones externas al programa que se desarrolla. c) Ejecución del programa y
verificación de que no existen errores de lógica.
Una vez escrito el código fuente del programa, el programador procede a
compilarlo. Internamente el proceso de compilación implica primero, pasar el
archivo conteniendo el código fuente por un preprocesador. Todas las
instrucciones dirigidas al preprocesador van antecedidas por el símbolo #. Una
vez que el compilador toma el código que entrega el preprocesador, lo convierte
en instrucciones llamadas código objeto, las cuales ya pueden ser entendidas
por la computadora, pero todavía no pueden ser ejecutadas por ella. Este
proceso genera un archivo intermedio que frecuentemente tiene la extensión
.obj.

Estructura de un programa básico en lenguaje C


A continuación, se elabora un primer programa en C empleando el editor
integrado al entorno de desarrollo que se haya instalado en la computadora. Este
programa mostrará un mensaje de saludo en el monitor.
Escribirlo exactamente como aparece a continuación:

/* Programa que muestra un mensaje de saludo en el monitor */


#include <iostream.h>
int main(void)
{
cout << “Hola mundo";
return 0;
}

Una vez escrito el programa anterior debe guardarse en disco y darle un nombre
apropiado que contenga la extensión .c, por ejemplo hola.c.
La primera línea del programa es simplemente un comentario que no será
tomada en cuenta por el compilador. El comentario inicia inmediatamente
después de los símbolos /* y termina al iniciar los símbolos */, es decir, los
comentarios deben colocarse entre los símbolos antes mencionados.

La segunda línea de código es una instrucción dirigida al preprocesador. En este


caso la instrucción le indica que incluya el archivo iostream.h que se encuentra
en el sistema del compilador. Este archivo contiene la información necesaria para
que el compilador verifique que la función que imprime el mensaje en el monitor,
es decir cout, se invoque correctamente. En otras palabras, el archivo iostream.h
contiene la información que permite verificar la sintaxis de invocación de cout y
de otras funciones de la biblioteca estándar que intervienen en el ingreso y la
salida de datos.

Todo programa en C debe contener la función main. En main empieza el


programa y también normalmente termina. El cuerpo de main se coloca entre
llaves { }, main es el subprograma principal, es el que tiene el control del
programa. La definición de main comienza especificando la información que
proporciona como dato de salida, que es de tipo entero (int) y se coloca después
entre paréntesis los argumentos que recibe, es decir, la información externa que
será suministrada a la función. Como en este caso main no recibe información
alguna del exterior para ser procesada, no tiene argumentos, por lo que los
paréntesis contienen la palabra reservada void que significa vacío. La función
main es de tipo entero, de modo que debe regresar un valor entero, lo cual se
especifica al finalizar la función con la instrucción return 0. Un programa debe
tener sólo una función main.

Se observa cómo dentro del cuerpo de main se invoca a la función de la


biblioteca estándar cout -del inglés impresión por consola-. Esta función es la
que se encarga de imprimir el texto que está entrecomillado dentro de las
comillas de la misma función.

Ahora que se ha guardado el programa se puede proceder a compilarlo, y si todo


sale bien, a ejecutarlo. Es importante mencionar que, si no se escribe el
programa correctamente, éste puede contener errores de sintaxis que habrá que
corregir hasta obtener una compilación sin errores. Por lo que el proceso de
edición y compilación debe repetirse hasta que no exista un mensaje de error o
advertencia. Una vez que el compilador avise que no existen errores, se puede
proceder a ejecutar el programa. Para el ejemplo mostrado, el resultado será la
visualización en la pantalla del mensaje: Hola mundo.

Aun cuando este ejemplo sólo se compone de los elementos antes mencionados,
es conveniente hacer notar que la mayoría de los programas elaborados en
lenguaje C y con base en su complejidad, también pueden contener los
siguientes elementos:
a) Declaraciones: donde las variables y constantes globales se declaran en
la cabecera del programa, antes del main, mientras que las variables y
constantes locales se declaran dentro del bloque de las funciones, o de
preferencia al inicio de cualquier bloque.
b) Funciones secundarias definidas por el usuario: grupo de instrucciones que
realizan una o más acciones en el momento en que se llaman dentro del
programa principal.

Ejemplos
/* Ejemplo 1: Programa que calcula el volumen de una esfera */
#include <iostream.h>
int main (void)
{
float radio, volumen; radio = 2;
volumen = 4. / 3. * 3.1416 * radio * radio * radio ;
cout << “el volumen de la esfera es : ” << volumen;
return 0;
}

/* Ejemplo 2: Programa que imprime dos iniciales que introduce el usuario */


#include <iostream.h>
int main(void)
{
char uno, dos;
cout << “Introduzca la primera y segunda inicial” << endl;
cin >> uno >> dos;
cout << “Las iniciales son: ” << uno << “ ” << dos;
return 0;
}

/*Ejemplo 3: Programa que determina el valor de la expresión aritmética: z=x/y


+1 */
#include <iostream.h>
int main(void)
{
float x, y, z;
cout << “Dame el valor de x ” << endl;
cin >>x;
cout << “Dame el valor de y ” << endl;
cin >> y;
z=x/y + 1;
cout << “El valor de z es: “ << z;
return 0;
}

Errores comunes que se pueden cometer:


1. Ubicar incorrectamente un punto y coma. Por ejemplo, colocarlo al final
de las directivas include o después del paréntesis que cierra en main.
2. Especificar un formato diferente al declarado para una variable al
momento de imprimir resultados o leer datos usando las funciones cout y
cin, respectivamente.
3. Olvidar colocar dentro de la sentencia cin el símbolo >> que permite
guardar datos en una variable, accediendo a su dirección en memoria.
Ejercicios
Nota: No olvidar realizar el seudocódigo y el diagrama de flujo antes de elaborar
el programa

1. Realizar un programa que imprima en pantalla “el nombre del curso”, “el día
de hoy” y “tu nombre”.

Seudocódigo

Diagrama de Flujo

Lenguaje C++

Ejecución
2. Escribir un programa que lea la temperatura en grados Celsius y la escriba
en grados Fahrenheit. Hacer uso de la fórmula f = 32 + °C*9/5

Seudocódigo

Diagrama de Flujo
Lenguaje C++

Ejecución
3. Determinar el valor de la siguiente expresión aritmética: r = (a + b) (c + d
). El alumno deberá proporcionar los valores de las variables.

Seudocódigo

Diagrama de Flujo

Lenguaje C++

Ejecución
4. Un sistema de ecuaciones lineales ax + by = c, dx +ey = f se puede
resolver con las siguientes fórmulas:
{xae-bd=ce-bf yae-bd=af-cd

Seudocódigo

Diagrama de Flujo
Lenguaje C++
5. Escribir un programa que lea dos conjuntos de coeficientes (a, b y c; d, e
y f) y calcule los valores de x, y.

Seudocódigo

Diagrama de Flujo

Lenguaje C++
6. Escribir un programa que lea la masa de dos cuerpos y la distancia entre
ellos. Y que continuación obtenga la fuerza gravitacional. (Tomar en cuenta que
la constante gravitacional es G = 6.673x10 Nm /kg ).
-11 2 2

F=Gm1m2r2

Seudocódigo

Diagrama de Flujo

Lenguaje C++
7. Cierta bombilla tiene una resistencia de 240 Ω cuando se enciende.
¿Cuánta corriente fluirá a través de la bombilla cuando se conecta a 120 V que
es el voltaje de operación normal? (Considerar que V=RI)

Seudocódigo

Diagrama de Flujo
Lenguaje C++
8. El calor específico del agua es de 4184 J ¿En cuántos joules cambia la
energía interna de 50 g de agua cuando se calienta desde 21 °C hasta 37 °C?
(Usar E = cm∆T Donde c: calor específico, m: masa, T: temperatura interna (∆T
= T final – T inicial).

Seudocódigo

Diagrama de Flujo

Lenguaje C++
9. Escribir un programa que lea la temperatura en grados Celsius y la escriba
en grados Kelvin. Hacer uso de la fórmula °K = °C + 273.

Seudocódigo

Diagrama de Flujo
Lenguaje C++
10. Realizar un programa que muestre únicamente en pantalla el siguiente
menú:

Operaciones:
1.- suma
2.- resta
3.- multiplicación
4.- división

Seudocódigo

Diagrama de Flujo

Lenguaje C++

También podría gustarte