Está en la página 1de 16

3er Portafolio de Evidencias.

3.1 Problemas, alternativas de solución y algoritmos.


¿Qué es un problema?
Un problema es una situación o condición que presenta una dificultad o un desafío
y requiere una solución. Puede manifestarse en diversas formas, como
obstáculos, conflictos, incertidumbres o necesidades no satisfechas. Los
problemas pueden surgir en diferentes ámbitos de la vida, como en lo personal,
profesional, académico o social.
Diferencia entre un problema divergente a un convergente.
Problemas Convergentes:

Definición: Los problemas convergentes son aquellos en los que hay una única
solución o un conjunto limitado de soluciones correctas.
Enfoque: El proceso de resolución tiende a ser más estructurado y enfocado en
encontrar la mejor solución posible dentro de un conjunto predefinido de opciones.
Conclusión: Hay un punto de convergencia en el que las diferentes líneas de
pensamiento o soluciones posibles se dirigen hacia una respuesta única o un
conjunto reducido de respuestas.
Ejemplo: Resolver un problema matemático donde hay una única respuesta
correcta.

Problemas Divergentes:

Definición: Los problemas divergentes son aquellos en los que hay múltiples
soluciones o respuestas posibles, y a menudo se busca la generación de ideas
creativas.
Enfoque: El proceso de resolución puede ser más abierto, exploratorio y creativo.
Se fomenta la generación de diversas ideas y enfoques.
Conclusión: No hay una única respuesta correcta; en cambio, puede haber varias
respuestas válidas y únicas.
¿Qué es una alternativa de solución de un problema?
Una alternativa de solución es una opción o propuesta que se considera como una
forma de abordar un problema específico. Cuando te enfrentas a un problema, es
común identificar varias posibles maneras de resolverlo. Estas diferentes opciones
se denominan alternativas de solución. Cada alternativa representa un enfoque
diferente o una estrategia para superar el problema.
Método algorítmico.
Un método algorítmico es un enfoque sistemático y lógico para resolver un
problema o realizar una tarea específica mediante la aplicación de pasos o reglas
bien definidos. Un algoritmo es una secuencia finita de instrucciones o reglas
precisas que se siguen para llevar a cabo una tarea o resolver un problema
particular. Estos pasos deben ser claros, no ambiguos y ejecutables de manera
secuencial.

Características de un método algorítmico:

Secuencia de Pasos: Un algoritmo describe una serie de pasos o instrucciones en


un orden específico que se deben seguir para lograr un objetivo determinado.
Precisión: Las instrucciones en un algoritmo deben ser precisas y sin
ambigüedades. Cada paso debe ser claramente definido.
Finitud: El algoritmo debe tener un número finito de pasos. No puede ser infinito.
Entradas y Salidas Definidas: Debe estar claro cuáles son las entradas (datos
iniciales) y cuáles son las salidas (resultados finales) del algoritmo.
Efectividad: El algoritmo debe ser efectivo, lo que significa que debe resolver el
problema para el cual fue diseñado en un número finito de pasos.
Independencia de Plataforma: Un buen algoritmo debería ser independiente de la
plataforma o del lenguaje de programación específico utilizado para
implementarlo.
Método heurístico.
Un método heurístico es un enfoque general para resolver problemas o tomar
decisiones que se basa en la experiencia previa, el juicio y la intuición, en lugar de
seguir reglas o pasos sistemáticos y precisos como en un algoritmo. Los métodos
heurísticos son estrategias más flexibles y menos rigurosas que los algoritmos, y a
menudo se utilizan cuando la resolución exacta de un problema es difícil o
impráctica.
Características de un método heurístico:
Reglas Generales: En lugar de seguir un conjunto estricto de pasos, un método
heurístico se basa en reglas generales o principios que guían el proceso de toma
de decisiones.
Rapidez: Los métodos heurísticos a menudo se eligen porque son más rápidos y
menos costosos computacionalmente que los enfoques algorítmicos más
rigurosos.
No Garantía de Solución Óptima: A diferencia de los algoritmos, los métodos
heurísticos no garantizan una solución óptima. En cambio, buscan soluciones
satisfactorias o suficientemente buenas en un tiempo razonable.
Adaptabilidad: Los métodos heurísticos son adaptables a diferentes tipos de
problemas y pueden ajustarse según las circunstancias específicas.
Aplicación en Problemas Complejos: Se utilizan comúnmente en situaciones
donde la búsqueda exhaustiva de una solución óptima es impracticable debido a la
complejidad del problema.
Aprendizaje Iterativo: La experiencia y el aprendizaje iterativo son elementos clave
en la aplicación de métodos heurísticos. A medida que se enfrenta a problemas
similares en el tiempo, el método puede ajustarse y mejorar.

3.2 Metodología para solución de problemas.

Método del diagrama Método divide y


