0% encontró este documento útil (0 votos)
97 vistas

Programacion

El documento describe los pasos para resolver problemas mediante programación. Explica que los programadores escriben programas para resolver problemas expresando algoritmos en lenguajes de programación. Luego resume los pasos clave para la solución de problemas que incluyen comprender el problema, diseñar una solución, probar el diseño, codificarlo en un lenguaje de programación, depurarlo si es necesario.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
97 vistas

Programacion

El documento describe los pasos para resolver problemas mediante programación. Explica que los programadores escriben programas para resolver problemas expresando algoritmos en lenguajes de programación. Luego resume los pasos clave para la solución de problemas que incluyen comprender el problema, diseñar una solución, probar el diseño, codificarlo en un lenguaje de programación, depurarlo si es necesario.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 68

INTRODUCCIÓN

A menudo nos hacemos la pregunta del por qué los programadores escriben un
programa. Esto es para resolver un problema por lo que el propósito de nuestro
estudio será el enseñar y aprender un método de solución de problemas con
programas de computadora mediante el estudio de la programación.

Lenguajes de programación
Permite expresar un algoritmo comprensible para un ordenador

¿Qué es un algoritmo?
• Fórmula para resolver un problema
• Consta de una serie de pasos
• Se aplica de forma mecánica
• Se aplica en un tiempo finito

Se definirá un algoritmo como un conjunto finito de instrucciones que especifican


la secuencia ordenada de operaciones a realizar para resolver un problema. En
base a lo anterior, si el procesador del algoritmo es una computadora, el algoritmo
debe estar expresado en forma de un programa, el cual se escribe en un lenguaje
de programación. A la actividad de expresar un algoritmo en un lenguaje de
programación determinado se le denomina programar

DISTINTAS TECNOLOGÍAS
Lenguaje de programación: refleja un paradigma

1
PROYECTO INFORMÁTICO
Ordenadores e informática son términos que van unidos y se complementan. La
informática estudia el tratamiento automático de la información a través de
medios electrónicos. Y estos son los ordenadores.

El ordenador es la máquina electrónica que trata la información mediante el


programa almacenado en su memoria.

El proceso de datos con ordenador mecaniza y automatiza la realización de


tareas rutinarias.

PASOS PARA LA SOLUCIÓN DE PROBLEMAS


Cada paso deberá seguirse cuidadosamente. Intentar abreviar el proceso
pasando demasiado aprisa por los primeros pasos aumenta la posibilidad de
errores en la solución.

1. Comprender el problema
Primero debemos analizar cuidadosamente los requerimientos del problema.
Debemos insistir en que los requerimientos del problema sean claramente
especificados en términos de los resultados esperados. Se debe de determinar:
• La fuente y el tipo de datos para la entrada: la interacción de los datos
y su transformación
• El destino y el formato de la salida

2. Diseñar una solución


Los pasos preliminares de una solución pueden escribirse como una
secuenciación sin tomar mucho en cuenta la necesidad de comunicar nuestra
solución a otros. Además, necesitamos organizar la información para que sea
comprensible para nosotros y los demás. Utilizaremos un lenguaje de definición
del programa. Ejemplo:
CompararParDeNumeros

ImprimirEncabezado ProcesarNumeros

PedirParDeNumeros LeerParDeNumeros CompararNumerosEImpri


mirMensaje

3. Probar el diseño
Debemos estar convencidos de que la lógica descrita en el diseño resuelve de
hecho el problema planteado. ¿Sí realizamos la secuenciación obtendremos la
salida que esperamos a partir de la entrada suministrada? Si no, debemos
regresar al paso 2, corregir el diseño y luego probar otra vez.

2
4. Traducir el diseño a un lenguaje de programación
Este paso también se lo llama codificación, o sea traducir un diseño a un lenguaje
de programación. Ahora debemos considerar todas las reglas de organización y
puntuación del lenguaje de programación.

5. Preparar el problema en el lenguaje seleccionado (C++, C#, Python.


etc.)
Capturar en la computadora con la ayuda de un editor el programa traducido.
Este paso requiere la edición (creación o modificación) del texto. Aquí es donde
comenzamos a utilizar el IDE o ambiente integrado de desarrollo del sistema por
ejemplo lenguaje C++, visual studio etc.

6. Compilación del programa


El traductor del lenguaje seleccionado, o también llamado compilador, nos
indicará si hemos empleado correctamente la organización y la puntuación. Si
existen errores hay que regresar al paso 5.

7. Correr el programa y comprobar los resultados


Debemos probar nuestra lógica para determinar si es correcta, probar el
programa con datos que estén al límite, números grandes o pequeños.

Si existen problemas es necesario descubrir qué pudo haber causado los


resultados erróneos podemos usar diversas técnicas para eliminar el error.

8. Depurar si es necesario (debug)


La eliminación de errores se conoce como depuración (debugging). Aquí se
determina si el error es causado por:
• Mal entendido del lenguaje de programación (regresar al paso 4).
• Por el diseño defectuoso (regresar al paso 2)
• O por falta de comprensión del problema (regresar al paso 1).

ALGORITMOS
INTRODUCCIÓN
A menudo nos hacemos la pregunta del por qué los programadores escriben un
programa. Esto es para resolver un problema por lo que el propósito de nuestro
estudio será el enseñar y aprender un método de solución de problemas con
programas de computadora mediante el uso de algoritmos y diagramas que
faciliten la programación estructurada.

3
DISEÑO DE UN PROGRAMA
Normalmente para la construcción de un programa los ingenieros de sistemas
o de software siguen una secuencia de pasos descritos como metodologías
de desarrollo de software, cada una de las cuales contempla una serie de
pasos y productos hasta la misma prueba y verificación de que el software
resuelve el problema planteado en un inicio, pero en resumen las etapas son
las siguientes:

1. Análisis
2. Diseño
3. Implementación y
4. Evaluación

A continuación, se muestran algunos ejemplos:

Ciclo de desarrollo de software clásico

Modelo de desarrollo en espiral

4
Metodología scrum

Los pasos que se siguen generalmente a la hora de desarrollar un programa


son los siguientes:
• Análisis de requerimientos: Se define el problema a resolver y todos
los objetivos que se pretenden, pero sin indicar la forma en la que se
resuelve.
• Especificación: Se determina la forma en la que se resolverá el
problema, pero sin entrar aún en su implementación informática. Se
determina asimismo la interfaz con el usuario.
• Diseño del programa: Se divide el problema en módulos, se especifica
lo que hace cada módulo, así como las interfaces de cada uno de ellos.
• Diseño detallado de los módulos: Para cada módulo se diseñan
detalladamente las estructuras de datos y los algoritmos a emplear,
normalmente descritos mediante pseudocódigo.
• Codificación: Se escribe el programa en el lenguaje de programación
elegido.
• Pruebas de módulos: Se prueban los módulos del programa
aisladamente y se corrigen los fallos hasta conseguir un funcionamiento
correcto.
• Integración y Prueba de sistema: Se unen todos los módulos, y se
prueba el funcionamiento del programa completo.

Distribución del esfuerzo de la actividad software (sin tener en cuenta


el mantenimiento):
✓ Análisis y Diseño: 38%
✓ Codificación: 20%
✓ Test e integración: 42%.

5
CONCEPTO DE ALGORITMO
• Como algoritmo denominamos un conjunto ordenado y finito de
operaciones simples a través del cual podemos hallar la solución a un
problema. La palabra algoritmo proviene del latín tardío alborarismus,
y este a su vez es una abreviación del árabe clásico ḥisābu lḡubār, que
significa ‘cálculo mediante cifras arábigas’.

• En informática o programación, el algoritmo es la secuencia de


instrucciones mediante la cual podemos resolver un problema o
cuestión. De hecho, todas las tareas ejecutadas por la computadora se
basan en algoritmos. Un software o programa informático está
diseñado a base de algoritmos, de modo que podemos introducir una
tarea en él y resolverla.

• En términos generales puede definirse un algoritmo como el método


para resolver un determinado problema. El ejecutor de las
instrucciones que realiza la tarea correspondiente se llama
procesador. Existen algoritmos que describen toda clase de procesos,
por ejemplo: las recetas de cocina, las partituras musicales, etc. Un
procesador realiza un proceso siguiendo o ejecutando el algoritmo
correspondiente

• Un algoritmo debe estar expresado de tal forma que el procesador lo


entienda para poder ejecutarlo. Se dice que el procesador es capaz de
interpretar el algoritmo, si el procesador puede realizar lo siguiente:
1. Entender lo que significa cada paso
2. Llevar a cabo la sentencia correspondiente

Esto significa que para que un algoritmo pueda ser correctamente


ejecutado, cada uno de sus pasos debe estar expresado de tal forma
que el procesador sea capaz de entenderlos y ejecutarlos
adecuadamente

• Se definirá un algoritmo como un conjunto finito de instrucciones que


especifican la secuencia ordenada de operaciones a realizar para
resolver un problema. En base a lo anterior, si el procesador del
algoritmo es una computadora, el algoritmo debe estar expresado en
forma de un programa, el cual se escribe en un lenguaje de
programación. A la actividad de expresar un algoritmo en un lenguaje
de programación determinado se le denomina programar

• Un algoritmo es una secuencia finita de instrucciones, cada una de


ellas con un claro significado, que puede ser realizada con un esfuerzo
finito y en un tiempo finito

• A un algoritmo que suministra una solución buena, pero no


necesariamente óptima, se le denomina algoritmo heurístico

6
• Un algoritmo es una secuencia finita de instrucciones, cada una de
ellas con un claro significado, que puede ser realizada con un esfuerzo
y un tiempo finitos. Por ejemplo, una asignación como x= y+z es una
instrucción con estas características

Un algoritmo se puede especificar mediante la utilización de un lenguaje de


programación. Sin embargo, generalmente se suelen utilizar técnicas de
descripción de algoritmos más o menos independientes del lenguaje de
programación.

¿Qué es un algoritmo?
• Fórmula para resolver un problema
• Consta de una serie de pasos
• Se aplica de forma mecánica
• Se aplica en un tiempo finito

Uso de la computadora en la resolución de problemas


En general, se escriben algoritmos para resolver problemas que no son tan
fáciles de resolver a primera vista, y de los que necesitamos especificar el
conjunto de acciones que se llevarán a cabo para su resolución. Además,
como lo que interesa es resolver problemas utilizando la computadora, los
algoritmos tendrán como finalidad ser traducidos en programas, por lo que
es conveniente mencionar el proceso general de resolución de problemas,
desde que se dispone de un algoritmo, hasta que la computadora lo ejecuta.

