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 - Dimitar Stefanov

Páginas: 1 2 3 [4] 5 6 7 8 9 ... 30
61
Buenas tardes. Mediante la presente hago entrega de una posible solución del ejercicio CU00545F del tutorial de programación en C lenguaje C desde cero.

Citar
EJERCICIO

Estudia el siguiente código y responde a las preguntas:

Código: [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
// Curso de programación C aprenderaprogramar.com

int main () {
   /* local variable definition */
   int a = 10;
   /* while loop execution */
   while( a < 20 ) {
      printf("value of a: %d\n", a);
      a++;       
      if( a > 15) {
         break;
      }   
   }
   return 0;
}

Citar
a) Sin ejecutar el código (sólo pensando) responde: ¿cuál será el resultado del programa?

El resultado sería que se imprimira la instrucción: "value of a: 10", "value of a: 11", "value of a: 12", "value of a: 13", "value of a: 14", "value of a: 15" cada una en una línea nueva. El bucle no podrá llegar a 20 porque tenemos un condicional:"if(a>15)" que establece una salida forzada mediante la instrucción: "break;".

Citar
b) Ejecutando el código ¿cuál es el resultado del programa?

Tal y como lo había descrito en el apartado a)

Citar
c) ¿Qué signficado tiene a++ en el contexto de este programa?

Que en cada pasada del bucle la variable "a" se incrementa con una unidad. Es lo mismo escribir "a++" que "a=a+1".

Citar
d) ¿Es equivalente escribir      if( a > 15) break;      y      if( a > 15)  { break; }  ?

Sí. Las dos formas son legales aunque por comprensión del código es mejor la segunda, utilizando corchetes.

Citar
e) Haz que el código cuente desde 10 hasta 15 sin hacer uso de break (usa sólo las condiciones naturales de un bucle while).

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

int main() {
    /*local variable definition*/
    int a=10;

    /*while loop execution*/
    while(a<16){
        printf("value of a: %d\n",a);
        a++;
    }

    return 0;
}

Gracias.

62
Buenos días. Dejo una posible solución de los ejercicios de la entrega CU00544F del curso lenguaje de programación C desde cero.

Citar
EJERCICIO Nº 1

Estudia el siguiente código y responde a las preguntas:

Código: [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
// Ejercicios aprenderaprogramar.com

int main(){
   float num,average,sum;
   int i,n;
   printf("Maximum no. of inputs\n");
   scanf("%d",&n);
   for(i=1;i<=n;++i){
       printf("Enter n%d: ",i);
       scanf("%f",&num);
       if(num<0.0)
       break;
       sum=sum+num;
}
  average=sum/(i-1);       
  printf("Average=%.2f",average);
  return 0;
}

Citar
a) ¿Para qué crees que sirve este código?

Este código sirve para calcular la media de los números positivos entrados por el usuario.

Citar
b) Qué ocurre si introducimos como maximum no. of inputs 8 e introducimos los números 1.5, 12.5 y -1 ¿Por qué ocurre eso? ¿Qué significado tiene lo que se muestra por pantalla?


Al entrar el número negativo se cambiará el flujo del programa. Se saldrá del bucle porque tenemos establecida la condicional: "if(num<0.0)" con la consiguiente salida del bucle mediante la instrucción: "break;"

Por pantalla sólo nos saldra la media de los números positivos antes de la entrada del número negativo.

Citar
c) ¿Qué signficado tiene %.2f dentro de este programa?

Que se imprima por pantalla un número float con precisión sólo dos decimales.

Citar
EJERCICIO Nº 2

Estudia el siguiente código y responde a las preguntas:

Código: [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
// Ejercicios aprenderaprogramar.com

int main(){
    int i,num,product;
    for(i=1,product=1;i<=4;++i){
        printf("Enter num%d:",i);
        scanf("%d",&num);
        if(num==0)
            continue; 
        product*=num;
}
    printf("product=%d",product);
return 0;
}

Citar
a) ¿Para qué crees que sirve este código?

Es para calcular los 4 números entrados entre sí.

Citar
b) Qué ocurre si introducimos como números 3, 0, -5, 2 ¿Por qué ocurre eso? ¿Qué significado tiene lo que se muestra por pantalla?

