# Formato extendido de propuesta algorítmica

Lógica de Programación y Pensamiento Computacional · Unidad III — Metodología para la solución de problemas algorítmicos

**Propósito:** documentar el proceso seguido para analizar, diseñar, representar y comprobar una solución algorítmica.

**Instrucción:** completa todas las secciones para documentar la solución. La propuesta debe mostrar el razonamiento seguido antes de llegar al pseudocódigo.

---

## 1. Identificación

| Campo | Información |
|---|---|
| Estudiante | |
| Grupo | |
| Fecha | |
| Ejercicio | |
| Título | |

---

## 2. Definición del problema

### 2.1 Descripción del problema

Explica con tus propias palabras la situación que se presenta y qué se necesita resolver.

**Problema:**

________________________________________

### 2.2 Objetivo

Indica en una sola frase qué debe obtener la solución.

**Objetivo:**

________________________________________

---

## 3. Análisis del problema

En esta sección se identifica qué información interviene en el problema y qué operaciones son necesarias. Todavía no es necesario definir los identificadores de programación.

### 3.1 Datos de entrada

Datos que debe proporcionar el usuario.

| Dato | Descripción |
|---|---|
| | |
| | |
| | |

### 3.2 Resultados esperados

Información que debe producir el algoritmo.

| Resultado | Descripción |
|---|---|
| | |
| | |

### 3.3 Datos conocidos

Información, valores o condiciones proporcionados directamente por el problema y que no necesitan ser solicitados al usuario.

| Dato | Valor / condición | Descripción |
|---|---|---|
| | | |
| | | |

Si no existen, escribe: No se especifican datos conocidos.

### 3.4 Proceso

Describe los pasos necesarios para transformar los datos de entrada y los datos conocidos en los resultados esperados.

________________________________________

### 3.5 Restricciones

Indica las condiciones que deben cumplirse para que la solución sea válida.

Si no existen, escribe: No se especifican restricciones.

________________________________________

---

## 4. Diseño de los datos

En esta sección se determina cómo se representará la información dentro del algoritmo mediante constantes, variables, tipos e identificadores.

### 4.1 Constantes

| Identificador | Tipo | Valor | Descripción |
|---|---|---|---|
| | | | |
| | | | |

Si no se utilizan, escribe: No aplica.

### 4.2 Variables

| Identificador | Tipo | Descripción |
|---|---|---|
| | | |
| | | |
| | | |
| | | |

### 4.3 Convenciones utilizadas

**Variables:** utilizan camelCase.

Ejemplos:

```text
cantidadPersonas
precioUnitario
promedioGeneral
```

**Constantes:** utilizan SCREAMING_SNAKE_CASE.

Ejemplos:

```text
MAX_INTENTOS
EDAD_MINIMA
TASA_IMPUESTO
```

---

## 5. Representación de la solución

### 5.1 Lenguaje natural

Describe la solución mediante pasos ordenados.

1.
2.
3.

### 5.2 Diagrama de flujo

Elaborar cuando sea solicitado.

**Diagrama:**

### 5.3 Pseudocódigo

**Tipos de datos permitidos:** ENTERO, REAL, CADENA, CARACTER, LOGICO

**Operaciones de entrada y salida:**

```text
Entrada:
Mostrar
```

**Estructura básica:**

```text
Inicio

    ...

Fin
```

**Pseudocódigo de la solución:**

```text
Inicio

Fin
```

---

## 6. Prueba y verificación

### 6.1 Caso de prueba principal

| Datos de entrada | Resultado esperado | Resultado obtenido | ¿Correcto? |
|---|---|---|---|
| | | | |

### 6.2 Caso de prueba adicional

Utiliza un caso diferente, límite o especial cuando el problema lo permita.

| Datos de entrada | Resultado esperado | Resultado obtenido | ¿Correcto? |
|---|---|---|---|
| | | | |

### 6.3 Errores detectados y correcciones

Describe los errores encontrados y las modificaciones realizadas.

________________________________________

---

## 7. Comprobación final

Antes de entregar, verifica:

- [ ] Definí el problema con mis propias palabras.
- [ ] Identifiqué los datos de entrada.
- [ ] Identifiqué los resultados esperados.
- [ ] Identifiqué los datos conocidos.
- [ ] Describí el proceso.
- [ ] Identifiqué las restricciones.
- [ ] Definí las constantes necesarias.
- [ ] Definí las variables necesarias.
- [ ] Los identificadores son claros y consistentes.
- [ ] Utilicé camelCase para variables.
- [ ] Utilicé SCREAMING_SNAKE_CASE para constantes.
- [ ] Utilicé los tipos de datos establecidos.
- [ ] El pseudocódigo utiliza la notación definida para la unidad.
- [ ] Realicé las pruebas.
- [ ] El resultado obtenido coincide con el resultado esperado.