Proceso general de resolución de problemas con la computadora

7
CONDICIONES CON LAS QUE DEBE DE CUMPLIR UN ALGORITMO

Estructura de un algoritmo
Aunque no existe una única forma de representar un algoritmo, la estructura
general de un algoritmo debería ser como la mostrada a continuación:

8
Definición del problema
Construir un modelo de solución que resuelva el problema de calcular el área
de un triángulo con la fórmula área igual a base por altura sobre dos.

AREA = BASE * ALTURA


2
Lo básico es resolver la pregunta ¿Qué vamos a hacer? y ¿Cómo lo vamos a
hacer? y para resolverlas es indispensable identificar:

Variable(s) Entrada Proceso u operación Variable(s) salida

BASE AREA = BASE * ALTURA AREA


ALTURA 2

Entrada: Dos números positivos: BASE y ALTURA.


Salida: Un número que representa el AREA donde se reemplace según la
formula los valores de BASE y ALTURA.
Proceso: La solución está basada multiplicar BASE por ALTURA y esa
multiplicación dividirla para 2.

El ejemplo anterior ilustra el proceso de resolución que se debería seguir para


resolver un problema, ya que, partiendo de este análisis inicial, la idea será
entonces ir particularizando cada parte en un refinamiento progresivo, hasta
llegar a un algoritmo más refinado y funcional.

9
Pruebas de algoritmos
Una vez que se ha generado un algoritmo que parece correcto, una de las
partes más importantes dentro de su diseño es la referente a las pruebas. La
parte de la validación de los datos de entrada al algoritmo es también un
aspecto importante.

Una vez que se tiene una solución algorítmica de un problema, no se debería


suponer o creer que funcionará bien siempre. En el diseño del algoritmo se
deben considerar al menos algunos casos de prueba. Es habitual que el
domino de trabajo de un algoritmo sea un conjunto de elementos y entonces
sería bueno saber por ejemplo ¿Cómo se comporta el algoritmo en los límites
del conjunto? ¿Dado un mismo dato de entrada obtengo siempre la salida
esperada? entre otras preguntas.

La fase de prueba de los algoritmos es una parte fundamental dentro del


diseño de este, y se recomienda ampliamente adoptarlo como práctica
habitual, ya que es una importante técnica de programación.

Terminología en el manejo de algoritmos


• Nivel descripcional: Grado de detalle (mientras más bajo, más
detallado es).
• Secuencia: Orden de las instrucciones en un algoritmo.
• Bifurcación: Tipo de instrucción como pregunta y cuya respuesta
lleva a efectuar una operación.
• Iteración: Paso a la ejecución de una instrucción (ciclo, bucle, loop,
lazo).
• Variable: Elemento de almacenamiento de los datos que se van a
utilizar en el desarrollo del algoritmo. El contenido puede variar
durante el proceso.
• Asignación: Conferir el valor a cierta variable "=",”<-”.
• Programación estructurada: Técnicas que permiten desarrollar
programas que sean fáciles de depurar y poner a punto, legibles. etc.

IDENTIFICADORES
Los identificadores son nombres creados para designar constantes, variables,
tipos, funciones, procedimientos etc., que forman parte de un programa.

Un identificador consta de uno o más caracteres (letras, dígitos y caracteres


de subrayado); el primero debe ser una letra. El número de caracteres no
debe superar una longitud máxima dependiendo del lenguaje de
programación que se utilice.

En algunos de los lenguajes se diferencia entre mayúsculas y minúsculas


mientras que en otros no. Por ejemplo: “A” equivale a “a” en Pascal; pero
en C equivalen “A” y “a” es decir variables distintas.

10
Ejemplo: Algoritmo Nombre_del_del_algoritmo.
Fin_algoritmo.

DIAGRAMA DE SINTAXIS DE UN IDENTIFICADOR VALIDO


Letra
Identificador
Letra

Dígito

Subrayado

VARIABLES
Una variable es el elemento de almacenamiento de los datos que se van a
utilizar en el desarrollo del algoritmo. Estos resultados se corresponden con
los datos iniciales como los resultados de operaciones efectuadas durante la
ejecución de un algoritmo. Las variables representan un lugar de
almacenamiento, cuyo contenido podrá variar durante el proceso y
finalmente se obtendrán los resultados con los datos contenidos en las
variables.

Las características de una variable son:


o Nombre: Para referenciar los datos almacenados en una variable se debe
antes asignar un nombre a esta. Para mayor claridad el nombre debe
coincidir con la información almacenada en esta. El nombre empieza con
una letra, no tiene espacios en blanco y no contiene caracteres especiales,
sólo se utiliza el carácter de separación (_).
o Contenido: Es el valor del dato almacenado en ella, al contenido se
accede por medio del nombre de la variable. La información almacenada
en una variable puede ser de tres tipos:
✓ Carácter: Nombres, direcciones o características y símbolos
alfanuméricos
✓ Tipo numérico: Utilizada para calcular resultados
✓ Información de tipo lógico para el control de procesos

Durante la elaboración de un algoritmo la misma variable debe almacenar


datos de un solo tipo.

o Ubicación: Está dada por el nombre de la variable, en el computador el


contenido de una variable ocupa un lugar en la memoria RAM. Para
acceder a este contenido se utiliza el nombre de la variable.

ASIGNACIÓN DE DATOS

• Asignaciones
Una variable puede tomar valores de dos formas:
• Por operación de asignación: (a= b+1);
• Por lectura (Leer a).

11
Está operación de asignación es de carácter destructiva porque el valor
anterior de la asignación se pierde y es reemplazado por el nuevo valor.

La variable puede aparecer a ambos lados de una operación de asignación y


es la forma como se trabaja con los contadores y acumuladores.

• Contadores
Son variables cuyo objetivo es ir contando cuántas veces se ha realizado un
proceso, se las utiliza como elemento ordenador que da como resultado el
número de veces que se ha realizado una acción. Es una variable entera.
Ejemplo:
Contador = Contador +1;

• Acumuladores
También son variables las cuales tienen como objeto sumarizar un conjunto
de valores en una variable. Son fundamentales en problemas que requieren
totalizar un dato para obtener un resultado.
Ejemplo:
Suma= Suma+2;
Total= salario + beneficios_de_ley;

EJEMPLO DE MODELO DE SOLUCION


Construir un modelo de solución que resuelva el problema de calcular el área
de un triángulo con la fórmula área igual a base por altura sobre dos.

Variable(s) Entrada Proceso u operación Variable(s) salida

BASE AREA = BASE * ALTURA AREA


ALTURA 2

Una variable se define como un identificador que se utiliza para almacenar todos los
datos generados durante la ejecución de un programa.
Existen ciertas reglas en cuanto a variables:
• Claras y con referencia directa al problema
• No espacios en blanco, ni símbolos extraños en ellas
• Se pueden usar abreviaturas, pero solo de carácter general
• No deben ser palabras reservadas del lenguaje

Ejemplos de buenas variables:


Nombre, Edad, SdoDiario, IngMensual, Perímetro, Calif1, etc.

OPERADORES ARITMETICOS
Un operador es un símbolo especial que indica al compilador que debe
efectuar una operación matemática o lógica.
Se reconoce los siguientes operadores aritméticos:

12
Operador Operación

+ Suma

- Resta

* Multiplicación

/ División

Div División entera

Mod Modulo o residuo

OPERADORES LÓGICOS
Los resultados se ven en la tabla:

Variables lógicas Cond1 OR Cond1 AND NOT


Cond1 Cond2 Cond2 Cond2 (Cond2)
Falso Falso Falso Falso Verdadero
Falso Verdadero Verdadero Falso Falso
Verdadero Falso Verdadero Falso Verdadero
Verdadero Verdadero Verdadero Verdadero Falso

OPERADORES RELACIONALES
Se utilizan siempre en operaciones de comparación, su resultado siempre es
un valor lógico (Verdadero o Falso), requiere de dos operados y pueden
trabajar cualquier tipo de dato.

Los operadores relaciónales que reconocen en muchos lenguajes como:

Operador Significado

= Igual que

> Mayor que

< Menor que

>= Mayor o igual que

<= Menor o igual que

<> No es igual o es diferente que

IN Pertenece A

13
Ejemplo:
5>10 Falso
-15.3<6 Verdadero.
'D'>'M' Falso

EXPRESIONES
Pueden estar compuestas por una variable (numérica o de caracter),
constantes, una cadena de caracteres encerrada entre comillas dobles
("cadena") o una expresión matemática.

JERARQUIA DE OPERACIONES
El problema de no tomar en cuenta la jerarquía de los operadores al plantear
y resolver una operación casi siempre conduce a resultados muchas veces
equivocados como estos:

Ejemplos:
2+ 3* 4 = 20(incorrecto)
Variable = 14 (correcto)

Si calif1=60 y calif2=80 y si entonces en programa se usa


Promedio = calif1 + calif2/2
Daría como resultado promedio = 100

Recordar siempre, que antes de plantear una fórmula en un programa se


deberá evaluar contra el siguiente:

Orden de operaciones:
1. Paréntesis
2. Potencias y raíces
3. Multiplicaciones y divisiones
4. Sumas y restas
5. Dos o más de la misma jerarquía u orden, entonces resolver de
izquierda a derecha

Nota: Si se quiere alterar el orden normal de operaciones, entonces usar


paréntesis.

Ejemplos de algoritmos:
1. Algoritmo para lavar la ropa blanca

14
2. Algoritmo para decidir si coger el paraguas

3. Algoritmo para clasificar libros

ESTRUCTURA GENERAL DE UN PROGRAMA


• Un programa se especifica por:
• Entradas
• Proceso
• Salida

Los procesos se definen por algoritmos


• Algoritmos: Conjunto de instrucciones
• Tipos de instrucciones:
o Asignación: x = 2
o Lectura y escritura: leer(a), escribir(b)
• Bifurcación: si condición entonces acción

