Reporte Programación 2
Reporte Programación 2
Reporte Programación 2
Algoritmos y programación
Bio-programadores:
HUMBERTO ALONSO RODRIGUEZ PAREDES
JAVIER DEL ANGEL DEL ANGEL
SERGIO DANIEL SALAMANCA HERNANDEZ
VERONICA IVETH ALARCON HERNANDEZ
IAN SHAIEL ANELL RODRIGUEZ
JOSE DAVID AMANTE QUINTANA
Antes de iniciar es importante definir los tipos de ciclo de repetición que existen en
Pseint y C#.
Los bucles, también conocidos como "ciclos", son estructuras de control que
permiten que un conjunto de instrucciones se repita varias veces hasta que se
cumpla una condición específica. Estas estructuras son fundamentales para
automatizar tareas repetitivas y realizar cálculos iterativos.
Ciclos en Pseint
En PSeInt, hay tres tipos principales de bucles: el bucle "Mientras", el bucle "Repetir"
y el bucle "Para". Cada uno de ellos tiene sus propias aplicaciones y se utiliza según
las necesidades específicas del programa.
Bucle "Mientras" en PSeInt
FinMientras
Bucle "Repetir" en PSeInt
El bucle "Repetir" se utiliza para repetir un conjunto de instrucciones hasta que una
condición sea verdadera. La estructura básica es la siguiente:
Repetir
// Código a repetir al menos una vez
Para variable <- valorInicial Hasta valorFinal Con paso paso Hacer
FinPara
Ciclos en C#
Instrucción for
Console.Write(i);
}
Instrucción foreach
Console.Write($"{element} ");
}
Instrucción do
int n = 0;
do
{Console.Write(n);
n++;
int n = 0;
while (n < 5)
Console.Write(n);
n++;
Haremos que nos diga "Número incorrecto, vuelva a intentar" cada que nos
equivoquemos de número al intentarlo adivinar. En este caso el ciclo se va a
repetir una y otra vez hasta que el usuario no ingrese el número 8. Terminamos
con el ciclo de “mientras” y hacemos que al adivinar el numero el programa nos
diga "Adivinaste el número" y así le damos fin a nuestro algoritmo.
Procedemos a probarlo iniciando la ejecución del algoritmo.
Diagramas de flujo clásico y de Nassi-Shneiderman
Repetición de vocales
Primero usaremos Console.ForegroundColor para cambiar el color de los textos
que la pantalla mostrará al usuario una vez entre al programa, seguido del
respectivo Console.WriteLine(“”) que llevará el “titulo” del programa y así poder
darle al usuario una idea de lo que hace nuestra aplicación.
Ahora definiremos las vocales como variables enteras y les asignaremos el valor
inicial de cero.
Para el bucle que se encargará de capturar el texto haremos uso del ciclo while y
pondremos dentro de él que la entrada de texto será igual a lo que la consola lea
en la pantalla después de que el usuario escriba, esto usando Console.ReadLine()
Después aumentaremos el contador para cada vocal por cada vez que se repita
esa vocal en el texto, en este caso lo haremos con aCount+= ContarVocales(input,
‘a’) y lo repetimos para cada vocal cambiando la variable y la letra dentro del
paréntesis.
Para verificar si se ha ingresado cada vocal al menos tres veces usaremos un
ciclo if donde la condición sea que el contador de cada vocal sea mayor o igual a
3, si esto es verdadero se mostrará en pantalla el mensaje de que el código ha
finalizado ya que cada vocal se repite al menos 3 veces. Dejando al ultimo un
Thread.Sleep(5000) para que la pantalla no se cierre en un instante y le de al
usuario tiempo de leer que todo ha finalizado.
Esta parte del código es una función llamada ContarVocales que cuenta cuántas
veces aparece una vocal específica en un texto dado. Y por medio del código
sigue los siguientes pasos:
1. Parámetros:
○ texto: Es una cadena de caracteres (string) que representa el texto
en el que queremos buscar las vocales.
En resumen, esta función es útil para contar cuántas veces aparece una vocal
específica en una cadena de texto.
Ejecución:
Aproximación al número Pi
Lo primero que se hizo en el programa fue declarar las variables, en este caso solo
se necesitó declarar una sola variable de tipo “double” con el nombre de suma y con
un valor inicial de 0(neutro aditivo).
Después se tiene que iniciar un ciclo infinito for, para esto lo que se hizo fue declarar
una variable n de tipo entero dentro del ciclo for, después se puso una condición la
cual siempre sea verdadera, esto para que el ciclo sea infinito; la condición fue que
el ciclo se ejecute siempre que n sea menor o igual a 10 o que n sea mayor a 10
(puede ser cualquier número), como podemos ver, esta condición es siempre
verdadera, n va a ir aumentando de uno en uno como en una sumatoria.
El bloque de código que se ejecutará dentro del ciclo infinito for es el siguiente.
Primero se guardará en la variable suma la fórmula de la sumatoria de Leibniz
sumando la misma variable suma, esto es para que la variable suma se vaya
actualizando cada vez que se reinicie el ciclo for, después se muestra en la consola
el resultado de suma.
Lo que sigue en el programa es un condicional if que establece que si
Console.KeyAvailable, es decir, que si hay una tecla presionada, el programa lo que
hará es guardar la tecla presionada en una variable llamada “tecla”, después esto
pasa a otro if anidado, el cual indica que si la tecla presionada guardada en la
variable “tecla” es la tecla liberadora “escape”, pasa a un “brake”, y esto significa
que el cliclo for infinito se rompe; si alguno de los dos o los dos condicionales if no
se cumple, el ciclo for se seguirá reiniciando una y otra vez hasta que se presione
la tecla liberadora escape.
Como primera línea se pone el nombre que tiene el programa para que el usuario
entienda de que se trata el código, luego se pone la tecla con la que el programa se
puede cerrar, después la letra que está asignada para que se reproduzca una
canción, y por último, las letras que el usuario podrá usar para tocar el piano.
Luego de eso usaremos la constante “Bool running =true;” ya que esta únicamente
acepta valores que sean falsos o verdaderos (True y False), después se utilizará un
“While (running)”, y al final del código se agrega un “case ConsoleKey. Escape:
running = false; break;”.
Se tendrá que colocar nuevamente “static void” junto con el nombre de la melodía
o de la manera que se le quiera poner a dicha secuencia. Posteriormente se
agregarán dos “int” en el primero se pondrán las frecuencias y en el segundo se
pondrá la duración que se le quiera poner a cada frecuencia.
Las frecuencias de cada nota quedarán así. Ahora anotaremos las frecuencias
correspondientes en el código. Basándonos en el compás de ¾ que marca la
melodía, nos daremos una idea de la duración que tendrá cada nota, para terminar,
solo quedará iniciar el programa y verificar que la melodía tenga una cadencia
parecida.
En ambas imágenes se puede observar como quedaron las teclas designadas para
que se cierre el programa, y la tecla designada para que se reproduzca la canción.
También se puede observar como quedó la canción junto con la duración de cada
nota.
Para iniciar este programa se le muestra al usuario para qué sirve, para eso
haciendo uso de la línea console.WriteLine le indicamos a nuestro programa que
muestre un texto.
Una vez que el usuario conozca el propósito del programa se le indica que ingrese
la cantidad de números que el desea ingresar para después calcular su promedio,
para eso se utilizó nuevamente el comando console.WriteLine:
Después se definió nuestra primera variable, en este caso de tipo entero, la cual
llamaremos cantidadNumeros y esta será igual al valor ingresado por el usuario en
la línea anterior, se utilizó el comando console.ReadLine con el int.Parse, esto
porque el numero que ingreso el usuario anteriormente son caracteres y
necesitamos cambiarlo a una variable de tipo entero debido a que nuestra variable
CantidadNumeros es de tipo entero.
Una vez declara nuestra variable y nuestro arreglo donde se almacenaran los datos,
iniciaremos con un bucle for, para indicarle al usuario que ingrese los valores de los
números que desea promediar, las condiciones serán que iniciara con un valor de
i=0, que se detendrá hasta que i<cantidadNumeros y que i se ira incrementando de
uno en uno(i++). Después se le darán las instrucciones que se desean repetir, en
este caso vamos a repetir un texto que diga que ingrese el valor del numero 1,2,3 y
así sucesivamente y almacenaremos estos datos en nuestro arreglo números con
el comando console.ReadLine, dentro del ciclo o bucle For incluiremos una
condicional con el comando if, esto por si el usuario ingresa un numero inferior a 0
y mayor a 10, para esto se utilizó el operador lógico O(or), indicando que si al menos
una de las condiciones se cumple entonces la consola mostrara un mensaje de que
no se puede ingresar ese número, así mismo, decrementando i para que el usuario
puede ingresar el valor nuevamente.
Una vez que el ciclo For haya concluido iniciamos el calculo del promedio de los
números alamacenados en nuestro arreglo numeros, definimos una variable suma
de tipo double con un valor inicial de 0 y empezara a sumar los numeros, una vez
acabado el ciclo se define una variable de tipo double promedio, misma que tendrá
el promedio, para eso el valor con el que acabo el bucle foreach (suma) será dividido
entre la cantidadNumeros y al final, mediante el uso de console.WriteLine, le
mostraremos al usuario el valor del promedio así como también un mensaje que
diga: presiona cualquier tecla para salir y finalizamos con un conosle.ReadKey.
Prueba algoritmo C#
Por otro lado para calcular el número con menor valor se aplica la función .Min() a
la variable, la cual cumple una función similar a .Max() pero en este caso selecciona
el que tenga menor valor.
Para obtener el mayor cambio absoluto ocurrido entre dos valores consecutivos, lo
que se debe de realizar es colocar una nueva clase para la variable desconocida
del mayor cambio de valor absoluto, crear una variable y darle un valor la cual como
vamos a utilizar.
Seguido se abre un ciclo for el cual se va a repetir hasta que la variable i sea igual
al número de valores N.
El cual genera una variable la cual tiene un valor absoluto de una resta teniendo el
número N de la serie y el siguiente. Colocando un if con la condición de que el
resultado del valor absoluto de la resta sea mayo a la variable maxAbsoluto, y si es
mayor este sustituye el valor y así sucesivamente hasta tener el valor maxAbsoluto
más grande que se pueda.
Finalmente, en el código se escribe el valor del resultado del mayor cambio absoluto
de dos variables.
Por ultimo el programa arrojara el resultado del número con mayor valor, menor
valor y el mayor valor absoluto entre dos números consecutivos, que, en este caso,
el número de mayor valor es 9, el de menor 1 y el cambio de valores es 8, debido a
que entre los valores consecutivos 1 y 9 hay un cambio de 8 unidades.
Conclusión
Gracias a la realización de estos ejercicios logramos entender mejor el
funcionamiento de los ciclos de repetición o bucles de ambos programas, tanto de
PSeInt como de C#. Logramos profundizar un poco más y subirle la dificultad a
comparación de los ejercicios anteriores. Por la investigación a la que debíamos
recurrir para la realización del código se aprendió y descubrió los diferentes tipos de
variables con las que cuenta el programa. Nos hizo darnos una idea de las increíbles
cosas que podemos lograr programando, y que con un poco de curiosidad e
imaginación podemos llegar a hacer cosas increíbles.
Referencias:
https://codersfree.com/posts/bucles-en-pseint-automatizando-tareas-
repetitivas
https://learn.microsoft.com/es-es/dotnet/csharp/language-
reference/statements/iteration-statements