¿Cómo manejar correctamente los tipos de datos en programación?
Manejar de manera adecuada los tipos de datos en tu programa es una habilidad esencial para cualquier desarrollador, ya que un error en el tipo de dato puede causar que toda la información de tu programa se corrompa. Imagina que estás configurando un programa para manejar valores que deberían ir de -10 a 10. Si limitas una variable para que no reconozca valores negativos, perderás gran parte de la información importante. A continuación, exploraremos cómo gestionar correctamente los tipos de datos y los operadores aritméticos en C#.
¿Cómo iniciamos un proyecto en C# para calcular el área de un rectángulo?
Iniciar un proyecto en C# para realizar cálculos puede ser bastante sencillo. Primero, abre un nuevo proyecto de tipo "Console Application" y nómbralo, por ejemplo, "Square Area". Comenzamos declarando y asignando valores a nuestras variables:
// Este programa calcula el área de un rectánguloint sideA =10;int sideB =20;// Cálculo del área del rectánguloint area = sideA * sideB;Console.WriteLine("El área del rectángulo es: "+ area);
En este fragmento de código, puedes observar el uso de la multiplicación para calcular el área del rectángulo utilizando las variables sideA y sideB.
¿Qué ocurre al trabajar con diferentes tipos de datos como float y int?
Al realizar operaciones entre diferentes tipos de datos como float y int, pueden surgir advertencias o errores en tu código. El compilador te indicará si estás tratando de convertir o operar incorrectamente con tipos incompatibles.
float sideA =10.2f;int sideB =20;float area = sideA * sideB;
Al multiplicar un float por un int, es imprescindible que la variable receptora, en este caso area, sea también de tipo float para evitar la pérdida de información decimal.
¿Cómo funcionan los operadores aritméticos en C#?
Los operadores aritméticos son fundamentales para realizar operaciones matemáticas en programación. Existen varios operadores que debes conocer:
Suma (+): suma dos operandos.
Resta (-): resta un operando del otro.
Multiplicación (*): multiplica dos operandos.
División (/): divide un operando por otro.
Módulo (%): obtiene el resto de la división.
Incremento (++): aumenta el valor de una variable en 1.
Decremento (--): disminuye el valor de una variable en 1.
Ejemplo de uso de incremento y decremento
Imagina que deseas incrementar una variable varias veces seguidas. Analicemos cómo actúa en un bucle:
int sideB =1;sideB++;// sideB ahora es 2sideB++;// sideB ahora es 3sideB--;// sideB ahora es 2
En este ejemplo, el uso de ++ y -- te demuestra cómo estas operaciones pueden modificar el valor de sideB.
¿Cómo mejorar la salida de consola con strings?
Para que la salida de consola sea más legible, es recomendable utilizar cadenas de texto (strings) que proporcionen información adicional al usuario. Ejemplo:
Console.WriteLine("El área del rectángulo es: "+ area);
Este fragmento de código concatena un mensaje informativo junto con el valor calculado del área, haciendo el resultado más comprensible.
¿Cuáles son los próximos pasos en el manejo de datos en un programa?
Luego de aprender a manejar tipos de datos y operadores aritméticos, es tiempo de avanzar hacia la interacción con el usuario. Esto incluye permitir que el usuario ingrese datos en el programa, manejar texto y números que el usuario introduzca, lo cual abordaremos en la próxima clase. ¡Sigue explorando y practicando para perfeccionar tus habilidades!
Este profe y el argentino deberian ser los que presentan los videos de la plataforma, se les entiende claro, no echan tanto rollo, hay otros que seran muy buenos en el area pero para dar los tutoriales no traen nada.
Hasta el momento me han gustado los cursos que dictan Facundo García, Ricardo Celis y Anahí Salgado.
Cual es el profe Argentino y en que cursos lo han visto?
Para comentar código en una sola línea se escribe dos barras diagonales ** "//".**
Para la variables tipo flotante en C#, hay que agregarle una "f" al final de cada valor. Ejm:
float valor = 10.0f
Operador de Suma: +
Operador de Resta: -
Operador de División: /
Operador de Multiplicación: *
Operador para sacar Módulo: %
Operador para incrementar: ++
Operador para decrementar: --
:thumbsup:
Si escriben cw y dos veces tab les crea todo el Console.WriteLine();
Y asi evitan cansar sus manitas jajajaja
staticvoidMain(string[] args){//rectangle area calc.//rectangle values double sideA =10.0; int sideB =1; sideB++; sideB++; sideB++; sideB--;//rectangle area formula is a*b double area = sideA * sideB;Console.WriteLine("The rectangle area is: "+ area);}
en el minuto 7:40 el profe aplicó la metodología de Dora la Exploradora jajajaja
Acá les dejo como hice el cálculo del área de un cuadrado:
usingSystem;namespaceSquareArea{classProgram{staticvoidMain(string[] args){// Variablesint sideA, sideB; Console.WriteLine("Bienvenido a mi segundo programa"); Console.WriteLine("Cálcularemos el área de un cuadrado");// Solicitar al usuario los datos a trabajar: Console.WriteLine("Ingrese el lado A"); sideA = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Ingrese el segundo lado de su cuadrado"); sideB = Convert.ToInt32(Console.ReadLine());// Mostrar resultado al usuarioint squareArea = sideA * sideB; Console.WriteLine("*** Resultado ***"); Console.WriteLine(squareArea);}}}
Repasando ando....
int sideA =10;int sideB =20;// rectangle area formula es a*bint area = sideA * sideB;Console.WriteLine("The area of the rectangule is :"+ area +"\n Side a: "+ sideA +"\n Side b: "+ sideB);float sideA1 =10.5f;float sideB1 =20.58f;sideB1++;sideA1--;// rectangle area formula es a*bfloat area1 = sideA1 * sideB1;Console.WriteLine("The area of the rectangule is :"+ area1 +"\n Side a: "+ sideA1 +"\n Side b: "+ sideB1);
//rectangle area calc//rectangle valuesfloat sideA =10.1f;int sideB =1;sideB++;sideB++;sideB--;//rectangle area formula is a*bfloat area =sideA * sideB;Console.WriteLine("The rectangle area is: "+area);
classProgram{staticvoidMain(string[] args){//rectangle area calc.//rectangle values double sideA =10.0; int sideB =1; sideB++;// 2 sideB++;// 3 sideB++;// 4 sideB--;// 3//rectangle area formula is a*b double area = sideA * sideB;Console.WriteLine("The rectangle area is: "+ area);//Nota//float valor = 10.0f as los valores float se les agrega la f//Operador de Suma: +//Operador de Resta: -//Operador de División: ///Operador de Multiplicación: *//Operador para sacar Módulo: %//Operador para incrementar: ++//Operador para decrementar: –}}
Hola necesito ayuda, porque el valor en la multiplicación es diferente, si incremente 3 veces el sideB seria 300 * 11.34 🤔🤔
Debo admitir que también me confundí de por qué no funcionaba hasta que recordé bien cómo funcionaba todo.
SideB es 100, pero cuando ocupas sideB++, hay que recordar que lo que hace aquello es sumar el número por 1, entonces:
SideB es igual a 100
SideB++ es igual a101
SideB++ es igual a 102.
11.34 * 102 es igual a 1156.68
SideB++ suma 1 a la variable.
si quieres aumantar mas de uno puedes usar SideV += <n>
namespace squareArea
{
internal class Program
{
static void Main(string[] args)
{
//area de rectangulo pdeir datos
Console.WriteLine("Escribe Lado A");
float sideA = float.Parse(Console.ReadLine());
Console.WriteLine("Escribe Lado B"); float sideB = float.Parse(Console.ReadLine());//FORMULA DE RECTANGULO float result = sideB * sideA;//MOSTRAR RESULTADOConsole.WriteLine("The Result"+" "+ result);}}
}
//Mi splucion a lo propuesto :D
++Operadores aritméticos++
Primero que nada hagamos recordemos algunas cosas:
Podemos comentar en el editor con //, lo que permite ingresar anotaciones para nosotros y otros colaboradores con los que estemos trabajando. Dichos comentarios no afectan a la ejecución del código y también pueden servir para sacar alguna porción de nuestro trabajo para que no se ejecute pero sin necesidad de borrarlo (ejemplo: comentamos un string porque aún no lo usaremos pero no lo queremos eliminar)
El doble slash sirve para comentar UNA línea pero no si queremos hacer saltos de línea. En este último caso lo haremos con /* */
/* Acá escribo cosas
poque no sé qué poner
Ejemplo
*/ string cosaAlgo ="Y cerramos";
Cómo se llama esta forma de escribir los nombres de las variables? Exacto, camelCase🐫. No es una obligación, sólo un consenso que es mejor respetar en C#
AHORA SÍ. Originalmente las computadoras se usaban para realizar calculos muy bestiales por lo que tenemos a disposición multitud de signos que podemos usar para nuestros cálculos:
Suma: +
Resta: -
Multiplicación: *
División: /
Módulo o Resto (lo que te quedaba de una división): %
Incremento (sería un +1): ++
Decremento (-1): –
Y te acordás de los paréntesis () y del orden de prioridad de las operaciones❓ Bien, pequeño Timmy, acá también se aplican. Las multiplicaciones y divisiones se resuelven antes que las sumas y restas, pero lo que está entre paréntesis se resuelve primero y si es una multiplicación o una resta entre paréntesis se resuelve aún antes más primero que todo lo otro.
Ya está? Ya me puedo ir?
No no, Timmy. Aún hay algo más.
En ocasiones ocurrirá que tenés ganas de multiplicar (o sumar, o dividir; lo que sea) int con float pensando en obtener un resultado int pero dará error. La razón? Porque quizás el resultado es un decimal (float == decimal E int == enteros positivos o negativos) y en ese caso tendremos que colocar un añadido a nuestra variable:
float sideA =10.7f;int sideB =20;float area = sideA * sideB;Console.WriteLine(area);
Con esto conseguimos que:
sideA sea reconocido como un valor float y el punto (no coma, punto .) no sea leído como un error
Asignamos el tipo float al valor area porque el resultado de dicha multiplicación podría ser decimal.
"Eso es todo?"
Casi, Timmy, casi. También tenemos los clásicos "mayor que ", "menor que ", "igual o mayor que " (>, <, =>, =<) pero todo eso es aparte. No te hagas lío aún. Lo importante es que sepas que los operadores existen y que hay un orden a respetar al momento de resolver ecuaciones más o menos complejas.
Es inevitable para mi pensar en el WriteLine() como en el console.log() de C#
porque lo de color rosado me sale en azul?
A mi también me sale en azul, es normal, al inicio del curso el profe menciona que usa la extensión de Visual Assist, la puedes instalar en Extensions > Manage Extensions > Buscas Visual Assist.
El problema es que esta extensión es de pago.
¿Corresponde esto a una conversión implícita?
float sideB =20;
No estas convirtiendo, estas asignando un valor.
Mi pregunta es porque los números tipo float se escriben con decimales y la "f" al final, entonces pensé que 20 es considerado entero, a diferencia de 20.0f, entonces si asigno un entero a un float estoy haciendo conversión implícita. No sé si es correcto lo que digo.
Hola tengo una duda, yo quiero hacer una calculadora mas adelante pero si yo quiero multiplicar en decimales o enteros con decimales y salga bien la respuesta, porque con el FLOAT no me sale bien los decimales, me agrega mas decimales, creo que es porque el FLOAT tiene de 6 a 7 dígitos, que hago?🤔🤔
Gracias, ya entendí el problema era que el "float" y el "double" están en base binaria y como no puede ser representado exactamente siempre va a existir un error en la precisión aritmética, por lo cual es mejor el "decimal" para que sea exacto, normalmente los usan para aplicaciones financieras, para evitar perdidas , ya que el "float" y el "double" pierden información pero tiene mas rendimiento. 😉😉
https://www.youtube.com/watch?v=7OcIQEO9psc
Había visto un comentario en esta sección utilizando directivas de TRY-CATCH y bucles WHILE y me pareció muy interesante.
Decidí tomar ese código y trabajarlo un poco más, como así también comentarlo un poco para que se entienda cada línea. Paso a compartir el código para el que le sirve:
// Se declara la variable que se va a utilizar para el área del cuadrado
double side = 0;
// Se declara la variable que va a ejecutar el bucle (hasta que sea falsa)
bool e = true;
// Se inicia el bucle
while (e == true)
{
// Se inicia el bloque try para ejecutar el código principal
try
{
Console.WriteLine(
"""
A continuación, se calculará el área de un cuadrado
Ingresa uno de los lados del cuadrado
""");
// Se asigna el valor ingresado por el usuario a la variable side
side = Convert.ToDouble(Console.ReadLine());
// Se calcula el área del cuadrado con la fórmula area = lado * lado mediante Math.Pow
double result = Math.Pow(side, 2);
// Se imprime el resultado
Console.WriteLine("El área del cuadrado es: " + result);
// Se cierra el bucle
e = false;
}
// Si no se ingresa un número, se ejecuta el bloque catch
catch (Exception)
{
Console.WriteLine("No es un número, ingresa un número");
e = true;
}
}
Para rectángulos a modo de ejemplo:
double sideA = 0;
double sideB = 0;
bool e = true;
while (e == true)
{
try
{
Console.WriteLine("Ahora se calculará el área de un rectangulo");
Console.WriteLine("Ingresa Base");
sideA = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Ingresa Altura");
sideB = Convert.ToDouble(Console.ReadLine());
double result2 = sideA * sideB;
Console.WriteLine("El área del rectangulo es: " + result2);
// Cierra el bucle
e = false;
}
catch (Exception)
{
Console.WriteLine("No es un número, ingresa un número");
e = true;
}
}
Si bien es un tema de otras clases más avanzadas, el poder aplicar de manera conjunta los conceptos de la programación me parece una herramienta muy valiosa.
Saludos!
Este seria el codigo si es que quisieras preguntar los lados
Como un pequeño aporte para incrementar el valor de una variable en una cantidad especifica o para restarlo pueden usar este tipo de incrementador al igual que en Java: