quinta-feira, 24 de setembro de 2015

Uma empresa está desenvolvendo um novo controle para uma impressora. Ela recebe os pedidos e estes devem ser atendidos na mesma ordem que chegam. Cada pedido é representado por um inteiro que corresponde ao tamanho em Bytes da impressão. Faça um programa capaz de atender estas especificações e no final dizer quantos Bytes foram impressos e quantos documentos foram atendidos.



#include <stdio.h>
#include <stdlib.h>

#define QUANTIDADE 3

int fila[QUANTIDADE];
int fim;
int inicio;
int retorno;
int contador = 0;
int opcao;
int byte = 0;
int pedido;

void menu();
void adicionar(int pedido);
int retirar();

int main()
{
        opcao = 0;
        inicio = 0;
        fim = 0;
        while(opcao != 3){

            menu();
            switch (opcao){

        case 1:
                printf("Entre com o novo pedido: ");
                scanf("%d",&pedido);
                adicionar(pedido);
            break;

            case 2:
                pedido = retirar();
                printf("Quantidade de pedidos: %d de %d bytes\n",contador, byte);
            break;

            case 3:
                printf("Sistema Finalizado!!!");
                break;
            default:
                printf("Opcao invalida, escolha entre 1, 2 e 3.\n");
        }
    }
}

void adicionar(int pedido)
    {
        if (fim == QUANTIDADE){
            printf("\nPedido esgotados!!!\n");
       }else{
            fila[fim] = pedido;
            fim++;
    }
}
int retirar()
{
    if(fim == inicio){
        printf("\nNão há pedidos.\n");
        return -0;
    }else{
        retorno = fila[inicio];
        inicio++;
        contador++;
        byte+= retorno;
        return retorno;
        return contador;
        return byte;
    }
}

void menu()
{
    printf("\n1 - Entre com o pedido ");
    printf("\n2 - Pedido a retirar ");
    printf("\n3 - Sair\n");
    printf("\Digite a opcao: ");
    scanf("%d",&opcao);

}

Uma empresa de entregas tem um determinado percurso a ser seguido pelos caminhões e estes devem voltar pelo mesmo caminho. Faça um programa capaz de cadastrar estes caminhos e extrair o caminho de volta na ordem inversa. O dado a ser armazenado corresponde a quantos quilometros foram percorridos. Na saida do programa deve ser impressa a media de quilometros que foram percorridos por trecho.


#include <stdio.h>
#include <stdlib.h>

#define QUANTIDADE 3

void menu();
void imprimir();
float voltaItinerario(float km);
float itinerario(float km);
float mediatotal;
float media();
float contador=0;
float soma=0;
float km;

float pilha[QUANTIDADE];
int posicao;
int opcao;
float percurso;


int main()
{
    opcao = 0;
    while(opcao!=5)
    {
        menu();
        if(opcao == 1)
        {
            printf("Digite a Distancia a Percorrer : ");
            scanf("%f", &percurso);
            itinerario(percurso);
        }
        if(opcao == 2)
        {
            percurso = media();
            printf("\nTotal %4.0f Intinerario com Média %4.2f Kms por Percurso.\n\n", contador, mediatotal);
            imprimir();
        }
        if (opcao == 3){
            percurso = voltaItinerario(km);
            printf("\nVolta de ** %4.2f Kms ** do Intineriario ja Percorrido.\n\n",percurso);
            imprimir();
        }
        if(opcao == 4)
        {
            posicao=0;
            contador = 0;
            soma = 0;
        }
        if (opcao == 5)
        {
            printf("\nSistema Finalizado!!!\n");
            break;
        }
        if((opcao>5)||(opcao<1)){
         printf(" \n*** Opcao Invalida ***\n");
    }
    }
}

void menu()
{
    printf("\n1 - Inserir Distancia do Intinerario a Percorrer  \n");
    printf("2 - Calcular Media do Intinerario\n");
    printf("3 - Voltar o Intinerario ja Percorrido\n");
    printf("4 - Novo Intinerario\n");
    printf("5 - Sair\n");
    printf("\nDigite a opcao: ");
    scanf("%d", &opcao);
}

void imprimir()
{
    int i;
    for(i = posicao - 1; i >=0; i--)
    {
        printf("  %d ° Percurso = %2.2f kms\n ", i+1,pilha[i]);
    }
    printf(" \nTotal de %4.2f Kms Percorridos\n",soma);
}

