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


21 de set de 2017

Algoritmo em C utilizando Pilha e Fila

Algoritmo em C simulando um porto onde existam 10 pilhas com capacidade de 10 containers por pilha. O porto recebe navios cargueiros em fila e eles descarregam ou carregam os containers.



#include <stdio.h>
#include <string.h>

#define T 10
#define P 10



typedef struct{
        int topo;
}PILHA;


typedef struct {
       int cod, qtd;
}NAVIO;
typedef struct{
        int n, ini;
        NAVIO navio[T];
}FILA;

typedef struct{
        int n, ini;
        NAVIO navio[T];
}FILASaida;

int menuPrincipal();//função com as opções do menu prinicipal...
void iniciarPilha(PILHA *p);
int overflow(PILHA *p);
int underflow(PILHA *p);
void push(PILHA *p, FILA *f );
void pop(PILHA *p);
void imprimirPilha(PILHA *p);


void iniciarFila(FILA *f);
int vazia(FILA *f);
int cheia(FILA *f);
void inserir(FILA *f,NAVIO *nav);
void imprimirFila(FILA *f);
void imprimirFilaTotal(FILA *f);
void remover(FILA *f);

int main(){

    PILHA pilha[T];

    FILA fila;
    FILASaida filaS;
    NAVIO nav;

    int menu, x, codNavio = 0, pilhaCont, codNavioS = 0, qtd, qtdSoma, aux = 0;

    for(x = 0; x < 10; x++){
        iniciarPilha(&pilha[x]);
    }

    iniciarFila(&fila);
    iniciarFila(&filaS);

    do{

        menu = menuPrincipal();

        switch(menu){
            case 1:
                if(!cheia(&fila)){
                    codNavio++;
                    nav.cod = codNavio;
                    printf("Informe a quantidade de containers, que tem no Navio: ");
                    scanf("%d", &nav.qtd);

                    inserir(&fila, &nav);
                    
                    printf("\n\nNavio inserido com sucesso:\n\n");

                }
                else{
                    printf("A fila de navio esta cheia: \n");
                }
            break;
            case 2:
                if(!vazia(&fila)){
                    system("cls");
                    
                    do{
                    imprimirFila(&fila);
                    printf("Informe a pilha que vai desgarregar 1 - 10: \n");
                    scanf("%d", &pilhaCont);
                   
                    if(pilhaCont < 1 || pilhaCont > 10 ){
                    printf("\nOpcao invalida\n");
                   
}
if(!overflow(&pilha[pilhaCont-1])){
 push(&pilha[pilhaCont-1], &fila );
 printf("\nColocado na pilha\n");
}
else{
printf("\nEssa Pilha esta cheia\n");
}
                   
}while(pilhaCont < 1 || pilhaCont > 10 );
                }
                else{
                    printf("Não existe nenhum navio na fila\n");
                }
            break;
            case 3:
            if(!vazia(&fila)){
                    system("cls");
                   
                    imprimirFilaTotal(&fila);
                   
                }
                else{
                    printf("Não existe nenhum navio na fila\n");
                }
            break;
            case 4:
            
            for(x = 0; x < 10; x++){
            printf("Pilha %d - qtd %d\n", x+1, pilha[x].topo+1);
}
printf("\n\n");
            break;
            case 5:
               qtd = 0;
               qtdSoma = 0;
                    codNavio++;
                    nav.cod = codNavio;
                    nav.qtd = 0;
                    aux = 0;
           
           
            do{
                    for(x = 0; x < 10; x++){
            printf("Pilha %d - qtd %d\n", x+1, pilha[x].topo+1);
            }
            printf("Informe a pilha: ");
                    scanf("%d", &pilhaCont);                    
                    printf("A quantidade de containers, que vai carregar no Navio: \n");
                    scanf("%d", &qtd);
                   
                    if(pilhaCont < 1 || pilhaCont > 10 ){
                    printf("\nOpcao invalida\n");                    
}
if(!underflow(&pilha[pilhaCont-1])){
if(qtd > 10 || qtd < 0){
printf("\nValor invalido\n");
}
else{
if(pilha[pilhaCont-1].topo <= qtd ){
nav.qtd += pilha[pilhaCont-1].topo + 1;
pilha[pilhaCont-1].topo = -1;
printf("\nteste: %d\n", pilha[pilhaCont-1].topo);
}
else{
nav.qtd += qtd;
pilha[pilhaCont-1].topo -= qtd;
}
}
aux = 1;
}
else{
printf("\nEssa Pilha esta vazia\n");
}
printf("\nDeseja continuar: 1-sim/2-nao\n");
scanf("%d", &qtd);
if(qtd == 1){
pilhaCont = 2;
}
else{
pilhaCont = -2;
}
                   
}while(pilhaCont < 1 || pilhaCont > 10 );
if(aux == 1){
inserir(&filaS, &nav);
}
       

                
            break;
            case 6:
            if(!vazia(&filaS)){
                    system("cls");
                   
                    imprimirFilaTotal(&filaS);
                   
                }
                else{
                    printf("Não existe nenhum navio na fila\n");
                }
            break;

        }

    }while(menu != 0);

    return 0;
}