15
Elementos de un lenguaje
• Palabras reservadas: si – entonces, Algoritmo – finalgoritmo,
mientras
• Identificadores
• Caracteres especiales: ‘=‘, ‘;’, ‘{‘
• Constantes
• Variables
• Expresiones: a = b * 5 – c

Datos y tipos de datos


• Datos simples y estructurados
✓ Tipos de datos:
o Numéricos
o Lógicos
o Carácter

Datos numéricos:
Enteros: -10, 6, 291
Reales: 1.5, -0.63, 54.4E-10

Datos lógicos:
• Booleano
✓ Verdadero / Falso

Datos de tipo carácter


• Carácter: ‘a’, …‘z’, ‘A’, …’Z’, ‘0’, …’9’,’+’,’-’,’*’
• Cadena: ‘Ejemplo de cadena.’

Constantes y variables
• Constantes: valores que no cambian
✓ Numéricas: 1.234, -10, 8
✓ Carácter: ‘B’, ‘ñ’, ‘4’
✓ Cadena: ‘Mesa’
✓ Lógicas: verdadero, falso
• Variable: datos cuyo valor puede cambiar
✓ Posee un nombre y un tipo
✓ Enteras, reales, carácter, lógicas, cadenas
✓ Ejemplos: A124, k, Nombre

Expresiones: Combinaciones de constantes, variables, operaciones, funciones


y paréntesis

Tipos de expresiones:
• Aritméticas: +, -, *, /, div, mod, ^
(4 + A) * 7 / B
• Lógicas: no, y, o, =, <, >, <=, >=, ≠
no (A > B) o (B ≠ 10)

16
• Funciones: raíz_cuadrada, cos, sen

Expresiones

Entrada y salida de información


• Dispositivos de entrada: teclado, disco
• Operación de entrada
Leer ( idDispositivo, lista variables)

Ejemplos
Leer (a, b, c) {Lectura de teclado}
Leer (idFichero, a, b, c) {Lectura de fichero}

• Dispositivos de salida: pantalla, impresora, disco


• Operación de salida
Escribir ( idDispositivo, lista variables)

Ejemplos
Escribir (a, b, c) {Mostrar por pantalla}
Escribir (idFichero, a, b, c) {Escritura en fichero}

APLICACIÓN PRÁCTICA
• Aplicación de las herramientas y de los pasos para la solución de problemas
computacionales
• Ejemplo: Dados los 3 lados de un triángulo: L1, L2 y L3 verificar si el
triángulo es Isósceles (dos lados iguales), Equilátero (tres lados iguales) o
Escaleno (tres lados distintos).

• Deber:
1. Probar si los tres lados L1, L2, L3 pertenecen o no a un triángulo: es un
triángulo si la suma de sus dos lados menores es mayor al lado mayor. Si es
triángulo identificar qué tipo de triángulo
2. Verificar si un número ingresado por teclado es o no un número primo
3. Verificar si un número ingresado por teclado es o no un número perfecto
4. ¿Cómo se realiza un cobro de una planilla eléctrica?
5. Cómo se realiza la compra de distintos productos en un almacén

17
PROGRAMACIÓN ESTRUCTURADA
Introducción. Teorema de la programación estructurada
El principio fundamental de la programación estructurada es que en todo
momento el programador pueda mantener el programa “dentro” de la cabeza.

Esto se consigue con:


a) Un diseño descendente del programa,
b) Unas estructuras de control limitadas y
c) Un ámbito limitado de las estructuras de datos del programa

Entre sus ventajas está el que: hace más fácil la escritura y verificación de
programas. Se adapta perfectamente al diseño descendente.

Para realizar un programa estructurado existen tres tipos básicos de estructuras


de control:
1. Secuencial: Ejecuta una sentencia detrás de otra
2. Condicional: Se evalúa una expresión y, dependiendo del resultado, se
decide la siguiente sentencia a ejecutar
3. Iterativa: Repetimos un bloque de sentencias hasta que sea verdadera una
determinada condición

INSTRUCCIÓN DE DECISIÓN
La gran mayoría de problemas de la vida real tiene una serie de condiciones
que determinan cuál es la solución requerida. Esta solución está
condicionada a diferentes posibilidades dependiendo de una u otra
particularidad. Para poder resolver estos problemas los algoritmos ofrecen
las siguientes instrucciones.

18
SI (CONDICIÓN) ENTONCES
Instrucciones1
SI – NO
Instrucciones2

La condición es una comparación de dos expresiones que siempre arroja un


resultado, verdadero o falso. Si el resultado de la condición es verdadera se
ejecutan las Instrucciones1, y si es falsa se ejecutan las Instrucciones2.

EJEMPLOS DE ALGORITMOS

Ejemplo: Hacer un algoritmo para una máquina controladora de personal


empresarial, donde la máquina permita conocer tanto la hora de salida y
llegada de almorzar, como la hora en que finaliza la jornada de cada uno de
los empleados de dicha empresa.

Algoritmo controlador
1. Inicio
2. Escribir(‘Ingrese la hora de entrada’)
3. Leer(HE)
4. SA = he+4
5. LLA = SA+1
6. HS = LLA +4
7. Escribir(‘Hora de salir a almorzar’, SA)
8. Escribir(‘Hora de entrada de almorzar’, LLA)
9. Escribir(‘Hora de salida’, HS)
10.Fin

Ejemplo: En el caso del primer ejemplo se informa que existen dos tipos de
empleados, los obreros y los ejecutivos, cuyas características son que los
primeros trabajan 8 horas en dos turnos de 4 con 1 hora de almuerzo y los
ejecutivos 10 horas en dos turnos, también con una hora de almuerzo.

Algoritmo controlador
1. Inicio
2. Escribir(‘Ingrese la hora de entrada’)
3. Leer(HE)
4. Escribir (‘Escoja el tipo de empleado OBRERO o EJECUTIVO’)
5. Leer(TE)
6. SI (¿TE = "Obrero"?) ENTONCES
6.1 Si. Ir a 7
6.2 No. Ir a 11
7. SA = HE + 4
8. LLA = SA+1
9. HS = LLA + 4
10.Ir a 14
11.SA = HE + 5
12.LLA = SA+1

19
13.HS = LLA + 5
14.Escribir(‘El empleado del Tipo’, TE)
15.Escribir(‘Hora de salir a almorzar’, SA)
16.Escribir(‘Hora de entrada de almorzar’, LLA)
17.Escribir(‘Hora de salida’, HS)
18.Fin.

Ejemplo: Sí llegó entre las 8 y las 8:15 trabaja 8 horas y tiene dos de
almuerzo, si llegó después de las 8:15 debe trabajar 9 horas y solo una de
almuerzo.
Si llegó antes de las 8 se le define llegada a las 8.

Algoritmo controlador
1. Inicio
2. Escribir(‘Ingrese la hora de entrada’)
3. Leer(HE)
4. SI ¿(HE >= 8 ) AND (HE <= 8.15)? ENTONCES
4.1 Sí. Ir a 5
4.2 No. Ir a 9
5. SA = HE +4
6. LLA = SA+2
7. HS = LLA +4
8. Ir a 12
9. SA = HE + 5
10.LLA = SA+1
11.HS = LLA +4
12. Escribir(‘Hora de salir a almorzar’, SA)
13. Escribir(‘Hora de entrada de almorzar’, LLA)
14. Escribir(‘Hora de salida’, HS)
15. Fin

Ejemplo: Hacer un algoritmo que pida los tres lados de un triángulo, y diga
si el triángulo es Equilátero, Isósceles o Escaleno.
Escaleno= tres lados desiguales.
Isósceles = dos lados iguales
Equilátero = tres lados iguales.

Algoritmo tipo_triángulo.
1. Inicio.
2. Escribir(‘Ingrese los lados del triángulo’))
3. Leer(L1)
4. Leer(L2)
5. Leer(L3)
6. SI ¿(L1 = L2) AND (L2 = L3)? ENTONCES
6.1 Si Ir a 7
6.2 No a 9
7. Escribir(‘Equilátero’)
8. Ir a 14

20
9. SI ¿(L1=L2)OR(L2=L3)OR(L1=L3)? ENTONCES
9.1 Sí. Ir a 10
9.2 No. Ir a 12
10. Escribir (‘Isósceles’)
11. Ir a 14
12. SI ¿(L1<>L2)AND(L2<>L3)AND(L1<>L3)? ENTONCES
12.1 Si. Ir a 13
12.2 No. Ir a 14
13. Escribir (‘Escaleno’)
14. Fin.

Ejemplo: Variación del ejemplo anterior sin la condición de "Escaleno"

Algoritmo tipo_triángulo.
1. Inicio.
2. Escribir(‘Ingrese los lados del triángulo’))
3. Leer(L1)
4. Leer(L2)
5. Leer(L3)
6. SI ¿(L1 = L2) AND (L2 = L3)? ENTONCES
6.1 Si Ir a 7
6.2 No a 9
7. Escribir(‘Equilátero’)
8. Ir a 13
9. SI ¿(L1=L2)OR(L2=L3)OR(L1=L3)? ENTONCES
9.1 Sí. Ir a 10
9.2 No. Ir a 12
10. Escribir (‘Isósceles’)
11. Ir a 13
12. Escribir (‘Escaleno’)
13. Fin.

Ejemplo: Sumar 3 veces dos números

Algoritmo_sumar
1. Inicio
2. Escribir (‘Ingrese 2 números’)
3. Leer(S1, S2)
4. Total =0
5. Total = S1+S2
6. Total= Total+S1+S2
7 Total= Total+S1+S2
8. Escribir(‘El total es = ‘, Total)
9. Fin.

• Deber:
1. Realizar un algoritmo que lea dos números y realice el cálculo de suma,
resta multiplicación y división entre dichos números

21
2. Diseñar un algoritmo que permita obtener el promedio de 4 notas
3. Diseñar un algoritmo que permita determinar si un año es bisiesto. Un
año es bisiesto si es múltiplo de 4. Los años múltiplos de 100 no son
bisiestos salvo si ellos son también múltiplos de 400 (Ejemplo: 2000
es bisiesto, 1800 no lo es)
4. Diseñar un algoritmo que permita ingresar una letra y decir si es no
vocal
5. Diseñar un algoritmo que permita encontrar el mayor de 3 números
6. Diseñar un algoritmo que permita encontrar el mayor, menor y el
número intermedio entre 3 números considere también los casos en
los que exista más de un número igual
7. Diseñar un algoritmo en el que dada la siguiente ecuación:
AX 2 + BX + C = 0
Encontrar:

Considere los casos:


• Si el discriminante es mayor a 0 la respuesta será dos números
reales distintos
• Si el discriminante es igual a 0 la respuesta será dos números reales
iguales
• Si el discriminante es menor a 0 la respuesta será dos números
imaginarios

ESTRUCTURAS DE REPETICIÓN O BUCLES O CICLOS

DEFINICIÓN
Un bucle no es más que una serie de instrucciones que se repiten.
Podemos tener 3 tipos de bucles según lo que nos interese comprobar.
Tenemos un bucle que se repite mientras se cumple una condición
determinada, otro que se realiza hasta que se cumple la condición que
marcamos y un tercero para cuantas veces ya definidas hay que repetir.