El 0 se considera como no entrado. Ocurre porque tenemos establecida la condicional: "if(num==0)" y si se cumple dicha condicional tenemos establecida la instrucción: "continue;"

Citar
Con esta instrucción, insertada normalmente tras evaluar una condición, se produce el incremento automático de la variable índice y la vuelta al comienzo del bucle sin terminar la ejecución del mismo.

El significado es que si se haya entrado un número igual a 0 se tiene como no introducido y el código sólo multiplica los números entre sí que sean diferentes a 0.

Citar
c) ¿Es legal escribir un if sin los corchetes { … }?

Sí. La condicional sólo afecta a la instrucción establecida inmediatamente después del if.

Citar
d) Qué ocurre si introducimos como números 0, 0, 0, 0 ¿Por qué ocurre eso? ¿Qué significado tiene lo que se muestra por pantalla?

Es como si no escribieramos nada. Se imprimirá 1 porque la variable "producto" tiene un valor inicializado igual a 1 y la variable "num" no está inicializada. Como la variable "num" no está inicializada y tenemos la instrucción: "product*=num;" es como poner:"1=1*null" lo que nos devuelve 1.

PD: Tenía una duda. Se me ha olvidado cómo se interpreta una definición del bucle for de la siguiente manera: "for(i=1,product=1;i<=4;++i)". Sé que el primer parámetro es la variable controladora a la que se le asigna una valor, el segundo parámetro es la condicional que nos lleva a la salida del bucle y la tercera es la incrementación de la variable controladora. Pero ¿qué ocurría cuando el primer parámetro está compuesto por dos variables? Sé que estaba explicado en alguna entrega, pero no me acuerdo si era en este curso o en el de JavaScript. Agradecería si alguien me vuelva a referscar la memoria.

Gracias.

63
Buenas noches. Dejo una posible solución del ejercicio CU00543F del curso lenguajeC desde cero.

Citar
EJERCICIO

En un archivo denominado miTexto.txt existen varias líneas de texto. Crear un programa que extraiga el contenido de las líneas hasta el final del archivo usando eof ó feof y las muestre por pantalla.

Ejemplo: si el contenido del archivo es el siguiente.

Cumpliendo con mi oficio

piedra con piedra, pluma a pluma,

pasa el invierno y deja

sitios abandonados.

 

El resultado de ejecución deberá ser el siguiente:

Linea 1 contiene: Cumpliendo con mi oficio

Linea 2 contiene: piedra con piedra, pluma a pluma,

Linea 3 contiene: pasa el invierno y deja
Linea 4 contiene: sitios abandonados.

 

Añade varias líneas más al archivo y comprueba que el programa las extrae todas.

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

int main() {
    char cadena[NUMELEMENTOS];
    int i=0;

    FILE*fichero;
    fichero = fopen("miTexto.txt","rt");
    while(!feof(fichero)){
        fgets(cadena,50,fichero);
        printf("La linea %d contiene: %s\n", i+1, cadena);
        i++;
    }

    fclose(fichero);

    return 0;
}

Contenido del fichero miTexto.txt:

Cumpliendo con mi oficio
piedra con piedra, pluma a pluma,
pasa el invierno y deja
sitios abandonados.

Gracias.

64
Buenas tardes. Dejo una posible solución del ejercicio CU00542F del curso aprende a programar en lenguaje C desde cero.

Citar
EJERCICIO

Crear un programa que muestre en pantalla un diamante formado por asteriscos, dado un valor de número de asteriscos máximo en el punto central del diamante o rombo. Ejemplo: si el valor en el punto central es 5 el rombo sería:

Ejemplo:

*

**

***

****

*****

****

***

**

*

 

Nota: antes de crear el código hay que estudiar la lógica para proceder a crear el rombo, teniendo en cuenta que para poder mostrarlo habremos de dejar espacios en blanco a la derecha e izquierda de todas las líneas excepto la central.

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