int menuPrincipal(){

    int opc;

    printf("1-Colocar Navio na Fila\n"
           "2-Desgarregar containers\n"
           "3-Imprimir Fila de navios para descarregar\n"
           "4-Imprimir as pilhas\n"
           "5-Carregar Navios: \n"
           "6-imprimir fila de Navios carregados: \n"
           "0-sair\n\nopcao:");
    scanf("%d", &opc);
    system("cls");

    if(opc >= 0 && opc <= 10){
        return opc;
    }
    else{
        return menuPrincipal();
    }
}

void iniciarPilha(PILHA *p){
     p->topo = -1;
}


void iniciarFila(FILA *f){
     f->n =0;
     f->ini = 0;
}
int overflow(PILHA *p){
    return p->topo == T-1;
}
int underflow(PILHA *p){
    return p->topo == -1;
}

int vazia(FILA *f){
    return f-> n == 0;
}
int cheia(FILA *f){
    return f-> n == P;
}

void inserir(FILA *f,NAVIO *nav){
     int fim;
     fim = (f-> ini + f-> n) % P;
     f->navio[fim] = *nav;
     f->n++;

}

void imprimirFila(FILA *f){
    int aux, fim, x = 0;
     fim = (f->ini + f-> n-1)% T;

     if(f->ini == 0 || f-> ini <= fim || fim == T -1){
       for(aux = f-> ini; aux<= fim; aux++){
         if(x == 0){
          printf("Posicao na fila: [%d] - Codigo: %d - qtd: %d\n",aux+1,f->navio[aux].cod, f->navio[aux].qtd);
          x = 1;
}
           
           }
       }
     else{
          for(aux = f->ini; aux < T; aux ++)
             printf("Posicao na fila: [%d] - Codigo: %d\n",aux+1,f->navio[aux].cod);

          for(aux = 0; aux <=fim; aux++)
             printf("Posicao na fila: [%d] - Codigo: %d\n",aux+1,f->navio[aux].cod);
     }
     printf("\n\n");
}
void imprimirFilaTotal(FILA *f){
    int aux, fim, x = 0;
     fim = (f->ini + f-> n-1)% T;

     if(f->ini == 0 || f-> ini <= fim || fim == T -1){
       for(aux = f-> ini; aux<= fim; aux++){
         
          printf("Posicao na fila: [%d] - Codigo: %d - qtd: %d\n",aux+1,f->navio[aux].cod, f->navio[aux].qtd);
         
           
           }
       }
     else{
          for(aux = f->ini; aux < T; aux ++)
             printf("Posicao na fila: [%d] - Codigo: %d\n",aux+1,f->navio[aux].cod);

          for(aux = 0; aux <=fim; aux++)
             printf("Posicao na fila: [%d] - Codigo: %d\n",aux+1,f->navio[aux].cod);
     }
     printf("\n\n");
}
void remover(FILA *f){
f->ini  =(f->ini +1) % T;
     f->n--;
}