22
RESUMEN:
ESTRUCTURAS DE REPETICIÓN:
• Mientras- hacer
• Repetir- hasta
• Desde/Para (for)

A la hora de utilizar un bucle, sea del tipo que sea, debemos ir con cuidado
y pensar cuando debe acabar ya que si no tuviéramos en cuenta esto
podríamos entrar en un bucle sin fin, o sea que iríamos repitiendo las mismas
líneas teniendo que abortar la aplicación, para poderla finalizar.

Por esto es de suma importancia que pensemos, antes de hacer nada, en qué
momento, como, donde y porque debe acabar el bucle.

ESTRUCTURA MIENTRAS-HACER
En nuestro curso esta estructura básica de un bucle Mientras se
representará de la siguiente manera:

Mientras (Condición) Hacer


Instrucción 1
Instrucción 2
Fin del Mientras

Explicaremos línea a línea este bucle:


• Primera línea: En esta línea pondremos la <condición> que se debe
dar para que se ejecute el bucle. En el momento que la condición sea
Falsa se terminará el bucle y se continuará con las siguientes
instrucciones.

• Segunda línea: Línea o líneas donde pondremos las instrucciones a


efectuar en caso de que la condición sea VERDADERA.

• Tercera línea: Fin del bucle Mientras.

De aquí se pasa a la primera línea del bucle para volver a mirar la condición.

Ejemplo: Escriba un algoritmo que permita calcular el área de N triángulos:

Algoritmo_area_triángulo
1. Inicio
2. Escribir(‘Ingrese el número de triángulos a realizar el cálculo’)
3. Leer (N)
4. I = 1
5. Mientras (I <= N) hacer
5.1 Escribir(‘Ingrese la base y la altura de triángulo’, I)
5.2 Leer (base, altura)

23
5.3 Area = (base * altura)/2
5.4 Escribir(‘El Área del triángulo’, I, ‘es: ‘,Area)
5.5 I = I+1
5.6 Fin de MIENTRAS
6. Fin

Ejemplo: Sumar N veces dos números

Algoritmo_Sumar dos números


1. Inicio
2. Escribir (‘Ingrese los dos números a sumar y el número de veces a
sumarlos’)
3. Leer (A,B,N)
4. SI ¿(N>0) AND( N int(N))? ENTONCES
4.1 Sí, Ir a 5
4.2 No, Ir a 2
5. I=1
6. Total =0
7. Mientras ¿I<=N? hacer
7.1 Total = Total +A+B
7.2 I = I+1
7.3 Fin de Mientras
8. Escribir(‘El total es ’,Total)
9. Fin.

Ejemplo: Hallar el máximo común divisor entre dos números

Algoritmo_MCD
1. Inicio
2. Escribir (‘Ingrese los dos números’)
3. Leer(a,b)
4. c= a mod b
5. Mientras (c!= 0) hacer
5.1 a=b
5.2 b= c
5.3 c= a mod b
5.4 fin del mientras
6. Escribir(b)
7. Fin

• Deber
1. Escriba el algoritmo que permita obtener los n primeros números impares y
su suma
2. Algoritmo de la multiplicación
3. Algoritmo de la multiplicación por sumas sucesivas
4. Algoritmo que permita imprimir el nombre de 2 personas
5. Algoritmo que permita imprimir el nombre de N personas

24
6. Algoritmo para calcular Y como una función de X de acuerdo a la expresión
2 3
Y= 1.5x+2.5x -9.8x para cada paso imprimir X y Y para valores entre 1 y
9.9 con un incremento de 0.1.

ESTRUCTURA REPETIR – HASTA


Esta es otra estructura de bucle pero tiene un pequeño matiz que la hace
diferente a la ya estudiada anteriormente. Tanto una como la otra se utilizan,
pero cada una de ellas va bien para según qué caso ya que ese matiz puede
hacer su uso muy diferente.

Repetir
Instrucción 1
Instrucción 2
HASTA (condición)

Observe que esta estructura primero ejecutaría las instrucciones y


después miraría si se cumple o no la condición, con lo que tenemos que
tener mucho cuidado ya que las instrucciones como mínimo se ejecutarán
una vez (las veces restantes ya dependerán de la condición). La condición se
evalúa después de realizar las instrucciones y no antes como pasaba en el
caso del Mientras.

Ejemplo: Escriba un algoritmo que permita calcular el área de N triángulos:

Algoritmo_area_triángulo
1. Inicio
2. Escribir(‘Ingrese el número de triángulos a realizar el cálculo’)
3. Leer (N)
4. I = 1
5. REPETIR
5.1 Escribir(‘Ingrese la base y la altura de triángulo ’,I)
5.2 Leer(base, altura)
5.3 Area = (base * altura)/2
5.4 Escribir(‘El Área del triángulo: ‘,I,’ es: ‘, Area)
5.5 I = I+1
6. HASTA (I > N)
7. Fin

• Deber:
1. Diseñar un algoritmo que permita encontrar la sumatoria de los n primeros
números primos
2. Diseñar un algoritmo que permita encontrar la sumatoria de los n primeros
números perfectos. Un número es perfecto cuando es igual a la suma de
todos los números para los cuales es divisible excepto el mismo número. (6
= 1+2+3)
3. Diseñar un algoritmo que permita realizar la operación de multiplicación de
dos números utilizando sumas sucesivas

25
4. Diseñar un algoritmo que permita realizar la operación de potenciación
utilizando sumas sucesivas
5. Diseñar un algoritmo que permita encontrar el factorial de un número

ESTRUCTURA DESDE / PARA(FOR)


Son el número total de veces que se desea ejecutar las acciones del bucle
(número de interacciones fijo), este ejecuta las acciones del cuerpo o del bucle
un número específico de veces y de modo automático controla el número de
interacciones o pasos a través del cuerpo del bucle.

La estructura For posee las siguientes partes:

For variable de control, valor inicial, valor final, incremento/decremento


Instrucción 1
Instrucción 2
Fin del For

El funcionamiento del for:


• El for es una estructura muy parecida a un mientras hacer con la diferencia
de que no requiere incrementar o decrementar el contador obligatoriamente
como una más de las instrucciones del bucle ya que se realiza
automáticamente.

• En el caso de que se conozca con anticipación el número de veces a repetir


un bucle, se podrá utilizar el for.

• Entre las reglas básicas de su funcionamiento hay que tener en cuenta que
el for requiere de una variable de control que actuará como un contador, su
primera interacción se realiza cuando la variable de control toma el valor
inicial, y la última interacción del bucle es cuando la variable de control toma
el valor final. Además, en cada interacción la variable de control se
decrementa o incrementa de acuerdo con el valor señalado en la declaración.

• Tanto la variable de control, como el valor inicial y el valor final deben ser del
mismo tipo y el for solo admite trabajar con valores ordinales tales como
enteros o caracter, los números reales no son ordinales.

Ejemplo: Sumar los 100 primero números enteros

Algoritmo_Sumar
1. Inicio
2. Total =0
3. For I,1,100, +1
3.1 Total = Total +I
3.2 Fin de FOR
4. Escribir(‘El total es ’,Total)
5. Fin.

26
Ejemplo: Sumar todos los números múltiplos de 3 que existen en el rango
del 1 al 50

Algoritmo_Sumar_rango
1. Inicio
2. Total =0
3. For I,1,50, +1
3.1 SI ¿I mod 3 = 0? ENTONCES
3.1.1 Si. Total = Total +I
3.2 Fin de FOR
4. Escribir(‘El total es ’,Total)
5. Fin.

Ejemplo: Sumar todos los números múltiplos de 3 que existen en el rango


del 50 al 1

Algoritmo_Sumar_multiplos
1. Inicio
2. Total =0
3. For I,50,1, -1
3.1 SI ¿I mod 3 = 0? ENTONCES
3.1.1 Si. Total = Total +I
3.2 Fin de FOR
4. Escribir(‘El total es ’,Total)
5. Fin.

Deber
1. Construir un algoritmo que despliegue los números del 20 al 30
2. Desplegar los enteros entre 30 y 50 acompañados de su potencia
cuadrada y raíz cúbica respectiva
3. Desplegar una tabla de multiplicar que el usuario indique

DIAGRAMAS DE FLUJO
TÉCNICAS PARA LA FORMULACIÓN DE ALGORITMOS
Las dos herramientas utilizadas comúnmente para diseñar algoritmos son:
• Diagrama de Flujo
• Pseuducodigo

DEFINICIÓN DE DIAGRAMAS DE FLUJO


• Los diagramas de flujo (Flujogramas u ordinogramas) son gráficos que
permiten la representación simbólica de la lógica de un algoritmo. Con ello
se consigue ordenar un problema en una sucesión de pasos de manera clara
y concisa. Las operaciones a ejecutarse se representan mediante figuras.
Para establecer el orden de ejecución de las instrucciones utilizamos
DIRECCIONES DE FLUJO, es decir conectamos las figuras mediante líneas
que sirven para indicar la secuencia de ejecución de las instrucciones

27
• Es un gráfico que muestra el orden en el que se van ejecutando las diferentes
instrucciones

• El diagrama de flujo es un gráfico en el que se representa el orden en el que


se van ejecutando las diferentes instrucciones que forman el algoritmo

• Herramienta que constituye el fundamento de programación convencional


siendo muy útil en los programas de pequeño y mediana complejidad

• Un diagrama de flujo es un tipo de notación gráfica algorítmica

• Un diagrama de flujo es una herramienta gráfica de descripción de algoritmos


que se caracteriza por utilizar un conjunto de símbolos gráficos y expresar
de forma clara los flujos de control o el orden lógico en el que se realizan las
acciones de un algoritmo.

SIMBOLOGÍA BÁSICA
Aunque existe en la literatura una amplia variedad de representaciones para los
símbolos utilizados en los diagramas de flujo, en este texto se adoptaran los
mismos que se presentan en la ilustración:

28
Esta representación gráfica se da cuando varios símbolos (que indican diferentes
procesos en la computadora), se relacionan entre sí mediante líneas que indican
el orden en que se deben ejecutar los procesos.

Los símbolos utilizados han sido normalizados por el instituto norteamericano de


normalización (ANSI).

29
RECOMENDACIONES PARA EL DISEÑO DE DIAGRAMAS DE FLUJO
• Se deben de usar solamente líneas de flujo horizontales y/o verticales
• Se debe evitar el cruce de líneas utilizando los conectores
• No deben quedar líneas de flujo sin conectar
• Se deben usar conectores solo cuando sea necesario
• Se deben trazar los símbolos de manera que se puedan leer de arriba hacia abajo
y de izquierda a derecha
• Todo texto escrito dentro de un símbolo deberá ser escrito claramente, evitando el
uso de muchas palabras

