Ir para conteúdo
Fórum Script Brasil

kandrade

Veteranos
  • Total de itens

    1.665
  • Registro em

  • Última visita

Posts postados por kandrade

  1. O system quando executa um comando com sucesso retorna 0.

    Fiz um exemplo aqui bem simples.

    Veja:

    #include <stdio.h>
    #include <stdlib.h> 
    
    
    int main(){
       int t;
       char ip[16];
       char comando[40];
       printf("Digite o ip\n");
       scanf("%s", ip);
       sprintf(comando, "ping -c2 %s > /dev/NULL", ip);
       t = system(comando);
       if(t == 0)
          printf("Host ativo\n");
       else
          printf("Endereco de rede não encontrado\n");
    }

    Obs: Usei o gcc no Linux.

  2. Refazendo o laço:

    para cont de 1 ate 20 faca
       escreva ("Entre com o sexo: ")
       leia (sexo)
       se (sexo = "F") então
          // é mulher, então incremente a variavel correspondente
       senao
          // é homem, então incremente a variavel correspondente
       fimse
    
       escreva ("Entre com a idade: ")
    
       se (idade < 18) então
          // aqui identifica as pessoas com menos de 18 anos, incremente a variavel correspondente.
       fimse
    
       se (idade > 23) e (sexo = "F") então
          // mulhres com + de 23 anos, então incremente a variavel correspondente
       fimse
    
       se (idade = 18) e (sexo = "M") então
          // homens com 18 anos, então incremente a variavel correspondente
       fimse
    
    fimpara

    Antes da entrada no laço voce define algumas variáveis e as inicia com 0.

    Voce precisa incrementa-las de acordo com os testes do laço.

    Exemplo:

    Entrei com F para sexo e 27 para idade.

    As variáveis total_mul e mul_maior_23 passaram de 0 para 1.

  3. Para movimentar voce precisa de regras.

    Todas as regras são em relação ao posicionamento de 0, são elas:

    Se coluna = 3 não haverá movimento para direita.

    Se coluna = 0 não haverá movimento para esquerda.

    Se linha = 0 não haverá movimento para cima.

    Se linha = 3 não haverá movimento para baixo.

    Para movimentar é pura matemática:

    - Ache o posicionamento de 0.

    - Entre com o movimento.

    - Teste se o movimento é possível de acordo com as regras acima.

    - Se possível faça a troca com o elemento correspondente.

    Um exemplo de movimento para esquerda depois de validado:

    if (movimento == 1){ // supondo que 1 identifique movimento para esquerda
       puzzle[linha][coluna] = puzzle[linha][coluna - 1];
       puzzle[linha][coluna - 1] = 0;
    }
    Pronto, efetuada a troca. Outro exemplo para baixo agora:
    if (movimento == 2){ // supondo que 2 identifique movimento para baixo
       puzzle[linha][coluna] = puzzle[linha - 1][coluna];
       puzzle[linha - 1][coluna] = 0;
    }

  4. Qualquer um dos 3 seria uma boa escolha.

    Kurumin e Ubuntu são recomendados para iniciantes, mas há muitos usuários avançados que também preferem essas distros principalmente o Ubuntu.

    O Fedora 8 está excelente e é matido por uma das empresas mais bem sucedidas de Sistemas Operacionais de Código Aberto.

  5. Não é aconselhavel o uso de gets, ele não limita a leitura de caracteres e isso pode causar estouro de buffer.

    Para ler uma string inteira use expressão regular em scanf ou use a fgets que limita a quantidade de caracteres lido.

    ;)

    Por isso aconselho usar a função gets(string), pois ela recebe toda a string independente de espaços.
  6. Para ler use scanf e para comparar use strcmp.

    ler:

    scanf("%s", string);
    Le algo do teclado e armazena em string.
    if(!strcmp("string1","string2"))
       printf("Strings são iguais\n");
    else 
       printf("Strings são diferentes\n");

    Compara string1 com string2 e exibe o resultado.

    ;)

  7. É o padrão ANSI que especifica que o retorno de main deve ser int.

    ;)

    É cara, to usando o dev c++, deve ser por esse motivo que deu problema. Valeu!

    Ahh, tem algum problemas mais sério eu usar o dev c++? Qual outros programas você me recomenda?

    Grato pela atenção ^^

  8. As trigger são usadas para executar alguma funcionalidade na ocorrencia de um evento. Por exemplo:

    Se eu tenho uma tabela com um campo que guarda o valor do salário dos funcionários de uma empresa e alguém inserir um salário menor que 0. O que posso fazer para deixar meus dados consistentes?

    Nesse caso pode ser criada uma trigger que a cada insert nessa tabela verifica-se o valor de salário para permitir ou não o armazenamento desse dado.

    Exmplo que criei aqui:

    Tenho uma tabela importante no sistema e criei uma nova tabela para armazenar log, ou seja, a cada modificacão nessa tabela terei registrado em uma outra tabela a operacao executada, além da data e hora e o usuário que fez a modificacao.

    Tabela log:

    create table log (id serial PRIMARY KEY, usuario varchar, data_hora timestamp without time zone, operacao varchar);
    Stored Procedure
    create function gera_log() returns trigger as
    $$
    
    Begin
             insert into log (data_hora, usuario, operacao) values (now(), user, TG_OP);
             return new;
    end;
    
    $$ language 'plpgsql';
    Trigger
    CREATE trigger tr_gera_log after insert or update or delete on leitura for each row execute procedure gera_log();

    A cada insert, update ou delete a trigger é acionada e a funcão acima é executada, gravando assim o log da tabela leitura.

    Se tiver dúvidas volte a postar.

    ;)

  9. Bom dia,

    basicamente voce precisa criar um backup do "database" e restaurar em outra máquina.

    Para criar o arquivo voce pode usar esse comando:

    pg_dump dbname > arquivo
    Para restaurar:
    psql dbname < arquivo

    pg_dump e psql são executáveis que estão no diretório bin, onde foi instalado o postgresql.

    ;)

  10. Verfique se: o servidor está rodando, o db foi criado corretamente, as tabelas estão corretas, os usuários também foram portados.

    Se o servidor estiver em ordem creio que o problema esteja na linguagem de programação.

    ;)

×
×
  • Criar Novo...