Ir para conteúdo
Fórum Script Brasil

mJi

Membros
  • Total de itens

    429
  • Registro em

  • Última visita

Tudo que mJi postou

  1. if (espaco == 0 || espaco < 0){ Nesses casos (verificação de uma variável), faça sem o ||... if (espaco <= 0){ Sobre essa verificação pra saber se o usuário digitou zero... Prefira um laço 'do-while'. Ele executa no mínimo uma vez, e dependendo do valor da variável de controle, pode ou não ser executado mais vezes... Um exemplo: do{ printf("Digite um valor: "); scanf("%f", &valor); } while(valor <= 0); Ou seja, se o usuário digitar um número maior que zero, executa apenas uma vez. Ao contrário, executa até o usuário digitar um valor válido. Você também pode colocar um aviso para o usuário... do{ printf("Digite um valor: "); scanf("%f", &valor); if(valor <= 0) printf("Digite apenas valores maiores que zero.\n"); } while(valor <= 0);
  2. Vamos por exemplos você tem a página 1, que será redirecionada para a página 2. O código deve ser colocado na página 1. É um código HTML, portanto, você pode colocá-lo em um arquivo .html ou .htm, mas se quiser, pode colocar numa página PHP que funciona tranquilamente (obviamente, fora da área delimitada pelo <?php e ?>).
  3. Coloque na página que irá redirecionar ueh... E como já expliquei... url: endereço de redirecionamento. Exemplo: <meta http-equiv="refresh" content="1; url=http://www.site.com.br"> O código acima redireciona, após 1 segundo, a página em que ele está para http://www.site.com.br
  4. mJi

    Numeros Primos

    Ah, se é pra pensar nas excessões, tem de fazer a verificação na função... Antes de ir para o loop, coloque um if. Se 'num' for negativo, for igual a zero, ou for igual a 1, retorne 0.
  5. mJi

    Ajuda com programa !

    Exercício bem mal explicado... No meu entendimento, você deve ler salários e estados civís. O melhor é colocar tudo em vetores. Depois, percorra, e se for casado, aplica 9%. Senão, aplica 10%. Depois exibe na tela.
  6. Já tentou redirecionar via HTML? <meta http-equiv="refresh" content="5; url=teste.html"> Onde: content: tempo (em segundos) que a página deve esperar antes de redirecionar. url: endereço do redirecionamento.
  7. mJi

    Numeros Primos

    Sobre a função: int primo(int num){ int i, aux=1; for (i=2; i<num; i++){ if (num % i == 0){ return (0); break; } else { return (1); break; } } } Há alguns erros de lógica. -Primeiramente, você pode fazer o loop enquanto 'i' for menor que a metade de 'num'. A partir da metade, já não será possível encontrar divisores. -Os 'breaks' não são necessários. -Quando o resto da divisão não for '0', você o loop pára (por causa do return). Ele deve continuar testando até chegar ao fim do loop ou até encontrar um divisor. Uma maneira de se fazer seria... int primo(int num){ int i; for (i=2;i<=num/2;i++){ if (!(num%i)) return (0); } return(1); } Ou seja... Recebe o número, e vai fazendo restos da divisão deste numero por 'i', que vai de 2 até a metade do número. Quando o resto da divisão for '0', retorna 0, pois o número não é primo. Se acabar o loop sem dar o return, ele dá return(1), pois o número é primo. Para mostrar o resultado, basta pegar o retorno e comparar: Se for 1 é primo, se for 0, não o é. Dá pra fazer assim: if(primo(numero)) printf("Este numero e primo."); else printf("Este numero não e primo.");
  8. mJi

    Numeros Primos

    Um número é primo quando for divisível apenas por 1 e por ele mesmo. Levando em conta que a partir da metade do número em questão já não é possível encontrar nenhum divisor, a melhor maneira é pegar tal número, fazer sucessivas operações de resto de divisão, de 2 até a metade do número. Caso haja algum resto de divisão igual a zero, o número não é primo, pois há outros divisores além dele mesmo e 1. Ao contrário, é primo.
  9. mJi

    operadores bitwise

    Ah, bem lembrado... Lembrando que também é possível trocar valores de variáveis sem auxiliar através de operações aritméticas: #include <stdio.h> int main(){ int a = 1, b = 2; printf("A: %d\nB: %d", a, b); a += b; b = a-b; a -= b; printf("\n\nA: %d\nB: %d", a, b); return(0); }
  10. Dê um echo em $imagem fora da tag <img>, para ver o conteúdo da mesma. Poste aqui. Se ela tiver mesmo o nome da imagem, único motivo para não estar exibindo seria que a imagem não existe neste diretório.
  11. É realmente necessário colocar cada leitura de dados em uma função? Isso torna o código bem ilegível, e complica muito um algoritmo fácil. Ao postar um código, utilize as tags 'CODE' do fórum. E sempre idente seu código. Sobre o código, você tem uns ponto-e-vírgula faltando, uns abre-chaves sem fecha-chaves, uns erros de funções (por exemplo, um switch com variável float. Switch deve receber um inteiro). O que eu recomendo... Faça três funções apenas. 1º: Função do menu int menu(); Apenas exibe o menu, e retorna o inteiro que corresponde á opção que o usuário quer. 2º: Função de E/S void entrSaid(int opcao, float *valor1, float *valor2); Recebe a opção (o que o usuário quer calcular), e dois ponteiros, que correspondem aos dois valores a serem entrados. Por receber por referência as variáveis a serem completadas, não é necessário retornar nada. 3º: Função de cálculo float calculo(int opcao, float valor1, float valor2); Recebe a opção, pois é a mesma que irá definir qual será o cálculo. Também recebe os valores a serem utilizados no cálculo, e retorna o float, que é o resultado. Isso irá facilitar e muito.
  12. mJi

    operadores bitwise

    Ok. Para deslocar os para a direita, usa-se essa sintaxe: a >> b E para atribuir esse deslocamento á uma variável, você pode usar a maneira reduzida de atribuição normal da linguagem... a >>= b Agora, tendo em mente este código simples: #include <stdio.h> int main(){ int a = 4; //Em binário: 100 int b = 6; //Em binário: 110 printf("%d", a<<b); return(0); } A variável 'a' possui o valor '4'. Em binário, é o equivalente à 100. Através do operador de deslocamento, '100' é deslocado para a esquerda 6 vezes. Com isso... 100 se torna 100000000 Ou seja, a saída do programa acima seria 256 (que é a representação decimal do binário 100000000). Essa mesma lógica se aplica ao deslocamento à direita: a representação em binário do valor é deslocada para a direita. O primeiro elemento, que vem antes do operador de deslocamento, é aquele que será deslocado. O elemento que vem após o operador é aquele que indica quantas vezes o elemento à esquerda será deslocado. Por exemplo a >>= b A representação binária de 'a' será deslocada para a direita 'b' vezes. Após, o resultado (em decimal) será atribuido á variável 'a'. Á grosso modo, é mais ou menos isso.
  13. mJi

    operadores bitwise

    Há mais de um operador de bit-a-bit. AND (&) OR (|) XOR (^) COMPLEMENT (~) DESLOCAMENTO Á ESQUERDA (<<) DESLOCAMENTO Á DIREITA (>>) Basicamente, são operadores que trabalham diretamente na representação binária dos inteiros. Em alguns casos, usar esses operadores é mais eficiente que usar os operadores habituais. Também, são uteis ao trabalhar com alguns dispositivos que se comunicam com o computador enviando bits de informações. Nem vou postar código porque tu acha facilmente no google. Se tiver alguma dúvida, posta ae
  14. Ah, pra calcular fatorial, uma funçãosinha bem simples resolve... int fatorial(int num){ int fat=1; for(;num>1;num--) fat *= num; return(fat); } Ou se preferir recursiva... int fatorialr(int num){ if(num-1) return(num * fatorialr(num-1)); else return(1); }
  15. Você tem de converter estes números para uma string, ou para um inteiro? Se for para string, basta percorrer o vetor, converter o elemento para char e concatenar numa string. Fazer isso até acabar, e inserir o terminador nulo. Se for para inteiro, tu terás que, inicialmente, saber quandos elementos o vetor tem.Para facilitar, percorra-o de trás para frente. Atribua o último elemento do vetor multiplicado por 1 á variavel que conterá o valor final. Após, pegue o penúltimo valor, multiplique por 10, e some ao valor final. Após, o antepenúltimo multiplicado por 100, somado ao valor final. Faça essa sequencia de multiplicação e soma ao valor final até o vetor chegar à sua posição inicial.
  16. e cade o switch? Uma maneira de se fazer é colocar o switch dentro do do-while. do{ printf("\n ********** MENU **********\n"); printf("\n 1 - Calcular o espaço percorrido e fazer as devidas conversões com as unidades de medida"); printf("\n 2 - Calcular o tempo gasto num percurso e fazer as devidas conversões com as unidades de medida"); printf("\n 3 - Calcular a velocidade média e fazer as devidas conversões com as unidades de medida"); printf("\n 4 - Sair\n"); printf("\n # Digite o numero da opcao desejada: "); scanf("%d",&op); if(op<1 || op>4) continue; switch(op){ case 1: ...comandos... break; case 2: ...comandos... break; case 3: ...comandos... break; } } while(op != 4);
  17. Me parece bem explicado... Para saber se um número (por exemplo, 'n') é divisível por 5, faz-se o resto da divisão de 'n' por 5. Caso haja resto, não é divisível por 5. Caso não haja, é divisível por 5. Neste seu exercício, tu terás de tomar cuidado pelo fato de o contador começar do zero. Quando chegar ao 5, terão ido 6 iterações.
  18. Não espera que alguém faça o exercício para você, espera? Poste o que já conseguiu.
  19. Opa, acabei nem pensando na possibilidade de haver tantas páginas... Uma maneira de fazer as quebras de linha seria colocar esse if() no for(): for($pg=1;$pg<=$totalPag;$pg++){ echo "<font face='verdana,arial' size='2'><b><a href='$self?pag=$pg'>".$pg."</b></a>&nbsp;&nbsp;"; if(is_int($pg/10)) echo "</br>"; } Neste caso, daria uma quebra de linha pra cada 10 links pras páginas. Pra exibir estilo google (com mais, menos) é um pouco mais complicado.
  20. Poste o que já conseguiu fazer... primeiramente, encha o vetor com os múltiplos de 4. Sobre a pesquisa binária, há dezenas de tópicos à respeito por ae.
  21. mJi

    sos

    Primeira coisa a se fazer é gerar o tal vetor. Crie um vetor de 100 posições, e vá colocando valores aleatórios em cada posição através da função 'rand()'. Para limitar o número aleatório à um máximo, pode-se fazer o resto da divisão... exemplo: vet[posicao] = rand()%21; irá gerar um número aleatório entre 0 e 20. Como há também um valor mínimo exigido (1), faça uma checagem para que gere outro, até ser diferente de zero. Após, vem a parte mais fácil: Percorra o vetor procurando pelo número 1, pelo número 3 e pelo número 4. Com um único laço dá pra fazer.
  22. mJi

    Definir tamanho fixo array

    Também é possível, mas aí serve mais como um 'remendo'. Loops que saem por break geralmente servem para encontrar algo através da variável de controle. Mas este código funcionará corretamente, sim.
  23. mJi

    Definir tamanho fixo array

    Você quer colocar os 20 primeiros? A melhor maneira é dar 'unset()' nos elementos que você não quer amnter no array. for($i=20;$i<50;$i++) unset($xml[$i]); Assim, irá manter as posições de 0 até 19 (as 20 primeiras), e as outras não existirão mais.
  24. Ao menos tente fazer e poste aqui.
  25. mJi

    Ordenar Vetor com Printf

    Opa Passageiro possui o nome do passageiro, correto? O que ocorre é que na sua struct, passageiro é uma string com espaço para 42 caracteres. Caso você queira armazenar os nomes de todos os passageiros, precisará de uma matriz de caracteres. Por exemplo: struct rodoviaria { int codigo,horapartida,poltrona[42]; char destinoviagem[100],passageiro[42][100]; }; Nessa estrutura, 'passageiro' é uma matriz de caracteres que suporta 42 nomes, com no máximo 99 caracteres. Para acessar um nome individualmente, basta acessar vet[numerodoonibus].passageiro[numerodopassageiro] Ou seja, caso faça dessa maneira, poderá exibir os nomes de todos os passageiros assim: printf("Informe codigo do onibus:"); scanf("%d",&bus); printf("\n"); for(i=0;i<1000;i++){ if(vet[i].codigo == bus){ printf("Passageiros desse onibus: \n"); for(j=0;j<42;j++){ printf(vet[i].passageiro[j]); } } }
×
×
  • Criar Novo...