Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - pedro,,

Páginas: 1 ... 32 33 34 35 36 [37] 38 39 40 41 42 ... 65
721
Hola, dejo una posible solución al ejercicio CU00551F del taller de programación aprende lenguaje C.

Citar
EJERCICIO
Crea un programa en C que pida una cadena al usuario y muestre por pantalla la cadena invertida.
Por ejemplo, si la cadena introducida es calor, deberá mostrarse por pantalla rolac. Si la cadena introducida es aprenderaprogramar.com deberá mostrarse por pantalla moc.ramargorparednerpa

Código: [Seleccionar]
#include <stdio.h>
#include <stdlib.h>

int main()
{
    char cadena[200];
    int i = 0;
    int j;
    printf("Introduce una cadena de texto: \n");
    gets(cadena);
    printf("\nLa cadena introducida es: %s\n\n", cadena);
    while(cadena[i]!='\0'){
        i++;
    }
    printf("La cadena al rev\x82s es:\n\t");
    for (j=i-1; j>=0; j--){
        printf("%c", cadena[j]);
    }
    puts("");
    return 0;
}

Saludos.  ;D

722
Esta línea:
Código: [Seleccionar]
media = (num[0]+num[1]+num[2])/3;
debería quedar así:

Código: [Seleccionar]
media = (num[0]+num[1]+num[2])/3.0;
Si no pones"3.0" solo tomará la parte entera del resultado.

Saludos.

724
Ok, entendí mal entonces.

Saludos.

725
Hola duvier.

En el siguiente enlace podrás leer como es la forma adecuada de publicar los ejercicios en el foro, asunto, etiquetas [code ][/ code], etc.

https://www.aprenderaprogramar.com/foros/index.php?topic=1460.0

Saludos. ;D

726
Hola.

El código pide introducir el número de líneas que va a tener el rombo, y luego el rombo tiene el doble mas 1 de las líneas introducidas.

Es lo único que veo a corregir.

Saludos. ;D

728
Hola dimiste.

Faltaría que se verifique si el número introducido es par, de la manera que está resuelto si introduzco el 111 me muestra todos los número impares menores de 200.

Saludos. ;D


730
Hola dimiste.

De la forma que resuelves el ejercicio el resultado de la media no muestra decimales, y tendría que permitir tener decimales, como se ve en el ejemplo del enunciado.


Saludos. ;D

731
Hola dimiste.


Respuesta a, bien.

Respuesta b, Si el archivo no existe en el primero de los casos, se creará uno nuevo.
Citar
w: crea un nuevo archivo para escritura (si ya existe, se pierden los datos preexistentes).

Respuesta c, bien.

Y en el segundo de los casos no se creará.


Saludos. ;D

733
Hola dimiste.

Los ejercicios cumplen con el enunciado.

En el ejercicio 2, comentar que para mostrar los caracteres acentuados correctamente lo hagas por código ascii y no como lo haces en esta línea:

Código: [Seleccionar]
printf("El resultado de multiplicar %d por sí mismo %d veces es igual a: %d", base, exponente, resultado);porque aunque no muestra ningún error el compilador a la hora de ejecutarse no muestra el resultado deseado.

Saludos.

734
Hola dimiste.

Los dos ejercicios son correctos.

Sólo habría que corregir en esta línea el código ascii por el 160, para que te salga "á" y no "ó".

Código: [Seleccionar]
printf("No existe un valor v%clido para tipo de bomba", 162);
Saludos. ;D


735
Buenas, dejo una posible solución a este ejercicio (CU00550F del curso para aprender a programar en lenguaje C).

Citar
EJERCICIO Nº1
Refactoriza el código que hemos visto como ejercicio resuelto para que cumpla con estos requisitos:
a) La función entraDatos deberá tener como tipo de retorno int en lugar de void, de modo que devolverá el valor introducido por el usuario.
b) La función proceso ya no existirá y en su lugar tendremos dos funciones: calcularRaiz(int num) y calcularSumatorio (int num)
c) La función resultados ya no existirá y su cometido será realizado dentro del main.

