Ir para conteúdo
Fórum Script Brasil

mJi

Membros
  • Total de itens

    429
  • Registro em

  • Última visita

Tudo que mJi postou

  1. mJi

    Duvida sobre o $_GET

    Tem sim... faz-se da mesma maneira que com números, com um sinal de igual. Acredito que seja necessário colocar aspas simples entre os caracteres.
  2. Basta dar uma olhada na maneira como o 'printf' trabalha... printf("O utilizador %s, fez um %s, escolhendo a opcao %d", nome, credito, cheque); Onde nome possui o nome do utilizador (é uma string); credito possui o tipo de credito (é uma string); cheque possui a opção escolhida pelo usuário (é um inteiro). Ou seja, %s para strings, e %d para inteiros.
  3. Ah, claro. public function getQuery($query = NULL) { if(is_null($query)) die('Impossível realizar a consulta ao banco de dados'); $qry = mysql_query($query, $this->conexao()); while($row = mysql_fetch_assoc($qry)) $result[] = $row; return $result; } isso deve dar. Edit: oops, conseguiu antes. =)
  4. Tente trocar $result = mysql_fetch_assoc(mysql_query($query,$this->conexao())); por $result[] = mysql_fetch_assoc(mysql_query($query,$this->conexao()));
  5. mJi

    FTP com PHP

    O caminho do arquivo deve ser relativo ao diretório raiz do servidor.
  6. mJi

    (Resolvido) Código estranho...

    Correto. Strings são arrays de caracteres.
  7. Então pesquise sobre bancos de dados MySQL, e a sintaxe básica da linguagem. Não espere que o pessoal pare tudo o que está fazendo para lhe dar uma explicação detalhada. Há diversos blogs/sites/fóruns com conteúdo correto, só googlar.
  8. É possível usar também o str_replace(), que busca por um caractere e o substitui na string por outro caractere escolhido por você. Você também pode criar uma funçãozinha que percorra a string (nome do arquivo) como um array de caracteres. Ao encontrar um espaço, mova os caracteres seguintes uma casa mais próxima ao início da string. Não é algo difícil de se fazer.
  9. Acho que basta colocar o caminho para a imagem nas tags de imagem... <img src=../imagensl/thumb/'.$Imagem.'' /> João Silva sendo que $Imagem recebe o nome da imagem com extensão.
  10. O arquivo 'index.php' deve executar uma query no banco de dados, para pegar o endereçoa sser redirecionado. O ideal é ir pelo ID da tabela no banco de dados. A url ficaria Eu fiz um sisteminha básico desses e postei por aqui quando um membro do fórum pediu ajuda sobre este mesmo tipo de sistema. Só usar a busca.
  11. mJi

    Duvidas "C'

    1º: Está com dois abre-chavesapós a declaração da função main(); Após a verificação se o número digitado é válido, você colocou uma expressão lóica solta alí; Ao verificar se o número é válido, você deve usar o '&&' ao invés de '||'; Você colocou chaves entre o cálculo de média sem motivo aparente, e tal cálculo está fora do laço; O mesmo vale para a checagem das médias e exibição da aprovação/reprovação do aluno. Está fora de um laço. 2º: O erro ocorre porque você inicializa num=12. 'i' é a variável de controle do laço anterior, ela possui o valor 12 ao chegar no segundo laço. Ao inicializar num[12] com o número 12, além de não servir para seu propósito, você estará acessando um local não reservado da memória, pois vetores de 12 posições vão da posição zero até a posição onze. O correto é inicializar a variável de controle ('i') com 11. 3º: A leitura de dados está incorreta, o mesmo erro do exercício anterior: for(num[i]=0;i<10;i++) Quando você atribui um valor à num, você está atribuindo ao elemento 'i' do vetor. Não é isso que você quer. Você estará usando a variável 'i' para controlar o laço, portanto, deve inicializar ela. Além disso, quando você faz while (parar=0) você está atribuindo o valor zero à variável 'parar'. O operador de igualdade é o == Me parece um Bubble Sort, certo? A maneira correta de se fazer ele seria while (parar == 0){ parar = 1; for(i = 0; i < 9; i++){ if(num[i] > num[i+1]){ parar = 0; aux = num[i]; num[i] = num[i+1]; num[i+1] = aux; } } } Obviamente, a variável 'parar' deve ser inicializada com zero antes dessa ordenação. Corrija a inicialização das variáveis de controle dos laços. 4º: O exercício não fala de quantas notas deve ser, mas consideremos 10. Você deve descobrir qual a média aritmética das notas. Armazene-a em uma variável. Após, percorra novamente o vetor de notas fazendo comparações. Se a nota for superior á média, exiba-a. Lembre-se que provavelmente a média será float. 5º: Valores nulos são iguais a zero. Portanto, leia os valores, e percorra novamente comparando. Lembrando que o operador '=' é um operador de atribuição, não igualdade. O operador de igualdade é o '=='. Em seu algoritmo, você sequer comparou o elemento do vetor... você comparou a variável 'i', que servia para controlar o laço. Além disso, o if irá comparar apenas um elemento se estiver fora de um laço. Ah, e é um único vetor, não dois. Poste o progresso.
  12. mJi

    exercicio

    Antes de escrever o código, preste atenção na imagem... Veja as diagonais em preto, por exemplo: Todos os elementos da diagonal principal possuem ambas as coordenadas iguais (0,0 1,1 2,2 3,3 4,4 5,5 6,6 7,7 8,8 9,9) Todos os elementos da diagonal secundária possuem coordenadas cuja soma é igual a 9 (0,9 1,8 2,7 3,6 4,5 5,4 6,3 7,2 8,1 9,0) Há outras similaridades, pense bem.
  13. mJi

    exercicio

    Poste o que conseguiu... E pense no que cada quadradinho com determinada característica alí tem em comum.
  14. Você pode usar o fato de que cada letra do alfabeto está na ordem correta na tabela ASCII. Ou você pode ler a string, enviar um ponteiro para uma função que exiba o correspondente em hexadecimal do caractere, avance o ponteiro, exiba o hexadecimal, e faça isso até chegar ao terminador nulo.
  15. Você pode fazer no 'fetch' da query a comparação com os elementos do array. Se o elemento for encontrado, exiba-o. Exemplo while($row = mysql_fetch_assoc($query)){ if(in_array($row['tipo'], $tipo)) echo "O tipo ". $row['tipo'] ." foi encontrado no array."; }
  16. O que ocorre é que ao fazer essa atribuição: m[i][j] = m[j][i]; Você vai modificar algumas posições que serão atribuidas nos laços seguintes. Ou seja, você troca metade do vetor, e ao passar da metade, os números vão ser atribuidos novamente ás suas posições originais, fazendo com que o vetor fique 'espelhado' (Note as diagonais primarias). Uma maneira de resolver isso é atribuir a matriz transposta à uma matriz auxiliar, e depois atribuir novamente á matriz em questão.
  17. mJi

    Trocar valores de 2 vetores

    Eu faria assim: for(i = 0, j = 4; i < 5; i++, j--) aux = v1[i], v1[i] = v2[j], v2[j] = aux; Sendo v1 e v2 os vetores e aux uma variável auxiliar.
  18. o switch e os cases facilitam quando você deve executar uma série de comandos dependendo do valor de uma variável. Ao invés de fazer vários if() aninhados, um switch torna o código mais compacto e fácil de se entender. Quando o conteúdo do case é executado, ele segue e executa o conteúdo dos cases seguintes. É pra isso que serve o break(): para parar a execução. Quando ele é atingido, a execução sai do switch e continua no resto do código.
  19. mJi

    comando para substituir...

    A única maneira de isso dar certo seria se a palavra a ser substituida tivesse o mesmo tamanho da palavra que iria entrar em seu lugar. Caso fosse maior, a palavra seguinte seria sobreescrita. Acredito que a melhor maneira é pegar o conteúdo do arquivo, colocar tudo num vetor, e fazer uma função que faça tais substituições. Depois, gravar novamente no arquivo. Algumas funções que podem ajudar: http://www.cplusplus.com/reference/clibrary/cstring/
  20. main() é a função principal. É aquela chamada quando o programa é iniciado. Por default, ela retorna um inteiro, portanto, quando você vê uma declaração do tipo main(){ É o mesmo que int main(){ Declarar a função main() como void não é uma boa prática de programação (ao menos pelo que me foi ensinado). Sobre o que é void... void é um dos tipos do C. É um tipo 'vazio'. Ou seja, se você pretende fazer uma função que não retorne nada, deve declará-la como 'void'. Se não quiser passar nenhum argumento para ela, coloque 'void' entre os parênteses (embora a maioria coloque os parênteses vazios mesmo). main() pode receber dois parâmetros. Segue o protótipo: int main(int argc, char *argv[]) O primeiro é um inteiro, que representa a quantidade de argumentos passados pela linha de comando. O segundo é um vetor que possui tais parâmetros. Para rodar um programa passando argumentos pela linha de comando, basta digitar tais argumentos após o local do arquivo. Exemplo: Então, de forma resumida, a declaração de uma função é feita da seguinte maneira: tipo_do_retorno_da_função nomeDaFunção(tipo variavel1, tipo variavel2, tipo variavel3); Obviamente os parâmetros passados mudam de acordo com a necessidade. Edit: tucano respondeu antes =/
  21. Amigo, o GOTO torna o código muito ruim de se interpretar. Procure evitar ao máximo. Sobre exibir qual o dia do ano, você precisa de um laço para ir somando. Usar vetores facilitaria muito, mas como você não pode, terá de ser da maneira difícil. Seria algo assim: totalDia = 0; if(mes == 1) totalDias += dia; else { for(i = 1; i < mes; i++){ switch(mes){ case 1: totalDia += 31; break; case 2: totalDia += (!(ano%4) && (ano%100) || !(ano%400)) ? 29 : 28; break; case 3: totalDia += 31; break; case 4: totalDia += 30; break; case 5: totalDia += 31; break; case 6: totalDia += 30; break; case 7: totalDia += 31; break; case 8: totalDia += 31; break; case 9: totalDia += 30; break; case 10: totalDia += 31; break; case 11: totalDia += 30; break; case 12: totalDia += 31; break; } } totalDias += dia; } Ou seja, se for janeiro, apenas soma ao total o número de dias. Se não for, passa pro laço e vai adicionando até chegar no mês anterior ao que foi entrado. Sai do laço e adiciona a quantidade de dias do mÊs que foi entrado, e é isso.
  22. char nome[1]; char leitura[1]; Declarar um vetor de char com apenas uma posição é a mesma coisa que declarar um char único. Um vetor de char que armazene uma string deve possuir exatamente ou mais posições que a quantidade de caracteres que será digitado + um (espaço para o terminador nulo). O fprintf() move o ponteiro para a posição final da string no arquivo após a escrita. O rewind() faz o ponteiro voltar à posição inicial, o que posibilita ler o dado do arquivo. Se o nome digitado possuir espaços, e no fscanf() você ler apenas como '%s', ele vai retornar apenas a primeira parte do nome. O espaço funciona como um separador.
  23. Sem usar vetores, acho que o melhor é ir de switch(). É bem ruim, tem de se fazer varias verificações... Fiz um aqui, tu pode dar uma olhada para se basear no seu: #include <stdio.h> int main(){ unsigned short int dia, mes, ano; do{ printf("Digite o dia: "); scanf("%hu", &dia); printf("Digite o mes: "); scanf("%hu", &mes); printf("Digite o ano: "); scanf("%hu", &ano); if(dia > 31){ printf("Dia invalido. Tente novamente.\n"); continue; } else if(mes > 12){ printf("Mes invalido. Tente novamente.\n"); continue; } else if(ano < 1900 || ano > 2100){ printf("Ano invalido. Tente novamente.\n"); continue; } switch(mes){ case 1: if(dia > 31){ printf("Janeiro vai ate dia 31. Tente novamente.\n"); continue; } break; case 2: if(!(ano%4) && (ano%100) || !(ano%400)){ if(dia > 29) printf("Em anos bissextos, fevereiro vai ate dia 29. Tente novamente.\n"); continue; } else { if(dia > 28) printf("Fevereiro vai ate dia 28. Tente novamente.\n"); continue; } break; case 3: if(dia > 31){ printf("Marco vai ate dia 31. Tente novamente.\n"); continue; } break; case 4: if(dia > 31){ printf("Abril vai ate dia 30. Tente novamente.\n"); continue; } break; case 5: if(dia > 31){ printf("Maio vai ate dia 31. Tente novamente.\n"); continue; } break; case 6: if(dia > 30){ printf("Junho vai ate dia 30. Tente novamente.\n"); continue; } break; case 7: if(dia > 31){ printf("Julho vai ate dia 31. Tente novamente.\n"); continue; } break; case 8: if(dia > 31){ printf("Agosto vai ate dia 31. Tente novamente.\n"); continue; } break; case 9: if(dia > 30){ printf("Setembro vai ate dia 30. Tente novamente.\n"); continue; } break; case 10: if(dia > 31){ printf("Outubro vai ate dia 31. Tente novamente.\n"); continue; } break; case 11: if(dia > 30){ printf("Novembro vai ate dia 30. Tente novamente.\n"); continue; } break; case 12: if(dia > 31){ printf("Dezembro vai ate dia 31. Tente novamente.\n"); continue; } break; } break; } while(1); printf("Data valida: %hu/%hu/%hu.\n", dia, mes, ano); return(0); }
  24. mJi

    Trocar valores de 2 vetores

    É um algoritmo de troca reversa. Quando você faz isso: for(i=0;i<5;i++) { b[i] = a[i]; // aqui não está funcionando conforme solicitado. } Você atribui o elemento de um índice no mesmo índice do outro vetor. Você precisa de duas variáveis de controle. Uma que vá incrementando, e uma que vá decrementando. Cada uma controla um vetor. E para a troca, uma variável auxiliar. Para vetores de 5 posições, uma maneira de se fazer o for() é: for(i=0, j=4; i<5; i++, j--)
  25. Tente com aspas simples: foreach ($_POST['run'] as $r){ $run .= $r.' '; } Ah, e aqui no echo $run; apareceram espaços.
×
×
  • Criar Novo...