int main() {
    char espacioEnBlanco = ' ';
    int i,j, maxFilas=0;

    do{
        printf("Cuantas filas quieres que tenga tu rombo para arriba (minumo 5 y maximo 50)?: ");
        scanf("%d", &maxFilas);
    }while(maxFilas<5 || maxFilas>100);
    int filas=maxFilas;
    int asterisoMax=2;

    if(maxFilas != 0){
        for(i=0;i<maxFilas;i++){
            printf("\t\t\t\t\t");
            for(j=0;j<filas;j++){
                printf("%c",espacioEnBlanco);
            }
            for(j=0;j<asterisoMax;j++){
                printf("*");
            }
            puts("");
            filas--;
            asterisoMax=asterisoMax+2;
        }

        for(i=0;i<maxFilas+1;i++){
            printf("\t\t\t\t\t");
            for(j=0;j<filas;j++){
                printf("%c",espacioEnBlanco);
            }
            for(j=0;j<asterisoMax;j++){
                printf("*");
            }
            puts("");
            filas++;
            asterisoMax=asterisoMax-2;
        }
    }


    return 0;
}

Gracias.

65
Buenas, Mario.

Totalmente de acuerdo contigo. Desde que estoy revisando códigos de Java he repasado un montón. Y cada vez me siento más y más seguro revisando. También, es cierto, que siempre antes de corregir a algún alumno intento estar 100 % seguro de lo que estoy diciendo.

Otro abrazado.

66
Buenos días, umadara.

Considero que tu solución cumple con todos los cometidos del ejercicios. Vamos, que lo tienes perfecto. Felicitarte y animarte que sigas adelante.

Saludos.

67
Buenos días, Pandemia.

Programo de esta manera para ir acorde con el estilo de enseñanza de los cursos de aprenderaprogramar.com. Vi que el profesor lo programaba así, como por ejemplo en la entrega CU00539F (entre otras):

Citar
EJERCICIO Nº1: SOLUCIÓN

Vamos a suponer que el archivo caudal.dat se encuentra en la unidad de disco C:, y que el valor de caudal disponible en litros por minuto que proporciona es 112. Antes de ejecutar el programa habremos creado este archivo. Tener en cuenta que para especificar la ruta tendremos que poner c:\\caudal.dat usando una doble barra porque \ es un carácter especial que se usa para insertar ciertos códigos de control como cuando escribimos \n y para que se interprete como un carácter de la cadena c:\caudal.dat hemos de escribir el carácter de escape, que es precisamente \, de ahí que se escriba duplicado.

 

Código:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
// Ejercicios resueltos de programación en C aprenderaprogramar.com
int main() {
    const double Pi = 3.141592654;     double D, R, H, V, Vlitros, tminutos, Q;
    puts ("Tiempo de llenado para un deposito cilindrico\n");
    printf ("Introduzca el diametro del deposito en metros: ");  scanf ("%lf", &D);
    printf ("Introduzca la altura del deposito en metros: "); scanf ("%lf", &H);

    //Extracción de dato de caudal del archivo
    FILE* fichero;     fichero = fopen("c:\\caudal.dat", "rt");
    fscanf (fichero, "%lf", &Q );
    fclose(fichero);

    //Cálculos y resultados
    printf ("\nDato de caudal extraido de fichero vale:  %lf \n", Q);
    R = D / 2;     V = Pi * pow (R, 2) * H;     Vlitros = V * 1000;     tminutos = Vlitros / Q;
    printf ("El tiempo que transcurrira hasta el llenado del deposito es de %lf minutos \n", tminutos );
    return 0;
}

Si te fijas en este ejemplo, las variables D, R, H, V, Vlitros, tminutos, Q, solamente están definidas, pero no inicializadas.

Pero lo dicho, gracias por tus consejos, lo tendré en cuenta. Al fin y al cabo lo que quiero es mejor como programador y agradezco todos los consejos por vuestra parte. Gracias.

Saludos.

68
Buenas noches. Mediante la presente expongo una posible solución del ejercicio CU00541F del curso aprenda C como si estuviera en primero.

Citar
EJERCICIO

Se está realizando un estudio estadístico de los clientes que entran a un banco en cada hora a partir de su hora de apertura durante un día. El banco abre 6 horas al día y los datos de cuántas personas han entrado al banco en cada hora se encuentran almacenados en un array definido como clientesEntran[0], clientesEntran[1], … hasta clientesEntran[5]. Se desea desarrollar un programa que usando bucles y condicionales determine:

