Ir ao conteúdo
  • Cadastre-se

alecounter

Membro Pleno
  • Posts

    42
  • Cadastrado em

  • Última visita

Reputação

21
  1. #include <stdio.h> #include <stdlib.h> int main() { int opcao, gx, gy, gz, px, py, pz, pw; printf("[1] Funcao de duas variaveis\n"); printf("[2] Funcao de tres variaveis\n"); printf("\nDigite a opcao desejada: "); scanf("%d",&opcao); setbuf(stdin,NULL); if(opcao == 1) { printf("Digite o vetor gradiente no formato (x,y): "); scanf("(%d,%d)",&gx,&gy); setbuf(stdin,NULL); printf("Digite o ponto do R3 no formato (x,y,f(x,y)): "); scanf("(%d,%d,%d)",&px,&py,&pz); setbuf(stdin,NULL); printf("\nEquacao parametrica da reta tangente:\n"); printf("\tx = (%d) + (%d)t\n",px,-gy); printf("\ty = (%d) + (%d)t\n",py,gx); printf("\tz = (%d) ; t variando na reta\n\n",pz); printf("Direcao de maior crescimento: (%d,%d)\n",gx,gy); printf("Direcao de menor crescimento: (%d,%d)\n",-gx,-gy); printf("Direcao em que nao ha variacao: (%d,%d)\n",-gy,gx); } else if(opcao == 2) { printf("Digite o vetor gradiente no formato (x,y,z): "); scanf("(%d,%d,%d)",&gx,&gy,&gz); setbuf(stdin,NULL); printf("Digite o ponto do R4 no formato (x,y,z,f(x,y,z)): "); scanf("(%d,%d,%d,%d)",&px,&py,&pz,&pw); setbuf(stdin,NULL); printf("\nEquacao parametrica da reta normal:\n"); printf("\tx = (%d) + (%d)t\n",px,gx); printf("\ty = (%d) + (%d)t\n",py,gy); printf("\tz = (%d) + (%d)t ; t variando na reta\n\n",pz,gz); printf("Equacao do plano tangente: (%d)x + (%d)y + (%d)z + (%d) = 0\n",gx,gy,gz,-(gx*px+gy*py+gz*pz)); printf("Direcao de maior crescimento: (%d,%d,%d)\n",gx,gy,gz); printf("Direcao de menor crescimento: (%d,%d,%d)\n",-gx,-gy,-gz); printf("Direcao em que nao ha variacao: qualquer vetor contido no plano tangente acima\n"); } else { printf("Opcao invalida\n"); } printf("\nPress any key to continue..."); getchar(); return(0); } int main2() { int inteiro,inter; scanf("(%d,%d)",&inteiro,&inter); printf("%d %d",inteiro,inter); return(0); } Cara, fiz um esboço de programa nos moldes que você falou. Fiz calculo 2 ano passado, então se não esqueci as coisas deve funcionar tudo ok (verifique). Só tá acontecendo um problema, na hora de usar o scanf tá dando problema na parte de numeros negativos da forma(0,-1) por exemplo. fica pra você resolver essa parte.
  2. O vetor gradiente está avaliado no ponto dado?
  3. Ativa o modo de compatibilidade para Windows 8 e veja se funciona...
  4. Usa o comando from math import sin Daí faz o uso da função sin(x)**2 pra x em radianos!!!
  5. Pelo que vi só funciona no Windows. Acontece que preciso que funcione no Linux... conhece algum outro?
  6. def mul(num1,num2,cont,soma): if(cont == num2): return(soma) soma += num1 cont += 1 return(mul(num1,num2,cont,soma)) def div(num1,num2,cont): if(num1 < num2): return(cont) num1 -= num2 cont += 1 return(div(num1,num2,cont)) def main(): print("Opcao 1: multiplicar dois numeros naturais") print("Opcao 2: dividir dois numeros naturais") print("\nDigite a opcao desejada: ",end="") opcao = int(input("")) while(not opcao in [1,2]): print("Opcao invalida!") print("\nDigite a opcao desejada: ",end="") opcao = int(input("")) num1 = int(input("Digite o 1º numero: ")) num2 = int(input("Digite o 2º numero: ")) if(opcao == 1): resultado = mul(num1,num2,0,0) if(opcao == 2): resultado = div(num1,num2,0) print("\nResultado: %d" % resultado) main() Fiz pra naturais, acho que a pior parte é essa. Agora é com você fazer as adaptações necessárias pra funcionar também para inteiros.
  7. Boa tarde a todos, tenho que fazer um trabalho para a faculdade: criar um programa que desenhar na tela pontos e retas (e algumas coisas a mais). O problema é que nunca fiz um software gráfico antes... Alguém poderia por gentileza me indicar uma linguagem fácil pra fazer isso? Valeu
  8. a complexidade computacional dos algoritmos não é igual. no meu algoritmo, a decisão de o número 'n' ser um primo ou não se baseia no fato de algum número contido em {2,3,...,int(sqrt(n))} dividir n. Se isso acontecer, a função cospe a resposta imediatamente. No caso do algoritmo do colega acima, o laço percorre o conjunto {1,2,...,n-1} em todos os casos e ainda itera sobre uma variável toda vez que ocorre uma divisão inteira. Podemos observar também que valores acima de int(sqrt(n)) nem precisariam ser verificados, pelo teorema fundamental da aritmética...
  9. não vejo outra alternativa a não ser usar exceções, em especial pelo caso n=0. pelo algoritmo de euclides, se um número 'a' natural divide 0, então o quociente também é 0 e podemos escrever 0=0a. Percebe-se assim que qualquer valor contido no conjunto dos inteiros satisfaz isso, logo fica indeterminado. Contar divisores nesse caso não funciona(mesmo). adicionado 2 minutos depois algoritmo da divisão ***
  10. aí é só tratar exceções... só colocar um if-else que leva alguns nanossegundos para ser computado
  11. não amigo, eu simplesmente copiei o código que estava aqui no post no meu codeblock para windows e tudo funcionou bem. precisei apenas fazer uma alteração aqui: for(int i = 2; i <= int(sqrt(n)); i++) pois realmente não sabia que o valor de sqrt(n) seria truncado, pensei que fosse arredondado. Não sei o motivo pelo qual não funcionou no ambiente Linux onde estava anteriormente. Basicamente eu nem segui nada do que vcs disseram aqui adicionado 2 minutos depois entendi a lógica sim, obrigado pelo algoritmo como já disse, fiz uma alteração no código que fiz anteriormente e tudo funcionou bem
  12. Eu já sei a definição de número primo. O que isso tem a ver com o problema? adicionado 9 minutos depois Problema resolvido. Uma pequena alteração no código resolveu o problema estranho que na faculdade eu fiz a mesma coisa e não funcionou por lá... Lá na faculdade é Linux e aqui windows, será que tem algo a ver? adicionado 17 minutos depois se o meu número n for da forma n=2k, pra k natural, então deveria funcionar para o 2 também. o código não funcionou por algum motivo desconhecido, já que copiei e colei aqui no codeblocks em casa e tudo funcionou bem...
  13. por qual motivo isto está acontecendo?
  14. eu coloquei outra condição, fiz assim for(int i = 2; i < n; i++) e mesmo assim a coisa ainda não funciona!

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...