No se hacen tareas.
Así es como se aprende que estas cosas hay que empezar a hacerlas con tiempo y no dejarlas para el final.
				
			Así es como se aprende que estas cosas hay que empezar a hacerlas con tiempo y no dejarlas para el final.
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menúcd ruta_a_tu_ejecutable
./programa.exe
./programa.exe cada palabra extra es un argumento
argc = 7
argv[0] = "./programa.exe"
argv[1] = "cada"
argv[2] = "palabra"
...
argv[6] = "argumento" 
const int MIN_NUM_TERMINOS = 0; // Constante para el numero minimo de terminos permitido
const int MAX_NUM_TERMINOS = 15; // Constante para el numero maximo de terminos permitido
int main() {
  int terminos;
  do {
    cout << "Introduce el numero de terminos [" << MIN_NUM_TERMINOS << " - " << MAX_NUM_TERMINOS << "]: ";
    cin >> terminos;
  } while(terminos < MIN_NUM_TERMINOS || terminos > MAX_NUM_TERMINOS);
  // Cuando llegues a esta linea ya tendras un valor dentro del rango permitido
} 
// Esto:
if(numero > 0 && numero < 15);
else {
  ...
}
// Se puede sustituir por esto:
if(numero <= 0 || numero >= 15) {
  ...
} 
int main() {
  // Inicializamos el resultado a 0 para poder acumular correctamente
  double resultado = 0;
  // Las variables n y x no hace falta inicializarlas porque se van a pedir por teclado
  int n;
  double x;
  // Inicializamos las variables para k = 1
  int signo = -1; // (-1)^1 = -1
  double factorial = 2; // (2 * 1)! = 2! = 2
  double elemento3 = pow(x, 4); // x^(4 * 1) = x^4. AVISO: Primero hay que pedir x
  for(int i = 1; i <= n; ++i) {
    // Sumamos el elemento i
    resultado += signo * 1/factorial * elemento3;
    // Actualizamos cada uno de los elementos
    signo *= -1; // Asi cambiamos de signo en cada iteracion
    factorial = ...;
    elemento3 = ...;
  }
} 
while(condicion) {
  // lo que sea
} 
do {
  // lo que sea
} while(condicion); Cita de: MrEliott en 12 Mayo 2021, 06:28 AMLinux tiene digamos como dos historiales: uno en memoria y otro en un fichero (el fichero que ha mencionado el-brujo). Mediante el comando:
Hola a todoss, he intentado borrar mi historial de comandos del terminal en kali linux y no he podido, he buscado y encontrado que el comando es " history -c " pero por alguna razon no me funciona... agradezco la ayuda
history -chistory -c && history -wCita de: MrEliott en 12 Mayo 2021, 19:07 PMHasta donde yo sé (desconozco si esto es igual en todas las distros), si añades un espacio antes de un comando, éste no se guarda en el historial.
>> Gracias funciono perfecto, una ultima pregunta, hay alguna forma para que nunca se guarden los comandos en el historial?? Gracias de antemano
res = procesarReceta(r[0], tiposIngredientes, numTiposIngredientes);  
  Intentando engañar a los demás, sólo te engañas a ti mismo.
 Intentando engañar a los demás, sólo te engañas a ti mismo.Cita de: JoaquinVT312 en 9 Mayo 2021, 14:04 PMEn el algoritmo anterior he intercambiado el significado del 1 y el 0 pero puedes corregir eso sin mayor problema.
