Ir para conteúdo
Fórum Script Brasil

Bruno Pacheco

Membros
  • Total de itens

    60
  • Registro em

  • Última visita

Posts postados por Bruno Pacheco

  1. Já resolvi o meu problema eis a bendita solução:

    'more’ não é reconhecido como um comando interno..

    Às vezes ocorre também de você querer acessar o postgresql via console, (apesar de que a versão já venha com o pgAdmin III), e ele teima em dar um erro, um tal de (‘more’ não é reconhecido como um comando interno..),

    Esse arquivo é o ‘more.com’ que se encontra no windows\system32 (versão XP), basta apenas copiar o maldito para a pasta bin do postgresql e mãos a obra.

    fonte: http://www.vbweb.com.br/artigos/view_article.asp?aid=312

  2. olá! No shell lá do postgre

    eu tentei digitar um select: "select * from cidade;". Porém não funcionou e retorna essa

    mensagem: "more" não é reconhecido como um comando interno ou externo, um programa operável

    ou um arquivo em lotes".todos os comandos dão certo só o select que não, porque isso? Porque

    o select não está funcionando no shell psql do postgre?

  3. Você trabalha em uma empresa que presta serviço de Informática para uma locadora. Este locadora solicitou algumas consultas. Escreva os comandos SQLs para cada consulta abaixo. Suas tabelas são:

    FILMES (cod_filme, nome_filme, cod_genero_filme, valor_pago)

    Chave Primária (cod_filme), Chave Estrangeira (cod_genero_filme) references generos_filme(cod_genero_filme),

    GENEROS_FILME (cod_genero_filme, nome_genero_filme)

    Chave Primária (cod_genero_filme)

    CLIENTES(cod_cliente, nome_cliente, rua_cliente, cod_cidade, telefone_cliente)

    Chave Primária (cod_cliente), Chave Estrangeira (cod_cidade) references cidades(cod_cidade)

    UF (sigla_uf, nome_uf)

    Chave Primária (sigla_uf),

    CIDADES (cod_cidade, nome_cidade, sigla_uf)

    Chave Primária (cod_cidade), Chave Estrangeira (sigla_uf) references uf(sigla_uf)

    LOCACOES (cod_cliente, cod_filme, data_locacao, valor_locacao)

    Chave Primária (cod_cliente,cod_filme,data_locacao), Chave Estrangeira (cod_cliente) references clientes(cod_cliente)

    Chave Estrangeira (cod_filme) references filmes(cod_filme)

    1) Listar o nome do gênero do filme, as médias do valor pago na locação e as quantidades de cada filme locado para cada gênero de filme alugado pela locadora. Mostrar ordenado pelo nome do gênero do filme.

    Olá! Tentei fazer esse exercício acima porém tem dado erro vejam o que eu fiz:

    SELECT g.nome_genero_filme
       avg(l.valor_locacao),
       count(*)
        FROM  locacoes l
              filmes f,
              generos_filme g 
    
        WHERE l.cod_filme        = f.cod_filme        AND
              f.cod_genero_filme = g.cod_genero_filme
    
    GROUP BY g.nome_genero_filme
    HAVING count(*)

    Desde já agradeço pela ajuda!

  4. Bom, cada código abaixo eu coloquei num pacote lá no netbeans.

    --> O erro que dá é na classe UsaFuncionario nessa parte:

    -->"Funcionario funcionario = new Funcionario();" dizendo que não foi encontrado o construtor Funcionario na classe Funcionario.

    --> O que faço para resolver o problema?

    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    package heranca;
    
    public class PessoaJuridica extends Pessoa {
    
        private String cnpj;
    
        public PessoaJuridica(String nome, String cnpj) {
            super(nome);
            this.cnpj = cnpj;
        }
    
        public String getCnpj() {
            return cnpj;
        }
    
        public void setCnpj(String cnpj) {
            this.cnpj = cnpj;
        }
    
      
    }
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    package heranca;
    
    public class PessoaFisica extends Pessoa {
    
        private String rg;
    
        public PessoaFisica(String nome, String rg) {
            super(nome);
            this.rg = rg;
        }
    
        
    
        public String getRg() {
            return rg;
        }
    
        public void setRg(String rg) {
            this.rg = rg;
        }
    
    
      
    
    }
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    
    package heranca;
    
    /**
     *
     * @author a20091in002
     */
    public class Pessoa {
    
        private String nome;
    
    
        Pessoa(String nome) {
            this.nome=nome;
        }
    
       
    
    
        public String getNome() {
            return nome;
        }
    
        public void setNome(String nome) {
            this.nome = nome;
        }
    
    
       
    
    }
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    package heranca;
    
    public class Funcionario extends PessoaFisica {
    
        private String cartao;
    
        
        public String getCartao() {
            return cartao;
        }
    
        public  Funcionario(String nome, String rg, String cartao) {
            super(nome, rg);
            this.cartao = cartao;
        }
    
        public void setCartao(String cartao) {
            this.cartao = cartao;
        }
    
      
    
    }
    */
    package heranca;
    
    public class UsaFuncionario {
    
        public static void main(String[] args) {
            Funcionario funcionario = new Funcionario();
            funcionario.setNome("Lucas");
            funcionario.setRg("25.654.678-x");
            funcionario.setCartao("RH845");
            System.out.println(funcionario.getNome());
            System.out.println(funcionario.getRg());
            System.out.println(funcionario.getCartao());
        }

  5. BOM... Meu código abaixo não interpreta de jeito nenhum no netbeans, fica sempre dando essa mensagem:

    "Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0". Como posso resolver isso?

    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    
    package listadeexercicios3;
    
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    /**
     *
     * @author user
     */
    public class numerp10 {
        public static void main(String[]args){
    
            String s="";
            int n_termos=0,cont=3,cont_2=0;
            int[] num;
            BufferedReader dado;
    
            num= new int[n_termos];
    
    
    
            try
            {
                System.out.println("ENTRE COM A QTD DE TERMOS DA SERIE DE FIBONACCI:");
                dado= new BufferedReader(new InputStreamReader(System.in));
                s=dado.readLine();
                n_termos=Integer.parseInt(s);
    
                num[0]=1;
                num[1]=1;
    
                System.out.println("SEQUÊNCIA DE FIBONACCI:");
                System.out.println(num[0]);
                System.out.println(num[1]);
    
                while(cont_2!=(n_termos-3)){
    
                    cont_2++;
    
                    num[cont]=num[cont-1]+num[cont-2];
                    System.out.println(num[cont]);
    
                    cont++;
                
                }
            }
    
            catch(IOException erro)
            {
                System.out.println("Erro na entrada de dados");
            }
            catch(NumberFormatException erro)
            {
                System.out.println("Houve erro na conversão, digite apenas caracteres numericos");
            }
        }
    }

  6. Bom, meu código está dando erro de interpretação nessa linha:" catch (IOException erro)". Como resolvo isso?

    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    package listadeexercicios3;
    
    import java.io.IOException;
    
    
    
    
    
    
    
    /**
     *
     * @author user
     */
    public class numero1 {
    
        /**
         * @param args the command line arguments
         */
        public static void main(String[] args) {
            // TODO code application logic here
            
            int numero,i = 0;
             
            try
            {
                for(i=100;i<0;i--){
                    numero=i+1;
                    System.out.println(numero);
                }
    
    
    
            }
    
             catch (IOException erro)
            {
                System.out.println("Erro na entrada de dados");
            }
            catch ( NumberFormatException erro )
            {
                System.out.println("Houve erro na conversão,digite apenas caracteres numericos");
            }
        }
    
    }

  7. Meu código abaixo está apresentando erros acho que de interpretação no netbeans. Como posso resolver ?

    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    package listadeexercicios1;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    
    
    
    /**
     *
     * @author user
     */
    public class lista1 {
    
        /**
         * @param args the command line arguments
         */
        public static void main(String[] args) {
            // TODO code application logic here
            String s = "";
            int a1, n, r, an;
              BufferedReader dado;
    
            try 
            {
                System.out.println("ENTRE COM O PRIMEIRO TERMO DA P.A:");
                dado=new BufferedReader(new InputStreamReader(System.in));
                s = dado.readline();
                a1 = Integer.parseInt(s);
    
                System.out.println("ENTRE COM A RAZÃO DA P.A:");
                dado=new BufferedReader(new InputStreamReader(System.in));
                s = dado.readline();
                r = Integer.parseInt(s);
    
                System.out.println("ENTRE COM O NUMERO DE TERMOS DA P.A:");
                dado=new BufferedReader(new InputStreamReader(System.in));
                s = dado.readline();
                n = Integer.parseInt(s);
    
                an = a1+(n-1 )*r;
                System.out.println("O VALOR DE an: " + an);
            }
    
             catch (IOException erro)
            {
                System.out.println("Erro na entrada de dados");
            }
            catch ( NumberFormatException erro )
            {
                System.out.println("Houve erro na conversão,digite apenas caracteres numericos");
            }
        }
    
    }

  8. Bom a minha dúvida não é essa!

    -->Por exemplo, preciso inserir: partidas de futebol e gols em uma lista duplamente encadeada, nomes e pontuação em uma pilha.Apartir

    daí faço então duas funções de inserção uma para lista duplamente encadeada e outra para pilha.

    -->Pensei pegar por exemplo uma fila e inserir nela o que ta na lista e o que ta na pilha ( exemplo: colocar na fila partidas de futebol e gols e nomes e pontuação ). Apartir daí faço uma função de inserção para fila tambem.

    exemplo de inserção em fila:

    void Push (Pilha* pilha, float v){
            
            if (pilha->n == MAX) { 
            exit(1); /* aborta programa – stdlib.h *//
    }
    /* insere elemento na próxima posição livre */
            pilha->vet[pilha->n] = v;
            pilha->n++;//O CAMPO N DA ESTRUTURA PILHA É APONTADO PARA O PRÓXIMO ELEMENTO
    }

    --> Como posso fazer uma função de inserção de fila contendo elementos de uma lista duplamente encadeada e de uma pilha? :mellow:

  9. Meu código abaixo possui uma função excluir e ela não está funcionando. Por exemplo eu cadastro 5 elementos e ai eu tento excluir o terceiro elemento e acaba não dando certo. Porque? Como posso consertar a função excluir?

    /*
        Descrição: Programa que tem como objetivo apresentar a manipulação de uma lista encadeada, por meio
                         das funções de inserção, impressão e pesquisa.
    
    
    */
    
    #include<stdio.h>
    #include<stdlib.h>
    #include<conio.h>
    #include<string.h>
    
    /* ### Declaração das estruturas e protótipos de função ### */
    // declaração do tipo de estrutura da lista
        typedef struct nodo Cadastro;
    
        struct nodo{
            int codigo;
            char nome[40];
            char nacionalidade[20];
            char estado_civil[15];    
            Cadastro *prox;
        };
    
    
    // prototipação das funções
    void menu();
    Cadastro *inicializa (void);
    Cadastro *insere (Cadastro *l, int i, char nome[], char nacionalidade[], char estado_civil[]);
    void imprime (Cadastro *l);
    int vazia (Cadastro *l);
    Cadastro *busca (Cadastro *l, int v);
    Cadastro *retira (Cadastro *l, int v);
    
    /* ### Fim da declaração das estruturas e protótipos de função ### */
    
    
    /* ### Declaração das funções do programa ### */
    // função principal
    int main (){
        // cria um ponteiro para a estrutura Cadastro
        Cadastro *l, *r;
        int op, num;
        char nome[40], nacionalidade[20], estado_civil[15];
    
        do{
            system("cls");
            menu();
            scanf("%d", &op);
    
            // verifica a opção digitada pelo usuário
            switch(op){
                // cria a lista
                case 1:
                    // inicializa lista como vazia
                    l = inicializa();
                    printf("\n\t\tA lista foi criada com sucesso!!!");
                    printf("\n\t\tTecle <ENTER> para continuar");
                    getch();
                break;
    
                // insere elementos na lista
                case 2:
                    // Trabalho futuro: verificar se a lista foi criada
    
                    printf("\n\t\tInforme o novo codigo: ");
                    scanf("%d", &num);
                    fflush(stdin);
    
                    printf("\n\t\tInforme o novo nome: ");
                    gets(nome);
                    fflush(stdin);
    
                    printf("\n\t\tInforme a nacionalidade: ");
                    gets(nacionalidade);
                    fflush(stdin);
    
                    printf("\n\t\tInforme o estado civil: ");
                    gets(estado_civil);
                    fflush(stdin);
    
                    // insere na lista o elemento informado pelo usuário
                    l = insere(l, num, nome, nacionalidade, estado_civil); 
    
                    printf("\n\t\tElemento inserido na lista com sucesso!!!");
                    printf("\n\t\tTecle <ENTER> para continuar");
                    getch();
                break;
    
                // imprime elementos da lista
                case 3:
                    //     verificar se a lista está vazia
                    if(!vazia(l)){
                        // imprime os elementos da lista
                        imprime(l);
                        printf("\n\t\tTecle <ENTER> para continuar");
                        getch();
                    }
                    else{
                        printf("\n\t\tA lista estah vazia!\n");
                        printf("\n\t\tTecle <ENTER> para continuar");
                        getch();
                    }
    
                break;
    
                // pesquisa na lista
                case 4:
                        // Trabalho futuro: verificar se a lista foi criada
    
                        printf("\n\t\tDigite um valor a ser pesquisado: ");
                        scanf("%d", &num);
                        r = busca(l, num);
                        if(r){
                            printf("\n\t\tO valor %d estah na lista!\n\n", r->codigo);
                            printf("\n\t\tTecle <ENTER> para continuar");
                            getch();
                        }
                        else{
                            printf("\n\t\tO valor %d não estah na lista!\n\n", num);            
                            printf("\n\t\tTecle <ENTER> para continuar");
                            getch();
                        }
                break;
    
                // exclui um elemento da lista
                case 5:
                        printf("\n\t\tDigite um valor a ser retirado da lista: ");
                        scanf("%d", &num);
                        r = busca(l, num);
                        if(r){
                            // chama a função para retirar o elemento da lista
                            l = retira (r, num);
                            printf("\n\t\tO valor %d foi retirado da lista!\n\n", num);
                            printf("\n\t\tTecle <ENTER> para continuar");
                            getch();
                        }
                        else{
                            printf("\n\t\tO valor %d não estah na lista!\n\n", num);            
                            printf("\n\t\tTecle <ENTER> para continuar");
                            getch();
                        }
                break;
    
                // sai do programa
                case 6:
                    printf("\n\t\tFim do Programa!\n");
                break;
    
                // se o usuário digitar uma opção fora da faixa entre 1 e 5
                default:
                    printf("\n\tOpcao invalida!\n");
            } // fim do switch
        }while(op != 6); // fim do..while
    
        printf("\n");
        return 0;
    }
    
    
    // função que inicializa a lista
    Cadastro *inicializa (void){
        return NULL;
    }
    
    
    // insere elemento novo na lista
    Cadastro *insere (Cadastro *l, int i, char nome[], char nacionalidade[], char estado_civil[]){
        Cadastro *novo = (Cadastro*) malloc(sizeof(Cadastro));
        novo->codigo = i;
        strcpy(novo->nome, nome);
        strcpy(novo->nacionalidade, nacionalidade);
        strcpy(novo->estado_civil, estado_civil);
        novo->prox = l;
        
        return novo;
    }
    
    
    // imprime os elementos da lista
    void imprime (Cadastro *l){
        // variável auxiliar para percorrer a lista
        Cadastro *p; 
        
        printf("\n\t\tElementos da Lista Encadeada\n\n");
        for (p = l; p != NULL; p = p->prox){
            printf("\t\t=====================================\n");
            printf("\t\t       Codigo: %d\n", p->codigo);
            printf("\t\t         Nome: %s\n", p->nome);
            printf("\t\tNacionalidade: %s\n", p->nacionalidade);
            printf("\t\t Estado civil: %s\n", p->estado_civil);
            printf("\t\t=====================================\n");
        }
        printf("\n\t\tFim dos Elementos da Lista Encadeada\n");
    }
    
    
    // retorna 1 se vazia ou 0 se não vazia
    int vazia (Cadastro *l){
        return (l == NULL);
    }
    
    
    // busca um elemento na lista
    Cadastro *busca (Cadastro *l, int v){
        Cadastro *p;
        for (p = l; p != NULL; p = p->prox)
            if (p->codigo == v)
                return p;
    
        // não achou o elemento
        return NULL; 
    }
    
    
    // monta o menu do programa
    void menu(){
        printf("\n\t\t#### Programa Simula Lista Encadeada ####\n");
        printf("\n\t\t1- Cria Lista Encadeada");
        printf("\n\t\t2- Insere Elementos na Lista Encadeada");
        printf("\n\t\t3- Imprime a Lista Encadeada");
        printf("\n\t\t4- Pesquisa Elementos na Lista Encadeada");
        printf("\n\t\t5- Exclui um Elemento da Lista Encadeada");
        printf("\n\t\t6- Sair do Programa");
        printf("\n\n\t\tDigite a opcao desejada: ");
    }
    
    // retira um elemento da lista
    Cadastro *retira (Cadastro *l, int v){
        Cadastro *marc;
    
        // ponteiro para elemento anterior
        Cadastro *ant = NULL; 
    
        // ponteiro para percorrer a lista
        Cadastro *p = l; 
    
        // procura elemento na lista, guardando anterior
        while (p != NULL && p->codigo != v) {
            ant = p;
            p = p->prox;
        }
    
        // verifica se achou elemento
        if (p == NULL)
            // não achou: retorna lista    original
            return l; 
    
        // retira elemento
        if (ant == NULL){
            // retira elemento do inicio
            marc = p->prox;
        }
        else {
            // retira elemento do meio da lista
            ant->prox = p->prox;
            marc = l;
        }
        free(p);
        return marc;
    }
    /* ### Fim da declaração das funções do programa ### */

  10. Eu compilei tudo conforme abaixo num terminal linux e o programa em c só finalizou la no terminal quando eu dei kill -kill.

    A minha dúvida é:-> porque o programa só resolve parar quando eu dou o comando kill -kill?

    -> como é o funcionamento desse programa?

    Compile o programa improc.c (abaixo) usando o comando "gcc improc.c -o improc". Execute uma sessão de terminal o comando improc, tente matá-lo (usando crtl-c) ou colocá-lo em suspenso (usando(crtl-z). Tente enviar outros sinais (usando kill) em outra sessão de terminal e veja que ocorre. Por fim, execute "kill -kill" para matar o processo.

    #include <signal.h>
    
    #include <unistd.h>
    
    #include <stdio.h>
    
    
    
    void foo (int sinal){
    
    
    
        printf ("\n***** Sou imortal e me recuso a morrer!!! *****");
    
        printf ("\n***** Jogando o sinal %2i no lixo!! *****\n", sinal);
    
    }
    
    
    
    int main (){
    
    
    
        char c;
    
        int s;
    
        for (s=1; s<35; s++){
    
            signal (s, foo);
    
        }
    
        while (1) {
    
            printf ("====> Hahahaha.. estou vivo e tenho PID %i\n", getpid ());
    
            sleep (3);
    
        }
    
        return 0;
    
    }

  11. Tá bom eu tenho duas funções uma que exclui um registro de um vetor e outra que consulta o registro que se quer excluir do vetor. Tudo isso em arquivo.

    O que eu quero saber é o seguinte se eu quisesse nessas funções ao invés de fazer um vetor de registro fazer uma matriz de registro o que mudaria então nessas duas funções abaixo?

    // Função Exclui um registro do arquivo
    // Retorna:
    // 
    //1 se o registro foi excluído com sucesso
    // 
    //0 se o registro não pode ser excluído
    //
    
    Exclui_registro(FILE *arquivo, Registro registro)
    {
      int posicao;
    
       if(arquivo != NULL){
           posicao = Consulta_registro(arquivo, registro);
           if(posicao != -1)
         {
    
         fseek(arquivo, posicao*sizeof(registro), SEEK_SET);
         registro.excluido = 1;
         if(fwrite(&registro, sizeof(registro), 1, arquivo))
            return 1;
         }
    
       }
       return 0;
    }
    
    
    // Função que consulta um registro do arquivo
    // Retorna a posição física onde o registro foi encontrado ou
    // -1 caso o registro não tenha sido encontrado
    //
    Consulta_registro(FILE *arquivo, Registro registro)
    {
       Registro registro_lido;
       int posicao;
    
      if(arquivo != NULL)
      {
       fseek(arquivo, 0L, SEEK_SET);
       posicao = 0;
       // repete enquanto não chega ao final do arquivo 
       while(fread(&registro_lido, sizeof(registro_lido), 1,  arquivo))
       {
       if(strcmpi(registro_lido.nome, registro.nome)==0 &&     (registro_lido.excluido == 0))
       return posicao;
       posicao++;
       };
      }
      return -1;
    }

  12. Nó código abaixo tem-se duas funcões uma que busca o código do cliente e a outra que exclui um registro de um cliente de uma determinada posição.A minha dúvida é como fazer uma outra função qualquer só que excluindo um registro de um vetor num arquivo?

    // Busca por código
    int busca_codigocli(cliente clien[]){
        int cont=0,cod;
    
                printf("\nEntre com o codigo\n");
            scanf("%d",&cod);
    
            while(cont<=50) {
                    if(clien[cont].codigo==cod){
                            return cont;
                    }
                    else{
                            cont++;
                    }
        }
            return -1;                    
    }
    
    
    
    //Excluir Cliente
    
    
    void excluir_cliente(cliente clien[],int *indice) {
    int cod, cont=0,y;
    //printf("\nEntre com o codigo do registro que deseja excluir\n");
    //scanf("%d",&cod);
    
    y=busca_codigocli(clien);
    
            if (y==-1) 
                    printf("\nCodigo não encontrado\n\t");
            else{
                     for (cont=y+1;cont<*indice+1;cont++) {//1 ao 50
                         clien[cont-1].codigo=clien[cont].codigo; 
    
    //O registro da posicao anterior  do vetor é sobrescrito com o proximo registro da próxima posição.(ex. pos 0 é substituido pela pos 1);
    
    
                            
                    }
                    printf("\nExclusao feita com sucesso\n\t");
                    *indice=*indice-1;
            }
    }

  13. Meu código continua a não compilar: :wacko: o que faço?

    /* 4)  Construa  uma  função  que  receba  cinco  valores  e  determine 
    (retorne  por  passagem  por referência) o 2º e o 4º maior valores dentre eles.
    Construa  também um módulo principal para  ler tais valores,e imprimir o 
    resultado obtido com a chamada da função. */
    
    #include<stdio.h>
    
    int seg_maior(int n,int vet[]);
    int quart_maior(int n,int vet[]);
    void ordem(int n,int vet[] ,int *segundo_maior, int *quarto_maior);
    
    int main(){
      int vet[5],i=0,j=0,seg_maior,quart_maior,aux;
    
       //Recebendo 5 numeros 
        while(i<5){
             printf("Numero[%d]",i+1);
             scanf("%d",vet[i]);
             i++;
        }
    
        // Colocando em ordem crescente os numeros(do menor para o maior)
        for(i=0;i<5;i++){
            for(j=i+1;j<5;j++)
                if (vet[i]>vet[j]){
                   aux=vet[i];
                   vet[j]=vet[i];
                   vet[j]=aux;
                }
        }
    
    i=5;    
    //retornando o segundo maior valor e o quarto maior valor
    ordem(i,vet, &seg_maior, &quart_maior);
    
    printf("O segundo maior valor:%d ",seg_maior);
    printf("O quarto maior valor:%d ",quart_maior);
    
    
    }
    
    
    
    
    int seg_maior(int n,int vet[]){
        int b;
        //Descobrindo o segundo maior valor
            if (n==4)
                return vet[3];
                
            else
            b=seg_maior(n-1,vet);
    return b;
          
    }        
    
    
    int quart_maior(int n,int vet[]){
        int a;
        // Descobrindo o quarto maior valor
        if (n==2)
            return vet[1];
        else
            a=quart_maior(n-1,vet);
            
    return a;
          
    }
    
    //Retornar por passagem por referêcnia
    void ordem(int n,int vet[] ,int *segundo_maior, int *quarto_maior) {
    
     (*segundo_maior) = seg_maior(n,vet);
     (*quarto_maior) = quart_maior(n,vet);
    
    }

  14. Eu consertei o meu código(as duas funções):

    -> Mas o meu raciocínio seria fazer a função seg_maior retornar o segundo maior valor e fazer a função quart_maior retornar o quarto maior valor, ambas as duas por recursão.Minha dúvida é o que posso fazer no codigo postado ai embaixo para que ambas as funções retornem por recursão?

    int seg_maior(int n,int vet[]){
        
        //Descobrindo o segundo maior valor
        if (n==4)
        return vet[3];
            
        else 
            seg_maior(n-1,vet);
                
            
    
    }        
    
    int quart_maior(int n,int vet[]){
        // Descobrindo o quarto maior valor
        if (n==2)
            return vet[1];
           else
            quart_maior(n-1,vet);
            
            
            
            
    }

  15. Eu já consertei o meu código só que o compilador mostra umas mensagens abaixo e também o meu programa não é compilado. O que posso fazer para compilar normal então?

    "1>c:\users\user\documents\visual studio 2008\projects\4\4\pol_cm.cpp(56) : warning C4715: 'seg_maior' : not all control paths return a value

    1>c:\users\user\documents\visual studio 2008\projects\4\4\pol_cm.cpp(70) : warning C4715: 'quart_maior' : not all control paths return a value"

    /* 4)  Construa  uma  função  que  receba  cinco  valores  e  determine 
    (retorne  por  passagem  por referência) o 2º e o 4º maior valores dentre eles.
    Construa  também um módulo principal para  ler tais valores,e imprimir o 
    resultado obtido com a chamada da função. */
    
    #include<stdio.h>
    
    int seg_maior(int n,int vet[]);
    int quart_maior(int n,int vet[]);
    void ordem(int n,int vet[] ,int *segundo_maior, int *quarto_maior);
    
    int main(){
      int vet[5],i=0,j=0,seg_maior,quart_maior,aux;
    
       //Recebendo 5 numeros 
        while(i<5){
             printf("Numero[%d]",i+1);
             scanf("%d",vet[i]);
             i++;
        }
    
        // Colocando em ordem crescente os numeros(do menor para o maior)
        for(i=0;i<5;i++){
            for(j=i+1;j<5;j++)
                if (vet[i]>vet[j]){
                   aux=vet[i];
                   vet[j]=vet[i];
                   vet[j]=aux;
                }
        }
    
    i=5;    
    //retornando o segundo maior valor e o quarto maior valor
    ordem(i,vet, &seg_maior, &quart_maior);
    
    printf("O segundo maior valor:%d ",seg_maior);
    printf("O quarto maior valor:%d ",quart_maior);
    
    
    }
    
    
    
    
    int seg_maior(int n,int vet[]){
        
        //Descobrindo o segundo maior valor
        if (n)
            seg_maior(n-1,vet);
        else
            if (n=4){
                return vet[3];
            }
    
          
    }        
    
    
    
    int quart_maior(int n,int vet[]){
        // Descobrindo o quarto maior valor
        if (n)
            quart_maior(n-1,vet);
        else
            if (n=5){
                return vet[4];
            }
    
          
    }
    
    //Retornar por passagem por referêcnia
    void ordem(int n,int vet[] ,int *segundo_maior, int *quarto_maior) {
    
     (*segundo_maior) = seg_maior(n,vet);
     (*quarto_maior) = quart_maior(n,vet);
    
    }

  16. Eu compilei o meu código, porém o meu compilador mostra uns erros. Eu queria saber como resolver esses erros para que o meu programa rode normal?

    /* 4)  Construa  uma  função  que  receba  cinco  valores  e  determine 
    (retorne  por  passagem  por referência) o 2º e o 4º maior valores dentre eles.
    Construa  também um módulo principal para  ler tais valores,e imprimir o 
    resultado obtido com a chamada da função. */
    
    #include<stdio.h>
    
    int seg_maior(int n,int vet[]);
    int quart_maior(int n,int vet[]);
    void ordem(int n,int vet[] ,int *segundo_maior, int *quarto_maior);
    
    int main(){
      int vet[5],i=0,j=0,seg_maior,quart_maior,aux;
    
       //Recebendo 5 numeros 
        while(i<5){
             printf("Numero[%d]",i+1);
             scanf("%d",vet[i]);
             i++;
        }
    
        // Colocando em ordem crescente os numeros(do menor para o maior)
        for(i=0;i<5;i++){
            for(j=i+1;j<5;j++)
                if (vet[i]>vet[j]){
                                        aux=vet[i];
                   vet[j]=vet[i];
                   vet[j]=aux;
                }
    
    i=5;    
    //retornando o segundo maior valor e o quarto maior valor
    ordem(n,vet, &seg_maior, &quart_maior);
    
    printf("O segundo maior valor:%d ",seg_maior);
    printf("O quarto maior valor:%d ",quart_maior);
    
    
    }
    
    
    
    
    int seg_maior(int n,int vet[]){
        
        //Descobrindo o segundo maior valor
        if (n)
            seg_maior(n-1,vet);
        else
            if (n=4){
                return vet[3];
            }
    
          
    }        
    
    
    
    int quart_maior(int n,int vet[]){
        // Descobrindo o quarto maior valor
        if (n)
            quart_maior(n-1,vet);
        else
            if (n=5){
                return vet[4];
            }
    
          
    }
    
    //Retornar por passagem por referêcnia
    void ordem(int n,int vet[] ,int *segundo_maior, int *quarto_maior) {
    
     (*segundo_maior) = seg_maior(n,vet);
     (*quarto_maior) = quart_maior(n,vet);
    
    }

  17. Meu programa está recebendo tres valores e na hora de imprimir ele não exibe o maior e o menor e sim uns números estranhos. O que posso fazer para que o meu código compile normal?

    /*  Construir  uma  função  que  receba  três  valores,  a,  b ,  c. E retornar  (passagem  por  referência)  o 
    MAIOR e o MENOR valor desses três. Deve ser criado um módulo principal “main()” para ler os três valores e imprimir o maior e o menor valor computado. */
    
    #include<stdio.h>
    #include<stdlib.h>
    
    int maior_menor(int d,int e,int f,int n, int maior, int menor);
    int main(){
        int a,b,c,ma,me,i=3;
    
        printf("A: \n");
        scanf("%d",&a);
    
        printf("B: \n");
        scanf("%d",&b);
    
        printf("C: \n");
        scanf("%d",&c);
        maior_menor(a,b,c,i,ma,me);
    
        printf("O maior numero é: %d\n",ma);
        printf("O menor numero é: %d\n",me);
    system("Pause");
    }
    
    int maior_menor(int d,int e, int f,int n,int maior,int menor ){
        int vet[3];
    maior=-2000;
    menor=2000;
    vet[0]=d;
    vet[1]=e;
    vet[2]=f;
    
    
       if (n)
          maior_menor(d,e,f,n-1,maior,menor);
       else{
             
           if (vet[n]>maior){
               maior=vet[n];
               return maior; 
           }
           else if (vet[n]<menor){
               menor=vet[n];
               return menor;
           }         
       }                  
    }

  18. Eu postei errado agora eu postei o código que eu queria. Esse código já está compilando normal e na verdade ele coloca os nomes que a pessoa digitar em ordem alfabética. Mas voce pode me dizer melhor porque a função strcpy só aceita "aux" como declaração e não "aux"?

×
×
  • Criar Novo...