Está en la página 1de 9

Guía de actividades y rúbrica de evaluación - Unidad 2 - Paso 3 - Estructuras repetitivas y

arreglos

Nicolas García Poveda

Código: 213022

Curso: Fundamentos de Programación

Universidad Nacional Abierta y a Distancia


Cajica, 2023
Introducción

En el ámbito de la programación y el desarrollo de software, es importante contar con

habilidades para analizar problemas, identificar requerimientos y diseñar soluciones eficientes.

En esta actividad, nos enfocaremos en desarrollar estas habilidades a través de la resolución de

problemas, el análisis y el diseño de diagramas de flujo. Además, aplicaremos estos conceptos

utilizando el lenguaje de programación C# para codificar y probar nuestras soluciones.

Objetivos:

- Seleccionar y analizar problemas del archivo “Banco de Problemas” para su posterior

resolución.

- Identificar y describir los requerimientos funcionales de los problemas seleccionados,

incluyendo las entradas y resultados esperados.

- Diseñar diagramas de flujo para representar la solución a cada problema.

- Codificar y realizar pruebas de escritorio utilizando el lenguaje de programación C# para

implementar las soluciones propuestas.

- Comprimir y entregar la carpeta completa del código fuente, junto con un informe que incluya

los diagramas de flujo, el código completo y los resultados obtenidos.

Con estos objetivos en mente, nos adentraremos en el análisis, diseño y codificación de

soluciones a problemas específicos, utilizando las herramientas y conocimientos adquiridos en el

curso.
Nicolas Garcia P. Problema 4 y 4

(213022A_1392)

Actividad 2. Tabla de Requerimientos

Problema # Identificación del Entradas Resultados (salidas)


requerimiento
1 Ingresar el capital 1000 1000
inicial
2 Ingresar el número de 24 24
meses
3 Calcular el capital - Muestra correctamente
mes a mes el mensaje
4 Mostrar el cálculo del - Muestra correctamente
capital acumulado por el cálculo del capital
cada mes acumulado por cada
mes
Mes 1: $1,007.00
5 Capital acumulado por - Muestra correctamente
cada mes en formato Mes 23: $1,174.03
monetario Mes 24: $1,182.24
Codigo Fuente:

using System;

namespace ProyectoBanco
{
    class Program
  {
        static void Main(string[] args)
    {
            // Solicitar al usuario el capital inicial y el número de meses
            Console.Write("Ingrese el capital inicial: ");
            double capitalInicial = double.Parse(Console.ReadLine());

            Console.Write("Ingrese el número de meses: ");


            int numMeses = int.Parse(Console.ReadLine());

            // Mostrar al usuario que se está realizando el cálculo del capital mes a mes
            Console.WriteLine("Calculando el capital mes a mes...");

            // Definir la tasa de interés mensual


            double tasaInteres = 0.007; // 0.7% de interés mensual

            // Calcular el capital acumulado mes a mes y mostrarlo por pantalla


            double capitalActual = capitalInicial;

            for (int i = 1; i <= numMeses; i++)


      {
                // Calcular el nuevo capital sumando el interés mensual al capital actual
                capitalActual += capitalActual * tasaInteres;

                // Mostrar el capital acumulado para cada mes


                Console.WriteLine($"Mes {i}: {capitalActual:C}");
      }

            Console.ReadLine();
    }
  }
}
Diagrama de flujo:

Realizado en Draw.io
Problemas Matrices Bidimensionales-Ejercicio 4, Matrices 3x3

Identificación del Descripción Entradas Resultados (salidas)