void push(PILHA *p, FILA *f ){
int aux, fim, x = 0, y = 0;
     fim = (f->ini + f-> n-1)% T;

     if(f->ini == 0 || f-> ini <= fim || fim == T -1){
       for(aux = f-> ini; aux<= fim; aux++){
         if(x == 0){
          printf("Posicao na fila: [%d] - Codigo: %d - qtd: %d\n",aux+1,f->navio[aux].cod, f->navio[aux].qtd);
          x = 1;
          for(y = 0; y < 10; y++ ){
         

          p->topo++;
f->navio[aux].qtd--;
          if(f->navio[aux].qtd == 0){
          remover(f);
          break;
   }
   if(p->topo == 9){
    break;
}
}
}
           
           }
       }
     else{
          for(aux = f->ini; aux < T; aux ++)
             printf("Posicao na fila: [%d] - Codigo: %d\n",aux+1,f->navio[aux].cod);

          for(aux = 0; aux <=fim; aux++)
             printf("Posicao na fila: [%d] - Codigo: %d\n",aux+1,f->navio[aux].cod);
     }
     printf("\n\n");
}

19 de set de 2017

Algoritmo em Visualg - O resultado será dizer, pelas idades crescentes, quem é o avô, quem é o filho e quem é o neto(a diferença entre elas deverá ser de, no mínimo, 20 anos)

Um programa no visualg(portugol) onde o usuário digitará três nomes do mesmo sexo e suas idades (a diferença entre elas deverá ser de, no mínimo, 20 anos). O resultado será dizer, pelas idades crescentes, quem é o avô, quem é o filho e quem é o neto.


algoritmo "semnome"
// Função :
// Autor :
// Data : 19/09/2017
// Seção de Declarações
var
      n1,n2,n3:caracter
      idade1, idade2, idade3, aux1, aux2, aux3, aux4, aux5, aux6, aux7, aux8, aux9, aux10, aux11, aux12:inteiro
inicio

    escreva("Informe o primeiro nome e idade? ")
    leia(n1)
    escreva("Informe a idade? ")
    leia(idade1)
     escreva("Informe o segundo nome ? ")
     leia(n2)
    repita
      escreva("Informe a idade? ")
      leia(idade2)
      aux1 <- idade1 - idade2
      aux2 <- idade2 - idade1
    ate (aux1 >= 20) ou (aux2 >= 20)

     escreva("Informe o terceiro nome? ")
    leia(n3)
    repita
      escreva("Informe a idade? ")
      leia(idade3)
      aux1 <- idade1 - idade3
      aux5 <- idade3 - idade2
      aux6 <- idade2 - idade1
      
      aux2 <- idade3 - idade1
      aux7 <- idade1 - idade2
      aux8 <- idade2 - idade3
      
      aux3 <- idade2 - idade3
      aux9 <- idade3 - idade1
      aux10 <- idade1 - idade2
      
      aux4 <- idade3 - idade2
      aux11 <- idade2 - idade1
      aux12 <- idade1 - idade3
      
    ate ((aux1 >= 20) e (aux5 >= 20))ou ((aux1 >= 20) e (aux6 >= 20))  ou ((aux2 >= 20) e (aux7 >= 20))ou ((aux2 >= 20) e (aux8 >= 20))  ou  ((aux3 >= 20) e (aux9 >= 20))ou ((aux3 >= 20) e (aux10 >= 20)) ou       ((aux4 >= 20) e (aux11 >= 20))ou ((aux4 >= 20) e (aux12 >= 20))
        
        
     se (idade1 < idade2) e (idade2 < idade3)  entao
           escreval("Filho: ",n1)
           escreval("Pai: ",n2)
          escreval("Avo: ",n3)
      senao
          se (idade1 < idade2) e (idade2 > idade3)  entao
          escreval("Filho: ",n1)
          escreval("Pai: ",n3)
          escreval("Avo: ",n2)
      senao
          se (idade1 > idade2) e (idade1 < idade3)  entao
          escreval("Filho: ",n2)
          escreval("Pai: ",n1)
          escreval("Avo: ",n3)
      senao
          se (idade1 > idade3) e (idade2 > idade1)  entao
          escreval("Filho: ",n3)
          escreval("Pai: ",n1)
          escreval("Avo: ",n2)
      senao
          se (idade1 > idade3) e (idade2 < idade3)  entao
          escreval("Filho: ",n2)
          escreval("Pai: ",n3)
          escreval("Avo: ",n1)
      senao
          se (idade1 > idade2) e (idade2 > idade3)  entao
          escreval("Filho: ",n3)
          escreval("Pai: ",n2)
          escreval("Avo: ",n1)

          fimse
          fimse
          fimse
          fimse
          fimse
          fimse

fimalgoritmo




12 de set de 2017

Exemplo de laços de repetição em PHP - For