Código: [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int entraDatos(); double calculaRaiz(int num); int calcularSumatorio(int num);
int main() {
    int num = entraDatos();
    printf("La ra\xA1z cuadradada de %d es: %lf\n", num, calculaRaiz(num));
    printf("El sumatorio de %d es: %d", num, calcularSumatorio(num));
    return 0;
}

int entraDatos() {
    int dato = 0;
    do {
        printf("\nPor favor introduzca numero entero entre 0 y 100: ");
        scanf("%d", &dato);
    } while (dato<0 || dato>100);
    return dato;
}

double calculaRaiz(int num){
    double resultado;
    resultado = sqrt(num);
    return resultado;
}

int calcularSumatorio(int num) {
    int resultado = num;
    int i = num -1;
    for (i; i>0; i--) {
        resultado = resultado + i;
    }
    return resultado;
}

Citar
EJERCICIO Nº 2
Estudia el siguiente código y responde a las preguntas:
Código: [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
#include<conio.h>
// Ejercicios curso C aprenderaprogramar.com

//---------------------------------
void fun(int arr[]) {
int i;
for(i=0;i< 5;i++)
 arr[i] = arr[i] + 10;
}
//--------------------------------
void main() {
int arr[5],i;
clrscr();
printf("\nEnter the array elements : ");
for(i=0;i< 5;i++)
 scanf("%d",&arr[i]);

printf("\nPassing entire array .....");
fun(arr);  // Pass only name of array

for(i=0;i< 5;i++)
 printf("\nAfter Function call a[%d] : %d",i,arr[i]);

getch();
}

Citar
a) Busca información sobre conio.h, clrscr() y getch() ¿Forman parte del estándar de C?

No,La librería conio.h no se considera parte de la biblioteca estándar de C.

Citar
) Si el programa no te funciona, reescríbelo para que funcione.

Código: [Seleccionar]
#include <stdio.h>
#include <stdlib.h>

void fun(int arr[])
{
    int i;
    for(i=0; i< 5; i++)
        arr[i] = arr[i] + 10;
}
void main()
{
    int arr[5],i;
    printf("\nEnter the array elements : ");
    for(i=0; i< 5; i++)
        scanf("%d",&arr[i]);

    printf("\nPassing entire array .....");
    fun(arr);  // Pass only name of array

    for(i=0; i< 5; i++)
        printf("\nAfter Function call a[%d] : %d",i,arr[i]);
}

Citar
c) ¿Qué objetivo tiene este programa? ¿Qué resultado debe devolver si se introducen los números 1, 2, 3, 4, 5?

Introducimos valores en un array de enteros de 5 elementos, luego cambiamos los valores de cada elemntos sumandole 10 a cada uno y luego lo mostramos por pantalla.
    Passing entire array .....
    After Function call a[0] : 11
    After Function call a[1] : 12
    After Function call a[2] : 13
    After Function call a[3] : 14
    After Function call a[4] : 15

Citar
d) ¿Es válido un bucle for sin llaves delimitadoras { … } de las instrucciones a ejecutar?

Si.

Saludos. ;D

736
Hola, dejo una posible solución al ejercicio CU00549F del tutorial de programación online en lenguaje C.

Citar
EJERCICIO Nº1
Escribe una función que use un bucle for para calcular la potencia de un número al que denominaremos base sobre otro número al que denominaremos exponente, ambos recibidos como parámetros.
Ejemplo: la función recibe como base el 4 y como exponente el 3. El resultado devuelto debe ser el resultado de multiplicar la base por sí misma 3 veces, en este ejemplo 4*4*4 = 64.
Escribe un programa donde se pida al usuario base y exponente y se muestre el resultado de calcular la potencia (base elevada al exponente). Tras esto, se debe pedir al usuario si quiere repetir con otros datos o no (s/n). En caso de que el usuario elija s se le volverá a pedir base y exponente, y en caso contrario el programa debe finalizar.

