Archive for ejercicios
Practicas y ejercicios de programación en c ( 11 )
Posted by: | Comments
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.
Practicas y ejercicios de programación en c ( 10 )
Posted by: | Comments
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
Ejercicios y practicas de programación en c ( 9 )
Posted by: | Comments
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;
}
Ejercicios y practicas de programación en c ( 7 )
Posted by: | Comments
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;
}
Ejercicios y practicas resueltas de c ( 6 )
Posted by: | CommentsOtro 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;
}
Ejercicios y practicas resueltas de c ( 5 )
Posted by: | CommentsNueva 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;
}