a) El total de personas que entraron al banco en el día.

b) Cuántas horas no entró ninguna persona y cuáles fueron.

c) Cuál fue la hora en la que entró el mayor número de personas.

d) El número medio de personas por hora que entraron al banco.

 

Considerar que en la primera hora entraron 12 personas, en la segunda 0, en la tercera 23, en la cuarta 45, en la quinta 21 y en la sexta 0. ¿Qué resultados muestra el programa?

Nota: en este tipo de ejercicios usamos arrays (arreglos) combinándolos con bucles de forma que para recorrer el array usamos un bucle, nunca escribimos una por una las variables que forman el array excepto si tenemos que asignarles un valor inicial.

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

int main() {
    double clientesEntran[6];
    clientesEntran[0]=12;
    clientesEntran[1]=0;
    clientesEntran[2]=23;
    clientesEntran[3]=45;
    clientesEntran[4]=21;
    clientesEntran[5]=0;
    double totalClientes=0;
    int horaMaxClientes=0;
    double media;
    int i;


    for(i=0;i<sizeof(clientesEntran)/sizeof(clientesEntran[0]);i++){
        totalClientes=totalClientes+clientesEntran[i];
        if(clientesEntran[i]==0){
            printf("En la hora %d no entro ningun cliente\n",i+1);
        }
        if(horaMaxClientes<clientesEntran[i]){
                horaMaxClientes=i;
        }
    }
   
    media = totalClientes/6;

    printf("El total de clientes que entraron al banco en el dia son: %lf\n", totalClientes);
    printf("En la hora %d entro el mayor numero de clientes\n", horaMaxClientes);
    printf("El numero medio de personas por hora que entraron al banco es: %lf", media);

    return 0;
}

Tengo una duda, ¿por qué si declaro la variable "totalClientes" de tipo int y luego la divido entre un número, por ejemplo:

int totalClientes=101;
double media = totalClientes/6

no puedo imprimir la variable "media" como un double, sino que se imprime como un número entero (int)?

Gracias.

69
Buenas. Expongo una posible solución del ejercicio CU00540F del tutorial aprende a programar en lenguaje C desde cero.

Citar
EJERCICIO

Crea un programa que usando bucles nos permita pedir un número par comprendido entre 100 y 200 y nos muestre todos los números pares comprendidos entre el número facilitado y 200. Por ejemplo si el número facilitado es 192 nos debería mostrar 192, 194, 196, 198 y 200.

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

int main() {
    int num;
    int i=0;

    while(i<1){
        printf("Intrudzca un numero par entre 100 y 200: ");
        scanf("%d",&num);
        if(num>=100 && num<=200){i++;}
    }

    for(i=num;i<=200;i=i+2){
        printf("%d\t",i);
    }

    return 0;
}

Gracias.

70
Buenas tardes. Dejo una posible solución del ejercicio CU00539F del curso aprende lenguaje C como si estuvieras en primero.

Citar
EJERCICIO

Crea un programa que pida una entrada de teclado y usando un bucle muestre cada una de las letras que componen la entrada. Por ejemplo si se introduce “avena” debe mostrar:

Letra 1: a

Letra 2: v

Letra 3: e

Letra 4: n

Letra 5: a

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

int main() {
    char palabra[50];
    int i;
    printf("Introduce una palabra: ");
    scanf("%s", &palabra);
    //printf("%d", strlen(palabra));
    for(i=0; i<strlen(palabra);i++){
        printf("Letra %d: %c\n", i+1, palabra[i]);
    }

    return 0;
}

Gracias.

71
Buenas, umadara.

Otro ejercicio bien resuelto. Dos cositas, tienes la variable "i" en la clase "Test" que no la utilizas y el método "añadirNombre" en la clase "CantantesFamosos" no debería de contener la letra "ñ" en su definición. Muchas veces, los códigos escritos en lenguajes como Java, C, etc. no admiten según que carácteres por sus inicios anglosajones.

Saludos.

72
Buenas tardes, umadara.