requerimiento
1 Ingresar los números 100,110,120,130,140, Matriz:
para la matriz 150,160,170,180 100 110 120
130 140 150
160 170 180
2 Calcular la suma de las Matriz de números Suma de la diagonal 1:
diagonales principales enteros 420
Suma de la diagonal 2:
420
3 Calcular el promedio Suma de la diagonal Promedio de la
de las diagonales principal 1 y suma de diagonal 1: 140
principales la diagonal principal 2 Promedio de la
diagonal 2: 140
4 Mostrar la matriz y las - Matriz y sumas de las
sumas de las diagonales por pantalla
diagonales
5 Determinar cuál Suma de la diagonal Mensaje indicando
diagonal obtuvo el principal 1 y suma de cuál diagonal obtuvo
mayor resultado la diagonal principal 2 el mayor resultado
6 Determinar cuál Promedio de la Ambas tuvieron el
diagonal obtuvo el diagonal principal 1 y mismo promedio
mejor promedio promedio de la
diagonal principal 2
Codigo Fuente:

using System;

namespace MatrizDiagonales
{
    class Program
  {
        static void Main(string[] args)
    {
            int[,] matriz = new int[3, 3];
            int sumaDiagonal1 = 0;
            int sumaDiagonal2 = 0;

            // Pedit los números por teclado y validar que estén en el rango


            for (int i = 0; i < 3; i++)
      {
                for (int j = 0; j < 3; j++)
        {
                    Console.Write($"Ingrese un número para la posición [{i}, {j}]: ");
                    int numero;
                    bool esValido = int.TryParse(Console.ReadLine(), out numero);

                    while (!esValido || numero < 100 || numero > 200)


          {
                        Console.WriteLine("El número ingresado es inválido. Debe estar en el rango
entre 100 y 200. Intente nuevamente.");
                        Console.Write($"Ingrese un número para la posición [{i}, {j}]: ");
                        esValido = int.TryParse(Console.ReadLine(), out numero);
          }

                    matriz[i, j] = numero;
        }
      }

            // Calcular la suma de las diagonales principales


            for (int i = 0; i < 3; i++)
      {
                sumaDiagonal1 += matriz[i, i];
                sumaDiagonal2 += matriz[i, 2 - i];
      }

            // Calcular el promedio de las diagonales principales


            double promedioDiagonal1 = (double)sumaDiagonal1 / 3;
            double promedioDiagonal2 = (double)sumaDiagonal2 / 3;
            // Mostrar la matriz y las sumas de las diagonales
            Console.WriteLine("Matriz:");
            for (int i = 0; i < 3; i++)
      {
                for (int j = 0; j < 3; j++)
        {
                    Console.Write(matriz[i, j] + "\t");
        }
                Console.WriteLine();
      }
            Console.WriteLine("Suma de la diagonal 1: " + sumaDiagonal1);
            Console.WriteLine("Suma de la diagonal 2: " + sumaDiagonal2);

            // Determinar cuál diagonal obtuvo el mayor resultado


            if (sumaDiagonal1 > sumaDiagonal2)
      {
                Console.WriteLine("La diagonal 1 obtuvo el mayor resultado.");
      }
            else if (sumaDiagonal2 > sumaDiagonal1)
      {
                Console.WriteLine("La diagonal 2 obtuvo el mayor resultado.");
      }
            else
      {
                Console.WriteLine("Ambas diagonales obtuvieron el mismo resultado.");
      }
            Console.WriteLine("Promedio de la diagonal 1: " + promedioDiagonal1);
            Console.WriteLine("Promedio de la diagonal 2: " + promedioDiagonal2);

            // Determinar cuál diagonal obtuvo el mejor promedio


            if (promedioDiagonal1 > promedioDiagonal2)
      {
                Console.WriteLine("La diagonal 1 tiene el mejor promedio.");
      }
            else if (promedioDiagonal2 > promedioDiagonal1)
      {
                Console.WriteLine("La diagonal 2 tiene el mejor promedio.");
      }
            else
      {
                Console.WriteLine("Ambas diagonales tienen el mismo promedio.");
      }
          Console.ReadLine();
    }
  }
}
Diagrama de flujo:

Realizado en Draw.io

También podría gustarte