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

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;
}

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;
}


1 de dez de 2014

PILHA em C - Pilha de processos.

Descrição do Projeto


Em um setor jurídico de uma rede de supermercados, para simplificar o seu serviço é resolver processos que serão passados pelo seu chefe para você. Estes processos tratam de cheques de clientes que voltaram do banco, isto é, tratam de clientes que deram cheque sem fundo para pagar alguma compra em um dos supermercados da grande rede. Seu chefe ao te passar um serviço te dá as informações referentes ao processo. No caso as informações são: nome, endereço, identidade, e telefone do cliente; valor e data do cheque; e o nome do supermercado que o cliente passou o cheque. Além disso cada processo deve possuir um identificador único. Os processos são organizados em uma pilha. Você executa sempre o serviço que está no topo da pilha. Só que esta pilha não é uma pilha comum, ela tem prioridade relacionada ao valor do cheque. O processos que estiver relacionado ao valor de cheque mais alto fica no topo da pilha, e o que estiver relacionado ao valor mais baixo fica na base da pilha. Caso algum dos supermercados esteja precisando muito de dinheiro, seu chefe entrará em contato com você e te avisará este fato. Neste caso você terá que rearrumar a pilha colocando todos os processos que estão relacionados ao supermercado com problema no topo, e os outros continuarão na ordem anterior. Além disso, caso o seu chefe considere algum processo muito importante, ele poderá te pedir para resolvê-lo, mas estar tentando resolvê-lo também sem você saber. Neste caso se ele resolver o caso antes de você, ele entrará em contato com você e te avisará para ignorar tal processo. Você então terá que retirar tal processo da pilha, estando ele onde estiver. Você deve ser capaz de responder quais identificadores dos processos, quais os nomes dos clientes, e quais os valores dos cheques que estão na pilha; e ainda, qual identificador do processo, qual nome do cliente, qual valor do cheque do processo do topo. Faça um programa que simule esta situação descrita acima. O usuário do programa é o seu chefe. Seu programa deverá conter funções básicas como de empilhar processos de acordo com a prioridade (valor do cheque), desempilhar processos, atribuir as características (ID,
nome do cliente, quantia, etc) a cada processo, mudar a prioridade de um processo (e com isso mudar a posição dele na pilha), listar as características de todos os processos que estão na pilha, listar as características de um determinado processo com ID igual a X (qualquer), listar as características do processo que está no topo da pilha, listar as características do processo que está na base da pilha, remover um processo com ID igual a X (qualquer). 


























































































































































































































←  Anterior Proxima  → Inicio

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