Ir ao conteúdo
  • Cadastre-se

Felipecfk

Membro Pleno
  • Posts

    399
  • Cadastrado em

  • Última visita

Tudo que Felipecfk postou

  1. ahhh, entendi, eu vou ter que pensar de uma outra forma, esquece esse código aí que eu fiz. Eu vou pensar depois eu te falo uma ideia melhor
  2. Não tem segredo, é um trabalho de paciência com print() e vai printando asteriscos, espaços e quebras de linha. Dá pra fazer em uma função só ou em várias. Eu prefiro fazer em uma só. Exemplo: public class Escada { public static void main(String args[]) { System.out.print("* * *\n" + " *\n" + " * * *\n" + " *\n" + " *\n"); } } Tenta espaçar o código de forma que você consiga enxergar o que está acontecendo, aí fica mais fácil.
  3. Depende do que você gosta de fazer, no fundo a maioria delas (tirando as de paradigmas funcionais como Lisp, Rust, etc.), a maioria delas é baseada em C, então se você sabe C as outras seguem um padrão similar na estrutura. Jogos: geralmente são feitos em C++, pode ser difícil dominar por completo mas eu considero muito mais fácil pra um iniciante do que Java por exemplo, por ser menos "verbosa" e ir direto ao ponto. Aplicativos: geralmente são feitos em Java, C# ou Swift(pra mac) Sistemas operacionais: geralmente são feitos em C, Assembly e um pouco de C++ Se quiser só aprender a lógica de programação, recomendo python ou pascal. O C pode ser meio desmotivador se for muito iniciante, eu falo por experiência própria porque comecei com C mas foi bem embaçado de entender no começo. Pascal (segunda linguagem) foi mais agradável e quando voltei pro C já entendia mais. Hoje em dia estou focando mais no Java por causa de .. DINHEIRO etc.
  4. Se o programa precisa de tanto comentário é porque o código já não é muito autoexplicativo. É bom não ter esse hábito desde cedo
  5. Eu não sei se entendi bem o que o exercídio pede, mas eu acho que é algo nesse sentido: public interface PokeInterface { void pokeSetup(String nome); } //--------------------------------------- public class Pokemon implements PokeInterface { private String tipo; private int saude; private int ataque; private int defesa; public Pokemon(String tipo, int saude, int ataque, int defesa) { this.tipo = tipo; this.saude = saude; this.ataque = ataque; this.defesa = defesa; } @Override public void pokeSetup(String nome) { System.out.println(nome + ": " + "\nTipo - " + tipo + "\nSaúde - " + saude + "\nAtaque - " + ataque + "\nDefesa - " + defesa); } } //--------------------------------------- import blabla.Pokemon; // blabla seria o nome do pacote, supondo que a interface e a classe pokemon estejam no mesmo pacote public class Main { public static void main(String[] args) { Pokemon pikachu = new Pokemon("Elétrico", 35, 55, 40); pikachu.pokeSetup("Pikachu"); } } Aí no terminal ficaria assim: Pikachu: Tipo - Elétrico Saúde - 35 Ataque - 55 Defesa - 40
  6. -Visual Studio (comunity é gratuito) -Visual Studio Code (pode levar um tempo pra configurar tudo certinho mas é bom) -CLion (ele é pago mas acho que tem uma versão gratuita). Fuja de code blocks, dev c++, etc. Eles são bugados e vão dar erro quando não é pra dar, aí você vai achar que fez algo errado e no fim das contas não era bem assim.
  7. Não use, é extremamente defasado. Só serve pra ensinar alunos a escrever "Hello World" e olhe lá.
  8. Eu acho que não faz muito sentido criar uma interface com nome, tipo, ataque, etc. E depois criar uma classe com as mesmas variáveis: nome, tipo, ataque, etc. A interface serve justamente pra você implementar na classe, sem ter que ficar repetindo o código.
  9. Hmm, é como se a placa deixasse de funcionar as vezes talvez. Você já checou as temperaturas? GPU, CPU, etc.
  10. Não tem muito sentido isso, deve ser o seu player de vídeo, tente outro player e veja se o problema persiste. Se roda um jogo pesado igual Battlefield, como que não vai rodar um vídeo? E se roda vídeo no youtube então. Qual player e qual o formato do arquivo de vídeo que está tentando rodar? Nem todo chuvisco é artefato, eu já tive esses problemas tentando rodar MKV no VLC player a um tempo atrás. Outra, eu já tive travamentos por excesso de ficar pulando o vídeo na barrinha toda hora, chegou uma hora que deu um erro de dumping na memória e o PC reiniciou sozinho.
  11. Eu pensei da seguinte maneira, criando 2 iteradores no mesmo loop "for", sem precisar fazer um for dentro do outro (que seria uma matriz no caso). Não sei se resolve da forma como você quer mas pelo menos pode dar algumas ideias e deixar o código mais enxuto. O código foi testado no CLion e naquele OnlineGB. Ficou da seguinte maneira: #include <stdio.h> int main() { const int QuantBi = 3; //3 é a quant. de bimestres, supondo que seja 1 nota pra cada bimestre char aluno[30]; float NotaBi1, NotaBi2, NotaBi3; for (int i = 0, numAluno = 1; i < 2; i++, numAluno++) { printf("Insira o nome do aluno %d: ", numAluno); scanf("%s", aluno); printf("\nInsira a nota do primeiro bimestre: "); scanf("%f", &NotaBi1); printf("\nInsira a nota do segundo bimestre: "); scanf("%f", &NotaBi2); printf("\nInsira a nota do terceiro bimestre: "); scanf("%f", &NotaBi3); float media = (NotaBi1 + NotaBi2 + NotaBi3) / QuantBi; printf("\n\nA media do %s: %0.1f\n\n\n", aluno, media); } return 0; } A média é sempre calculada através da soma dos valores pela quantidade de valores. Então se eu quero tirar a média de idade de 5 pessoas por exemplo, eu pego as idades de todas elas, somo e depois divido por 5. Igualmente se eu quero saber a média de altura entre 2 pessoas, eu somo as 2 alturas e divido por 2 e assim por diante.
  12. Como disseram, isso é uma versão facilitada do C especificamente para utilizar com arduino ou similares. (dá pra ver que não é assembly pelo simples fato de ter o comando #include logo no começo, que é um comando propriamente do C e alguns derivados). Mas a pergunta é, se eles têm essa versão com bibliotecas já prontas, que é justamente para utilizar com o arduino sem muitas reviravoltas, por que você está querendo converter para C puro? Quando eu olho na internet, dizem que é uma versão modificada de C++, mas sinceramente isso está muito mais próximo de C do que de C++, por isso não entendi sua confusão. Ao que parece, a sintaxe é mais próxima de C porém as bibliotecas devem ter classes, coisas orientadas a objeto (vai entender). Pra converter isso pra totalmente C você teria que converter todas essas bibliotecas também, o que é um trabalho mais especializado.
  13. Pelo que entendi o rJava é para usar o java dentro do R e vice-versa, para ser usado com o JRI (Java/R Interface). O RCaller é especificamente pra usar o R dentro do java, é puxar uma biblioteca de R para funcionar dentro do ambiente java.
  14. 1- Ele fica repetindo as mesmas coisa porque está dentro de loop com uma condicional dizendo, se o ano da pessoa for maior que zero então faça esse loop. Como o ano da pessoa nasceu sempre será maior que zero então o loop é infinito rsrs. Use um If aninhado, eu acho que é melhor nesse caso. 2- O motivo de as porcentagens estarem todas zeradas é que você colocou o sysout fora da função que calcula elas. Não sei como é em outras linguagens, mas no java o valor de uma variável só é válido enquanto estiver dentro do método/função. A menos que seja do tipo static, nesse caso eu acho que ele armazena o valor mesmo quando o código da função chegue ao fim. Caso contrário, o valor é zerado quando a função termina, ou então é mantido o valor inicial que você forneceu lá em cima, que no caso é zero mesmo. Porém não recomendo deixar tudo como static, apesar de ser tentador, pode gerar problemas e também não é necessário para esse tipo de programa.
  15. Alguns pontos pra tentar ajudar: 1- Eu não sei se é uma boa ideia usar o mesmo nome genérico "classValor" para todos os tipos de valores dessas classes diferentes, o normal é você criar um nome que tenha a ver com o tipo de variável que você está usando. Por exemplo: o classValor de BigDecimal poderia levar o nome de "bigDecValor" ou algo assim. 2- Você colocou um construtor como "setter" pelo que eu entendi. Mas não entendi bem o ponto, era pra completar alguma coisa nessa parte do código? Você optou por usar o tipo primitivo "int" como parâmetro a ser recebido ao invés da wrapper class "Integer", o que teoricamente dá na mesma eu acho, a diferença é que um é classe e o outro não. Mas também não entendi porque você deixou isso como comentário no programa. 3- Na parte do Main, v1, v2, v3 e v4 são os nomes das variáveis que instanciam os objetos de cada classe que você criou, então por exemplo, se v1 = new Inteiro(), então v1 é do tipo Inteiro, concorda? Logo, daria no mesmo dizer: Inteiro v1; v1 = new Inteiro(2); Ainda no Main, no caso dos parâmetros recebidos pelo método "somador", eles devem ser do tipo Double (número quebrado), então ele vai somar esses 2 números recebidos, armazenar o resultado na variável "soma" e retornar esse resultado.
  16. Para dispositivos móveis Android geralmente é usado Java/Kotlin ou o C# com o Xamarin (mas é menos popular e menos "favorito"). Para Iphone/Ipad geralmente é usado Objective-C ou Swift. Eu estou aprendendo a usar a Unity junto com C# só de curiosidade, porém apenas jogos simples 2d. Para jogos mais complexos (esses ditos Triple A) quase que 90% das vezes é usado C++ para boa parte do código, apesar de a parte de orientação a objetos ser mais usados para as APIs. Antigamente usava-se mais o C (e mais antigamente ainda até Basic ou Assembly) mas conforme a parte de renderização de gráficos foi ficando mais complexa, eles foram incluindo C++ em parte do código mas hoje o C é menos usado para isso e o C++ toma a maior parte. A principal diferença do C++ pro Java ou C# é que nos 2 últimos muita coisa vem pré-pronta. A parte de administrar memória, garbage collection entre outros é feito automaticamente. No C++ isso é feito manualmente mas isso dá mais liberdade em baixo nível e é necessário para uma boa performance nesses jogos mais competitivos. C++ também pode ser usado para apps, porém pelo que vejo falando é uma linguagem mais complexa de "mestrar". Mas se você já sabe Python, por que não usar? JavaScript e PHP são mais para internet ou apps de sites.
  17. Ignorou sim, minha lógica não tem como estar errada porque foi uma cópia da sua para razões de demonstração mas deixa pra lá, quando o santo não bate, não tem porque forçar. Talvez esse trecho te ajude a entender. o printf() [1] mostra x e num ah vá, é mesmo? Claro que não, o resultado da função altera o parâmetro que ela recebeu. O x é apenas uma variável (desnecessária por sinal) que estava recebendo como valor a função (ou o que ela retorna). Desnecessário porque como eu mostrei no primeiro comentário, bastava chamar a função e pronto.
  18. Não entendi de testar o retorno, dá pra testar colocando o programa para rodar não? A não ser que eu esteja tentando debugar alguma coisa... Ainda mais no caso de um exercício básico de par e ímpar. Realmente esse return n+4; É um pouco mais prático. Você não precisava deixar esse comentário "//printf("Resultado: %d", num); // original do seu programa: esta errado", porque como eu disse, eu já havia testado ele retornando somente o x (que como eu disse já havia funcionado no meu, no dele não). Em uma ocasião normal eu faria printf("%d", x); mesmo porque parece fazer mais sentido. Mas como eu disse (e você ignorou), no caso do "print("%d", num);" Eu peguei a lógica de print desse trecho do seu código, o 'b' é equivalente ao num e não ao x: if(res) { printf("%d: par\n", b); return 1; } printf("%d: impar\n", b); return 0; Em relação a simplesmente troca de void para int Não, e essa parte você não está entendendo: Se eu fizer isso aqui: int funcao(int numero) { if(numero%2==0) printf("par"); else printf("impar"); } Ele vai retornar o par ou impar e tal mas vai colocar um número a mais que não era pra estar lá. Isso, eu imagino que acontece porque a função não está retornando um int como deveria mas apenas imprimindo uma string, então o programa mostra a impressão mas mostra também o número que entrou como parâmetro e que não mudou. Então por exemplo se eu coloco 3, no terminal acaba saindo "impar3" ou se eu coloco 2, acaba saindo "par2". Entendeu?
  19. Pois é, foi como eu disse que você fez no seu programa, você não mostrou o x(res), mostrou a o resultado da variável que a função recebia como parâmetro(b). Mas de curiosidade, eu tentei fazer mostrando o x que antes estava dando erro no resultado e deu certo, não tinha conseguido da primeira vez porque na função eu havia feito: 'n =+ 4' ao invés de 'n += 4'. Porém no programa dele continuou dando erro. E você citou o erro como corrigido mas não mostrou a solução Pois então, minha solução foi tirar esse x e simplesmente chamar a função dentro do main. Eu não postei o código todo diretamente porque capaz que a moderação reclamasse que eu estou passando respostas, eu só apontei de leve as alterações a serem feitas. Vamos supor que eu mantenha o x e faça a alteração que está acusando abaixo e mude a função para int ao invés de void: PS C:\src\C\dvr> gcc -o or or22.c or22.c: In function 'main': or22.c:17:2: error: void value not ignored as it ought to be 17 | x=funcao(b); | ^ PS C:\src\C\dvr> Aí depois o compilador vem com esse erro: main.c:16:13: warning: format ‘%d’ expects argument of type ‘int *’, but argument 2 has type ‘int’ [-Wformat=] 16 | scanf("%d",b); Ele está reclamando que o argumento deve ser int *. Por isso eu perguntei naquela hora se era algo relacionado a ponteiro. Enfim, em teoria deveria funcionar e não dar esse erro... Edit/atualizando: ignora essa última parte, é óbvio que vai dar erro porque a função não está fazendo nada com o numero apenas imprimindo se é par ou impar, ela não tem o que retornar. Na verdade pra manter esse x aí teria que fazer um código mais longo como o exemplo que você deu mas daí.. parece desnecessário, eu prefiro tirar esse x e boa.
  20. no, o x do Ryzen é equivalente ao k da intel, o x já vem com boost de overclock e é mais fácil fazer overclock no x
  21. É mas não tem comparação, além de tudo isso esse Ryzen é 'x' (overclock destravado) contra uma versão da intel 'f'(overclock travado).
  22. A rx560 substitui o desempenho da integrada. Seria desperdício no sentido de você ter pego uma placa com vídeo integrado sendo que poderia ter pago mais barato numa cpu sem vídeo integrado já que vai usar a rx560 mesmo
  23. Se as notas estão em double, acho melhor fazer a média em double também, e não float. É necessário criar uma classe nota List<Double> Notas = new ArrayList<>(); Notas.add(3d); Não precisa usar o "d" pra distinguir que é double, o exercício pede pra você adicionar na lista especificamente essas notas: "3.3, 4.2, 8.1, 9, 5.5". Talvez usar o 'd' só pro 9, mas daí eu prefiro usar 9.0 A média você calcula depois, usando os itens da lista. double soma = 0d; for(Double var: Notas) { soma = var + soma; System.out.println(soma); } Não entendi isso aqui, se a soma = 0, qualquer coisa que você somar vai dar o valor que você somou, não daria no mesmo fazer soma = var; ?

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

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!