Академический Документы
Профессиональный Документы
Культура Документы
Realizar un programa que invierta un fichero de texto creando uno nuevo ( es decir el fichero de
destino o final ha de tener el contenido del primero u origen pero al revs ), en vez de solicitar
los nombres de archivos en el programa se utiliza la lnea de parmetros como si de una orden
de linux o ms-dos se tratara. Se utiliza para leer y grabar las funciones fread y fwrite, realizando
una reserva de memoria dinmica con la funcin malloc, y la funcin free para liberar la
memoria utilizada. El ejercicio se ha realizado utilizando el editor Code Blocks bajo Windows 7 y
probado en la consola de comandos de Windows 7.
#include <stdio.h>
#include <stdlib.h>
// Predefinicin de funciones
// Funcin principal
if(argc!=3) {
printf("\nFaltan parmetros");
exit(1);
}
// Comprobacin de ficheros
if(Existe(argv[1])==1) {
exit(1);
FILE *fichero;
char *reserva=NULL;
int contador;
fichero=fopen(argv[1],"rt");
cuantos=Tamanyo(argv[1]);
reserva=(char *)malloc(sizeof(char)*cuantos);
fread(reserva,sizeof(char),cuantos,fichero);
fclose(fichero);
fichero=fopen(argv[2],"wt");
if(!fichero) {
printf("\nInvertir archivo");
for(contador=cuantos;contador>=0;contador--)
fwrite(&reserva[contador],sizeof(char),1,fichero);
printf(".");
fclose(fichero);
// finalizar programa
printf("Ok\n");
// Liberar memoria
free(reserva);
return 0;
// Funcin Existe
FILE *fichero;
fichero=fopen(nombre_fichero,"rt");
if(fichero!=NULL) {
fclose(fichero);
} else {
resultado=1;
return resultado;
// Funcin contador
FILE *fichero;
char caracter=0;
fichero=fopen(nombre_fichero,"rt");
fread(&caracter,1,sizeof(caracter),fichero);
while(!feof(fichero))
contador++;
fread(&caracter,1,sizeof(caracter),fichero);
fclose(fichero);
return contador;
}
-----------------------------------------------------------------------------------------------
Realizar un programa en el lenguaje de programacin 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 lnea 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.
#include <stdio.h>
#include <stdlib.h>
// Predefinicin de funciones
// Funcin principal
if(argc!=3) {
printf("\nFaltan parmetros");
exit(1);
// Comprobacin de ficheros
if(Existe(argv[1])==1) {
exit(1);
FILE *fichero;
int filas;
int columnas;
float **matriz1=NULL;
int contador;
int contador1;
fichero=fopen(argv[1],"rt");
fscanf(fichero,"%d %d",&filas,&columnas);
printf("%d %d",filas,columnas);
for(contador=0;contador<filas;contador++)
{
matriz1[contador]=(float *)malloc(sizeof(float)*columnas);
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)
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
FILE *fichero;
fichero=fopen(nombre_fichero,"rt");
if(fichero!=NULL)
fclose(fichero);
else
resultado=1;
return resultado;
}
------------------------------------------------------------------------------------------------------------------------
[ad#468x602009febrero]
[ad#cuadrop2011]
Realizar un programa que solicite un numero entero por teclado y a continuacin visualice por
pantalla todos los nmeros primos entre 1 y el numero introducido.
#include <stdio.h>
#include <stdlib.h>
// Predefinicin de funciones
int EsPrimo(int);
// Funcin principal
int numero;
int valores;
printf(Teclear No.: );
scanf( %d,&numero);
for(valores=1;valores<=numero;valores++)
{
if(EsPrimo(valores)==0)
return 0;
// Funciones desarrolladas
int primo=0;
int divisores=0;
if(Valor%divisores==0) primo=1;
return primo;
[ad#468152011]
[ad#enlace2011]
---------------------------------------------------------------------------------------------------
#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);
fichero=fopen("archivo.dat","rt");
if(!fichero) {
exit(1);
// prelectura
fscanf(fichero,"%d\n",&numero);
contador=0;
Vector[contador]=numero;
contador++;
fscanf(fichero,"%d\n",&numero);
// Cerrar archivo
fclose(fichero);
scanf(" %d",&numero);
for(contador=0;contador<10;contador++) {
Vector[contador]*=numero;
printf("\n-> %d ",Vector[contador]);
free(Vector);
return 0;
------
Nuevo ejercicio de programacin en c, para que puedas practicar este lenguaje base en el
aprendizaje de programacin. Los ejercicios resueltos no tienen un orden especifico en su
complejidad, por lo tanto te puedes encontrar con ejercicios que para personas noveles en la
programacin resulten dificiles de comprender, busca las practicas que mas se ajusten a tus
necesidades en base a tu nivel. Gracias por visitar el sitio web, un saludo y aprende desde tu
casa.
El ejercicio planteado hoy es que el programa realice una serie de peticiones de notas de
alumnos, hasta que se teclee un valor 1 para finalizar la introduccin de notas. Una vez
finalizada la introduccin de notas se han de visualizar cuantos alumnos han aprobado y
suspendido, asi como cuantos han sacado notas englobadas de la siguiente forma:
de 5 a 6 suficiente
de 6 a 7 bien
de 7 a 8 notable
de 9 o superior sobresaliente
Vuelvo a recordaros, que no pretendo dar lecciones de como se ha de programar un ejercicio, ya
que puede haber muchas formas de resolverlo, esto no significa que la practica resuelta que aqui
planteamos sea la mas correcta, de hecho siempre estoy dispuesto a aadir correcciones o
nuevos planteamientos a la misma, si me los dejais en un comentario
#include <stdio.h>
#include <stdlib.h>
int main()
// Declaracion de variables
int nota=0;
int positivos=0;
int negativos=0;
int aprobados=0;
int suspendidos=0;
int bien=0;
int notable=0;
int sobresaliente=0;
int suficiente=0;
do
printf("Nota...: ");
scanf(" %d",¬a);
if(nota>0)
positivos++;
else if(nota<0)
negativos++;
if(nota<5)
suspendidos++;
else
aprobados++;
// controlar calificaciones
suficiente++;
bien++;
notable++;
else if(nota>=9)
sobresaliente++;
} while(nota!=-1);
// Visualizar resultados
return 0;
------------------------
#include <stdio.h>
#include <stdlib.h>
int main()
{
int numero=0;
int divisores=0;
do
printf("\nNumero.....: ");
scanf(" %d",&numero);
primo=0;
divisores=2;
if(numero%divisores==0) primo=1;
divisores++;
if (primo==0)
}
else
} while(numero!=-1);
return 0;
---------------------
Formulas a emplear:
Solucin (1)
#include <stdio.h>
#include <stdlib.h>
int radio;
float longitud;
float area;
float volumen;
printf(Introduzca radio: );
scanf( %d,&radio);
longitud = 2*PI*radio;
area = PI*(radio*radio);
volumen = (4/3)*PI*(radio*radio*radio);
printf(\nArea = %.2f,area);
printf(\nVolumen = %.2f,volumen);
system(PAUSE);
return 0;
-----------------------------------------
Ejercicio de lenguaje C - Saludo
/* Programa: Saludo */
#include <conio.h>
#include <stdio.h>
int main()
char nombre[20];
return 0;
char nombre[20] sirve para declarar la variable nombre de tipo cadena, pudiendo contener 20
char (caracteres).
El especificador de formato %s debe utilizarse tanto en scanf como en printf para las cadenas
(strings).
Obsrvese que, en este ejercicio, en la funcin scanf no hay que escribir el carcter ampersand
(&) antes de la variable nombre. Esto es as, ya que, para las variables de tipo cadena (arrays de
caracteres), su propio identificador (nombre, en este caso) ya hace referencia a la direccin de
memoria donde se va a almacenar el dato.