Método de las 5E
de flujo vencerás.

Un Diagrama de Flujo
representa la esquematización Es un modelo Hace referencia ah un
gráfica de un algoritmo, el cual constructivista en 5 fases: refrán que implica
muestra gráficamente los Engage, explore, explain, resolver un problema
pasos o procesos a seguir para elabórate y evalúate difícil
alcanzar la solución de un
problema

Método de caso Método de árbol


de causas. Método científico
El árbol de causas es
El método del caso es una
una metodología de El método científico es una
metodología de aprendizaje
investigación de accidentes metodología para obtener
basada en el learning by
que no sustituye a las demás nuevos conocimientos
doing
técnicas preventivas

Método de diseño
descendente y de
refinamiento por pasos.

En el diseño descendente de
ensamblajes, una o más operaciones
de una pieza se definen mediante un
elemento del ensamblaje
1
Inicio

“ Elaboración de un Juntar los 2 panes


Sándwich de mermelada y

cacahuate”

“ Sándwich terminado”

Pan, mermelada y
crema de cacahuate

Fin

Primero saco 2 panes


Luego unto mermelada en
el 1er pan

Después pongo crema de


cacahuate en el 2do pan

inicio 1

Y metemos los dados de


“Elaboración para
manera de x para que entre
cambiar una llanta”
igual todos los dados

Cruceta, gato,
dado y llanta de “llanta cambiada”
cambio

Primero levantamos el carro


con el gato Fin

Luego con la cruceta quitamos


los dados
3.3 Elementos y estructuras para la modelación de
problemas.

Los tipos de datos son una parte fundamental de la programación y se utilizan


para definir el tipo de valor que puede almacenarse en una variable, una constante
o ser manipulado por un programa. Los tipos de datos proporcionan información
sobre la naturaleza de los datos y la forma en que deben ser procesados.
Aquí hay algunos tipos de datos comunes:

Enteros (Integer): Representan números enteros sin parte decimal. Ejemplos


incluyen 1, -5, 100, etc.
Punto flotante (Floating Point): Representan números con decimales. Ejemplos
incluyen 3.14, -0.5, 2.0, etc.
Cadenas de caracteres (String): Representan secuencias de caracteres, como
texto. Por ejemplo, "Hola, mundo!".
Booleanos (Boolean): Representan valores lógicos Verdadero (true) o Falso
(false).
Listas y arreglos (List, Array): Colecciones de elementos. Las listas pueden
cambiar de tamaño dinámicamente, mientras que los arreglos tienen un tamaño
fijo.
Tuplas (Tuple): Son similares a las listas, pero suelen tener un tamaño fijo y son
inmutables.
Diccionarios (Dictionary): Colecciones de pares clave-valor.
Objetos (Object): En lenguajes orientados a objetos, los objetos son instancias de
clases y pueden contener atributos y métodos.
Caracteres (Char): Representan un solo carácter, como 'a' o '5'.
Punteros (Pointer): Almacenan la dirección de memoria de otra variable.
Estructuras (Struct): Permiten agrupar diferentes tipos de datos bajo un mismo
nombre.
Estos tipos de datos pueden variar según el lenguaje de programación que estés
utilizando. Cada lenguaje de programación tiene sus propios tipos de datos y
reglas para trabajar con ellos. Es importante entender los tipos de datos
disponibles y cómo se utilizan en el contexto de un lenguaje de programación
específico.
Variables y constantes.

En programación, las variables y las constantes son elementos fundamentales que


se utilizan para almacenar y manipular datos en un programa. Aquí tienes una
descripción de cada uno:
Variables:
Una variable es un espacio de almacenamiento nombrado que puede contener un
valor.
Las variables pueden cambiar de valor durante la ejecución del programa.
Se declaran con un tipo de datos específico (entero, flotante, cadena, etc.).
En muchos lenguajes de programación, la declaración de una variable incluye su
tipo y nombre, como por ejemplo: int edad; o float precio;.
Se pueden asignar valores a las variables y utilizar esas variables en operaciones
matemáticas, comparaciones, y más.
Ejemplo en Python:
python
edad = 25
nombre = "Juan"
salario = 1500.50
Constantes:
Una constante es un valor que no cambia durante la ejecución del programa.
A diferencia de las variables, las constantes tienen un valor fijo que se establece
en tiempo de compilación o durante la ejecución temprana del programa y no se
puede modificar después.
Algunos lenguajes de programación tienen palabras clave específicas para definir
constantes, mientras que en otros, se utilizan convenciones de nomenclatura (por
ejemplo, en mayúsculas) para indicar que una variable se considera constante.
Ejemplo en C++:
cpp
const int VALOR_MAXIMO = 100;
const double PI = 3.14159;
Ejemplo en Python (convención de nomenclatura para constantes):
python
VALOR_MAXIMO = 100
PI = 3.14159
El uso de variables y constantes permite a los programadores almacenar y
manipular datos de manera flexible en sus programas, lo que es esencial para la
creación de software funcional y dinámico.
Operadores.