Código: [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
double potencia(double numBase, int numExponente);

int main(){
    double base = 0;
    int exponente = 0;
    char respuesta = 's';
    puts("Calcular la potencia de un n\xA3mero.\n\n");
    while(respuesta == 's' || respuesta == 'S') {
        printf("Introduce la base de la potencia: ");
        scanf("%lf", &base);
        printf("Introduce el exponente de la potencia: ");
        scanf("%d", &exponente);
        printf("El resultado de %.2lf elevado a %d es: %.2lf\n", base, exponente, potencia(base, exponente));
        printf("\n\nCalcular otra potencia (S/N)? ");
        fflush( stdin ); // Se usa para limpiar el intro que queda en el buffer
        scanf("%c", &respuesta);
    }
    return 0;
}
double potencia(double numBase, int numExponente) {
    int i = 0;
    double resultado = numBase;
    for(i=0; i<numExponente-1; i++){
        resultado = resultado * numBase;
    }
    return resultado;
}

Citar
EJERCICIO Nº 2
Estudia el siguiente código y responde a las preguntas:
Código: [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
// Ejercicios curso C aprenderaprogramar.com
void stars2 (int n) {
    int i;
    for (i=1; i<=n; ++i) {
        printf ("*");
    }
    printf ("\n");
}

int main (void) {
    int a;
    a=10;
    stars2 (20);
    stars2 (a);
    stars2 (a+2);
    return (0);
}

Citar
a) ¿Cuántas funciones se declaran en este código? ¿Es main una función?

Hay dos funciones. Si.

Citar
b) Explica cuántos parámetros reciben y de qué tipo son los parámetros para cada una de las funciones que existan en este código.

La función stars2 recive un parámetro de tipo entero.
La función main recive "void", es decir no recibe nada.

Citar
c) ¿Cuántas veces se invoca la función stars2 en el código? ¿Qué ocurre con cada una de esas invocaciones? ¿Cuál es el valor devuelto por la función stars2?

Tres veces. La primera vez, se imprimen por pantalla 20 asteriscos, las segunda 10 y la tercera 12.
Esta función no devuelve ningún valor.

Citar
d) ¿Qué ocurre si escribimos stars2(0)? ¿Por qué?

Que en la función stars2() no se ejecutara el bucle for, ejecutandose nada más la última línea de esta función
que imprime un salto de línea. Esto ocurre porque el bucle debería de ir desde i=1 hasta i<=n, y n al ser cero, i ya no
puede ser menor que n.


Saludos. ;D

737
Hola, aquí dejo una posible solución al ejercicio CU00548F del curso de programación en lenguaje C.

Citar
EJERCICIO
Estudia el código que se muestra más abajo y responde a las preguntas

Código: [Seleccionar]
#include <stdio.h>
#include <stdlib.h>

int check_prime(int num);

int main(){
   int n1,n2,i,flag;
   printf("Enter two numbers(intervals): ");
   scanf("%d %d",&n1, &n2);
   printf("Prime numbers between %d and %d are: ", n1, n2);
   for(i=n1+1;i<n2;++i)
   {
      flag=check_prime(i);
      if(flag==0)
         printf("%d ",i);
   }
   return 0;
}

int check_prime(int num) {
   int j,flag=0;
   for(j=2;j<=num/2;++j){
        if(num%j==0){
            flag=1;
            break;
        }
   }
   return flag; // Ejercicios aprenderaprogramar.com
}

Citar
a) Sin ejecutar el código (sólo pensando) responde: ¿para qué sirve la función check_prime? ¿Qué resultado devolverá si le pasamos el número 4? ¿Por qué?

Comprueba si un número es primo, si lo es, devuelve 0, y sino devuelve 1.
Devolverá 1, porque 4%2 = 0.

Citar
b) En dicha función se usa la siguiente definición de bucle: for(j=2;j<=num/2;++j) ¿Por qué crees que el bucle tiene un valor inicial 2? ¿Por qué crees que el bucle tiene un valor final num/2?

Porque para saber si un número es primo, lo normal es empezar dividiéndolo por el número primo mas pequeño, y este es el 2.
Porque para comprobar los divisores de un número, el primer divisor después de el mismo, no puede ser mayor de la mitad
de dicho número.

Citar
c) ¿La variable flag que se usa en el main es la misma que se usa en la función check_prime? ¿Es posible declarar y usar dos variables con el mismo nombre en la función main? ¿Y declarar y usar dos variables con el mismo nombre en la función main y otra función? ¿Por qué?.

No, porque ambas son de ámbito local a la función.
No.
Si, porque ambas tendrían ámbito local a la función en la que estén.

Citar
d) Crea una tabla de variables del programa que conste de las siguientes columnas: nombre de variable, ámbito, utilidad. Por ejemplo la variable i tiene nombre de variable i, ámbito la función main, y utilidad servir como índice en el bucle for del main.