O for do PHP é muito similar a outras linguagens. Principalmente como C#, Java entre outros. A ideia básica do for é criar um laço de repetição, onde o mesmo recebe uma condição e incrementa a mesma até ser falsa.

Exemplo 1 de Sintaxe:

<?php
       
for($i =1; $i < 20; $i++){
   echo "O Valor de I = ".$i."</br>";
         }

?>


No exemplo 2 o mesmo gera um formulário de upload dinamicamente.

<?php
for($i =1; $i < 20; $i++){
echo "Upload ".$i.": <input type='text' name='".$i."'/><br/>";
}

?>




Note que através do for foi utilizado para gerar um formulário de upload dinamicamente, desta forma não é necessário criar os campos manualmente. Além disso ele também já altera os nomes dos campos pela variável $i.


Código completo:

<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="utf-8" />
<title>Exemplo de laços de repetição em PHP</title>


</head>
<body>
    <?php
       $i = 0;
for($i =1; $i < 20; $i++){
   echo "O Valor de I = ".$i."</br>";
         }
      ?>

  <?php

for($i =1; $i < 20; $i++){
echo "Upload ".$i.": <input type='text' name='".$i."'/><br/>";
}
?>

</body>





13 de jun de 2017

Algoritmo em C de ordenação de vetor pela função Selection Sort.

Algoritmo em C de ordenação de vetor pela função Selection Sort.
Algoritmo em C que preenche um vetor de 6 posições e ordena de forma crescente e decrescente pela função Selection Sort, utilizando ponteiros para implementação do algoritmo.

#include <stdio.h>

void selection_sort_decrescente(int * num, int tam) {
 
    int i, j, swap, min;
        for (i = 0; i < (tam-1); i++){
            min = i;
         
            for (j = (i+1); j < tam; j++) {
                if(*(num+j) > *(num+min)){
                    min = j;
                }
            }
            if (i != min) {
              swap = *(num + i);
              *(num + i ) = *(num + min);
              *(num + min ) = swap;
            }
         
        }
     
}
void selection_sort_crescente(int * num, int tam) {
 
    int i, j, swap, min;
        for (i = 0; i < (tam-1); i++){
            min = i;
         
            for (j = (i+1); j < tam; j++) {
                if(*(num+j) < *(num+min)){
                    min = j;
                }
            }
            if (i != min) {
              swap = *(num + i);
              *(num + i ) = *(num + min);
              *(num + min ) = swap;
            }
         
        }
     
}
int main() {

    int x[6], n=6, i;  

     for (i=0; i<n; i++) {

            printf("\ninforme um numero: ");

            scanf("%d",&x[i]);

    }

    printf("\nVetor original\n");

    for (i=0; i<n; i++)

        printf("\t%d", x[i]);

        selection_sort_decrescente(x, n);

        printf("\n\nVetor ordenado Decrescente\n");

    for (i=0; i<n; i++)

        printf("\t%d", x[i]);

        printf("\n");

selection_sort_crescente(x, n);
printf("\n\nVetor ordenado Crescente\n");

    for (i=0; i<n; i++)

        printf("\t%d", x[i]);

        printf("\n");
    return 0;

}

2 de jun de 2017

Algoritmo em C de ordenação de vetor pela função Insertion Sort

Algoritmo em C que preenche um vetor de 6 posições e ordena de forma crescente pela função Insertion Sort, utilizando ponteiros para implementação do algoritmo.


#include <stdio.h> 

void insertion_sort(int * vet, int tam) { 

    int i, j, eleito; 

        for (i=1; i<tam; i++) { 

            eleito = *(vet+i); 

            j = i - 1; 

            while (( j>= 0) && (eleito < *(vet+j))) { 

                *(vet+j+1) = *(vet + j); 

                j--; 

            } 

            if (j != i-1) 

            *(vet+j+1) = eleito; 

        } 

int main() { 

    int x[6], n=6, i;     

     for (i=0; i<n; i++) {

            printf("\ninforme um numero: ");

            scanf("%d",&x[i]);

    }

    printf("\nVetor original\n"); 

    for (i=0; i<n; i++) 

        printf("\t%d", x[i]); 

        insertion_sort(x, n); 

        printf("\n\nVetor ordenado\n"); 

    for (i=0; i<n; i++) 

        printf("\t%d", x[i]); 

        printf("\n");

    return 0; 

}

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