alecounter
-
Posts
42 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
posts postados por alecounter
-
-
12 horas atrás, carlos20020 disse:
Fazer um código que o usuário escolha entre uma função de duas ou três variáveis.
Entrada:
- Vetor Gradiente
- Ponto
Duas Variáveis:
- Eq. da reta tangente a curva de nível do ponto dado;
- Direção de maior crescimento;
- Direção de maior decrescimento;
- Direção que não há variação.
Três Variáveis:
- Eq. da reta normal;
- Eq. do plano tangente;
- Direção de maior crescimento;
- Direção de maior decrescimento;
- Direção que não há variação.
Obs.: Fazer o código em linguagem CO vetor gradiente está avaliado no ponto dado?
- 1
-
Ativa o modo de compatibilidade para Windows 8 e veja se funciona...
- 1
-
Usa o comando
from math import sin
Daí faz o uso da função
sin(x)**2 pra x em radianos!!!
- 1
-
1 hora atrás, devair1010 disse:
@alecounter a linguagem mais fácil para fazer isso é basic usada no compilador Blitz Basic 3D , nele você só precisa escrever line e a posição de início e de final da linha e a linha será criada e outras formas geométricas , retângulos , elipses . na aba help tem todos os comandos e exemplos de como usa-los .
nesse link : http://www.superdownloads.com.br/download/14/blitz3d-blitzbasic/
Pelo que vi só funciona no Windows. Acontece que preciso que funcione no Linux... conhece algum outro?
- 1
-
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.
-
Pode usar recursão ?
-
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
- 1
-
19 horas atrás, AnsiC disse:
pois é, dependendo da máquina ambos os algoritmos têm o mesmo desempenho. A diferença é que o seu não trata as exceções, ou não tratava. Beleza se acha que deve post seu versão otimizada.
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...- 1
-
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 depoisalgoritmo da divisão ***
-
1 minuto atrás, AnsiC disse:
Então 0, 1 também são primos, pois ambos são naturais e menores que 2.
aí é só tratar exceções... só colocar um if-else que leva alguns nanossegundos para ser computado
-
21 horas atrás, AnsiC disse:
Tem tudo, @giu_d já demonstrou o quanto saber, e não pensar que sabe, é importante.
adicionado 5 minutos depoisTalvez porque 2 é o único primo par. Portanto 2%2 = 0 e ainda sim 2 é primo. Coisa que você só diz saber, e que explica o porquê de não funcionar exclusivamente com 2.
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 depois21 horas atrás, giu_d disse:Vê se entende a lógica usada, ok?
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
-
Eu já sei a definição de número primo. O que isso tem a ver com o problema?
adicionado 9 minutos depoisProblema 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 depois3 horas atrás, AnsiC disse:Só não funciona para 2, para os demais números naturais funciona.
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...
-
10 minutos atrás, AnsiC disse:
Só não funciona para 2, para os demais números naturais funciona.
por qual motivo isto está acontecendo?
-
agora, AnsiC disse:
O que acontece é que, raiz-2 de 5 é menor que 3 e maior que 2: porém o valor 2 é retornado pelo casting~int;
Não satisfazendo a condição de i < 2, pois i = 2.
eu coloquei outra condição, fiz assim
for(int i = 2; i < n; i++)
e mesmo assim a coisa ainda não funciona!
-
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); }
-
Obrigado gente, estou usando o Code::blocks aqui na faculdade
- 1
-
Pessoal tudo bem?
Alguém sabe me informar se o codeblocks funciona para C++? fiz um código aqui mas não está compilando...- 1
-
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).
- 2
-
1 minuto atrás, Josesousa disse:
O que que voce mexeu, para me situar?
Alem do :
Sobre o ponteiro, eu ia utilizar ele, ai vi que nao era necessario e que tava esquentando cabeca à toa.
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.
- 1
-
você declarou aaa como uma estrutura e não como um vetor de estruturas.
deveria fazer assim
struct gente aaa[e];
adicionado 1 minuto depoisops, acho que li o codigo de maneira errada, perai
adicionado 8 minutos depoismexi 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 depoisna verdade não entendi porque você criou o ponteiro para inteiro a, ele não foi usado no código
- 1
-
9 horas atrás, Beatriz Brito disse:
Eu sei que não vou receber o código pronto e nem estou pedindo isso. O que eu pedi foi um DIRECIONAMENTO de como começar a fazer ou do que usar.. De qualquer forma, obrigada.
adicionado 0 minutos depoisObrigada!! Irei tentar!!
adicionado 27 minutos depoisEntão, eu consegui mais ou menos fazer a letra b, mas há um problema que eu n sei como resolver. Eu consegui fazer a parte do código em que diz os aprovados e reprovados, mas no enunciado pede que eu diga apenas a quantidade de cada um, e na forma que eu encontrei mostra apenas escrito por extenso a situação de cada nota uma por uma. Poderia me direcionar sobre que modificação fazer?
Segue o trecho do código.for(i=0;i<21;i++){ if (notas > 5.0) printf(" (aluno aprovado)."); } for(i=0;i<21;i++){ if (notas < 5.0) printf(" (aluno reprovado)."); } return 0; }
Usa uma variável para guardar o número de alunos aprovados e outra para guardar o número de alunos reprovados.
- 1
-
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 depoisops, você não precisa comparar com a média, precisa comparar com o número 5 na verdade.
- 1
-
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); }
-
5 minutos atrás, AnsiC disse:
Isso ocorre para otimizar o acesso a memória, e mais fácil calcular o tamanho do bloco de dados quando esse da salto de 1 em 1 ou de 2 em 2, ou de 4 em 4.
adicionado 1 minuto depoisNo curso de Física
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
Fazer o código em C/C#/C++
em C/C#/C++
Postado
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.