Archive for ejercicios

Esta entrada es parte no. 9 de 10 en la serie Practicas C

2º Programa que lea dos números por teclado y calcule el valor de la suma, resta producto y división.

Solución 1.

// Inclusion de librerias

#include <stdio.h>

#include <stdlib.h>

 

// Funcion principal

int main(int argc, char *argv[])

{

  // Definicion de variables

  int A;

  int B;

  long int Suma;

  int Resta;

  float Division;

  long int Multiplicacion;

 

  // Solicitud de datos por consola

  printf(“Numero A ……: “);

  scanf(“ %d”,&A);

  printf(“Numero B ……: “);

  scanf(“ %d”,&B);

  // Realizar calculos

   Suma=A+B;

   Resta=A-B;

  Division=A/B;

  Multiplicacion = A*B;

  // Visualización de resultados

  printf(“\nLa suma es igual a %d”,Suma);

  printf(\nLa resta es igual a %d”,Resta);

  printf(“\nLa division es %.2f”,Division);

  printf(“\nLa multiplicacion es %d”,Multiplicacion);

  system(“PAUSE”);

  return 0;

}

 

Si observas detenidamente el programa en su ejecución podrás observar que la división es posible no salga correctamente y eso es debido a que una división entre enteros produce un entero, por lo tanto quizás para resolver mejor este programa deberías emplear otro tipo de dato para los números y que la resolución del mismo sea mas adecuada.

 

Esta entrada es parte no. 10 de 10 en la serie Practicas C

Iniciamos los ejercicios y practicas resueltas en el lenguaje de programación C.

 

1º Realizar un programa que pide un dato de entrada que se ha de corresponder a la longitud de un radio, calcula y visualiza la longitud de la circunferencia, el área del círculo y el volumen de la esfera que se corresponda con el radio dado.

Formulas a emplear:

Siendo r = radio y ^= elevado

Longitud circunferencia = 2·PI·r

Área círculo = PI·r^2

Volumen esfera = 4/3 · PI · r ^3

 

Solución (1)

#include <stdio.h>

#include <stdlib.h>

int main(int argc,char *argv[])

{

  // Creación de variables a utilizar

  int radio;

  float longitud;

  float area;

  float volumen;

  // Solicitar el radio por teclado

  printf(“Introduzca radio…: “);

  scanf(“ %d”,&radio);

  // Realizar los calculos

  longitud = 2*PI*radio;

  area = PI*(radio*radio);

  volumen = (4/3)*PI*(radio*radio*radio);

  // Visualizar los resultados

  printf(“\nLongitud del radio = %.2f”,longitud);

  printf(“\nArea = %.2f”,area);

  printf(“\nVolumen = %.2f”,volumen);

  system(“PAUSE”);

  return 0;

}

 

Si quieres realizar tu aporte hazlo utilizando los comentarios

 

Esta entrada es parte no. 8 de 10 en la serie Practicas C

 

Nuevo articulo para que sigas tus estudios online con nosotros, solucionando problemas, practicas y ejercicios realizados con el lenguaje de programación c.

 

Saber si un numero es primo o no

Planteamiento del ejercicio:

Se ha de solicitar por teclado un numero entero positivo, para finalizar el programa se ha de teclear el valor –1, en caso de ser el numero valido se ha de indicar si el numero es primo o no.

Solución al ejercicio propuesto:

#include <stdio.h>
#include <stdlib.h>
int main()
{
    // Variables a utilizar en el programa
    int numero=0;
    int divisores=0;
    int primo=0; // primo = 0 no primo = 1

    // Solicitar numero entero hasta valor -1
    do
    {
        printf("\nNumero.....: ");
        scanf(" %d",&numero);
        if(numero!=-1 && numero>0)
        {
            // el numero es valido comprobar si es primo
            primo=0;
            divisores=2;
            while(divisores<numero  && primo!=1)
            {
                if(numero%divisores==0) primo=1;
                divisores++;
            }
            // Si primo vale 0 es que el numero es primo
            if (primo==0)
            {
                printf("\nEl numero %d es primo",numero);
            }
            else
            {
                printf("\nEl numero %d no es primo",numero);
            }
        }
    } while(numero!=-1);
    return 0;
}






Esta entrada es parte no. 6 de 10 en la serie Practicas C





Un ejercicio nuevo de c sobre ficheros, para complementar tu formación en nuestro portal de cursos online y de teleformacion.

El ejercicio consiste en realizar un programa el cual ha de leer de un archivo 10 valores numéricos y a continuación crear un vector en memoria de forma dinámica. Se ha de solicitar un valor numérico por consola y multiplicar cada uno de los elementos del vector por dicho valor numérico, una vez realizado todos los procesos cerrar el archivo y liberar la memoria utilizada por el vector.

 

Solución al ejercicio planteado:

#include <stdio.h>
#include <stdlib.h>
int main()

{

    // Variables a utilizar

    int cuantos;
    int *Vector;
    FILE *fichero;
    int numero;
    int contador;

    // Crear array dinamico de memoria
    cuantos=10;
    Vector=(int *)malloc(sizeof(int)*cuantos);

    // leer archivo de datos y asignar los valores al array dinamico
    fichero=fopen("archivo.dat","rt");
    if(!fichero) {
        printf("\nError en la apertura del archivo archivo.dat. Compruebe que exista.");
        exit(1);
    }

    // prelectura
    fscanf(fichero,"%d\n",&numero);
    contador=0;
    while(!feof(fichero) && contador<10)
    {
        Vector[contador]=numero;
        contador++;
        fscanf(fichero,"%d\n",&numero);
    }

    // Cerrar archivo
    fclose(fichero);

    // pedir valor numerico

    printf("\nTeclee valor numerico ...: ");
    scanf(" %d",&numero);

    for(contador=0;contador<10;contador++) {
        Vector[contador]*=numero;
        printf("\n-> %d ",Vector[contador]);
    }

    // liberar memoria y salir del programa
    free(Vector);

    return 0;

}





