Ir ao conteúdo
  • Cadastre-se

Felipecfk

Membro Pleno
  • Posts

    399
  • Cadastrado em

  • Última visita

Tudo que Felipecfk postou

  1. Eu tentei um programa um pouco diferente do dele pra testar se eu conseguia dar print no resultado da função. Mas por algum motivo dá errado, o que acontece é que talvez ele não esteja executando a função quando eu faço isso: x = somar(num); Código completo: #include <stdio.h> int somar(int n) { n += 4; return n; } int main() { int num; int x; printf("Digite o numero: "); scanf("%d", &num); x = somar(num); printf("Resultado: %d", num); return 0; } Ele simplesmente imprime o resultado que eu digitei, sem entrar na função e retornar algo diferente porém não chega a dar nenhum erro ou aviso. Qual seria uma solução nesse caso para conseguir imprimir o resultado correto? Reparei que você chegou a atribuir a função a uma variável 'res' mas ela só é usada para confirmar uma condição verdadeira no if: res=n_par(b); if(res)... Quanto a isso, eu tentei ajudar no exercício tirando o 'x'. Não sei exatamente o que pede o enunciado já que ele só postou o código e pediu pra verificar onde estava o erro. As respostas aqui muitas vezes são teóricas demais e afugentam alguns iniciantes por isso optei por ir direto ao ponto sem implicar muito com conceitos ou a forma adequada de resolver digamos "profissionalmente".
  2. Entendi, colocando como int você pode retornar o valor do parâmetro que foi usado. Mas entendi que estava errada a forma que ele fez porque tentou retornar a variável que recebia a função em si nesse código abaixo: x=funcao(b); printf("%d", x); Nesse caso, mesmo trocando o retorno da função pra int ele não funciona direito (teria que usar ponteiros talvez?). O seu funcionou porque estava retornando o valor em si e não a função toda: printf("%d: par\n", b); printf("%d: impar\n", b);
  3. if (rot != num ){ if(rot != num2) if(rot != num3) printf("ERRO! voce DEVE DIGITAR NUMEROS ENTRE 1, 2 E 3!"); } que confusão cara, não é melhor fazer: if (rot != num && rot != num2 && rot != num3) { printf("ERRO! você deve digitar numeros entre 1, 2 e 3!"); } ?
  4. Em C vejo muitos recomendando "The C programming language". E eu estou para ler um em C# chamado "C# in a nutshell" do Joseph Albarahi que parece ser uma boa referência e vejo sendo mencionado bastante em listas de "top 10" para tal linguagem. C++ eu não sei, sou menos familiarizado. Mas como disseram, qualquer coisa do Bjarne Stroustrup deve ser confiável porque o cara simplesmente criou a linguagem. Porém também imagino que alguns autores inteligentes demais nem sempre são tão didáticos (é o meu caso em relação ao Anders Hejlsberg, acho ele abstrato demais na comunicação), por vezes é difícil entender o que eles querem dizer. Vai de cada pessoa e do estilo que preferem.
  5. 1º erro: você se esqueceu de por o & do antes da variável b, por isso ele não está lendo: scanf("%d",b); o certo é: &b 2º erro: você criou uma variável x para armazenar a função e imprimir um valor, sendo que a própria função já imprime o que tem que imprimir, basta chamá-la printf("%d", x); deveria ser: funcao(b); Já testei aqui com as correções, está funcionando normal. Mas dá pra aprimorar, porém sendo que é um exercício básico e você está aprendendo, acho que por enquanto não há necessidade.
  6. Eu pensei no seguinte: imagina você cria uma classe ou interface ListaMain, aí depois dentro dela (normal mesmo sem o static void main etc.) crie as 3 listas matematica, java, etc. E aí depois cria um objeto dessa lista na class main e chama o metodo dentro dela. Exemplo: public class ListMain { List<Viideo> listaJava = new ArrayList<>(); List<Viideo> listaMatematica = new ArrayList<>(); List<Viideo> listaPyton = new ArrayList<>(); } (crie os getters etc.) --------------------------------------------------------------------------- Aí na classe main: ListMain lst = new ListMain(); lst.getListaJava.videoespecifico(); ou lst.getListaMatematica.videoespecifico(); etc. obs: eu usei "videoespecifico" de forma genérica, só pra dizer que depende do vídeo que você quer acessar. Eu imagino que seja mais ou menos por aí.
  7. É o seguinte, eu acho que não precisava ser tão complicado assim, por mim eu criava só 3 classes: 1 classe principal, outra do tipo vídeo e essa outra se referindo aos atributos de uma playlist. Dentro da classe principal você cria uma lista main e essa lista vai receber outras listas do tipo vídeo, não interessa se o vídeo é de matematica ou de java, isso é só para nomear as diferentes listas, não precisa criar uma classe pra matematica e outra pra java, ambas são playlists(listas) do tipo vídeo. Segundo ponto: você usou "vídeo" pra nome da lista e usou "viideo" com dois i pra nome da classe. Isso é confuso demais. Também é bom evitar de colocar acento agudo em nome de variável classe ou método. Use acentos somente se for escrever uma frase numa String por exemplo. Terceiro: qual IDE ou editor de texto você está usando? Eu testei aquele código do seu primeiro post no eclipse e estava funcionando normalmente a única coisa é que não estava marcado quais vídeos foram assistidos etc. Tem muita coisa que funciona no seu código mas pelo enunciado ser confuso e contraditório você pode ter acabado com dificuldades. O enunciado diz o seguinte: "Ciar uma Lista de Playlist(Lista Main)" - Ele pediu pra você criar uma lista e não uma classe. Mas depois o enunciado se contradiz: "Na Lista Main criar um método que retorna apenas os vídeos de uma Playlist especifica" - aqui ele está pedindo pra criar um método dentro de uma lista? Que eu saiba os métodos existem dentro das classes. Eu acho que ele quis dizer na classe main, ou seja na aplicação principal do programa. Também queria entender porque você criou um método main(String[] args) dentro dessa classe ListMain, porque assim, você criou 3 novos objetos dentro mas se for criar outros métodos, como eu vou chamar esses métodos na classe principal, sendo que já tem esse main que é estático? Fica meio complicado, ou eu sou meio leigo e não entendi. Você fez sozinho esse código?
  8. Eu não sei como fazer, você pode até criar um boolean mas daí pra saber se o vídeo foi assistido, o vídeo teria que ser acessado de alguma forma e programa ler que tal vídeo foi acessado e marcar true nesse boolean
  9. Não é melhor você criar uma interface funcionário? Ou então dexá-la como uma classe abstarct? Porque assim, você concorda que o professor é apenas um funcionário específico? Ele deveria ter todos os métodos bonificações etc. que um funcionário tem, a única diferença é que isso mudaria de funcionário para funcionário. Assim você consegue fazer um "override" nos métodos e aí quando estiver relacionado a professor ele vai fazer os cálculos necessários apenas para aquela subclasse.
  10. ou você pode usar uma pronta. A engine é basicamente o conjunto de códigos relacionado à: física do jogo, renderização de gráficos, efeitos sonoros, etc. Os criadores de jogos fazem as engines para poder reutilizá-las em outros jogos apenas fazendo algumas modificações, sem ter que escrever tudo do zero porque como você deve suspeitar, jogos podem ser bem complexos.
  11. o programa precisa ler os dados, ele não está lendo, você já pré-determinou os valores das matrizes aqui: matriz[0][0]=0; matriz[0][1]=0; ... matriz[1][0]=1; matriz[1][1]=1; O que o exercício quer é que você digite esses valores no terminal e aí ele vai armazenar na matriz. int matriz[3][4]; não entendi bem isso: se a matriz é quadrada, o número de linhas e colunas é mesmo. O certo não seria int matriz[2][2]; ? for(l=0; l<3; l++) { for(c=0; c<4;c++) { if(matriz [l][c]<menor) { menor=matriz[l][c]; } cout<<"O menor número é o: \n"; } isso não é um defeito, o programa está fazendo o que você mandou, l começando em zero, enquanto l for menor que 3, l = l + 1. E para cada uma dessas ocorrências, c começando em zero, enquanto c for menor que 4, c = c + 1. Isso forma uma matriz de 3 linhas e 4 colunas, ou seja, 12 itens e para cada uma dessas ocorrências imprimir "O menor número é o: " e isso "\n" serve para pular uma linha. Aí ele imprimiu 12 vezes "O menor número é o: " "O menor número é o: " "O menor número é o: " ...etc.
  12. Desculpa, eu me confundi. A última chave está se referindo à classe mesmo. O retorno está correto.
  13. se você quer ser o programador do dia a dia acho que serve. Agora se você quer entender mesmo e ir fundo nas teorias você vai ter que acabar lendo livros de programação e esses livros estão em sua maioria em inglês por serem muito técnicos, é arriscado traduzi-los, por isso evitam. Então sim, se você quer se especializar de fato e não só saber "codar", eu sou da opinião de que vai ter que ter um inglês intermediário pra avançado.
  14. cara, sinto em informar mas esse PC é bem obsoleto, mal deveria rodar windows 10 que dirá unity. Ainda mais sem placa de vídeo. Não é à toa que está lento. A unity é uma engine moderna, equiparável a unreal 4, precisa de um PC, mesmo que low end mas no mínimo moderno, com itens de 2017 pra cá, com DDR4 etc.
  15. talvez o problema esteja aqui: return builder.append("--------------------------------------------------") .append(System.lineSeparator()) .toString(); } Esse return tem que estar fora do loop For. Reparei que tem 2 chaves depois dele. Deixa ele por último, com uma chave só fechando. Porque o método inteiro deve retornar String, se estiver só dentro do For eu acho que não serve. Ou então, caso ele precise estar dentro do For, você tem que retornar algum outro valor String que se refere ao método principal 'public String toString();'
  16. public void addVideo(Viideo vídeo) { vídeo.add(vídeo);//aq } Isso é no mínimo confuso
  17. char resultado1 = verifica_vit; Aqui, tu esqueceu do parênteses no final 'verifica_vit()'. O programa está entendendo que resultado1 = uma variável qualquer chamada 'verifica_vit' que não foi inicializada e deve ter valor nulo ou algo do tipo ao invés da função, por isso está pulando pro último else que é empate quando não vale nem 'X' nem 'O'.
  18. É um problema comum no java, o que acontece + ou - é que na hora de ler o próximo, quando você usa nextLine(), ele meio que "come" a próxima linha. Eu geralmente resolvo colocando um 'leia.nextLine();' antes, só para gastar essa linha daí ficaria assim: System.out.print("Nome: "); leia.nextLine(); String nome = leia.nextLine(); geralmente resolve
  19. Por experiência própria, se você tiver realmente mais avançado, então pegue, com certeza vai abrir a sua cabeça se for um livro bom e completo. Caso contrário, não acho que valha a pena. Livros são muito técnicos, você vai entender a lógica mas não vai conseguir aplicar de cara e isso pode ser desmotivador, e alguns livros são básicos demais e por vezes contendo equívocos de definições. Pra mim funcionou melhor aprender primeiro bem na prática com alguém orientando e depois então ir a fundo na parte teórica dos livros. Mas vai de cada um, tem gente que aprende bem por teoria mas não acho que seja o caso da maioria. Além do mais, os melhores livros você vai achar em inglês, o que pode ser um obstáculo se seu inglês ainda não é fluente. Eu nunca leio livros só por ler, percebi que isso é muito contra produtivo porque se você lê um livro inteiro e só depois vai fazer na prática, você vai perceber que é igual ficar lendo livros sobre leis de trânsito e nunca dirigir, no dia que você for dirigir vai se lascar porque não treinou. Eu estudo fazendo as coisas em paralelo, por exemplo. Eu faço um projeto e vou treinando com erros e acerto na prática e nos momentos vagos que eu não estou afim da prática eu leio os livros pra reforças conceitos, para ir a fundo em conceitos que eu já tenho uma noção "por cima" e para aprender novos conceitos e macetes da linguagem. Se esse livro te interessou, vá lendo e conforme for aprendendo vá sempre testando o que aprendeu, mesmo que seja uma coisa simples que exige poucos comandos, quando você treina, você reforça o que aprendeu.
  20. 1- crie getters e setters para os atributos da classe ContaCorrente. Exemplo: public int getNumero() { return numero; } public void setNumero(int numero) { this.numero = numero; } 2(?)- Não sei se é exatamente isso quando diz "alterar a classe ContaCorrente para incorporar os dados do cliente", mas caso seja, faça com que a classe ContaCorrente "estenda" a classe Cliente. Exemplo: public class ContaCorrente extends Cliente { // etc... } e daí então aplique o que deseja fazer. Caso não seja, então pule pra explicação número 3. 3- Após ter instanciado um objeto da classe ContaCorrente dentro de Cliente como você fez, porém se você quiser criar o objeto de forma que ele receba os parâmetros. Então o certo seria: ContaCorrente cliente1 = new ContaCorrente(numero, nome, saldo, data); 4- Aí então, ainda na classe Cliente, basta atribuir às variáveis que você já declarou na classe ContaCorrente, os respectivos métodos get ou set mencionados anteriormente. Exemplo de set: nome = "John Doe"; cliente1.setNome(nome); 5- Remova isso "public static void main (String[] args) {}" da classe Cliente antes de setar os valores ou então, caso a classe Cliente seja sua classe principal, coloque os atributos da classe Cliente dentro desse método main e não fora como você fez. 6- Por questão de convenção da linguagem sugiro colocar os 2 construtores da classe ContaCorrente antes dos métodos e depois das variáveis e não por último de tudo como está no seu código. Obs: Se não era isso, então explique em mais detalhes o que você quer.
  21. Chega a ser ridículo isso no java, mesmo você estendendo a outra classe não dá pra fazer nada basicamente, tem que criar uma variável depois instanciar um objeto que aponta pra classe que tem os métodos que você quer usar.
  22. setIdFunc(Integer.parseInt(input.nextLine())); setNomeFunc(input.nextLine()); setDataContratacao(LocalDate.parse(input.nextLine())); setSalario(Double.parseDouble(input.nextLine())); setDocumento(input.nextLine()); Você já definiu esses métodos dentro da classe? Eu precisaria ver a classe 'Funcionario', porque só com esse código vai dar erro. funcionario.setIdFunc(Integer.parseInt(input.nextLine()));
  23. public Aluno (int matricula, String nome,float nota1,float nota2, float nota3, float media) { this.matricula=matricula; this.nome=nome; this.nota1=nota1; this.nota2=nota2; this.nota3=nota3; this.media=media; } Nessa parte do código o exercício diz que 'media' não precisa estar entre os parâmetros (não precisa estar nos parênteses), e o valor dela deve ser 0.
  24. Isso é logicamente impossível, como que algo vai ser maior que 999999 e menor que 111111 ao mesmo tempo ? Confesso que me pegou de surpresa quando li, achei engraçado rsrs.
  25. 1- precisa criar a classe carro 2- dentro da classe precisa definir as funções/métodos "liga", "acelera", etc. 3- quando for criar um objeto da classe carro no casso você fez "novoCarro = new Carro;" o certo seria "novoCarro = new Carro();" 4- colocar parênteses também quando for chamar as funções da classe no 'main'. Exemplo: você fez "meuCarro.liga" o certo seria meuCarro.liga();

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!