El ejercicio está bien resuelto. Dos cuestiones que considero recomendables de comentártelos.

Primero, el método "mostrarNombre()" en la clase CantantesFamosos quizás sería mejor que le llamaras "mostrarLista()" o "mostrarNombres" porque realmente lo que está haciendo dicho método es mostrar una lista de nombres, no sólo uno.

Lo segundo, ¿por qué defines e inicializas una variable "i" en la clase Test si después no la usas?

Saludos.

73
Hola, Mario.

Otro ejercicio que me has corregido, muchísimas gracias.

Pensaba que sólo se podría compilar un código con un compilador. No sabía que desde la consola del sistema operativo también se podría compilar.

Saludos.

74
Buenas tardes. Expongo una posible solución del ejercicio CU00538F del curso para aprender a programar lenguaje C desde cero.

Citar
EJERCICIO

Crea un archivo denominado almacen.txt que contendrá una palabra en cada línea (para un total de 6 líneas) como se muestra a continuación:

El

gaucho

es

equilibrio

y

belleza

 

 

Crea un programa que cree un array de palabras de modo que se lea el contenido del archivo y se almacene en los elementos del array. Por ejemplo palabra[0] contendrá "El", palabra[1] contendrá "gaucho" y así sucesivamente. Usando un bucle, muestra por pantalla la frase (intercalando los espacios necesarios). En este caso el resultado del programa será como este:

<<Tras extraer la información del archivo construimos esta frase: El gaucho es equilibrio y belleza>>

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

int main() {
    typedef char contenido[50];
    contenido palabra[6];
    int i, j;
    char control;

    FILE * fichero;
    //ESCRITURA
    fichero = fopen("CU00538F.txt","wt");
    fprintf(fichero,"%s%c","El",'\n');
    fprintf(fichero,"%s%c","gaucho",'\n');
    fprintf(fichero,"%s%c","es",'\n');
    fprintf(fichero,"%s%c","equilibrio",'\n');
    fprintf(fichero,"%s%c","y",'\n');
    fprintf(fichero,"%s%c","belleza",'\n');
    fclose(fichero);

    printf("Proceso de escritura completado\n\n");

    //LECTURA
    fichero = fopen("CU00538F.txt","rt");

    for(j=0; j<=5; j++){
        i=1;
        control = 'a';
        while (control >=32 && control<=126)  {
            control = fgetc(fichero);
            palabra[j][i]='\0';
            if (control >=32 && control<=126)
            {palabra[j][i-1] = control;}
            i++;
        }
    }

    printf("Tras extraer la informaci%cn del archivo construimos esta frase: ", 162);

    for(i=0; i<=5; i++){
        printf("%s ", palabra[i]);
    }

    return 0;

}

Gracias.

75
Buenas tardes. Dejo una posible solución del ejercicio CU00537F del curso aprende a programar en lenguaje C desde cero.

Citar
EJERCICIO

Crea un programa que pida 3 números al usuario y guarde 4 líneas en un archivo denominado datos.txt. El contenido de las líneas debe ser el siguiente: las 3 primeras líneas, cada uno de los datos proporcionados. La cuarta línea, el valor medio de los tres datos anteriores.

Ejemplo: el usuario introduce como números 10, 14, 31. El archivo creado deberá contener lo siguiente:

10

14

31

18.333333

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

int main() {
    int num[3], i, media;

    for(i=0; i<3; i++){
        printf("Introduzca un n%cmero entero: ", 163);
        scanf("%d", &num[i]);
    }

    media = (num[0]+num[1]+num[2])/3;

    FILE*fichero;
    fichero = fopen("archivo01.txt","wt");
    fprintf(fichero, "%d\n%d\n%d\n%d", num[0], num[1], num[2], media);
    fclose(fichero);

    printf("Proceso completo");

    return 0;
}

Gracias.

76
Buenas tardes. Dejo una posible solución del ejercicio CU00536F del taller de programación en lenguaje C desde cero.

Citar
EJERCICIO

En un programa escrito en C nos hemos encontrado esta línea:

fichero = fopen("cursoAF1.txt", "wt");

En otro programa nos hemos encontrado esta otra línea:

