Hola y bienvenido.
Me gustaría ofrecerle una solución a
nuestro desafío sobre el cálculo del pago semanal.
Así que voy a ofrecer una buena demostración aquí. Abra los bloques de código
y cierre nuestro proyecto que actualmente tenemos abierto
y abierto y creemos un nuevo proyecto para
esta aplicación.
Así que voy a crear una aplicación de consola, así que estaré en c.
Y voy a nombrar este cálculo de pago semanal.
Así que voy a tener mi plato principal. c que me
va a dar un buen punto de partida.
Pero hay un par de cosas que voy a hacer en esta solución que pueden ser un poco diferentes.
Pero te presentará un par de conceptos.
Hablaremos de ellos, pero usaremos muchas constantes en este programa, principalmente para
nuestra tasa de pago y nuestras tasas de impuestos.
Así que voy a usar algo que aún no hemos visto y que se llama definir.
Es una directiva de preprocesador para crear constantes.
Entonces, la forma en que sabemos que es la directiva de preprocesador es que tenemos el símbolo de libra.
Así que solo voy a decir que la libra define. Esta es una forma de crear constantes.
Voy a crear 5 constantes para todos nuestros datos en
este programa. Tenemos una tasa de pago de 12. 00.
Entonces, la forma en que funciona la definición es
usar la palabra clave definida seguida después de la libra y luego, por lo
general, proporciona un nombre, generalmente en mayúsculas. Esa es la convención estándar y luego un espacio y luego el valor.
Aquí no hay asignación igual. Y esto está creando una variable constante esencialmente.
Así que vamos a crear uno para la tasa de pago, la tasa de impuestos para 300.
En realidad, diremos tasa impositiva para 150 o para 300 y menos, y esa será
una tasa impositiva de 0. 15.
Notarás que los datos que asignes pueden ser números enteros de
coma flotante, incluso puedes asignar cadenas. No importa el tipo de datos aquí.
La tasa de impuestos para
150 puede ser 0. 20. y normalmente hago las definiciones fuera del main en la parte superior del archivo.
Y tampoco olvide agregar sus comentarios en la parte superior y en todo el código fuente.
Y luego voy a crear una última tasa impositiva para el resto,
que es 0. 25.
Lo último que quiero hacer es crear una constante para mi tiempo extra,
simplemente llamaré tiempo extra y diré 40. Esto solo representará cuando
queramos verificar que sea mayor que 40.
Nunca es una buena idea tener números mágicos dentro de
las variables porque ahora, si algo
cambia, digamos que el tiempo extra cambia a 45, solo tengo que cambiarlo en un lugar.
justo en la parte superior y mi programa funcionará exactamente igual.
si no tuviera esta constante y usara un número
mágico en mis comparaciones o en mis variables, tendría que cambiarlo
en todos los lugares donde esté usando 40.
Así que acostúmbrate a usar constantes y no a algo llamado números mágicos.
También me gusta declarar mis variables justo en la parte superior del archivo principal.
Estas son variables locales de nuestra función principal.
Entonces quiero poner un comentario declarando variables.
Las variables que necesito que son localmente, voy a crear un número entero durante horas,
las voy a inicializar en 0.
El usuario ingresará las horas y
luego crearé algunos dobles que se mostrarán como salida, principalmente
el salario bruto que inicializaré en 0. 0 porque es un doble.
Y luego los impuestos, también voy a inicializar el 0. 0 termina con un punto y
coma, no olvide el punto y coma y luego el pago neto.
Porque estas son mis 3 salidas que quiero.
Así que voy a crear mis 3 salidas en la parte superior junto con mis horas de entrada.
Lo primero que quiero hacer es obtener mi entrada, así que le
diré al usuario que ingrese algo. Voy a decir
que ingrese digamos que ingrese el número de
horas trabajadas esta semana, coloque dos puntos,
un pequeño espacio y un punto y coma.
Luego, usaré mi función scanf para obtener la entrada.
Solo voy a decir scanf. Quiero leer un número entero. Así que voy a decir porcentaje d.
Voy a poner una coma, y voy a hacer horas y
luego, como no es una cadena o
caracteres, tengo que ponerle el signo comercial y terminarlo con un punto y coma.
Eso se va a leer. Y en este punto,
lo que debería hacer es probar, trabajar en pequeñas partes y probar constantemente.
si sigo escribiendo código, intento compilarlo, podría tener un problema en cualquier lugar,
trabajar en áreas pequeñas.
Pero sé que esto funciona. Así que voy a seguir adelante para demostrar cómo hacer esto.
Como dije, lo primero que voy a hacer es calcular el salario bruto.
En la lógica aquí, necesitaremos una declaración if.
Básicamente, si las horas son superiores a 40, queremos tener
una tarifa de horas extra.
Entonces, lo que voy a hacer es decir que si las horas son menores o iguales
a 40, entonces todo lo
que tengo que hacer es crear mi cálculo muy fácilmente
porque es solo la tasa de pago por horas.
Tenemos nuestra palabra clave if en la
línea 24 y nuestro horario.
Estamos haciendo una comparación. Estamos usando un operador relacional, menos que iguales. Si el nuestro es menor o
igual a 4, no usaremos un paréntesis porque tendremos que usar una sola declaración.
Solo vamos a decir salario bruto. Vamos a establecer una
variable que será igual a las horas multiplicadas por nuestra tasa de pago constante y
eso es todo.
Ahora, si es mayor o igual a 40,
queremos hacer otra cosa. Entonces, si esa condición se evalúa como
falsa, queremos tener un else, y aquí es donde usamos el else. El otro tendrá varias líneas en su
bloque, así que voy a usar un corchete, comenzará en la
línea 27 con el corchete inicial 29 con el final.
No hacer coincidir los corchetes o no tener corchetes es un error común que puede encontrar su compilador.
Así que asegúrese de hacer coincidir esos corchetes. El IDE es muy útil porque los resalta.
Si tiene varios paréntesis, siempre puede pasar a otro.
Si va al soporte inferior, se resaltará indicándole dónde estaba el soporte inicial.
Entonces, en esta cinta, si es mayor de 40,
primero, quiero establecer mi salario bruto igual a 40 veces la tarifa de pago
porque esas primeras 40 horas serán de 12 dólares la hora.
Y luego todo después de eso va a ser más.
Así que voy a crear una variable local llamada
pago de horas extra, y la voy a establecer igual
a las horas menos 40. Entonces, si escribiera 40, sería 5 aquí.
y luego, una vez que tenga esas horas, quiero multiplicar eso de la tarifa de
pago que es de 12
dólares la hora, pero quiero agregar 1. 5 de eso, que serían 18 dólares
la hora, luego lo
termino con un punto y coma.
en este punto, mi pago de horas extra será 5 veces
18, 90 dólares si escribo 45 como usuario.
y luego las primeras 40 horas serán simplemente 40
veces 12, que
es lo que decimos 570. si hiciéramos 40 por 12 sería
480.
Ahora, lo último que tenemos que hacer es sumar el pago bruto pagado al pago de horas extra.
Así que probablemente podría haber usado un nombre mejor que el salario bruto porque aún no tenemos nuestro pago de gracia.
pero voy a utilizar un pequeño operador agradable,
nuestro operador de asignación más iguales, que va a
hacer nuestro pago de horas extra.
lo que esto está diciendo es que el salario bruto es igual al salario bruto más el pago de horas extra.
pero lo estamos haciendo en notación taquigráfica.
Así que ahora tenemos nuestro salario bruto y hemos terminado con el salario bruto.
Así que seguimos adelante y probamos esto, imprimimos el salario bruto y nos aseguramos de que sea correcto.
pero como sé que esto funciona, pasaré al siguiente paso.
el siguiente paso es calcular los impuestos.
Entonces, para calcular los impuestos, recuerde, tenemos que hacer ciertas cosas
dependiendo de cuánto dinero gane. Entonces tendremos que mirar el salario bruto.
Entonces, si el salario bruto es menor o igual a 300, haremos algo.
si el salario bruto es de 300 y 450,
vamos a hacer algo. y si es superior a 450, haremos otra cosa.
tendremos un pequeño código duplicado aquí.
está bien por ahora porque solo estamos demostrando declaraciones if.
es posible que pueda escribir esto un poco más limpio.
pero lo que voy a hacer es decir que primero verifique la primera condición donde si el salario
bruto es menor o igual a 300. y en ese caso,
es muy fácil calcular los impuestos.
los impuestos serán el salario bruto multiplicado por la tasa
de impuestos de 300.
la tasa de impuestos para 300
recuerde es cualquier cosa de 300 y otra está gravada al 15% que creo que era.
Eso es todo lo que tenemos que hacer si ganaste menos o
igual a 300.
Nuevamente, la otra cosa que debe notar aquí es la sangría.
siempre que tenga bloques de código, y aunque solo tenga una declaración, voy a
poner un corchete allí.
y luego indico mis bloques, hace que sea mucho más fácil de leer, no te olvides
de la sangría en las nuevas líneas.
y normalmente aquí desea tener espacio en lugar de pestañas, pero esa es otra discusión.
ahora también puede ser otra cosa.
Entonces, en la línea 34 hicimos la pregunta si
el salario bruto es menor o igual a 300, haga algo en la línea 36.
usamos la palabra clave if, ponemos la condición expresión booleana entre paréntesis.
pero ¿qué pasa si no son 300 o menos, entonces queremos
hacer otra cosa? Específicamente, si el
salario bruto es mayor que
300 y, por lo tanto, aquí estoy usando un operador lógico y
comercial donde hago esencialmente 2 preguntas. si el salario bruto es superior
a 300 y el salario bruto es inferior a 450, entonces quiero
hacer otra cosa.
Entonces, ¿qué es este dicho es si mi salario bruto está entre 300 y 450?
ahora, si está entre 300 y 450,
primero quiero calcular mis impuestos
como lo hice antes.
para los primeros 300, quiero multiplicarlo por la tasa impositiva de 300.
porque los primeros 300 están gravados a esa tasa.
para el otro monto, quiero hacer
el tipo impositivo en 150, que es el punto 20%.
Entonces, primero, tengo que averiguar
cuánto ganamos más de 300, pero en realidad puedo hacer
esto en una línea. Voy a hacer los
impuestos más iguales, así que esto es decir que los impuestos son
iguales a los impuestos, que ya son 300 veces la tasa
de impuestos 300, impuestos más algo. y lo que quiero agregar
a esos primeros impuestos en la línea 40 que se calculó, quiero
agregar la cantidad
adicional y sería el salario bruto menos 300 y ya he
determinado que no estoy por encima de 450.
Entonces, el salario bruto menos 300 veces la tasa
de impuestos por 150.
Así que mira lo que hice allí.
Si gané una cantidad de dinero entre 300 y 450 en la línea 38,
entonces quiero obtener los impuestos de los primeros 300, que es 300 veces la tasa de impuestos 300
y quiero agregar eso a cuánto o cuánto se superó mi salario bruto. 300 veces
esa tasa impositiva por 150.
así que ahora hemos cumplido con 2 condiciones, la última condición que queremos verificar es si hicimos más de 450.
Entonces, básicamente, podemos tener un else si el salario bruto es mayor que
450 o realmente solo otro.
pero en aras de la claridad, voy a poner el else if
allí, y voy a decir que el salario bruto de else es superior a 450.
Realmente no necesito hacer esto porque puedo tener un else sin un if,
pero quiero demostrar el else if.
en este caso, quiero calcular los impuestos para los primeros 300, por lo que
puedo copiar el código aquí.
También quiero calcular los impuestos para los 150, por lo que
voy a hacer un más es igual a los siguientes
150, es decir, de 300 a 450. Entonces esto será
150 veces la tasa impositiva 150.
Y luego lo último que quiero hacer es gravar el resto a una determinada tasa.
Así que aquí voy a decir impuestos más igual, nuevamente más igual es impuestos impuestos más.
y aquí voy a decir salario bruto
menos 450 porque no quiero aplicar los impuestos
a todo el salario, solo a lo
que está por encima de 450.
y quiero multiplicar eso por la tasa impositiva igual al resto, que
es nuestra variable constante que definimos anteriormente.
y eso es. Terminé de calcular los impuestos.
y de nuevo, probaría esto después de cada paso y se aseguraría de que se compila
y prueba correctamente.
pero notarás la sangría. esto es fácil de leer. Estoy haciendo comentarios, todo eso.
Lo último que quiero hacer es calcular el salario neto.
esto será simple porque el salario neto será igual al
salario bruto menos los impuestos, muy
simple.
y luego quiero mostrar mi salida.
y recuerde que los requisitos eran mostrar el
salario bruto, los impuestos y el
salario neto.
Entonces podemos usar printf aquí.
y solo voy a copiar y pegar esto en aras de la eficiencia, para que no tomemos demasiado tiempo.
A veces, los estudiantes se enojan cuando copio y pego, y dicen que no
se supone que se debe copiar y pegar en la programación. Bueno, eso es cierto hasta cierto punto.
si copia y pega algo y comprende completamente ese código, es más eficiente.
El problema de copiar y pegar es que muchos desarrolladores copian y pegan,
no tienen ni idea de cómo funciona ese código y luego solo esperan que funcione.
pero en este caso, sé cómo funcionan las declaraciones impresas y solo quiero mostrarles lo que está sucediendo aquí.
Así que no tengo que esperar perder el tiempo escribiendo en el teclado.
Entonces, en la línea 54, mostraremos el salario bruto.
es un flotador. sabemos cómo mostrar el valor de las variables.
y lo único peculiar en eso es que estoy formateando la salida en 2 lugares decimales, por lo
que debería notar el%. 2f y luego la barra
invertida n es un salto de línea para una secuencia de escape.
Así que estoy formateando todo con 2 decimales porque cuando mostramos dinero,
tenemos centavos y no tenemos un porcentaje de centavos.
y luego he mostrado el mismo formato de impuestos y el pago neto.
Muy bonito ahí.
y nuevamente, lo que debe notar en este programa es la sangría.
es muy fácil de leer. Estoy usando variables constantes en la parte superior.
Estoy inicializando mis variables. ¿Por qué los declaro?
todo está bien y ordenado. Estoy proporcionando comentarios. Estoy escribiendo
un montón de declaraciones if else.
Con suerte, todo esto quedó claro. la lógica no es demasiado difícil de
seguir, pero cuando tienes el código fuente contigo, puedes descargarlo
para que puedas analizarlo más. pero veamos qué sucede cuando construimos y compilamos, asegurémonos
de que no haya ningún problema.
Cuando lo construyo, dice que tengo una advertencia sin usar.
Parece aquí.
Me falta algo esperado, un punto y coma antes de un corchete que no tiene sentido.
falta algo esperado, un punto y coma antes de
un corchete que no tiene sentido. Así que creo que lo que me estoy perdiendo aquí
es, bueno, no puedo tener otra. tiene que ser otra cosa si,
no tiene sentido, me olvidé del si. Así que si no.
Mira lo que pasa allí es que tuve un else y luego debajo que tuve un else if.
eso no tiene sentido. no puedes tener un else y luego un else if.
Así que ahora veamos qué pasa aquí.
ahora recibo 0 errores y 0 advertencias.
ejecutemos esto
y mi escáner de virus.
cuando ejecute esto, lo primero que va a hacer es decir por favor ingrese la cantidad de horas de trabajo esta semana.
Voy a poner algo más de 45, así que demuestra horas extras.
Diré 45 o 4 más que 40. 45 y dice que gané 570 dólares,
lo cual es correcto porque. todo por hasta 40
dólares es de 12 dólares la hora, que calculamos entre 400 y 80.
y luego las 5 horas son 18 dólares la hora, que son 90 más 480 son 570.
los impuestos esta semana fueron de 105 dólares y el salario neto fue de 465.
buenos números pares. puede realizar esos cálculos para asegurarse de que sean correctos.
puede intentar ejecutar esto muchas, muchas veces y ver una salida de datos diferente.
vamos a ejecutarlo con algo menos
de 40. digamos 30 horas esta semana,
no voy a recibir ningún pago por horas extra. simplemente va a ser 30 veces
12, que es 360.
Por los primeros 300, se me cobrará una tasa del 15%.
y eso va a ser de 45 dólares y luego por los
60 dólares, voy a pagar un impuesto del 20% y eso va
a ser de 12 dólares. Entonces 45 más 12, 57 eso parece correcto.
y el salario neto esta semana es 303, 360 menos 57.
Así que parece estar funcionando bastante bien.
querrá probar esto más con ganancias superiores a 450.
la otra cosa importante en las pruebas es que desea probar todos los límites.
no solo desea proporcionar una prueba. Todo funciona.
desea proporcionar casos buenos y casos malos.
Entonces, en este caso, en este ejemplo, tenemos muchos casos diferentes para este programa,
tenemos un caso en el que hace más de 40 horas.
Entonces tienes pago de horas extras. Tenemos un caso en el que sus
ingresos son 300 o menos, un caso en el que sus ingresos son de 300 a 450 y un
caso en el que sus ingresos son superiores a 450.
Entonces, para este programa, debe ejecutar al
menos 4 casos de prueba o 5 casos de prueba probablemente,
depende porque realmente también desea calcular las horas extra.
Probablemente podría salirse con la suya con 4
casos porque probablemente gana menos de 300 dólares, menos que el pago de horas extra.
Pero lo que realmente desea probar son las horas extraordinarias y luego las 3 tasas impositivas.
Espero que esto haya sido de ayuda. Espero que entiendas completamente lo que demostré.
Espero que entiendas todo lo relacionado con las declaraciones if y cómo hago que mi
código sea legible y uso nombres significativos. Gracias.