Enviado em 03/04/2013 - 22:05h
Olá pessoal,#include<stdio.h>
#include<stdlib.h>
#include<math.h>
struct dados{
char vetAlturas [100][100];/* 1 : quantidade de registro , 2 : comprimento das strings*/
int qtdAlturas;
int *vetorInteiros; /*vetor para converter vetAlturas em inteiro*/
};
int leArquivo(){
struct dados *d;
float cont = 0;
int i;
int j;
float ptomedio;
int aux = 0; /* aux = variável que usaremos para guardar o maior valor de cada comparação*/
char nome_arquivo[20]; /*tamanho do array para o nome do arquivo*/
d=(struct dados*)malloc(1000*sizeof(struct dados)); /*Alocando a estrutura dados*/
if(!d){
printf("Erro ao alocar a memoria");
exit(1);
}
(*d).vetorInteiros=(int *) malloc((*d).qtdAlturas * sizeof(int)); /*Alocando o ponteiro vetorInteiros*/
if(!(*d).vetorInteiros){
printf("Erro ao alocar a memoria");
exit(1);
}
/*=================Código abrir arquivo txt e armazenar registros no vetor=================*/
FILE *arq_alturas;
printf("\tInforme o nome do arquivo texto que deseja abrir:\n");
printf("\t(exemplo: arq.txt): ");
scanf("%s", nome_arquivo);
arq_alturas = fopen(nome_arquivo,"r"); /*abrindo para leitura arq.txt*/
if(arq_alturas == NULL)
{
printf("erro ao ler arquivo!");
}
else
{
(*d).qtdAlturas = 0;
while(fgets((*d).vetAlturas[(*d).qtdAlturas], sizeof((*d).vetAlturas), arq_alturas)) /*a vetorização ocorre nessa linha*/
/*fgets le todos os caracteres do arquivo e tem como paramentros ( ponteiro para uma matriz, n max de caracteres, ponteiro p/ o arquivo)*/
{
(*d).qtdAlturas++;
}
}
fclose(arq_alturas);
/*=============================== Fim Função abrir arquivo==================================*/
/* primeiro for = esse for fará com que o a variável i percorra o vetor a ser ordenado, mas ela vai anda uma casa enquanto a variável j percorre o vetor todo,
ou seja i percorrerá apenas o tamanho do vetor e ja j percorrerá o tamanho do vetor vezes o tamanho do vetor*/
for (i = 0; i<(*d).qtdAlturas+1; i++)
{
(*d).vetorInteiros[i] = atoi((*d).vetAlturas[i]);
for (j = 0; j < (*d).qtdAlturas; j++)
{
if ((*d).vetorInteiros[i] < (*d).vetorInteiros[j])
{
/*aqui acontece a troca, do maior vai para a direita e o menor para a esquerda*/
aux = (*d).vetorInteiros[i];
(*d).vetorInteiros[i] = (*d).vetorInteiros[j];
(*d).vetorInteiros[j] = aux;
}
}
}
for (i=1;i<(*d).qtdAlturas;i++) /*le todos os dados a partir da primeira linha*/
{
(*d).vetorInteiros[i];
}
(*d).qtdAlturas = (*d).qtdAlturas-1; /*total de alturas será o total de dados (linhas) menos a primeira linha*/
/*=================Código salvar arquivo txt =================*/
limpar();
FILE *saida;
printf("\n\tInforme o nome do arquivo texto que deseja gravar (.txt):\n");
printf("\t(exemplo: arq.txt): ");
scanf("%s", nome_arquivo);
saida = fopen(nome_arquivo,"w"); /*para gravar arq.txt*/
if(saida == NULL)
{
printf("erro ao ler arquivo!");
}
/*item a*/
int amplitudeAmostral;
amplitudeAmostral = (*d).vetorInteiros[(*d).qtdAlturas] - (*d).vetorInteiros[1];
fprintf(saida,"\nAmplitude Amostral: %d\n",amplitudeAmostral);
/*item b*/
int numerodeclasses;
numerodeclasses = round((1 + 3.22f * log10((*d).qtdAlturas))); /*uma funçao usa a outra.*/
fprintf(saida,"\nNumero de Classes: %d\n",numerodeclasses);
/*item c*/
float limiteclasses;
limiteclasses = (amplitudeAmostral)/(numerodeclasses);
printf("\n\n");
/*item d*/
/*item e*/
/*item f*/
/*item h*/
/*item g*/
fprintf(saida,"\t\t\t\t\t\tTABELA DO ARQUIVO %s\n", nome_arquivo);
fprintf(saida,"\nClasses \t|\tP.Med\t|\tFreq.rel\t|\tFreq.rel.acm.\t|\tFreq.abs\t|\tFreq.abs.acm.\n");
cont = (*d).vetorInteiros[1];
for(i=0;i<numerodeclasses;i++){
fprintf(saida,"%0.0f-----",cont); /*cont iniciado como 0, o q sera o primeiro print.*/
cont = (limiteclasses+cont);
fprintf(saida,"%0.0f",cont);/*e aqui ele printa na frente.*/
ptomedio = (cont+cont-limiteclasses)/2;
fprintf(saida,"\t %3.2f\n",ptomedio);
}
}
int limpar(){ /* limpa ecran, limpa memória */
system("cls");
fflush(stdin);
}
int main(){
leArquivo();
system("pause");
}
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Melhorando a precisão de valores flutuantes em python[AJUDA] (9)
GLPI - Configuração de destinatário com conta Microsoft Exchange (0)
Vou voltar moderar conteúdos de Dicas e Artigos (3)
OpenVPN no MACBOOK conecta mas não pinga pastas de rede compartilhada ... (1)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta