Fundamentos de Algoritmo - 2024-2

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 9

Nota: Analizar las preguntas planteadas y resolver con claridad y objetividad

1. Desarrolle del Balotario (nivel 3), la pregunta 2 (2.5p)


Problema 2: Escriba un programa que encuentre el cuadrado mágico para cualquier n donde 3< n< 10 de orden impar.
Un cuadrado mágico es una cuadrícula en general de n x n, en la que se acomodan ciertos números que cumplen que
la suma de cualquier renglón, la suma de cualquier columna y la suma de cualquiera de cualquiera de las dos
diagonales es siempre la misma. Si el cuadrado es de 3 x 3, entonces tendrá 9 casillas y los números que se acomodan
en él son todos los números del 1 al 9. Si el cuadrado es de 4 x 4, entonces tendrá 16 casillas y los números que se
acomodan en él son del 1 al 16. En general, si el cuadrado es de n x n, entonces tendrá n cuadrada casillas y los
números que acomodaremos en él serán del 1 a n². El orden de un cuadrado mágico es el número de renglones o el
número de columnas que tiene. Así un cuadrado de 3 x 3 se dice que es de orden 3.

a) Pseudocódigo
b) Diagrama de flujo
c) C# o C++

C#
using System;

class Problem1
{
static void Main()
{
Console.Write("Introduce el valor de n (3 < n < 10 y impar): ");
int n = int.Parse(Console.ReadLine());

if (n <= 3 || n >= 10 || n % 2 == 0)
{
Console.WriteLine("El valor de n debe ser un número impar entre 3 y 10.");
return;
}

int[,] magicSquare = new int[n, n];


int num = 1;
int i = 0, j = n / 2;

while (num <= n * n)


{
magicSquare[i, j] = num;
num++;
i--;
j++;

if (i < 0 && j == n)
{
i = 1;
j = n - 1;
}
else
{
if (i < 0)
i = n - 1;
if (j == n)
j = 0;
}

if (magicSquare[i, j] != 0)
{
i += 2;
j--;
}
}

Console.WriteLine("El cuadrado mágico de orden " + n + " es:");


for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
Console.Write(magicSquare[i, j] + "\t");
Console.WriteLine();
}
}
}

2. Desarrolle del Balotario (nivel 3), la pregunta 3 (2.5p)


Problema 3: A partir de una lista de calificaciones de los alumnos de primer grado, acceder y mostrar la información
correspondiente a dicha lista mediante el acceso de un apuntador.

a) Pseudocódigo
b) Diagrama de flujo
c) C# o C++

Diagrama de flujo:
Código en C#:
using System;
class Program
{
static void Main()
{
int [] Arreglo = { 5, 5, 6, 6, 7, 8, 5, 5, 9, 9, 10, 11 };
for (int i = 0 ; i < Arreglo.Length ; i++)
{
Console.WriteLine($"Arreglo[{i}] = {Arreglo[i]}");
}
}
}

3. Desarrolle del Balotario (nivel 3), la pregunta 4 (2.5p)


Problema 4: Escribir una función que sea capaz de ordenar virtualmente un arreglo de enteros, las funciones deben
contener algún manejo de puntero.
a) Pseudocódigo
b) Diagrama de flujo
c) C# o C++
DIAGRAMA DE FLUJO

C
#include <stdio.h>
int arr[10]={2, 3, 4, 5, 9, 19, 300, 29, 4, 1};
void ordena (int *p, int N);
void compara (int *m, int *n);
int main()
{
int i=0;
for (i=0; i < 10; i ++)
{
printf(“[ %d ] ”, arr[i]);
}
ordena(arr, 10);
printf(“\n”);
for (i=0; i < 10; i ++)
{
printf(“[ %d ] ”, arr[i]);
}
getch();
return 0;
}
void ordena (int *p, int N)
{
int i, j, t;
for (i=N-1; i >=0; i--)
{
for (j = 1; j<=i; j++)
{
if (compara(&p[j-1], &p[j]))
{
t = p[j-1];
p[j-1]= p[j];
p[j] = t;
}
}
}
}
int compara(int *m, int *n)
{
return (*m >*n);
}
4. Desarrolle del Balotario (nivel 3), la problema 1 (2.5p)
Problema 1: Escribir un programa que permita visualizar el triangulo de pascal. En el triángulo de pascal cada
número es la suma de los dos números situados encima de él. Este problema se debe resolver utilizando un arreglo
de una sola dimensión.
a) Pseudocódigo
b) Diagrama de flujo
c) C# o C++

PSEUDOCODIGO
Inicio
//Definir variables
n = representa el número de fila del triángulo
//Operación
Escribir "Ingrese número de fila: "
leer n

para i<-0 Hasta n-1 Hacer


m <- 1
Para j<-0 hasta i Hacer
Escribir m Sin Saltar " "
m <- m * (i-j)/(j+1)
FinPara
Escribir " "
FinPara
Fin
DIAGRAMA DE FLUJO EN PSEINT
C#
using System;
class Problem1
{
static void Main()
{
Console.Write("Ingrese número de fila: ");
int n = int.Parse(Console.ReadLine());
for (int i = 0; i < n; i++)
{
int m = 1; // Inicializa el valor m
for (int j = 0; j <= i; j++)
{
Console.Write(m + " "); // Escribe el valor sin salto de línea
m = m * (i - j) / (j + 1); // Calcula el siguiente valor en la fila
}
Console.WriteLine(); // Salto de línea después de cada fila
}
}
}
5. Evidencia de haber cumplido la capacitación de Cisco (Adjuntar certificado) (10p)
a) Tema desarrollado:
Tipo de datos, operaciones y el básico control de flujo
b) ¿Qué aspecto le pareció más importante desde su punto de vista?:
Es importante saber los tipos de datos que tiene cada lenguaje de programación para no caer en error al momento de escribir el

código. Además, debemos conocer los signos de los operadores, ya que cada lenguaje de programación maneja diferente simbología y
también conocer los conectores que tiene cada lenguaje, sin esto, no podremos desarrollar bien nuestro diagrama de flujo.

c) Certificado

Opcionales:
I) Pseudocódigo para calcular la suma de los elementos del siguiente vector de enteros.

1 5 10 15 -30 20 25 50 -100 40
a[ ]=
0 1 2 3 4 5 6 7 8 9

Luego pasas a Diagrama de Flujo y Pseudocódigo.


2) Pseudocódigo para calcular el mayor y menor elemento de una matriz de N filas y M columnas.
N [5]
M[4]

0 1 2 3

x[5] [4] = 0 35 40 22 70

1 10 27 42 31

2 15 90 25 17

3 90 5 175 85

4 37 35 45 105

“Si llegaste hasta aquí, eres mejor que millones de personas que no pudieron, eres un vencedor, si de todo los nuevos y grandes retos triunfas serás
exitoso, ahora depende de ti”
Dr. Ing. Felix Pucuhuayla Revatta

También podría gustarte