Estructura secuencial
La ilustración muestra el diagrama de flujo que representa a la estructura de
control secuencial.

30
Ejemplo: Calculo de la suma y producto de dos números. Hallar su algoritmo:

Estructuras de selección
La ilustración muestra los diagramas de flujo de las estructuras de selección.

31
Puede observarse en la figura anterior que en la estructura de selección simple
se evalúa la condición, y si ésta es verdadera, se ejecuta un determinado grupo
de sentencias; en caso contrario, las sentencias son ignoradas.

En la estructura de selección doble, cuando la condición es verdadera, se


ejecutará un determinado grupo de sentencias, y si es falsa se procesará otro
grupo diferente de sentencias.

Por último, en la estructura de selección múltiple se ejecutarán unas sentencias


u otras según sea el valor que se obtenga al evaluar una expresión representada
por el indicador. Se considera que dicho resultado ha de ser de tipo ordinal.

32
CONDICIONES SIMPLES
En general todas las condiciones simples se forman con; variables,
operadores relaciónales, y constantes.

sexo = m
sueldo > 300,000

Una condición simple se define como el conjunto de variables y/o constantes


unidas por los llamados operadores relaciónales.

Los operadores relaciónales que reconocen en muchos lenguajes como:

Operador Significado

= Igual que

> Mayor que

< Menor que

>= Mayor o igual que

<= Menor o igual que

<>, != No es igual o es diferente que

33
CONDICIONES COMPUESTAS
En muchas ocasiones es necesario presentar más de una condición para su
evaluación al computador.

Por ejemplo, que el computador muestre la boleta de un alumno, si este


estudia la carrera de medicina y su promedio de calificaciones es mayor de
70.

Una condición compuesta se define como dos o más condiciones simples


unidas por los llamados operadores lógicos.

Los operadores lógicos que se reconocen son:

OPERADOR SIGNIFICADO
AND "Y" LOGICO
OR "O" LOGICO

NOT "NO"
NEGACION

Para que el computador evalúe como CIERTA una condición compuesta que
contiene el operador lógico "and", las dos condiciones simples deben ser
ciertas.

Para que el computador evalúe como CIERTA una condición compuesta que
contiene el operador lógico "or", basta con que una de las condiciones simples
sea cierta.

Alternativa doble:

34
Alternativa múltiple:
También existen ocasiones o programas donde se exige evaluar muchas
condiciones a la vez, en estos casos, o se usan una condición compuesta muy

35
grande o se debe intentar convertir el problema a uno que se pueda resolver
usando la instrucción de selección múltiple o case o switch.

La instrucción de decisión múltiple, se busca el valor contenido en una


variable contra una lista de constantes ordinales, cuando el computador
encuentra el valor de igualdad entre variable y constante, entonces ejecuta
el grupo de instrucciones asociados a dicha constante, si no encuentra el
valor de igualdad entre variable y constante, entonces ejecuta un grupo de
instrucciones asociados a un valor por defecto, aunque este último es
opcional.

Pseudocódigo:

La expresión ya no es lógica, sino de tipo ordinal.

Una forma de implementar esta estructura es mediante sentencias si


entonces anidadas.

36
Conviene tener presente que esta estructura puede contener también una
sección opcional o parte si- no

Reglas:
1. La expresión <selector> se evalúa y se compara con las constantes;
las constantes son listas de uno o más posibles valores de <selector>
que en algunos casos pueden ir separados por comas. Ejecutadas la(s)
<instrucciones>, el control se pasa a la primera instrucción a
continuación del case
2. La cláusula si-no es opcional
3. Si el valor de <selector> no está comprendido en ninguna lista de
constantes y no existe la cláusula si-no, no sucede nada y sigue el flujo
del programa; si existe la cláusula si-no se ejecutan la(s)
<instrucciones> a continuación de la cláusula si-no
4. El selector debe ser un tipo ordinal (entero, caracter, booleano). Los
números reales no pueden ser utilizados ya que no son ordinales
5. Todas las constantes del case deben ser únicas y de un tipo ordinal
compatible con el tipo del selector
Deber:
1. Diseñar un diagrama de flujo que permita ingresar 5 notas valoradas cada
una de ellas sobre una nota de 20 puntos. Obtener su promedio e imprimir
uno de los siguientes mensajes:
20-19 Sobresaliente

37
18-16 Muy buena
15-13 Buena
12-10 Regular
09-0 Insuficiente
2. Diseñar un diagrama de flujo que permita ingresar un caracter e imprimir un
mensaje que diga si es vocal, consonante, cifra o carácter especial
3. Diseñar un diagrama de flujo que permita ingresar un número que se
encuentre entre 1 y 31 y decir si es un número primo o no primo
4. Diseñar un diagrama de flujo que permita simular el trabajo de una
calculadora en la que se sume, reste, multiplique y divida siempre con un
número fijo cualesquiera
5. Diseñar un diagrama de flujo que permita calcular las funciones
trigonométricas

Estructuras de repetición
A continuación se muestran las estructuras de repetición básicas.

Estructuras de repetición en diagrama de flujo a) mientras hacer (while) y b)


repetir hasta (do-while).

REGLAS DE FUNCIONAMIENTO DEL MENTRAS - HACER


1. Permite repetir un bloque de sentencias cero o más veces dependiendo del valor
que se evalúa para una expresión booleana
2. Primero se evalúa la condición; si la expresión booleana es “verdadera” se
ejecuta el cuerpo del bucle y se vuelve a evaluar la condición
3. El proceso se repite mientras la condición resulte cierta en cada evaluación y
termina cuando la condición evaluada es “falsa”

Diagrama de flujo del algoritmo de Euclides para encontrar el máximo


común divisor
La solución al problema está determinada por el algoritmo de Euclides.

38
CARACTERÍSTICAS DEL BUCLE REPETIR HASTA
Se ejecutan siempre una vez, por lo menos, y la terminación del bucle se
produce cuando el valor de la expresión lógica o condición de salida es
verdadera. Se ejecuta hasta que la expresión es verdadera, es decir, se
ejecuta mientras la expresión sea falsa.
REGLAS DE FUNCIONAMIENTO DEL REPETIR HASTA
1. La condición se evalúa al final del bucle, después de ejecutarse todas las
sentencias
2. Si la condición es falsa, se vuelve a repetir el bucle y se ejecutan todas sus
instrucciones
3. Si la condición es verdadera, se sale del bucle y se ejecuta la siguiente
instrucción después de la estructura

SENTENCIA FOR
Repite la ejecución de una o varias sentencias un número fijo de veces.
Previamente establecido. Necesita una variable de control del bucle que es
necesariamente de tipo ordinal, ya que el bucle se ejecuta mientras la
variable de control toma una serie consecutiva de valores de tipo ordinal,
comprendidos entre dos valores extremos (inferior y superior).

FOR VC, VI,VF,INC

INSTRUCCIONES

39
Ejemplo: Ingresar N notas y obtener su promedio
1. Inicio
INICIO
2. Escribir(‘Ingrese el número de notas: ’)
3. Leer(N)
4. Suma = 0
5. For i , 1, N,+1 ESCRIBIR (‘INGRESE EL
5.1 Escribir(‘Ingrese la nota: ’, i) NÚMERO DE NOTAS’)
5.2 Leer (Nota)
5.3 Suma = Suma + Nota
5.4 Fin del For LEER(N
6. Promedio = Suma/N )
7. Escribir(‘La respuesta es = ’, Promedio)
8. Fin SUMA =0

FOR I, 1, N, +1

ESCRIBIR(‘INGRESE LA NOTA: ’, I)

LEER (NOTA)

SUMA =SUMA + NOTA

PROMEDIO = SUMA/N

ESCRIBIR(‘LA RESPUESTA ES =
’, PROMEDIO)

FIN

Características del bucle FOR:


Aunque a primera vista pueda resultar más atractivo FOR, en algunos
lenguajes de programación existen limitaciones en su aplicación ya que en el
bucle FOR siempre se incrementa o decrementa (de uno en uno) los valores
de la variable de control de bucle y no de dos en dos o de tres en tres, como
en otros lenguajes.

40
El número de iteraciones de un bucle FOR siempre es fijo y se conoce de
antemano:

Valor final - Valor inicial +1.

CUÁNDO UTILIZAR MIENTRAS HACER/REPETIR HASTA/FOR?


• Utilizar la sentencia o estructura FOR cuando se conozca el número de
iteraciones, y siempre que la variable de control de bucle sea de tipo ordinal
• Utilizar la estructura REPETIR HASTA cuando el bucle se realice por lo menos
una vez
• En todos los demás casos utilizar la sentencia MIENTRAS HACER.

Bucles anidados
Los bucles, al igual que las sentencias condicionales, también se pueden
anidar. Esto es especialmente útil para el manejo de matrices, como veremos
en los temas posteriores

• Deber:
1. Diseñar un diagrama de flujo que permita generar la sumatoria de la serie:
a (a−1)! − a (a−2)! + a (a−3)! − .......
2. Diseñar un diagrama de flujo que permita generar la sumatoria de la serie:
2 4 4 6 6
+2+ − − + + ......
3 3 5 5 7
3. Diseñar un diagrama de flujo que permita generar las tablas de
multiplicación
4. Imprimir todos los caracteres en minúsculas que existen entre un
intervalo de mayúsculas ejemplo: A b c d e f g H

APLICACIÓN PRÁCTICA
• Uso del MIENTRAS HACER/ REPETIR HASTA / For
Ejemplo:
• Diseñar un diagrama de flujo que permita calcular cuántas palabras
existen en una frase
• Probar si una palabra ingresada por el usuario es o no palíndromo.
Una palabra es palíndroma cuando se lee igual de derecha a izquierda
que de izquierda a derecha ejemplo Ana, Radar, Oso

41
Ejemplo: Diseñar un diagrama de flujo para cambiar a mayúsculas todas las
letras de una frase

INICIO

Escribir(‘ingrese la frase’)

Leer(cad)

cad=concatenar(cad, ‘ ‘)

n= longitud(cad)

For i,o,(n-1),+1

Cad[i]= mayuscula(cad[i])

Escribir(cad)

FIN

42
Ejemplo: Diseñar un diagrama de flujo para contar las palabras en una frase

INICIO

Escribir(‘ingrese la frase’)

Leer(cad)

Cad= concatenar(cad, ‘ ‘)

n= longitud(cad)

cont= 0

For i,o,(n-1),+1

V F
cad[i]=’ ‘