Los operadores son símbolos o palabras reservadas que realizan operaciones en


uno o más operandos en un programa. Los operandos pueden ser variables,
constantes o valores, y la operación que se realiza depende del tipo de operador.
Aquí hay algunos tipos comunes de operadores:

Operadores Aritméticos:

Realizan operaciones matemáticas básicas.


Ejemplos: + (suma), - (resta), * (multiplicación), / (división), % (módulo).
Ejemplo en Python:
python
a = 10
b=3
suma = a + b
resta = a - b
multiplicacion = a * b
division = a / b
modulo = a % b
Operadores de Comparación:

Comparan dos valores y devuelven un resultado booleano (True o False).


Ejemplos: == (igual a), != (no igual a), < (menor que), > (mayor que), <= (menor o
igual a), >= (mayor o igual a).
Ejemplo en JavaScript:

javascript
let x = 5;
let y = 8;

console.log(x == y); // false


console.log(x < y); // true
Operadores Lógicos:

Realizan operaciones lógicas entre expresiones booleanas.


Ejemplos: && (y lógico), || (o lógico), ! (no lógico).
Ejemplo en Java:
java
boolean esMayorDeEdad = true;
boolean tieneLicencia = false;
boolean puedeConducir = esMayorDeEdad && tieneLicencia;
Operadores de Asignación:

Asignan un valor a una variable.


Ejemplo: = (asignación básica), += (suma y asignación), -=, *=, /=, entre otros.
Ejemplo en C#:
csharp
int a = 5;
a += 3; // a ahora es 8
Operadores de Incremento y Decremento:

Incrementan o decrementan el valor de una variable.


Ejemplos: ++ (incremento), -- (decremento).
Ejemplo en C:
c
int contador = 10;
contador++; // contador ahora es 11
Estructura de control.
Las estructuras de control son elementos fundamentales en la programación que
permiten controlar el flujo de ejecución de un programa. Estas estructuras
determinan cómo y cuándo se ejecutan ciertas partes del código. Aquí hay algunas
estructuras de control comunes:
Estructuras de Control Condicionales:
if-else: Ejecuta un bloque de código si una condición es verdadera y otro bloque si
la condición es falsa.
Ejemplo en Python:

python
edad = 18
if edad >= 18:
print("Eres mayor de edad.")
else:
print("Eres menor de edad.")
switch-case (en algunos lenguajes): Evalúa una expresión y ejecuta el bloque de
código correspondiente al valor de esa expresión.
Estructuras de Control de Bucles (Ciclos):
for: Se utiliza para iterar sobre una secuencia (como una lista, tupla, o rango) un
número fijo de veces.
Ejemplo en JavaScript:

javascript
for (let i = 0; i < 5; i++) {
console.log(i);
}
while: Se ejecuta mientras una condición sea verdadera.

Ejemplo en C#:

csharp
int contador = 0;
while (contador < 5) {
Console.WriteLine(contador);
contador++;
}
do-while: Similar a while, pero garantiza que el bloque de código se ejecute al
menos una vez, ya que la condición se evalúa después de la primera ejecución.

Ejemplo en Java:

java
int contador = 0;
do {
System.out.println(contador);
contador++;
} while (contador < 5);
Estructuras de Control de Saltos:
break: Termina la ejecución de un bucle o switch antes de que se complete
normalmente.

continue: Salta a la siguiente iteración de un bucle, omitiendo el resto del código


dentro del bucle para la iteración actual.

Ejemplo en C:

c
for (int i = 0; i < 10; i++) {
if (i == 5) {
break; // Sale del bucle cuando i es igual a 5
}
printf("%d\n", i);
}
Estas estructuras de control son herramientas esenciales para escribir programas
más complejos y para controlar el flujo de ejecución de manera efectiva. La
elección de la estructura de control adecuada depende de la lógica específica que
estés implementando en tu programa.
Estos son solo algunos ejemplos de operadores comunes. La mayoría de los
lenguajes de programación admiten una variedad de operadores para realizar
diversas operaciones en datos y variables.
Estructura Básica de la programación.
La estructura básica de programación se refiere a la organización general y el flujo
de un programa de computadora. Aunque puede variar según el paradigma de
programación y el lenguaje específico, hay una estructura común que se
encuentra en muchos programas. Esta estructura básica se conoce como la
estructura secuencial y está compuesta por tres partes principales:
Entrada (Input):

En esta fase, el programa recibe datos desde una fuente externa. Los datos
pueden provenir de un usuario que ingresa información a través de un teclado, de
un archivo, de una base de datos, o de otros dispositivos de entrada.
La entrada de datos es esencial para que el programa tenga información con la
cual trabajar.
Proceso (Processing):