Nombre variable ÁmbitoUtilidad
n1main() tendrá el valor del primer número
n2 main()tendrá el valor del segundo número
i main()servir como índice en el bucle for del main()
flag main() almacenar el valor que devuelve la función check_prime()
jcheck_prime() servir como índice en el bucle for
flagcheck_prime() almacenar el resultado que devolverá la función check_prime()

Citar
e) Si se introducen como números 11 y 30 ¿Son evaluados 11 y 30? ¿Qué resultado se obtiene? ¿Por qué?

No.
13, 17, 19, 23, 29
Porque se evaluarán los número comprendidos enre i=n1+1 hasta i<n2.


Saludos. ;D

738
Hola César.

Añadiendo un "=" después de cada ">" en las condiciones del "if" de la función "max" valdría para obtener un buen resultado, dicha función quedaría así:

Código: [Seleccionar]
int max(int num1, int num2, int num3) {
    int resultado = 0;
    if (num1 >= num2 && num1 >= num3){
        resultado = num1;
    } else if (num2 >= num1 && num2 >= num3){
        resultado = num2;
    } else if (num3 >= num1 && num3 >= num2){
        resultado = num3;
    }
    return resultado;
}

Saludos.

739
Buenas.

En la clase persona tienes dos constructores, el primero de ellos no recibe ningún parámetro, por lo cual para usar ese constructor a la hora de crear un objeto Persona nuevo deberías hacerlo de la siguiente formar:

Código: [Seleccionar]
conductorTaxi = new Persona ();
y el segundo constructor requiere cinco parámetros, tendría que ser así:

Código: [Seleccionar]
conductorTaxi = new Persona (objetoPersona.getNombre(), objetoPersona.getApellido(), objetoPersona.getEdad(), objetoPersona.getCasado(), objetoPersona.getNumeroDocumentoIdentidad());
Esas dos las dos formas que aceptaría la clase Persona para crear los objetos nuevos.

Saludos.

740
Hola, dejo una posible solución para el ejercicio CU00547F del curso online de programación en Lenguaje C.

Citar
EJERCICIO
Estudia el siguiente código:

Código: [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
int max(int num1, int num2);
 
int main () {
   int a = 100;
   int b = 200;
   int ret;
   ret = max(a, b);
   printf( "Max value is : %d\n", ret );
   return 0;
}
 
int max(int num1, int num2) {
   int result;
   if (num1 > num2)
      result = num1;
   else
      result = num2;
   return result; //Ejercicios aprenderaprogramar.com
}
Citar
a) Sin ejecutar el código (sólo pensando) responde: ¿para qué sirve la función max? ¿cuál será el resultado del programa?
Para determinar cual de los dos números es mayor.
"Max calue is : 200"

Citar
b) ¿En qué línea se produce la llamada a la función max? ¿Qué valor se almacenará en la variable ret y por qué?
ret = max(a, b);
200, que es el resultado que devuelve la función max.

Citar
c) Reescribe el código de modo que todos los if lleven corchetes delimitadores { … } tanto para los if como para los else.
Código: [Seleccionar]
int max(int num1, int num2);
 
int main () {
   int a = 100;
   int b = 200;
   int ret;
   ret = max(a, b);
   printf( "Max value is : %d\n", ret );
   return 0;
}
 
int max(int num1, int num2) {
   int result;
   if (num1 > num2){
      result = num1;
   }else{
      result = num2;
   }
   return result; //Ejercicios aprenderaprogramar.com
}

Citar
d) Crea un programa análogo a este con una función que permita determinar, dados tres números, cuál es el mayor. Invoca la función pasándole como datos 23, 87, 45 y muestra el resultado devuelto por la función por pantalla.
Código: [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
int max(int num1, int num2, int num3);

int main() {
    int num1 = 23;
    int num2 = 87;
    int num3 = 45;
    int resultado;

    resultado = max(num1, num2, num3);
    printf( "El valor m\xA0ximo es : %d\n", resultado );
    return 0;
}
int max(int num1, int num2, int num3) {
    int resultado = 0;
    if (num1 > num2 && num1 > num3){
        resultado = num1;
    } else if (num2 > num1 && num2 > num3){
        resultado = num2;
    } else if (num3 > num1 && num3 > num2){
        resultado = num3;
    }
    return resultado;
}

Saludos. ;D

Páginas: 1 ... 32 33 34 35 36 [37] 38 39 40 41 42 ... 65

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".