fichero = fopen("cursoAF2.txt", "rt");

 

Responde a estas preguntas:

a) ¿Manejan ambos programas el mismo tipo de archivo? ¿Por qué?

Sí. Los dos programas tratan con archivos de tipo texto porque en el segundo parámetro del método "fopen" después del modo de apertura está la letra "t" lo que quiere decir que estamos trabajando con un archivo de tipo texto.

Citar
b) ¿Qué ocurrirá en cada programa si el archivo no existe?

Según la explicación en la entrega CU00536F en el primer caso no se creará un archivo nuevo y en el segundo caso sí se creará.

Citar
c) ¿Con qué fin se abren los archivos en cada programa?

El primer archivo se abre en modo escritura y si ya existe dicho archivo se perderá toda la información en él. En el segundo caso se abre en modo lectura, no se perderá la información. 

77
Buenas tardes. Expongo una posible solución de los ejercicios de la entrega CU00535F del curso lenguajeC desde cero.

Citar
EJERCICIO Nº 1

Escribe un programa que pida tres cadenas al usuario y muestre su longitud (número de letras).

Ejemplo: el usuario introduce como cadenas perro, pez y cocodrilo. El programa mostrará por pantalla. El número de letras para perro es 5. El número de letras para pez es 3. El número de letras para cocodrilo es 9.

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

int main() {
    char cadena01[50], cadena02[50], cadena03[50];
    printf("Introduzca una palabra: ");
    scanf("%s", &cadena01);
    printf("Intruduzca otra palabra: ");
    scanf("%s", &cadena02);
    printf("Intruduzca una %cltima palabra: ", 163);
    scanf("%s", &cadena03);

    printf("El n%cmero de letras para \"%s\" es: %d\n", 163, cadena01, strlen(cadena01));
    printf("El n%cmero de letras para \"%s\" es: %d\n", 163, cadena02, strlen(cadena02));
    printf("El n%cmero de letras para \"%s\" es: %d\n", 163, cadena03, strlen(cadena03));


    return 0;
}

Citar
EJERCICIO Nº 2

Escribe un programa que pida tres cadenas al usuario y muestre el resultado de concatenar las dos primeras letras de las cadenas introducidas y que indique si las dos primeras cadenas son iguales.

Ejemplo: el usuario introduce como cadenas perro, vaca y cocodrilo. El programa mostrará por pantalla: “El resultado de concatenar las dos primeras letras de las cadenas es: pevaco. La primera cadena, perro, no es igual a la segunda cadena, vaca.”

Si el usuario introdujera perro, perro, mulo, el programa debería mostrar: “El resultado de concatenar las dos primeras letras de las cadenas es pepemu. La primera cadena, perro, es igual a la segunda cadena, perro.”

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

int main() {
    char cadena01[50], cadena02[50], cadena03[50], subCadena01[3], subCadena02[3], subCadena03[3];
    printf("Introduzca una palabra: ");
    scanf("%s", &cadena01);
    subCadena01[0] = cadena01[0];
    subCadena01[1] = cadena01[1];
    subCadena01[2] = '\0';
    printf("Intruduzca otra palabra: ");
    scanf("%s", &cadena02);
    subCadena02[0] = cadena02[0];
    subCadena02[1] = cadena02[1];
    subCadena02[2] = '\0';
    printf("Intruduzca una %cltima palabra: ", 163);
    scanf("%s", &cadena03);
    subCadena03[0] = cadena03[0];
    subCadena03[1] = cadena03[1];
    subCadena03[2] = '\0';


    printf("El resultado de concatenar las dos primeras letras de las palabras es: %s.\n", strcat(strcat(subCadena01,subCadena02),subCadena03));

    if(strcmp(cadena01,cadena02)==0){
        printf("La primera palabra, %s, es igual a la segunda palabra, %s.", cadena01, cadena02);
    }else{
        printf("La primera palabra, %s, no es igual a la segunda palabra, %s.", cadena01, cadena02);
    }

    return 0;

}

Aunque debo reconocer que me ha gustado mucho más la forma de cómo lo haya solucionado nuestro compañero y experto Pedro. Pueden encontrar su solución en el siguiente enlace: https://www.aprenderaprogramar.com/foros/index.php?topic=4626.msg18928#msg18928

