Introducción
En este laboratorio, aprenderás a evaluar funciones definidas a trozos en programación C. El laboratorio cubre los pasos para leer un valor de entrada, utilizar sentencias if/else para determinar qué fórmula aplicar y mostrar el resultado evaluado. Comenzarás solicitando al usuario que ingrese un valor para la variable x, luego implementarás una función definida a trozos con diferentes fórmulas basadas en el valor de entrada. Este laboratorio te ayudará a desarrollar tus habilidades en el trabajo con expresiones algebraicas y lógica condicional en C.
Leer el valor de entrada x
En este paso, aprenderás a leer un valor de entrada para una función definida a trozos en programación C. Crearemos un programa simple que permita a los usuarios introducir un valor numérico para su uso en la evaluación de la función.
Primero, creemos un nuevo archivo C en el directorio del proyecto:
cd ~/project
nano piecewise_function.c
Ahora, agrega el siguiente código al archivo:
#include <stdio.h>
int main() {
double x;
// Solicita al usuario que ingrese un valor para x
printf("Ingrese un valor para x: ");
// Lee el valor de entrada
scanf("%lf", &x);
// Imprime el valor de entrada para confirmar
printf("Usted ingresó x = %.2f\n", x);
return 0;
}
Compila el programa:
gcc piecewise_function.c -o piecewise_function
Ejecuta el programa:
./piecewise_function
Ejemplo de salida:
Ingrese un valor para x: 5.5
Usted ingresó x = 5.50
Desglose del código:
#include <stdio.h>incluye la biblioteca de entrada/salida estándardouble x;declara una variable para almacenar el valor de entradaprintf()muestra un mensaje al usuarioscanf()lee el valor de entrada como un número de punto flotante de doble precisión%.2fformatea la salida para mostrar dos decimales
Usar if/else para determinar qué fórmula aplicar
En este paso, modificarás el programa anterior para implementar una función definida a trozos utilizando sentencias if/else. Crearemos una función con diferentes fórmulas basadas en el valor de entrada x.
Actualiza el archivo piecewise_function.c:
cd ~/project
nano piecewise_function.c
Reemplaza el contenido anterior con el siguiente código:
#include <stdio.h>
// Define una función definida a trozos
double piecewise_function(double x) {
// Condición 1: Si x es menor que 0
if (x < 0) {
return x * x; // f(x) = x^2 para x < 0
}
// Condición 2: Si x está entre 0 y 5
else if (x >= 0 && x < 5) {
return 2 * x + 3; // f(x) = 2x + 3 para 0 ≤ x < 5
}
// Condición 3: Si x es mayor o igual a 5
else {
return x - 2; // f(x) = x - 2 para x ≥ 5
}
}
int main() {
double x;
// Solicita al usuario que ingrese un valor para x
printf("Ingrese un valor para x: ");
// Lee el valor de entrada
scanf("%lf", &x);
// Calcula e imprime el resultado de la función definida a trozos
double result = piecewise_function(x);
printf("f(%.2f) = %.2f\n", x, result);
return 0;
}
Compila el programa:
gcc piecewise_function.c -o piecewise_function
Ejecuta el programa con diferentes valores de entrada:
./piecewise_function
Ejemplo de salida 1:
Ingrese un valor para x: -2
f(-2.00) = 4.00
Ejemplo de salida 2:
Ingrese un valor para x: 3
f(3.00) = 9.00
Ejemplo de salida 3:
Ingrese un valor para x: 6
f(6.00) = 4.00
Desglose del código:
piecewise_function()implementa tres fórmulas diferentes basadas en el valor de x- Las sentencias
if/elseverifican las condiciones y aplican la fórmula apropiada - La función devuelve el valor calculado basado en la entrada x
Imprimir el resultado evaluado
En este paso final, mejorarás el programa de la función definida a trozos para proporcionar una salida más detallada y demostrar el comportamiento de la función en diferentes rangos de entrada.
Modifiquemos el archivo piecewise_function.c para agregar una impresión de resultados más completa:
cd ~/project
nano piecewise_function.c
Actualiza el código con la siguiente implementación:
#include <stdio.h>
// Define una función definida a trozos
double piecewise_function(double x) {
// Condición 1: Si x es menor que 0
if (x < 0) {
return x * x; // f(x) = x^2 para x < 0
}
// Condición 2: Si x está entre 0 y 5
else if (x >= 0 && x < 5) {
return 2 * x + 3; // f(x) = 2x + 3 para 0 ≤ x < 5
}
// Condición 3: Si x es mayor o igual a 5
else {
return x - 2; // f(x) = x - 2 para x ≥ 5
}
}
int main() {
double x;
// Solicita al usuario que ingrese un valor para x
printf("Evaluador de funciones definidas a trozos\n");
printf("Reglas de la función:\n");
printf(" f(x) = x^2 para x < 0\n");
printf(" f(x) = 2x + 3 para 0 ≤ x < 5\n");
printf(" f(x) = x - 2 para x ≥ 5\n\n");
printf("Ingrese un valor para x: ");
// Lee el valor de entrada
scanf("%lf", &x);
// Calcula el resultado de la función definida a trozos
double result = piecewise_function(x);
// Proporciona una salida detallada
printf("\nAnálisis de entrada:\n");
printf(" Valor de entrada x: %.2f\n", x);
// Determina e imprime la fórmula aplicada
if (x < 0) {
printf(" Fórmula aplicada: f(x) = x^2\n");
}
else if (x >= 0 && x < 5) {
printf(" Fórmula aplicada: f(x) = 2x + 3\n");
}
else {
printf(" Fórmula aplicada: f(x) = x - 2\n");
}
// Imprime el resultado final
printf(" Resultado f(x): %.2f\n", result);
return 0;
}
Compila el programa:
gcc piecewise_function.c -o piecewise_function
Ejecuta el programa con diferentes valores de entrada:
./piecewise_function
Ejemplo de salida 1 (x < 0):
Evaluador de funciones definidas a trozos
Reglas de la función:
f(x) = x^2 para x < 0
f(x) = 2x + 3 para 0 ≤ x < 5
f(x) = x - 2 para x ≥ 5
Ingrese un valor para x: -3
Análisis de entrada:
Valor de entrada x: -3.00
Fórmula aplicada: f(x) = x^2
Resultado f(x): 9.00
(Ejemplos de salida 2 y 3 omitidos para mayor brevedad)
Mejoras clave en este paso:
- Se agregó una explicación detallada de las reglas de la función.
- Se proporcionó un análisis de entrada con la fórmula aplicada.
- Se mejoró la legibilidad de la salida.
- Se demostró el comportamiento de la función definida a trozos en diferentes rangos de entrada.
Resumen
En este laboratorio, aprendiste a leer un valor de entrada para una función definida a trozos en programación C y cómo usar sentencias if/else para determinar qué fórmula aplicar en función del valor de entrada. Creaste un programa simple que permite a los usuarios introducir un valor numérico y luego evaluó la función definida a trozos utilizando diferentes fórmulas según el valor de x. Los puntos clave del aprendizaje son la lectura de la entrada del usuario, la implementación de la lógica condicional con sentencias if/else y la aplicación de diferentes fórmulas matemáticas dentro de una función definida a trozos.



