Programação e Desenvolvimento

Projetos, softwares, sites, blogs e trabalhos conforme sua necessidade e com os melhores preços.
Tecnologia do Blogger.

Text Widget

Search (Don't Edit)

Sample Text

Colaboradores

Formulir Kontak

Nome

E-mail *

Mensagem *

Full-Width Version (true/false)

Flickr

Facebook

Translate

Video of the Day

Slider (Add Label Name Here!) (Documentation Required)

Teste Teste Teste

Know us

Teste Teste Teste Teste

Popular Posts

Featured


10 de dez. de 2014

Exemplo de Manipulação de Arquivos em C

Algoritmo consiste em uma Pilha de estrutura com os seguintes campos, nome e idade, armazenados na struct. O algoritmo tem a função de cadastrar, remover, imprimir, salvar, carregar e excluir arquivo. A estrutura será salvo em forma de arquivo Binário.

#include<stdio.h>
#define T 10
typedef struct{
char nome[31];
        int idade;
}PESSOA;
typedef struct{
        PESSOA item[T];
        int topo;
}PILHA;
PILHA iniciaPilha();
int main(){
    FILE *arq;
    PILHA p = iniciaPilha();
    int opc, aux;
    do{
        printf("1 - cadastrar\n"
               "2 - remover\n"
               "3 - imprimir\n"
               "4 - salvar\n"
               "5 - carregar\n"
               "6 - excluir arquivo\n"
               "0 - sair\n");
        scanf("%d",&opc);
        switch(opc){
          case 1:
               getchar();
               if(p.topo < T){
                       
                 printf("nome: ");
                 gets(p.item[p.topo].nome);
                 printf("idade: ");
                 scanf("%d",&p.item[p.topo].idade);
                 p.topo++;
                 system("cls");
                 getchar();
                 }else{
                       printf("PILHA cheiA\n");
                       getche();
                       system("cls");
                       }
          break;
          case 2:
               if(p.topo > 0){
                 p.topo--;
                 printf("nome: %s\nidade: %d\nremovido\n",p.item[p.topo].nome,p.item[p.topo].idade);
               }else
                 printf("PILHA VAZIA\n");
                 getche();
                 system("cls");
          break;
          case 3:
               if(p.topo > 0){
                for(aux = p.topo -1; aux >=0; aux--)
                  printf("nome: %s\nidade: %d\n",p.item[aux].nome,p.item[aux].idade);
                }else
                  printf("PILHA VAZIA\n");
                  getche();
                  system("cls");
          break;
          case 4:
               if(p.topo >= 0){
                 arq = fopen("arquivos_estrutura.bin","wb");
               if(arq != NULL){
                 for(aux =0; aux<p.topo; aux++)
                   if(*p.item[aux].nome)//verifica se comprimento do nome  e 0
                     fwrite(&p.item[aux],sizeof(PESSOA),1,arq);
                 fclose(arq);
                 printf("arquivo gravado com sucesso\n");
                 }else
                  printf("problema ao abrir o arquivo!\n");
                 }else
                  printf("PILHA VAZIA\n");
                  getche();
                  system("cls");
          break;
          case 5:
               if(p.topo < T){
                arq = fopen("arquivos_estrutura.bin","rb");
               if(arq != NULL){
                 for(p.topo =0; p.topo <T; p.topo++)
                   if(fread(&p.item[p.topo],sizeof(PESSOA),1,arq)!=1){
                     if(feof(arq))
                      break;
                   }
                   fclose(arq);
                     printf("arquivo carregado com sucesso!\n");
                   }else
                     printf("problema ao abrir o arquivo!\n");
                   }else
                     printf("PILHA cheia!\n");
                     getche();
                     system("cls");
          break;
          case 6:
               if(remove("arquivos_estrutura.bin")==0)
                printf("arquivo removido com sucesso!\n");
               else
                 printf("erro ao remover arquivo!\n");
               getche();
               system("cls");
          break;
          case 0: break;
          default: printf("erro\n");
          getche();
          system("cls");
     }
    }while( opc !=0);
}
PILHA iniciaPilha(){
      int aux;
      PILHA pi;
      pi.topo = 0;
      for(aux = 0; aux<T; aux++)
       *pi.item[aux].nome = '\0';
       return pi;
}

Trabalhos.:
E-mail: mvf5system@gmail.com
Blog: http://mvf5-system.blogspot.com.br/
Facebook: https://www.facebook.com/mvf5systems

8 de dez. de 2014

Busca Binária e Sequencial em C

Algoritmo consiste, em fazer uma busca tanto Sequencial quanto Binária em um vetor, preenchido e ordenado! Em um vetor de inteiros preenchidos automaticamente os números, o algoritmo mostra como é feito a busca, Sequencial é Binária, mostrando a quantia de comparações que cada busca realiza para encontrar o número fornecido pelo usuário!

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include<math.h>
#define T 250

int menu();
void inserir(int vet[]);
void exibir(int vet[]);
int buscaSequencial(int TAMANHO, int vet[], int valor);
int buscaBinaria(int n, int vet[], int elem);

int vetor[T];
main(){

int num, op;

double tempo_gasto;//tempo gasto
clock_t tempo_inicial = 0, tempo_final = 0;


inserir(vetor);

do{
op = menu();
switch(op){
case 1:
system("cls");
printf("\nBUSCA SEQUENCIAL\n");
printf("\nInforme um numero para Busca sequencial: ");
scanf("%d",&num);

tempo_inicial = clock();//tempo inicial

if(buscaSequencial(T, vetor, num)){
tempo_final = clock();
tempo_gasto = ( (double) (tempo_final - tempo_inicial) ) / CLOCKS_PER_SEC;
printf("\nTempo gasto para busca sequencial: %lf s\n", tempo_gasto);
}
else{
printf("\nNao foi encontrado nenhum elemento: ");

}

getch();
break;
case 2:

system("cls");
printf("\n\nBUSCA Binaria\n");
printf("\nInforme um numero para Busca Binaria: ");
scanf("%d",&num);
tempo_inicial = 0;
tempo_final = 0;
tempo_gasto = 0;
tempo_inicial = clock();//tempo inicial

if(buscaBinaria(T, vetor, num) > 0){
tempo_final = clock();
tempo_gasto = ( (double) (tempo_final - tempo_inicial) ) / CLOCKS_PER_SEC;
printf("\nTempo gasto para busca Binaria: %lf s\n", tempo_gasto);
}
else{
printf("\nNao foi encontrado nenhum elemento: ");

}
getch();
break;
case 3:
exibir(vetor);
getch();
break;
case 0:
break;
default:
printf("Opcao invalida\n");
break;
}
}while(op != 0);
    system("pause");
}
int menu(){
system("cls");
int op;
printf("1-Busca sequencial\n2-Busca Binaria\n3-Exibir Vetor\n0-sair\n");
scanf("%d",&op);
return op;
}

void inserir(int vet[]){
int x;

srand(time(NULL));
for(x = 0; x< T; x++){
vet[x] =  x;

}
}
void exibir(int vet[]){
int x;
for(x = 0; x< T; x++){
printf("%d\t",vet[x]);

}
}
int buscaSequencial(int TAMANHO, int vet[], int valor){
int i = 0, encontrado = 0;
int cont = 0;
while (i < TAMANHO && !encontrado) {
cont++;
if (vetor[i] == valor) {
encontrado = 1; /*Verdadeiro*/
printf("\nVerificou quntas vezes: %d",cont);
return encontrado;
}
else {
i++;
}
}
return encontrado;
}
int buscaBinaria (int n, int vet[], int elem){
/* no início consideramos todo o vetor */
int ini = 0;
int fim = n-1;
int cont = 0;
/* enquanto a parte restante for maior que zero */
while (ini <= fim) {
cont++;
int meio = (ini + fim) / 2;
if (elem < vet[meio]){
fim = meio-1;
}
// ajusta posição final */
else if (elem > vet[meio]){
ini = meio + 1; // ajusta posição inicial */
}

else{
printf("\nAchou");
printf("\nVerificou quantas Vezes: %d\n",cont);
return meio;
}
// /* elemento encontrado */
}
/* não encontrou: restou parte de tamanho zero */
return -1;
}
Trabalhos.:
E-mail: mvf5system@gmail.com
Blog: http://mvf5-system.blogspot.com.br/
Facebook: https://www.facebook.com/mvf5systems


Postagem em destaque

MVF5 System - SOLUÇÕES EM TI!

          Desenvolvimento de projetos, softwares, sites, blogs e trabalhos conforme sua necessidade e com os melhores preços. Entre em c...

Seguidores

Total de visualizações

Postagens populares