Ir ao conteúdo
  • Cadastre-se

alecounter

Membro Pleno
  • Posts

    42
  • Cadastrado em

  • Última visita

Tudo que alecounter postou

  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!
  15. Pessoal, tudo bem? alguém poderia por gentileza me indicar o erro deste algoritmo que verifica se o número é primo ou não? O erro é que a função só retorna true! bool primo(int n) { for(int i = 2; i < int(sqrt(n)); i++) if(n % i == 0) return false; return true; } int main() { std::cout << primo(5); }
  16. Obrigado gente, estou usando o Code::blocks aqui na faculdade
  17. Pessoal tudo bem? Alguém sabe me informar se o codeblocks funciona para C++? fiz um código aqui mas não está compilando...
  18. o trecho em vermelho está dizendo o que você precisa fazer. basicamente o codeblocks não conseguiu invocar o compilador (provavelmente você instalou o codeblocks sem ele).
  19. bom, eu reparei que você declarou o vetor de estrutura gente dentro da função registro, do jeito que você fez ela seria perdida, o certo seria você declarar assim: static struct gente aaa[e]; pois dessa forma esse vetor não seria perdido quando a função deixasse de executar. mas eu particularmente não gosto de fazer assim, então declarei esse vetor dentro de main e coloquei todas as outras funções para cima de main, pra não precisar fazer apenas a declaração das mesmas.
  20. você declarou aaa como uma estrutura e não como um vetor de estruturas. deveria fazer assim struct gente aaa[e]; adicionado 1 minuto depois ops, acho que li o codigo de maneira errada, perai adicionado 8 minutos depois mexi no seu código e agora parece que rodou #include <stdio.h> #include <stdlib.h> struct gente { char sexo[11]; char cor[11]; char cabelo [11]; int id; }; void registro(struct gente *aaa, int e) { int i; for(i = 0; i < e; i++) { printf("Informe o sexo: "); scanf("%s%*c", &aaa[i].sexo); printf("Informe a cor dos olhos: "); scanf("%s%*c", &aaa[i].cor); printf("Informe a cor do cabelo: "); scanf("%s%*c", &aaa[i].cabelo); printf("Informe a idade: "); scanf("%d%*c", &aaa[i].id); } } void imprimir(struct gente *aaa, int e){ int i; printf("Fique agora com os dados das pesquisas.\n\n"); for(i=0;i<e;i++){ printf("A pessoa do sexo %s, ",aaa[i].sexo); printf("tem os olhos %s, ",aaa[i].cor); printf("tem os cabelos %s, ", aaa[i].cabelo); printf("tem a idade de %d anos.\n\n", aaa[i].id); } } void main() { int e, *a; printf("Informe a quantidade de pessoas que passaram pela pesquisa.\n"); scanf("%d", &e); a = &e; struct gente aaa[e]; registro(aaa, e); imprimir(aaa, e); } adicionado 11 minutos depois na verdade não entendi porque você criou o ponteiro para inteiro a, ele não foi usado no código
  21. Usa uma variável para guardar o número de alunos aprovados e outra para guardar o número de alunos reprovados.
  22. Moça, depois que calcular a média, você terá que varrer o vetor inteiro de novo, comparando cada elemento com a média e incrementando um contador para o caso aprovado e outro para o caso reprovado, conforme o caso. adicionado 0 minutos depois ops, você não precisa comparar com a média, precisa comparar com o número 5 na verdade.
  23. Pessoal, boa tarde! o código abaixo está funcionando normalmente, mas minha dúvida é ali na parte (lista+i). Não deveria ser (lista+i*sizeof(livros)) pra tudo funcionar bem? Abraços! typedef struct { char titulo[50]; char autor[50]; int ano; } livros; void recebe_dados(int n, livros *lista) { for(int i = 0; i < n; i++) { printf("Digite o titulo do %d%c livro: ", (i+1), 248); gets((*(lista+i)).titulo); printf("Digite o autor do %d%c livro: ", (i+1), 248); gets((*(lista+i)).autor); printf("Digite o ano de publicacao: "); scanf("%d", &(*(lista+i)).ano); setbuf(stdin,NULL); } } void imprime_tela(int n, livros *lista) { system("cls"); for(int i = 0; i < n; i++) { printf("%s\t", (lista+i)->titulo); printf("%s\t", (lista+i)->autor); printf("%d\n", (lista+i)->ano); } } void main(void) { int quantidade; printf("Digite a quantidade de livros: "); scanf("%d", &quantidade); setbuf(stdin,NULL); livros biblioteca[quantidade]; recebe_dados(quantidade,biblioteca); imprime_tela(quantidade,biblioteca); }
  24. acho que entendi, mas você aprendeu C no curso ou aprendeu usando algum livro? porque você sempre fala de regras, e no livro que estou usando não estou vendo nada disso

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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!