Me surge la duda, ¿no existe el método "substring" en el lenguaje C igual que en JavaScript o en Java (entre otros)?

Gracias.

78
Buenas tardes. Dejo una posible solución de los ejercicios de la entrega CU00534F del tutorial de programación básica lenguaje C desde cero.

Citar
EJERCICIO Nº 1

Escribe un programa que use un bucle while para mostrar el resultado de multiplicar los números del 1 al 20 por el resultado de obtener el módulo (resto de la división que se obtiene usando el operador % de C) de dicho número con un número elegido por el usuario.

Ejemplo: el usuario elige el número tres. Los cálculos a realizar serán: resto de 1 entre 3 es 1, por pantalla se mostrará un 1, resto de 2 entre 3 es 2, por pantalla se mostrará un 2, resto de 3 entre 3 es cero, por pantalla se mostrará un cero, resto de 4 entre 3 es 1, por pantalla se mostrará un 1… así hasta terminar con resto de 20 entre 3 es 2, por pantalla se mostrará un 2.

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

int main() {
    int num, i;
    i=1;
    printf("Introduzca un n%cmero entero: ", 163);
    scanf("%d", &num);
    while(i<=20){
        printf("El resto de %d entre %d es: %d\n", i, num, i%num);
        i=i+1;
    }

    return 0;
}

Citar
EJERCICIO Nº 2

Modifica el programa anterior para usar un bucle do while.

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

int main() {
    int num, i;
    i=1;
    printf("Introduzca un n%cmero entero: ", 163);
    scanf("%d", &num);
    do{
        printf("El resto de %d entre %d es: %d\n", i, num, i%num);
        i=i+1;
    }while(i<=20);

    return 0;
}

Citar
EJERCICIO Nº 3

Escribe un programa que use un bucle while para calcular la potencia de un número al que denominaremos base sobre otro número al que denominaremos exponente, ambos elegidos por el usuario.

Ejemplo: el usuario elige como base el 4 y como exponente el 3. El programa debe mostrar el resultado de multiplicar la base por sí misma 3 veces, en este ejemplo 4*4*4 = 64.

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

int main() {
    int base, exponente, resultado, i;
    i=1;
    resultado = 1;
    printf("Introduzca un n%cmero de base: ", 163);
    scanf("%d", &base);
    puts("");
    printf("Introduzca un n%cmero de exponente: ", 163);
    scanf("%d", &exponente);
    puts("");

    while(i<=exponente){
        resultado = resultado * base;
        i++;
    }

    printf("El resultado de multiplicar %d por s%c mismo %d veces es igual a: %d", base, 161,exponente, resultado);

    return 0;
}

Citar
EJERCICIO Nº 4

Modifica el programa anterior para usar un bucle do while.

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

int main() {
    int base, exponente, resultado, i;
    i=1;
    resultado = 1;
    printf("Introduzca un n%cmero de base: ", 163);
    scanf("%d", &base);
    puts("");
    printf("Introduzca un n%cmero de exponente: ", 163);
    scanf("%d", &exponente);
    puts("");

    do{
        resultado = resultado * base;
        i++;
    }while(i<=exponente);

    printf("El resultado de multiplicar %d por s%c mismo %d veces es igual a: %d", base, 161,exponente, resultado);

    return 0;
}

Gracias.

79
Hola a todo el equipo de aprenderaprogramar y a sus usuarios. A continuación expongo una posible solución de los ejercicios planteados en la entrega CU00533F del curso lenguaje C desde cero.

Citar
EJERCICIO Nº 1

Escribe un programa que use un bucle for para mostrar el resultado de multiplicar los números del 1 al 20 por el resultado de obtener el módulo (resto de la división que se obtiene usando el operador % de C) de dicho número con un número elegido por el usuario.

Ejemplo: el usuario elige el número tres. Los cálculos a realizar serán: resto de 1 entre 3 es 1, por pantalla se mostrará un 1, resto de 2 entre 3 es 2, por pantalla se mostrará un 2, resto de 3 entre 3 es cero, por pantalla se mostrará un cero, resto de 4 entre 3 es 1, por pantalla se mostrará un 1… así hasta terminar con resto de 20 entre 3 es 2, por pantalla se mostrará un 2.

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