float itinerario(float km)
{
    if(posicao == QUANTIDADE)
        printf("\nLimite Intinerario Esgotado!!!\n");
    else
    {
        pilha[posicao] = km;
        posicao++;
        contador++;
        soma=soma+km;
   }
}

float voltaItinerario(float km)
{
    if(posicao == 0){
        printf("\nFim dos Intinerarios Percorridos!!!\n");
        return 0;
    }else{
        posicao--;
        contador++;
        soma= soma+pilha[posicao];
        return pilha[posicao];
    }
}

float media()
{
    if(posicao == 0)
    {
        printf("\nSem Intinerario , Vazio!!!\n");
        return 0;
    }
    mediatotal=soma/contador;
}

quinta-feira, 17 de setembro de 2015

Lista - Prof. Nava - Adicionar Elemento - Qtde Elemento - Busca Por Indice - Busca por Valor - Excluir - Ordenar - Listar - Sair



#include <stdio.h>

#define TAMANHO 5

void adicionar(int valor);
int quantidadeElementos();
int buscarPorIndice(int indice);
int buscarPorValor(int valor);
void excluir(int valor);
void ordenar();
void expandir();

void menu();

int posicao = 0;
int lista[TAMANHO];
int opcao;
int numero;
int indice;

int l = 0;

int main()
{
    opcao = 0;
    while(opcao !=8)
    {
        menu();
        switch(opcao)
        {
        case 1:
            printf("Digite o numero: ");
            scanf("%d", &numero);
            adicionar(numero);
            break;
        case 2:
            printf("A lista possui %d elementos.\n", quantidadeElementos());
            break;
        case 3:
            printf("Digite o indice: ");
            scanf("%d", &indice);

            numero = buscarPorIndice(indice);
            if(numero == -1)
                printf("Indice invalido!\n");
            else
                printf("Valor encontrado no indice %d = %d\n", indice, numero);
            break;
        case 4:
            printf("Digite o numero: ");
            scanf("%d", &numero);

            indice = buscarPorValor(numero);
            if(indice == -1)
                printf("Nao encontrei %d na lista!\n", numero);
            else
                printf("Encontreio valor %d no indice %d\n", numero, indice);
            break;
        case 5:
            printf("Digite o valor para excluir: ");
            scanf("%d", &numero);
            excluir(numero);
            break;
        case 6:
            printf("Ordenando...\n");
            ordenar();
            break;
        case 7:
            for(l=0; l < quantidadeElementos(); l++)
                printf("lista[%d]=%d\n", l, buscarPorIndice(l));
            break;
        }
    }
}

void menu()
{
    printf("1 - Adicionar\n");
    printf("2 - Quantidade de Elementos\n");
    printf("3 - Buscar por Indice\n");
    printf("4 - Buscar por Valor\n");
    printf("5 - Excluir\n");
    printf("6 - Ordenar\n");
    printf("7 - Listar\n");
    printf("8 - Sair\n");
    printf("Digite a sua opcao: ");
    scanf("%d", &opcao);
}

void adicionar(int valor)
{
    if(posicao < TAMANHO)
    {
        lista[posicao] = valor;
        posicao++;
    }
    else
        printf("Lista cheia!\n");
}

int quantidadeElementos()
{
    return posicao;
}

int buscarPorIndice(int indice)
{
    if(indice >= 0 && indice < posicao)
        return lista[indice];
    else
        return -1;
}

int buscarPorValor(int valor)
{
    int i = 0;
    for(i = 0; i < posicao; i++)
        if(lista[i] == valor)
            return i;
    return -1;
}

void excluir(int valor)
{
    int i = 0;
    i = buscarPorValor(valor);
    if(i != -1)
    {
        for(; i < posicao - 1; i++)
            lista[i] = lista[i + 1];
        posicao--;
    }
    else
        printf("Nao encontrei %d na lista!\n", valor);
}

void ordenar()
{
    int i = 0;
    int j = 0;
    int aux = 0;

    for(i = 0; i < (posicao -1); i++)
    {
        for(j = i + 1; j < posicao; j++)
        {
            if(lista[i] > lista[j])
            {
                aux = lista[i];
                lista[i] = lista[j];
                lista[j] = aux;
            }
        }
    }
}

sexta-feira, 11 de setembro de 2015