Cont=cont+1

Escribir(cont,’palabras’)

FIN

43
Deber:
1. Diseñar un diagrama de flujo que permita calcular cuántas vocales existen
en una frase
2. Contar la incidencia de las letras, en una palabra. Es decir, cuántas veces
se repiten
3. En una frase contar palabras de longitud par y las de longitud impar que
existan en ella
4. Reemplazar las palabras de longitud par en una frase por asteriscos
5. Visualizar las palabras de longitud impar en una frase al revés

DIAGRAMAS DE CAJA
Estos diagramas son también llamados diagramas de técnicas horizontales,
ya que se los realizan en renglón seguido y no necesitan flechas.

ESTRUCTURA SECUENCIAL
Estas estructuras vienen dadas a reglón seguido y el diagrama de caja de
esta estructura es la siguiente:

Ejemplo:
INICIO
INSTRUCCIÓN
INSTRUCCION
INSTRUCCION
FIN

Utilizando diagramas de caja realizar la siguiente operación: A= B+C

INICIO
LEER(B,C)
A= B+C
ESCRIBIR(A)
FIN

ESTRUCTURA DE BIFURCACIÓN SIMPLE


En estas estructuras si la condición se cumple se ejecutará los procesos por la
parte SI, caso contrario se realizarán los procesos por la parte NO.

Una instrucción condicional es aquella que nos permite "preguntar" sobre el


entorno que nos rodea, pudiendo así actuar según la respuesta obtenida. Estas
respuestas siempre serán Verdadero o Falso, pudiendo así tomar, en un
principio, dos caminos diferentes.

Pseudocodigo

Si < Condición> entonces


< acción s11 >

44
< acción s 12 >
Fin _ si

Alternativa doble (si-entonces-si_no )


Evalúa la condición y determina si es verdadera o falsa para ejecutar las acciones
correspondientes.

Acciones:
• Si la condición es verdadera entonces se ejecuta la acción SI (o acciones
caso de ser SI una acción compuesta y constar de varias acciones).
• Si la condición es falsa, entonces se pasará a la acción sino (else o falsa).

Pseudocodigo
Si < Condición> entonces
< Acción SI >
Si_no
< Acción S2 >
Fin _ si

Ejemplo: Dados tres números imprimir o escribir cuál es el mayor

45
INICIO
ESCRIBIR(‘INGRESE TRES VALORES’)

LEER(A,B,C)

Verdadero A>B Falso

Verdadero A>C Falso Verdadero B>C Falso


Escribir(A es Escribir(C Escribir(B es Escribir(C es
mayor) es mayor) mayor)
mayor)
FIN

Alternativa múltiple (según _sea, caso de / case)


Es aquella que evalúa una expresión que podrá tomar N valores distintos (1, 2,
3, 4,…n) según que elija uno de estos valores en la condición, se realizará una
de las n acciones, o lo que es igual, el flujo del algoritmo seguirá un determinado
camino entre los n posibles.

Diagrama de Flujo
CASO (EXPRESIÓN) DE

VALOR 1:

VALOR N:

POR DEFECTO:

FIN CASE

46
Ejemplo: Diseñar un diagrama de caja para identificar si un carácter ingresado
por el usuario es o no una vocal.
INICIO
ESCRIBIR( ‘Ingresar un caracter’)
LEER(op)
op=mayúscula(op)

CASO op DE

VALOR ‘A’:
Cad=’Es una A’
VALOR ‘E’:
Cad=’Es una E’

VALOR ‘I’:
Cad=’Es una I’

VALOR ‘O’:
Cad=’Es una O’

VALOR ‘U’:
Cad=’Es una U’
POR DEFECTO:
Cad=’no es vocal’

FIN CASE

Escribir(cad)

FIN

Estructura repetitiva
Son aquellas en las que especialmente se diseña para todas aquellas aplicaciones
en las cuales una operación o conjunto de ellas deben repetirse muchas veces.

Bucles /lazos: Son estructuras que repiten una secuencia de instrucciones un


número determinado de veces.

47
Interacción: Es el hecho de repetir la ejecución de una secuencia de acciones;
en otras palabras, el algoritmo repite muchas veces las acciones.

Al utilizar un bucle para sumar una lista de números, se necesita saber cuántos
números se han de sumar, para poder detenerlo en el momento preciso; las dos
principales preguntas a realizarse en el diseño de un bucle son: ¿Qué contiene
el bucle? y ¿Cuántas veces se debe repetir?
Casos generales de estructuras repetitivas
1. La condición de salida del bucle se realiza al principio del bucle (estructura
mientras)
2. La condición de salida se origina al final del bucle; el bucle se verifica hasta
que se verifique una cierta condición
3. La condición de salida se realiza con un contador que cuente el numero d
interacciones. ( i es un contador que cuenta desde el valor inicial (vi.) hasta
el valor final (vf) con los incrementos que se consideran.)

Estructura mientras - hacer (“while”).


Es aquella en que el cuerpo del bucle se repite mientras se cumple una
determinada condición. Cuando se ejecuta la acción mientras, la primera cosa
que sucede es que se evalúa la condición (una expresión booleana), si se evalúa
falsa ninguna acción se tomara; si la expresión booleana es verdadera, entonces
se ejecuta el cuerpo del bucle, después del cual se evalúa de nuevo la expresión
booleana.

Esta expresión booleana se repite una y otra vez mientras la expresión booleana
(condición) sea verdadera.

Mientras (condición) hacer

Expresión de un bucle cero veces


En una estructura mientras la primera cosa que sucede es la evaluación de la
expresión booleana; si es falsa en este punto entonces el cuerpo del bucle nunca
se ejecuta. Puede parecer inútil ejecutar el cuerpo del bucle cero veces, ya que
no tendrá efecto en ningún valor o salida. Sin embargo, no es una acción
deseada.

48
Bucles infinitos
En algunos bucles no existen fin y otros no encuentran el fin por error en su
diseño, el bucle corre siempre; en otras ocasiones el bucle no se termina nunca
porque nunca se cumple la condición.

Regla práctica
Las pruebas o tesis en las expresiones booleanas es conveniente que sean mayor
o menor que en lugar de pruebas de igualdad o desigualdad. En el caso de la
codificación en un lenguaje de programación, esta regla debe seguirse
rígidamente el caso de comparación de números reales.

Ejemplo: Diseñe un diagrama de caja que permita generar los 5 primeros


números pares utilizando la estructura Mientras-Hacer

INICIO
NUM = 0
I =1
Mientras (I < = 5) hacer
NUM = NUM + 2

ESCRIBIR( NUM )

I = I+1

FIN

Ejemplo: Diseñe un diagrama de caja que permita generar los N primeros


números pares utilizando la estructura Mientras-Hacer.

INICIO
ESCRIBIR(‘Ingrese el valor de N’)
LEER(N)
NUM = 0
I =1
Mientras (I < = N) hacer
NUM = NUM + 2

ESCRIBIR( NUM )

I = I+1

FIN

49
Estructura repetir (“repeat”).
Si el valor de la expresión booleana es inicialmente falso, el cuerpo del bucle no
se ejecutara, por ello se necesitan de otros tipos de estructuras dicha estructura
se ejecuta hasta que cumpla una condición determinada que se comprueba hasta
el final del bucle.

Hacer
Sentencia(s)

Condición F MIENTRAS (CONDICIÓN)

DIFERENCIAS ENTRE LAS ESTRUCTURAS MIENTRAS Y REPETIR


• La estructura mientras termina cuando la condición es falsa, mientras que
repetir termina cuando la condición es verdadera
• En la estructura repetir el cuerpo del bucle se ejecuta siempre al menos una sola
vez; por el contrario, mientras es más general y permite la posibilidad de que el
bucle pueda no ser ejecutado. Para usar la estructura repetir debe estar seguro
de que el cuerpo del bucle se repetirá al menos una sola vez

Ejemplo: Diseñe un diagrama de caja que permita generar los 5 primeros


números pares utilizando la estructura HACER - MIENTRAS.

INICIO
NUM = 0
I=1
HACER
NUM = NUM +2
ESCRIBIR (NUM)
I = I +1
MIENTRAS ( I <= 5)

FIN

50
Ejemplo: Diseñe un diagrama de caja que permita generar los N primeros
números pares utilizando la estructura Repetir - Hasta

INICIO
ESCRIBIR(‘INGRESE EL VALOR DE N’)
LEER(N)
NUM = 0
I=1
REPETIR
NUM = NUM +2
ESCRIBIR (NUM)
I = I +1
HASTA ( I > N)

FIN

Estructura desde/para (“for”)


Son el número total de veces que se desea ejecutar las acciones del bucle
(número de interacciones fijo), este ejecuta las acciones del cuerpo o del bucle
un número especifico de veces y de modo automático controla el número de
interacciones o pasos a través del cuerpo del bucle.

FOR VC, VI,VF,INC


FOR Vc, Vi, Vf, Inc/Dec
INSTRUCCIONES

La estructura de repetición FOR, se caracteriza por utilizar:


1. Definir una variable que actuará como contador
2. Establecer el valor inicial para dicha variable
3. Establecer el valor final para el contador
4. Determinar si será un incremento (+1) o un decremento (-1)

Ejemplo: Diseñe un diagrama de caja que permita generar los N primeros


números pares utilizando la estructura FOR

51
INICIO
ESCRIBIR(‘INGRESE CUÁNTOS NÚMEROS QUIERE GENERAR’)
LEER(N)
NUM = 0
FOR I, 1, N, +1
NUM = NUM +2
ESCRIBIR (NUM)
FIN
Ejemplo: Imprimir todos los números del 1 al 100 que sean múltiplos de 3 utilizando
la estructura MIENTRAS-HACER
INICIO

I=1

MIENTRAS ( I < = 100 )HACER

SI I MOD 3 = 0 NO

ESCRIBIR(I, ‘ES
DIVISIBLE PARA 3’)
I = I +1

FIN

Ejemplo: Imprimir todos los números del 1 al 100 que sean múltiplos de 3 utilizando la
estructura REPETIR – HASTA
INICIO

I=1

REPETIR

SI I MOD 3 = 0 NO

ESCRIBIR(I, ‘ES
DIVISIBLE PARA 3’)
I = I +1

HASTA( I > 100)

FIN

52
Ejemplo: Imprimir todos los números del 1 al 100 que sean múltiplos de 3
utilizando la estructura FOR (Decrementos)

INICIO
FOR I, 100, 1, -1

SI I MOD 3 = 0 NO
ESCRIBIR(I, ‘ES
DIVISIBLE
PARA 3’)
FIN