Primero decir que es verdad que me expliqué mal acerca del ejercicio. El programa devolvería 1 de ser totalmente vegetariana la receta y 0 de encontrar algún alimento animal, pero siempre prevalecería el encontrar un ingrediente desconocido, es decir, de encontrar uno devolvería -1, independientemente ya de que sea vegetal o animal la receta.
Cita de: JoaquinVT312 en 9 Mayo 2021, 14:04 PMTe dará error de compilación porque el prototipo de la función tiene que ser igual que la implementación y no lo habrás cambiado en ambas partes del código.
Tengo dudas sobre la llamada a la función:
// LLamada a función procesaReceta. Pruebe diferentes recetas anteriores: r[0], r[1] o r[2]
res = procesarReceta(Receta receta, Ingredientes ingredientes[], numIngredientes);
Eso me da error y no me deja compilar, por lo que me quedo ahí atascado y no puedo compilar e ir probando s editar el código de la función para ver si va funcionando correctamente o no.
Gracias de nuevo por la atención.
typedef struct {
  char nombre[TAMCAD];
  int numIngredientes;
  int id[MAXING];
  int cantidad[MAXING];
} Receta;
// Ahora puedes utilizar el tipo Receta asi:
Receta miReceta;
// en vez de asi:
struct Receta miReceta; int procesarReceta(Receta receta, ...); int procesarReceta(Receta receta, Ingrediente ingredientes[], int numeroIngredientes, ...); 
int procesarReceta(Receta receta, Ingrediente ingredientes[], int numeroIngredientes) {
  // tu codigo aqui
} 
i := 0 // Indica el indice del ingrediente actual de la receta
resultado := 0 // Indica: 0 (no animal) | 1 (animal) | -1 (desconocido)
MIENTRAS i < receta.numIngredientes && resultado == 0 HACER
  j := 0 // Indica el indice del ingrediente actual entre todos los ingredientes
  MIENTRAS j < numIngredientes && ingredientes[j].id != receta.ingredientes[i] HACER
    j := j +1
  FIN MIENTRAS
  // Aqui llegamos si hemos encontrado el ingrediente correspondiente segun el id o si no existe
  SI j < numIngredientes ENTONCES // lo hemos encontrado en la posicion j
    resultado := (ingredientes[j].tipo == 'A') // Esto sera 1 si la comparacion es true o 0 si es false
  SINO // no lo hemos encontrado
    resultado := -1
  FIN SI
  i := i + 1
FIN MIENTRAS
RETURN resultado 
int mes;
printf("Introduce un numero del 1 al 12: ");
scanf("%d", &mes);
if(mes == 1) printf("Enero\n");
else if(mes == 2) printf("Febrero\n");
else if(mes == 3) printf("Marzo\n");
...
else printf("No has introducido un numero entre 1 y 12\n"); 
int mes;
printf("Introduce un numero del 1 al 12: ");
scanf("%d", &mes);
switch(mes) { // Segun el valor de <mes>...
  case 1:  // ...si es 1...
    printf("Enero\n"); // ...haces esto...
    break; // ...y sales del switch
  case 2: // ...si es 2...
    printf("Febrero\n"); // ...haces esto...
    break; // ...y sales del switch
  ...
 default: // ...si no era ninguno de los anteriores...
    printf("No has introducido un numero entre 1 y 12\n");
    break; // (este break es opcional porque no hay mas casos)
} 
char letra = ...;
switch(letra) {
  case 'a': case 'e': case 'i': case 'o': case 'u':
    printf("La letra %c es una vocal minuscula\n", letra);
    break;
  case 'A': case 'E': case 'I': case 'O': case 'U':
    printf("La letra %c es una vocal mayuscula\n", letra);
    break;
  default:
    printf("La letra %c es una consonante\n", letra);
} 
int RandomMin1Max10() {
    srand(time(NULL));
    int valor;
    valor = (rand()%(10+1-1)+1); // Al ser numero fijos no tiene mucho sentido dejar esas operaciones
    return valor;
} 
int generarNumeroAleatorio(int minimo, int maximo) {
  return minimo + rand() % (maximo - minimo + 1);
}  
  )
)
int pedirEntero(char *mensaje) {
  int numero;
  printf(mensaje);
  scanf("%d", &numero);
  while(getchar() != '\n'); // limpiar el buffer de entrada
  return numero;
} 