Lista Array , Função - Inserir - Excluir - Consulta - Ordenar

#include <stdio.h>

#define TAMANHO 3

void adicionar(int valor);
int quantidadeElementos();
int buscarPorIndice(int indice);
int buscarPorValor(int valor);
void excluir(int valor);
void ordenar();
void expandir();

void menu();

int posicao = 0;
int lista[TAMANHO];
int opcao;
int numero;
int indice;

int l = 0;

int main()
{
    opcao = 0;
    while(opcao !=8)
    {
        menu();
        switch(opcao)
        {
        case 1:
            printf("Digite o numero: ");
            scanf("%d", &numero);
            adicionar(numero);
            break;
        case 2:
            printf("\n*** A lista possui %d elementos. ***\n\n", quantidadeElementos());
            break;
        case 3:
            printf("Digite o indice: ");
            scanf("%d", &indice);

            numero = buscarPorIndice(indice);
            if(numero == -1)
                printf("\n*** Indice invalido! ***\n\n");
            else
                printf("\n*** Valor encontrado no indice %d = %d ***\n\n", indice, numero);
            break;
        case 4:
            printf("Digite o numero: ");
            scanf("%d", &numero);

            indice = buscarPorValor(numero);
            if(indice == -1)
                printf("\n*** Nao encontrei %d na lista! ***\n\n", numero);
            else
                printf("\n*** Encontrei o valor %d no indice %d ***\n\n", numero, indice);
            break;
        case 5:
            printf("\n Digite o valor para excluir: ");
            scanf("%d", &numero);
            excluir(numero);
            break;
        case 6:
            printf("\n*** Ordenando...\n");
            ordenar();
            break;
        case 7:
            for(l=0; l < quantidadeElementos(); l++)
                printf("lista[%d]=%d\n", l, buscarPorIndice(l));
            break;
         case 8:
                printf(" \n*** Bay Bay ***\n");
            break;
        }
    }
}

void menu()
{
    printf("\n");
    printf("1 - Adicionar\n");
    printf("2 - Quantidade de Elementos\n");
    printf("3 - Buscar por Indice\n");
    printf("4 - Buscar por Valor\n");
    printf("5 - Excluir\n");
    printf("6 - Ordenar\n");
    printf("7 - Listar\n");
    printf("8 - Sair\n");
    printf("Digite a sua opcao: ");
    scanf("%d", &opcao);
    printf("\n\n");
}

void adicionar(int valor)
{
    if (posicao == TAMANHO){
        printf("\n*** Lista Cheia!!! ***\n");
        printf("\n\n");
    }else{
        lista[posicao] = numero;
        posicao++;
    }
}

int quantidadeElementos()
{
    return posicao;
}

int buscarPorIndice(int indice)
{
   if (indice < posicao){
      return lista[indice];
    }else{
    return -1;
    }
}

int buscarPorValor(int valor)
{
    int i=-1;
    for ( i = 0; i <= posicao; i++){
        if (lista[i] == valor)
        {
            return i;
        }
    }
    return -1;
}

void excluir(int valor)
{
    int i=0, j=0;
        for(i=0;i<posicao;i++){
            if(lista[i] == valor){ 
                    for(j=i;j<posicao;j++){
                        lista[j] = lista[j+1]; 
                    }
            posicao--;
                   printf("\n*** Retirado Valor %d da posicao %d ***\n", valor,i);
             }
      }
         if (valor!=lista[i]){
            printf("\n*** Valor %d Nao Existente ***\n",valor);
                }
}

void ordenar()
{
int i, j, aux;
          for( i=0; i<posicao; i++ ){
                  for( j=i+1; j<posicao; j++ ){
                       if( lista[i] > lista[j] ){
                           aux = lista[i];
                           lista[i] = lista[j];
                           lista[j] = aux;
                  }
             }
       }
           printf("\n Ordenado com sucesso!!! ***\n\n");
}

sábado, 5 de setembro de 2015

Fila Circular com String





#include <stdio.h>
#include <stdlib.h>

#define TAMANHOVET 3
#define TAMANHOSTRING 20
char fila[TAMANHOVET][TAMANHOSTRING];
char palavra[TAMANHOSTRING];

int opcao;
int fim;
int inicio;
int vazia = 0;

void menu();
void adicionar(char *palavra[TAMANHOSTRING]);
char retirar();
void imprimir(char *palavra);