Estructura repetitivas anidadas


Reglas
La estructura interna debe estar incluida dentro de la externa y no puede existir
solapamiento

Tipos de bucles anidados

Bucles anidados Correctos

53
VECTORES
DEFINCIONES: Arreglos

• El tratamiento de algoritmos y diagramas de flujo o de caja admite


agrupaciones de datos, a las cuales denomina "arreglos"

• Un arreglo se compone de elementos de igual tamaño almacenados


linealmente en posiciones de memoria consecutiva

• Un arreglo es un conjunto finito de posiciones de memoria


consecutivas que tienen el mismo nombre y el mismo tipo de dato.
Los arreglos de una dimensión (unidimensionales) se llaman vectores.
Los arreglos de dos dimensiones (bidimensionales) se llaman matrices

• Un vector o array -arreglos en algunas traducciones- es una secuencia


de objetos del mismo tipo almacenados consecutivamente en memoria

54
EJERCICIOS DE VECTORES
Ejemplo: Diseñar un diagrama de caja que permita llenar y visualizar los
datos almacenados en un vector

INICIO
ESCRIBIR(‘Cuántos números va a ingresar’)

LEER(N)
For i, 0, N-1, +1
ESCRIBIR(’Ingrese el valor de la posición ’, i)
LEER(A[i])
For i, 0, N-1, +1
ESCRIBIR(A[i])
FIN

Ejemplo: Diseñar un diagrama de caja que permita sumar el contenido de un


vector

INICIO
ESCRIBIR(‘Cuántos números va a ingresar’)

LEER(N)
For i, 0, N-1, +1
ESCRIBIR(’Ingrese el valor de la posición ’, i)
LEER(A[i])
Sum = 0
For i, 0, N-1, +1
Sum = Sum + A[i]
ESCRIBIR(’La suma total es: ’, Sum )
FIN
Ejemplo: Diseñar un diagrama de caja que permita imprimir cuantos valores
que pertenecen al vector están en el rango de A y B

55
INICIO
ESCRIBIR(‘Cuántos números va a ingresar’)

LEER(N)
HACER
ESCRIBIR(’ Ingrese los límites inferior y
superior’ )
LEER(A, B)
MIENTRAS(A >=B)

For i, 0, N-1, +1
ESCRIBIR(’Ingrese el valor de la
posición ’, i)
LEER(V[i])
C=0
For i, 0, N-1, +1
(V[i]>=A) Y (V[i]<=B)
SI NO

C= C+1

ESCRIBIR(’EXISTEN ’,C, ’ VALORES ENTRE ’, A, ’ Y ’,B)


FIN

• Deber:
1. Diseñar un diagrama de caja que permita sumar dos vectores de igual
longitud
2. Diseñar un diagrama de caja que permita sumar dos vectores de
distinta longitud
3. Diseñar un diagrama de caja que permita buscar el mayor y menor
número que se encuentran almacenados en un vector
4. Diseñar un diagrama de caja que permita ordenar un vector de forma
ascendente y descendente
5. Diseñar un diagrama de caja que permita reemplazar en un vector
todos los números repetidos por un -5

ARREGLOS MULTIDIMENSIONALES O MATRICES

• Los arreglos multidimensionales son secuencias de valores del mismo


tipo que se almacenan en localidades contiguas de memoria, según el
orden de varios índices. En el caso de los arreglos de dos dimensiones
o matrices es necesario identificar dos índices. El primero identifica al
número de fila y el segundo el número de columna dentro del arreglo

56
• El término dimensión representa el número de índices utilizados para
referirse a un elemento particular en el arreglo. Los arreglos de más
de una dimensión se llaman arreglos multidimensionales

• La forma de referenciar un elemento de un vector o matriz es mediante


su índice, que puede ser una constante, una variable o una expresión,
pero siempre un valor ENTERO. El índice se expresa entre paréntesis,
y habrá tantos índices como dimensiones tenga la agrupación de datos
(1 para vectores, 2 en matrices, ...)

EJERCICIOS DE MATRICES

57
Ejemplo: Diseñar un diagrama de caja que permita ingresar datos de una
matriz
INICIO
ESCRIBIR(‘INGRESE EL NÚMERO DE FILAS Y COLUMNAS’)

LEER(F,C)
For i, 0, F -1, +1

For j, 0,C-1, +1
ESCRIBIR(’Ingrese el valor de la posición ’, i, j)
LEER(x[i] [j])
FIN

Ejemplo: Diseñar un diagrama de caja que permita sumar el contenido de


una matriz
INICIO
ESCRIBIR(‘INGRESE EL NÚMERO DE FILAS Y COLUMNAS’)

LEER(F,C)
For i, 0, F -1, +1

For j, 0,C-1, +1
ESCRIBIR(’Ingrese el valor de la posición ’, i, j)
LEER(x[i] [j])
SUM = 0
For i, 0, F -1, +1

For j, 0,C-1, +1
SUM = SUM +x[i] [j]
ESCRIBIR(’LA SUMA TOTAL ES DE : ’, SUM )
FIN

58
Ejemplo: Diseñar un diagrama de caja que permita generar una matriz
traspuesta

INICIO
ESCRIBIR(‘INGRESE EL NÚMERO DE FILAS Y COLUMNAS’)

LEER(F,C)
For i, 0, F -1, +1

For j, 0,C-1, +1
ESCRIBIR(’Ingrese el valor de la posición ’, i, j)
LEER(M[i] [j])
For i, 0, C -1, +1

For j, 0,F-1, +1
T[i] [j] = M[j] [i]
For i, 0, C -1, +1

For j, 0,F-1, +1
ESCRIBIR(T[i] [j] )
FIN

59
Ejemplo: Dada una matriz en la que guarden las notas de n estudiantes en
sus m asignaturas. Calcular:
• El promedio de notas de cada uno de los n estudiantes
• El promedio de notas de cada una de las m asignaturas

INICIO
ESCRIBIR(‘INGRESE EL NÚMERO DE ESTUDIANTES Y DE ASIGNATURAS’)

LEER(F,C)
For i, 0, F -1, +1
For j, 0,C-1, +1
ESCRIBIR(’Ingrese nota del estudiante ’, i,’ en la
asignatura’, j)
LEER(NOTAS[i][j])
For i, 0, F -1, +1

SUMF=0
For j, 0,C-1, +1
SUMF = SUMF + NOTAS[i][j]
ESCRIBIR(‘El ESTUDIANTE ’, i , (SUMF/C))
For j, 0, C -1, +1

SUMC=0
For i, 0,F-1, +1
SUMC = SUMC + NOTAS[i][j]
ESCRIBIR(‘LA ASIGNATURA ’, j ,(SUMC/F))
FIN

• Deber:
1. Diseñar un diagrama de caja que permita sumar dos matrices de igual
dimensión
2. Diseñar un diagrama de caja que permita sumar dos matrices de
distinta longitud
3. Diseñar un diagrama de caja que permita realizar la multiplicación de
matrices

60
TAREAS IF
1. Capturar un número cualesquiera e informar si es o no es mayor de 100
2. Capturar un número entero cualesquiera e informar si es o no es múltiplo
de 4 (recordar el operador mod, analizado en el tema de operadores
aritméticos)
3. Capturar los cinco datos más importantes de un Empleado, incluyendo el
sueldo diario y los días trabajados, desplegarle su cheque semanal solo si
ganó más de $500.00 en la semana, en caso contrario desplegarle un
bono de despensa semanal de $150.00
4. Capturar los datos más importantes de un estudiante incluyendo tres
calificaciones, que no deben ser mayores a 5
5. Capturar los datos más importantes de unos productos cualesquiera,
incluyendo cantidad, precio, etc., desplegar una orden de compra, solo si
el producto es de origen nacional, en caso contrario no hacer nada

TAREAS IF CON CONDICIONES COMPUESTAS


1. Capture un número cualesquiera e informe si es o no es mayor de 50 y
múltiplo de tres. ( solo escribir el mensaje de respuesta de manera muy
clara y esto resuelve el problema )
2. Indique si un número es un par positivo

TAREAS CASE
1. Construir un menú que contenga el siguiente menú
Conversión de pesos a dólares
Conversión de libras a kilogramos
Conversión de kilómetros a millas
Fin de menú
Seleccionar opción [ ]
2. Evaluar cualquier función vista para cuando x =3,-4, 5

TAREAS IF, CASE


1. Capturar en una lista los sueldos de 6 empleados y desplegarlos en una
segunda lista aumentados en un 30%
2. Capturar una lista los pesos en kilogramos de 6 personas desplegarlos en
una segunda lista convertidos a libras y además solo los mayores de 100
libras
3. Capturar 4 listas respectivas matricula, nombre y dos calificaciones de 5
alumnos, después calcular una lista de promedios de calificaciones
4. Capturar listas respectivas número de empleado, nombre del empleado,
días trabajados y sueldo diario de 5 empleados, y desplegar la nomina
pero solo de aquellos empleados que ganan más de $300.00 a la semana

TAREAS WHILE
1. Desplegar los números enteros entre 50 y 80
2. Desplegar múltiplos de 4 entre 60 y 20 acompañados de su logaritmos de
base 10 y base e respectivos
3. Construir la tabla de dividir que el usuario indique