En esta etapa, el programa realiza operaciones o procesa los datos de entrada


según la lógica definida por el código.
Puede incluir cálculos matemáticos, manipulación de datos, toma de decisiones
mediante estructuras condicionales, iteraciones a través de bucles, llamadas a
funciones, entre otras operaciones.
Aquí es donde se lleva a cabo la mayor parte del trabajo del programa.
Salida (Output):

Después de procesar los datos, el programa produce resultados o genera


información de salida.
La salida puede presentarse al usuario (a través de una interfaz gráfica, consola,
etc.), guardarse en un archivo, enviarse a una impresora, o transmitirse a través
de una red, dependiendo de los requisitos del programa.
La salida proporciona el resultado del trabajo realizado por el programa.
La estructura básica de programación se puede visualizar como un flujo
secuencial de instrucciones, donde las fases de entrada, proceso y salida se
suceden de manera ordenada. Es importante destacar que muchos programas no
siguen únicamente una estructura secuencial; incorporan estructuras de control
como condicionales y bucles para adaptarse a diferentes situaciones.
Referencias Bibliográficas.

3.1 Problemas, alternativas de solución y algoritmos.


¿Qué es un problema?. oa.upm.es. Consultado en línea de:
https://oa.upm.es/14207/1/06-metodos-resolucion-problemas.pdf [20/11/2023]
Diferencia entre un problema divergente a un convergente. oa.upm.es. Consultado
en línea de: https://oa.upm.es/14207/1/06-metodos-resolucion-problemas.pdf
[20/11/2023]
¿Qué es una alternativa de solución de un problema?oa.upm.es. Consultado en
línea de: https://oa.upm.es/14207/1/06-metodos-resolucion-problemas.pdf
[20/11/2023]
Método algorítmico. oa.upm.es. Consultado en línea de:
https://oa.upm.es/14207/1/06-metodos-resolucion-problemas.pdf [20/11/2023]
Método heuristico. oa.upm.es. Consultado en línea de:
https://oa.upm.es/14207/1/06-metodos-resolucion-problemas.pdf [20/11/2023]

3.2 Metodología para solución de problemas.


Método diagrama de flujo. Universidad veracruzana. Consultado en línea de:
https://www.uv.mx/personal/aherrera/files/2020/05/DIAGRAMAS-DE-FLUJO.pdf.
[02/11/2023]

Método de las 5E. sciencie. Consultado en línea de: https://science-


bits.com/modal-
5e.php?lng=PT#:~:text=El%20modelo%20de%20ense%C3%B1anza%205E,%2C
%20Explain%2C%20Elaborate%20y%20Evaluate.. [07/11/2023]

Método divide y vencerás. Freecode. Consultado en línea de:


https://www.freecodecamp.org/espanol/news/significado-del-algoritmo-divide-y-
venceras/. [07/11/2023]

Método de caso. Bussines. Consultado en línea de:


https://www.iese.edu/es/metodo-del-
caso/#:~:text=El%20m%C3%A9todo%20del%20caso%20es%20una%20metodolo
g%C3%ADa%20de%20aprendizaje%20basada,la%20pr%C3%A1ctica%20de%20
situaciones%20reales. [07/11/2023]

Método del árbol de causas. INSST. Consultado en línea de:


https://istas.net/salud-laboral/actividades-preventivas/investigacion-de-accidentes-
de-trabajo/el-metodo-arbol-de. [07/11/2023]
Método científico. Concepto. Consultado en línea de: https://concepto.de/metodo-
científico/. [07/11/2023]

Método de diseño descendente. SolidWorks. Consultado en línea de:


https://help.solidworks.com/2018/spanish/SolidWorks /sldworks/c_Top-
Down_Design_Overview.htm#:~:text=En%20el%20dise%C3%B1o%20descendent
e%20de,se%20mueve%20hacia%20las%20piezas.. [07/11/2023]

3.3 Elementos y estructuras para la modelación de


problemas.
Variables y constantes. Departamento.us.es. Consultado en línea de:
https://departamento.us.es/edan/php/asig/LICFIS/LFIPC/Tema5FISPC0809.pdf
[15/11/2023]
Operadores. Departamento.us.es. Consultado en línea de:
https://departamento.us.es/edan/php/asig/LICFIS/LFIPC/Tema5FISPC0809.pdf
[15/11/2023]
Estructura de control. Departamento.us.es. Consultado en línea de:
https://departamento.us.es/edan/php/asig/LICFIS/LFIPC/Tema5FISPC0809.pdf
[15/11/2023]
Estructura Básica de la programación. Departamento.us.es. Consultado en línea
de: https://departamento.us.es/edan/php/asig/LICFIS/LFIPC/Tema5FISPC0809.pdf
[15/11/2023]

También podría gustarte