Esta entrada es parte no. 5 de 10 en la serie Practicas C

Otro ejercicio de programación en c, para ir completando los ejercicios y practicas a resolver.

Enunciado del ejercicio:

Realizar un programa que solicite un numero entero por teclado y a continuación visualice por pantalla todos los números primos entre 1 y el numero introducido.

El ejercicio y practica resuelta a continuación:

#include <stdio.h>
#include <stdlib.h>
// Predefinición de funciones

int EsPrimo(int);
// Función principal

int main(int argc,char *argv[])
{
   int numero;
   int valores;
   // Solicitar por pantalla el numero
   printf(“Teclear No.: “);
   scanf(“ %d”,&numero);
   // Visualizar todos los números primos entre 1 y el numero
   // se utilizara una función para saber si un numero es primo o no
   for(valores=1;valores<=numero;valores++)
   {
       if(EsPrimo(valores)==0)
         printf(“El valor %d es primo\n”);
   }
   return 0;
}
// Funciones desarrolladas
// la funcion devuelve 0 si el numero es primo en caso contrario 1
int EsPrimo(int Valor)
{
  int primo=0;
  int divisores=0;
  // Calcular divisores del numero
  for(divisores=2;divisores<Valor-1 && primo==0;divisores++)
  {
    // Comprobar si existe un divisor
    if(Valor%divisores==0) primo=1;
  }
  return primo;
}

Esta entrada es parte no. 4 de 10 en la serie Practicas C

Nueva practica o ejercicio resuelto de programación en el lenguaje c, para que completes tu teleformacion con nuestros cursos online gratuitos.


Enunciado del ejercicio:

Realizar un programa en el lenguaje de programación c, que lea una matriz de un fichero, realiza la traspuesta de dicha matriz y la almacene en un fichero nuevo. Los nombres de los archivos se han de solicitar utilizando la línea de comandos como si de un comando ms-dos o Linux se tratara. Se ha de solicitar tanto el nombre del archivo origen como el nombre del archivo destino.

El ejercicio y practicas resuelta a continuación:

#include <stdio.h>
#include <stdlib.h>
// Predefinición de funciones

int Existe(char *);

// Función principal

int main(int argc,char *argv[])
{
    // Comprobación del numero de parámetros recibido
    if(argc!=3) {
        printf("\n¡Faltan parámetros");
        printf("\nFormato: comando fichero_origen fichero_destino");
        exit(1);
    }

    // Comprobación de ficheros
    if(Existe(argv[1])==1) {
        printf("\nEl fichero de origen no se ha encontrado o no existe...");
        exit(1);
    }

    // Declaración de variables necesarias
    FILE *fichero;
    int filas;
    int columnas;
    float **matriz1=NULL;
    int contador;
    int contador1;

    // Abrir archivo en modo lectura
    fichero=fopen(argv[1],"rt");
    // Leer filas y columnas
    fscanf(fichero,"%d %d",&filas,&columnas);
    printf("%d %d",filas,columnas);
    // Realizar la reserva de memoria para las matrices
     matriz1=(float **)malloc(sizeof(float *)*filas);
    for(contador=0;contador<filas;contador)
    {
        matriz1[contador]=(float *)malloc(sizeof(float)*columnas);
    }
    // Asignar datos de la matriz
    for(contador=0;contador<filas;contador++)
    {
        for(contador1=0;contador1<columnas;contador1++)
        {
            fscanf(fichero,"%f",&matriz1[contador][contador1]);
        }
    }
    fclose(fichero);
    printf("\n");
    for(contador=0;contador<filas;contador++)
    {
        for(contador1=0;contador1<columnas;contador1++)
        {
            printf("%.2f ",matriz1[contador][contador1]);
        }
        printf("\n");
    }

    // visualizar traspuesta
    printf("\n%d %d\n",columnas,filas);
    for(contador=0;contador<columnas;contador++)
    {
        for(contador1=0;contador1<filas;contador1++)
        {
            printf("%.2f ",matriz1[contador1][contador]);
        }
        printf("\n");
    }

    fichero=fopen(argv[2],"wt");
    if(!fichero)
    {
        printf("\nERROR No se ha podido crear el archivo destino...");
        exit(1);
    }
    // grabar traspuesta
    fprintf(fichero,"%d %d\n",columnas,filas);
    for(contador=0;contador<columnas;contador++)
    {
        for(contador1=0;contador1<filas;contador1++)
        {
            fprintf(fichero,"%.2f ",matriz1[contador1][contador]);
        }
        fprintf(fichero,"\n");
    }
    // cerrar archivo
    fclose(fichero);
    // liberar memoria
    for(contador=0;contador<filas;contador++)
    {
        free(matriz1[contador]);
    }
    free(matriz1);
    return 0;
}

// Funcion Existe

int Existe(char *nombre_fichero)
{
    FILE *fichero;
    int resultado=0;  // 0 = existe 1 = no existe

    fichero=fopen(nombre_fichero,"rt");
    if(fichero!=NULL)
    {
        fclose(fichero);
    }
    else
    {
        resultado=1;
    }
    return resultado;
}

Calendario

Agosto 2010
L M X J V S D
« Jun    
 1
2345678
9101112131415
16171819202122
23242526272829
3031  

Referencias

Sitio seleccionado por
el Directorio Flesko


Blog Directory, Find A Blog, Submit A Blog, Search For The Best Blogs
Blog Directory