61
TAREAS VARIOS
1. Convertir la edad en años de una persona a meses
2. Convertir pesos a dólares
3. Calcular el área de un círculo
4. Construir los modelos de solución de los siguientes problemas:
a. Convertir millas a kilómetros
b. Convertir 125 metros a centímetros
5. Se calcula que en promedio hay 4.7 nidos en cada árbol en la ESPOCH,
también se calcula que en cada nido existen un promedio de 5.8 pájaros,
se pide calcular la cantidad total de nidos y de pájaros en los 227 árboles
que existen en la ESPOCH
6. La Sra. López y sus 8 hijos solo compran una vez al mes su mandado en
conocido supermercado, en dicha tienda el kilogramo de fríjol cuesta
$8.75, el paquete de tortillas cuesta $3.55 y el frasco de café vale $14.25,
si solo compran de estos tres productos para su mandado, calcular su
gasto total
7. Capturar y desplegar los cinco datos más importantes de un automóvil
8. La distancia Tijuana - Ensenada es de 110 kilómetros. Si un automóvil la
recorre a una velocidad constante de 30 millas por hora, cuánto tiempo
tarda en llegar. ( 1 milla = 1.609 Km.)
9. Evaluar el factorial de cualquier numero usando la formula: n!=n!-1
10.La distancia que recorre un auto es de 50 kms y su velocidad es de 30
millas por hora ¿Cuánto tiempo tardara en llegar?
11.Encontrar la derivada de x para cualquier valor con la formula(d/dx(x)=1)
12.Calcular l interés que gana un capital de x pesos a una tasa de interés del
15% anual en un periodo de n años
13.Que aceleración tiene un tren que parte de Tijuana a 10 km/hr y pasa por
Ensenada una hora después a 50 km/hr
14.Calcular el número de aulas en una escuela que tiene 10 edificios y cada
edificio 3 pisos y cada piso 5 aulas, excepto un edificio que solo tiene dos
pisos
15.Si en una escuela hay 30 maestros y 15 son hombres que atienden a 10
alumnos cada uno. Cuantas maestras hay?
16.Calcular la corriente de un circuito con un voltaje de 15v y una resistencia
de 6 ohms. Formula (I= V/R)
17.Calcular la normal estándar(z) dados los datos por el usuario: X=dato,
µ=media, d=desviación. Formula (Z = X-M / d)
18.Dado un numero(N) cualesquiera obtener su raíz y potencia cuadrada
19.Determinar la media de 5 números diferentes
20.Determinar la velocidad v requerida para recorrer una distancia d en un
tiempo t . Formula (V = d * t)
21.Determinar la pendiente de una recta. Formula (y = m x + b)
22.Calcular la función de y= x² + 8x + 3 para cualquier x
23.Convertir minutos a horas
24.Aplicar la formula general para a=1, b=2, c=3
25.Se desea instalar un cable de red, el cliente pide 30 pies, considerando
que se venden en metros, cuantos deberá comprar

62
26.Un campesino siembra trigo en un área cuadrada de 25 mts., ¿ cual es el
largo del cerco frontal en cms.?
27.Resolver x² + 15x - 8 para cualquier variable (X)
28.Convertir °C a °F
29.Si cada salón de la escuela tiene 40 alumnos y son 30 salones ¿Cuantos
alumnos son en toda la escuela?
30.Si Juan trabaja 5 días a la semana y descansa 2 ¿Cuantos días trabajo en
4 años?
31.Si en una oficina se procesan 20 facturas cada 10 minutos cuantas se
procesaran si se trabajan 5 horas?
32.Si una empresa tiene _____ de activo y un pasivo de _____ ¿Cual es su
capital?. Formula (C = A-P)
33.Calcule el voltaje de un circuito dada una intensidad I y una resistencia R.
Formula (V=IR)
34.Calcule la frecuencia de una onda que circula con un tiempo t. Formula
(F=1/t)
35.Calcule la potencia de un circuito con un voltaje V y una intensidad I.
Formula (f = VI)
36.Calcule el total que tendrá que pagar una persona que va al cine
dependiendo del número de boletos a comprar y el precio
37.Calcule las anualidades que tendrá que pagar una persona que pidió un
préstamo. Dependiendo del tiempo que el elija y el interés por año.
Formula (Anualidad=(Prestamo/Tiempo)+interes)
38.Determinar cuánto ganará una persona en base a las horas trabajadas.
Tomando en cuenta el pago por hora.
39.Convertir horas a segundos
40.Calcular la fuerza. Formula (fuerza = trabajo / tiempo)

EJERCICIOS PROPUESTOS DE VECTORES Y MATRICES


Elabore los diagramas de caja para:
1. Capturar las calificaciones de N alumnos y almacenarlas en un arreglo
para posteriormente calcular el promedio.
2. Capturar las calificaciones de N alumnos y almacenarlas en un arreglo
para posteriormente recorrerlo para encontrar la calificación mayor.
3. Capturar las ventas mensuales de una empresa durante un año
determinado y al final calcule el promedio anual de ventas y muestre el
nombre del mes con la venta mayor así como el mes con la venta menor.
4. Capture los datos de un arreglo de N posiciones de números positivos y
negativos enteros y sustituya los números negativos por cero.
5. Capturar N valores de tipo entero para almacenarlos en un arreglo y
ordenarlo en forma ascendente.
6. Calcular el promedio y la desviación estándar de un conjunto de N
números leídos del teclado. La desviación estándar se calcula con la
siguiente fórmula:

63
7. Elaborar un diagrama de caja que capture en un vector (T) la temperatura
de cada día de una semana y que realice lo siguiente :
• Imprimir la temperatura promedio.
• Formar un vector (D) que contenga las diferencias de cada
temperatura con respecto al promedio.
• Imprimir la menor temperatura y el número de día en que ocurrió.
8. Elabore un diagrama de caja que encuentre la mayor diferencia entre 2
números consecutivos y las posiciones de éstos, en un vector de N
números enteros.

9. Dado un vector V de N números enteros, cambie cada elemento menor


que 10 por 0 y cada elemento mayor que 20 por 1. Encuentre cuántos
elementos quedaron sin cambiar.
Ejemplo :

10. Elaborar un diagrama de caja que capture en una matriz las calificaciones
obtenidas por un grupo de N estudiantes y que realice lo siguiente :

64
• Formar un vector de tamaño N que contenga los promedios de cada
estudiante.
• Calcular el promedio del grupo en el examen 3.
• Imprimir el mayor promedio y el número del estudiante que lo obtuvo.
• Imprimir el total de alumnos aprobados y reprobados (la calificación
mínima aprobatoria es 70)
• Imprimir el número de alumnos que reprobaron el examen 1.
11. Diseñe un diagrama de caja en que lea un vector desordenado A,
compuesto de n números enteros e imprímase este vector en la misma
secuencia, pero ignorando los valores duplicados que se encuentren en él.
También se necesita saber el número de elementos que permanecen (m);
por ejemplo, dado el siguiente vector

MATRICES
12. Realice la suma matricial. El programa debe pedir las dimensiones de las
matrices A y B, validar que se pueda ejecutar la operación, capturar los
valores de cada una de las matrices, efectuar la operación y mostrar el
resultado.
13. Desarrollar un diagrama de caja que lea una matriz cuadrada de tamaño
n y determine si se trata de una matriz simétrica o no. Una matriz es
simétrica si los valores de cada fila son iguales los de su columna
correspondiente; por ejemplo la siguiente matriz es simétrica:

14. Capture las celdas de una matriz de tamaño m X N y …


• Ordénelo en forma ascendente por columna
• Ordénelo en forma descendente por renglón
15. Una empresa de ventas a domicilio maneja 10 artículos diferentes y
cuenta con 50 vendedores. En un arreglo de 50x10 se tienen almacenadas
las cantidades de cada artículo vendidas por cada vendedor. Además, los
precios de cada artículo están almacenados en un vector de tamaño 10.
Se desea elaborar un diagrama de caja para imprimir lo siguiente :
• La cantidad de dinero recopilado por cada vendedor.
• El número del vendedor que recopiló la mayor cantidad de dinero.
• El número del artículo más vendido (entre todos los vendedores).

65
• El total de vendedores que no vendieron ningún artículo número ocho.

16. Elabore un diagrama de caja y que lea una matriz cuadrada de tamaño
N de números enteros, calcule la suma de los elementos de las diagonales
(principal e inversa y guarde estos elementos en dos vectores (DP y DI).

Ejemplo para N=4 :


Suma DP = 20 Suma DI = 23

17. Elabore un diagrama de caja que lea los datos de una matriz cuadrada
de tamaño N y realice las siguientes operaciones:
• Imprima la suma de los elementos de la diagonal principal
• Imprima cuántos "0" hay en la matriz
• Imprima una matriz igual pero con las diagonales intercambiadas.
• Imprima el número mayor de la matriz
18. Elabore un diagrama de caja que lea los datos de una matriz cuadrada
de tamaño N, y que intercambie los elementos de la matriz triangular
superior con los elementos correspondientes simétricamente de la matriz
triangular inferior.
EJEMPLO : RESULTADO :

19. Dada una matriz cuadrada de tamaño N, encuentre la suma de todos los
elementos que no son de la "periferia" de la matriz.

20. Se tienen los costos de producción de tres departamentos (dulces,


bebidas y conservas), correspondientes a los 12 meses del año anterior.

66
Elaborar un diagrama de caja que pueda proporcionar la siguiente información:
a) ¿En que mes (número) se registró el mayor costo de producción de dulces?
b) Promedio anual de los costos de producción de bebidas.
c) ¿En que mes se registró el menor costo de producción de bebidas?
d) ¿Cuál fue el departamento que tuvo el menor costo de producción en Agosto?

21. Elaborar un diagrama de caja para controlar las reservaciones y


cancelaciones de boletos para las funciones de una obra de teatro.
- El teatro cuenta con 300 asientos, 200 en la planta baja y 100 en la planta
alta.
- Los asientos están numerados del 1 al 200 en la planta baja y del 1 al 100
en la alta.
- Hay 2 funciones, a las 6 y a las 9 de la noche.

Se debe preguntar si se desea planta baja o alta, la función deseada y el número


de asiento deseado, y se debe imprimir el precio del boleto. Para las
cancelaciones, preguntar el nombre y la función.
22. Una línea aérea realiza 3 vuelos diarios a Europa, uno a París, uno a
Madrid y uno a Londres. Elabore un diagrama de caja que controle las
reservaciones y cancelaciones de lugares.
NOTAS:
- Cuando hay una reservación, se preguntará el No. de vuelo ( 1 París , 2
Madrid , 3 Londres ), el nombre de la persona, y si desea sección de fumar
o de no fumar.
- Cuando hay una cancelación, se preguntará el nombre de la persona y el
No. de vuelo.
- Cada vuelo tiene 100 asientos. Del 1 al 50 es la sección de no fumar, y
del 51 al 100 es la sección de fumar.
- Se asignará el primer asiento que se encuentre desocupado en la sección
deseada del vuelo correspondiente.

67
23. La Dirección General de Institutos Tecnológicos desea conocer una serie
de datos estadísticos referentes a la cantidad de Ingenieros, Masters y
Doctores que laboran en el sistema de tecnológicos. Entre otros datos se
desea saber:
a) Total de Doctores, Masters e Ingenieros por zona.
b) Sueldo promedio de un Dr. en el sistema de tecnológicos.
c) Total de Doctores en el tecnológico de Nuevo Laredo.
d) Total de Ingenieros con plaza #3 en la zona centro.
e) El monto total de los sueldos en los tecnológicos de la zona norte.
Suponga que se cuenta con 2 matrices con los siguientes datos:

NOTAS:
- La clave de empleado puede ser 1,2 o 3. (DR., MC., ING.)
- Las zonas son norte, centro y sur.
- Son 60 tecnológicos
- Existen 3 plazas (1,2,3) por cada clave de emp.

68

También podría gustarte