int main()
{
    opcao = 0;
    inicio = 0;
    fim = 0;
    while(opcao != 4)
    {
        menu();
        switch(opcao)
        {
        case 1:
            printf("Digite um Nome: ");
            fflush(stdin);
            scanf("%s ",&palavra);
            adicionar(palavra);
            break;
        case 2:
            if(vazia==0){
                printf("\n***FILA VAZIA***\n");
            } else{
                retirar();
            }
            break;
        case 3:

            imprimir(*palavra);
            if(vazia == 0){
        printf(" *** Nao Tem Nome na Fila ***\n");
       }
            break;
        case 4:
           printf(" *** Bay Bay ***");
            break;
        default:
            printf("\nOpcao invalida!\n");
        }
        printf("\n");
    }
}

void menu()
{
    printf("1 - Adicionar\n");
    printf("2 - Retirar\n");
    printf("3 - Imprimir Lista\n");
    printf("4 - Sair\n");
    printf("Digite a opcao: ");
    scanf("%d", &opcao);
    printf("\n");
}

void adicionar(char *palavra[TAMANHOSTRING])
{
    if(vazia==0){
        strcpy(fila[fim], palavra);
        fim++;
        if(fim == TAMANHOVET){
            fim = 0;
        }
        vazia = 1;
    } else if(inicio==fim){
        printf("\n***FILA CHEIA***\n");
    }else{
        strcpy(fila[fim], palavra);
        fim++;
    }if(fim == TAMANHOVET){
        fim=0;
    }
}

char retirar()
{
    if(vazia == 0){
        printf("\n ***Fila Vazia*** \n");
    }else{
        printf("\nRetirado a palavra da fila!\n");
        puts(fila[inicio]);
        inicio++;
        if(inicio==TAMANHOVET){
            inicio=0;
        }if(inicio==fim){
            vazia = 0;
        }
    }
}

void imprimir(char *palavra)
{
    int i;
    int a = 0;
    i = inicio;
    if(vazia == 1){
        while(a==0){
            printf("%s - ",fila[i]);
            i++;
            if(i==TAMANHOVET)
                i=0;
            if(i==fim)
                a=1;
        }
        printf("\n");
    }
}


Fila Circular Com Mumeros Inteiros , Prof. Nava




#include <stdio.h>
#include <stdlib.h>

#define TAMANHO 5

int fila[TAMANHO];
int opcao;
int numero;
int fim;
int inicio;
int vazia = 1;

void menu();
void adicionar(int numero);
int retirar();
void imprimir();

int main()
{
    opcao = 0;
    inicio = 0;
    fim = 0;
    while(opcao != 4)
    {
        menu();
        switch(opcao)
        {
        case 1:
            printf("Digite o numero: ");
            scanf("%d",&numero);
            adicionar(numero);
            break;
        case 2:
            numero = retirar();
            printf("Retirado o numero %d da fila\n", numero);
            break;
        case 3:
            imprimir();
        case 4:
            break;
        default:
            printf("Opcao invalida!\n");
        }
    }
}

void menu()
{
    printf("1 - adicionar\n");
    printf("2 - retirar\n");
    printf("3 - imprimir\n");
    printf("4 - sair\n");
    printf("Digite a opcao: ");
    scanf("%d", &opcao);
}

void adicionar(int numero)
{
    if(vazia==1)
    {
        fila[fim] = numero;
        fim++;
        if(fim == TAMANHO)
            fim = 0;
        vazia = 0;
    }
    else
    {
        if(inicio == fim)
        {
            printf("Fila cheia!\n");
        }
        else
        {
            fila[fim] = numero;
            fim++;
            if(fim == TAMANHO)
                fim = 0;
        }
    }
}

int retirar()
{
    int valorParaRetornar = -1;

    if(vazia == 1)
    {
        printf("Fila vazia!\n");
    }
    else
    {
        valorParaRetornar = fila[inicio];
        inicio++;
        if(inicio == TAMANHO)
            inicio = 0;
        if(inicio == fim)
            vazia = 1;
    }

    return valorParaRetornar;
}

void imprimir()
{
    int i;
    int a = 0;
    i = inicio;
    if(vazia == 0)
    {
        while(a==0)
        {
            printf("%d - ",fila[i]);
            i++;
            if(i==TAMANHO)
                i=0;
            if(i==fim)
                a=1;
        }
        printf("\n");
    }
}