int main() {
    int num, i;
    printf("Introduzca un n%cmero entero: ", 163);
    scanf("%d", &num);

    for(i=1; i<=20; i++){
        printf("El resto de %d entre %d es %d\n", i, num, i%num);
    }

    return 0;
}

Citar
EJERCICIO Nº 2

Escribe un programa 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 elegidos por el usuario.

Ejemplo: el usuario elige como base el 4 y como exponente el 3. El programa debe mostrar el resultado de multiplicar la base por sí misma 3 veces, en este ejemplo 4*4*4 = 64.

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

int main() {
    int base, exponente, resultado, i;
    resultado = 1;
    printf("Introduzca un n%cmero de base: ", 163);
    scanf("%d", &base);
    puts("");
    printf("Introduzca un n%cmero de exponente: ", 163);
    scanf("%d", &exponente);
    puts("");

    for(i=1; i<=exponente; i++){
        resultado = resultado * base;
    }

    printf("El resultado de multiplicar %d por sí mismo %d veces es igual a: %d", base, exponente, resultado);

    return 0;
}

Gracias.

80
Buenas tardes. Dejo una posible solución de los ejercicio de la entrega CU00532F del curso de programación en lenguaje C desde cero.

Citar
EJERCICIO 1

Crea un programa donde se solicite al usuario que introduzca el tipo de bomba para una máquina, pudiendo introducir valores enteros comprendidos entre 0 y 4. Según el valor introducido por el usuario debe mostrarse el siguiente resultado usando un condicional switch:

a) Si el tipo de bomba es 0, mostrar un mensaje por consola indicando “No hay establecido un valor definido para el tipo de bomba”.

b) Si el tipo de bomba es 1, mostrar un mensaje por consola indicando “La bomba es una bomba de agua”.

c) Si el tipo de bomba es 2, mostrar un mensaje por consola indicando “La bomba es una bomba de gasolina”.

d) Si el tipo de bomba es 3, mostrar un mensaje por consola indicando “La bomba es una bomba de hormigón”.

e) Si el tipo de bomba es 4,mostrar un mensaje por consola indicando “La bomba es una bomba de pasta alimenticia”.

f) Si no se cumple ninguno de los valores anteriores mostrar el mensaje “No existe un valor válido para tipo de bomba”.

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

int main() {
    int tipoBomba;
    printf("Introduzca tipo de bomba (entre 0 y 4): ");
    scanf("%d", &tipoBomba);

    switch(tipoBomba){
    case 0:
        printf("No hay establecido un valor definido para el tipo de bomba");
        break;
    case 1:
        printf("La bomba es una bomba de agua");
        break;
    case 2:
        printf("La bomba es una bomba de gasolina");
        break;
    case 3:
        printf("La bomba es una bomba de hormig%cn", 162);
        break;
    case 4:
        printf("La bomba es una bomba de pasta alimenticia");
        break;
    default:
        printf("No existe un valor v%clido para tipo de bomba", 162);
        break;
    }

    return 0;
}

Citar
EJERCICIO 2

Reescribe el programa anterior usando condicionales if (es decir, en lugar de switch nos basaremos exclusivamente en if).

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

int main() {
    int tipoBomba;
    printf("Introduzca tipo de bomba (entre 0 y 4): ");
    scanf("%d", &tipoBomba);

    if(tipoBomba == 0){
        printf("No hay establecido un valor definido para el tipo de bomba");
    }else if(tipoBomba == 1){
        printf("La bomba es una bomba de agua");
    }else if(tipoBomba == 2){
        printf("La bomba es una bomba de gasolina");
    }else if(tipoBomba == 3){
        printf("La bomba es una bomba de hormig%cn", 162);
    }else if(tipoBomba == 4){
        printf("La bomba es una bomba de pasta alimenticia");
    }else{
        printf("No existe un valor v%clido para tipo de bomba", 162);
    }

    return 0;
}

Gracias.

Páginas: 1 2 3 [4] 5 6 7 8 9 ... 30

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".