Ir ao conteúdo

isrnick

Membro Pleno
  • Posts

    1.558
  • Cadastrado em

  • Última visita

Tudo que isrnick postou

  1. O problema é que você está transformando os operadores e as somas em strings ao colocar aspas ao redor deles. Observe a diferença entre isto (correto): cout << "\n Os resultados: soma: " << numero1 + numero2 << ", multiplicacao: " << numero1 * numero2 << ", subtracao: "<< subtrai; E isto (errado): cout << "\n Os resultados: soma:" "<<numero1 + numero2", multiplicacao: "<<numero1 * numero2", subtracao: "<<soma - multiplica"; Observando que as partes em verde indicam as strings, e as partes em preto são comandos a serem interpretados pelo compilador...
  2. Compre um PC, não recomendo comprar notebook pra jogos se esse é o limite que você pode pagar.
  3. Se você sabe inglês StackOverflow normalmente tem a resposta pra sua pergunta sobre qualquer coisa em programação: http://stackoverflow.com/questions/562303/the-definitive-c-book-guide-and-list (Nesse tópico tem uma lista de livros mais indicados...)
  4. isrnick

    entrada

    Tem sim, só aumenta a complexidade um pouco: #include <stdio.h>#include <stdlib.h>int main(){ int num; char string[20], c; do { fscanf(stdin, "%s", string); /*poe na string o proximo conjunto de numeros até encontrar um espaco*/ num = atoi(string); /*converte o numero da string pra inteiro*/ printf("%d ", num); c = getchar(); /*pega o proximo caractere digitado*/ ungetc(c, stdin); /*devolve o caracter obtido pra a entrada padrao (standard input = stdin)*/ } while (c != '\n'); /*verifica se o caractere não é um caractere nova linha (= Enter), ou seja, se não acabaram os números digitados na linha, e para o ciclo se sim*/ return 0;}
  5. Talvez o problema seja que o script tem vários rótulos iguais? Quando você coloca "goto s_instalar" como o código vai decidir qual dos rótulos deve ser chamado se existem vários "s_instalar"? Você deve fazer cada rótulo único no script. Ex: :s_instalar01
  6. isrnick

    Python

    Basta saber que: multiplicacao(5,3) = 5 + multiplicacao(5,2) multiplicacao(5,2) = 5 + multiplicacao(5,1) multiplicacao(5,1) = 5 E analisando isto fica fácil ver a recursividade (multiplicacao(A, B ) = A + multiplicacao(A, B-1) ), e a condição pra para acabar a recursividade (se B igual a 1 então multiplicacao igual a A).
  7. Você não entendeu bem o que são e como funcionam ponteiros... Ponteiros indicam endereço da memória, ou seja, indica o local da memória onde se encontra o primeiro bit de um valor armazenado na memória. O tipo da variável ponteiro (float, int, char, etc) indica o comprimento (número de bits) do valor armazenado na memória, além de identificar como este valor deve ser usado/entendido. Mas toda variável por natureza já possui uma referência indicando o local onde seu valor é armazenado, e em C você pode obter esta referência usando o operador & antes do nome da variável. Se você lembrar bem você já usa isso frequentemente, na função scanf(). Ou seja, quando você faz algo como: scanf("%f", &variavelfloat); Você está passando para a função scanf() a referência que indica o local da memória onde é armazenado o valor da variável "variavelfloat". A função scanf() por sua vez armazenará esta referência num ponteiro do tipo float, assim quando a função fizer alterações no local da memória apontado por este ponteiro estará em efeito alterando o valor da variável "variavelfloat". Logo no caso da função postada pelo @Arm Outro o modo correto de usá-la no Main do programa seria este: float valor1, valor2, soma, subtracao, multiplicacao, divisao;...calculadora(valor1, valor2, &soma, &subtracao, &multiplicacao, &divisao); Assim, você está passando as referências das variáveis "soma", "subtracao", "multiplicacao" e "divisao" para a função, e estas referências são armazenadas nos respectivos ponteiros declarados na função, e as alterações feitas nos endereços de memória apontados por eles (ou seja as operações realizadas na função) estarão alterando os valores destas variáveis no Main do programa, aí o resultado pode ser obtido usando as variáveis normalmente no Main (do mesmo modo que você sempre fez no caso do scanf() ).
  8. isrnick

    ciclos

    Não, você tem razão, eu me enganei, a função exit() deve encerrar o programa não importa onde for chamada, ela faz parte da livraria padrão (standard library), então talvez você não tenha incluso a <stdlib.h> no seu programa?
  9. isrnick

    entrada

    Nesse caso você tem que criar uma condição de saída do loop de entrada de dados... Por exemplo, se você está recebendo estes dígitos como tipo int, uma condição de parada poderia ser a pessoa digitar um número negativo, ou um número com mais de 1 dígito (ou seja, maior que 9). Se está lendo como tipo char, você pode usar um caractere que indica o fim da entrada de dígitos, como o caractere ponto final (.), por exemplo. Ou então verificar que o caractere é um dos 10 dígitos possíveis, e parar se a pessoa digitar qualquer caractere que não seja um número.
  10. isrnick

    ciclos

    O MAIN do programa também é uma função, normalmente declarada como sendo do tipo int, e o programa é finalizado quando esta função retorna algum valor (normalmente 0 quando não há erros, usando return 0 ou no seu caso exit(0) ). Se você fizer uma condição pra sair de uma função que foi chamada dentro da função MAIN, então o programa apenas retornará para a função MAIN e continuará a partir do ponto em que a função foi chamada.
  11. isrnick

    entrada

    Você pode facilmente contar quantos dígitos o número tem, basta dividi-lo por 10 várias vezes (ou seja, ciclicamente), até que o número se torne igual a 0 e ir contando quantas vezes foi necessário dividir por 10.
  12. No caso a variável aí nesse exemplo seria do tipo float ou double, e não int... E a biblioteca pra fazer isso acredito que seja a "locale.h"...
  13. Nós pesquisamos mais alguns modelos mas ele acabou escolhendo o Samsung Expert X40 recomendado por você mesmo. Obrigado.
  14. Estou procurando um notebook para um amigo, e ele pretende usar o notebook pra trabalhar com design de bordados, então o notebook precisa rodar bem programas de edição de imagem. Os requisitos mínimos que ele precisa são estes: Tela: 15.6" (com boa qualidade de imagem) Processador Intel Core i5 Memória RAM: 8GB Placa de vídeo: Nvídia simples (830M e similares) Disco rígido: Não necessita muito espaço, 500 GB pra cima já atende. Na faixa de uns R$ 2.300,00. Alguém poderia recomendar alguns modelos? Obrigado.
  15. Vamos usar seu exemplo: 11 % 2 = 1 11 / 2 = 5 5 % 2 = 1 5 / 2 = 2 2 % 2 = 0 2 / 2 = 1 1 % 2 = 1 1 / 2 = 0 Se você imprimir logo após calcular o resto, ele vai imprimir os dígitos no prompt primeiro 1, depois 1, depois 0 e por fim 1, ou seja sai o número binário ao contrário, que não é o que desejamos. O que precisamos é colocar os dígitos no casa/sequência certa... Mas como fazer isso? Uma possibilidade seria gerar uma número inteiro que represente o número binário desejado e imprimi-lo, neste exemplo o número seria 1011 (mil e onze), que é representação do número decimal 11 em binário. Então vamos ver as casas do número desejado neste exemplo: casas 4 3 2 1 | | | |número 1 0 1 1 Queremos que o primeiro dígito fique na casa 1, que é a casa das unidades. Que o segundo dígito fique na casa 2, ou seja na casa das dezenas. Que o terceiro fique na casa 3, a casa das centenas, e assim por diante... Então seja Dn o enésimo dígito binário, logo temos que: Número inteiro que representa um número binário (com 4 dígitos) = D4 * 1000 + D3 * 100 + D2 * 10 + D1 * 1 = D4 * 10 * 10 * 10 + D3 * 10 * 10 + D2 * 10 + D1 * 1 = D4 * 103 + D3 * 102 + D2 * 101 + D1 * 100 ( Generalizando: Representação = {SOMATÓRIA 1 n } [ Dn * 10 (n-1) ] ) Então apenas deslocamos cada novo dígito calculado para a esquerda em uma casa aumentando o multiplicador em uma ordem de magnitude (= x10) a cada execução do ciclo, e então somamos aos anteriores, para obter a representação do número binário.
  16. Você precisa armazenar em uma variável o número binário, e para posicionar o dígito na posição correta basta usar um multiplicador que comece com valor 1 e que seja aumentado em 1 ordem de grandeza a cada ciclo, ou seja, seja multiplicado por 10 a cada ciclo, para fazer o deslocamento correto do dígito binário. E aí imprime o binário após obter o número binário completo. Deste modo: #include <iostream>using namespace std;int main() { int NUM,REST,NUMBIN,MULTI; cout<<"\n Digite o numero:"; cin>>NUM; NUMBIN = 0; MULTI = 1; while (NUM>0) { REST = NUM%2; NUMBIN = NUMBIN + REST * MULTI; NUM = NUM/2; MULTI = MULTI*10; } cout<<NUMBIN; return 0;} Edit: Correção das variáveis com nomes diferentes (todos os MULT para MULTI)...
  17. Não é preciso calcular uma raiz quadrada, pois é possível usar o método da série de frações, e isto convergirá para o número de ouro: A menos que tenha sido especificado que é necessário achar o número de ouro resolvendo o polinômio x² -x -1 = 0.
  18. Vou repostar aqui o que postei em outro tópico sobre aprender a programar com Python, pois acho que está mais completo que minha resposta acima, e pode ajudar as pessoas que estão iniciando em programação:
  19. Eu assumo que você não pode usar a biblioteca math.h? Por que o número de ouro é igual a (1 + √5) / 2... Então um simples ciclo que fique calculando phi = 1 + 1/phi , com phi inicial igual a 1, até atingir o nível de precisão desejado deve resolver seu problema.
  20. Esse tópico é antigo então acho que fazia sentido começar com Pascal na época, mas hoje em dia eu recomendaria começar com Python. Python é bem simples de entender, já que foi desenvolvida com o propósito de fazer uma linguagem sucinta e facilmente legível, para facilitar a programação e entendimento do código, mas ao mesmo tempo ser útil e poderosa. Ela é altamente recomendada para iniciantes, mas ao mesmo tempo é uma linguagem atual, com aplicação em todas as áreas (programação em ambiente científico, desenvolvimento de websites, programas locais, jogos, etc), além de ser multiplataforma. Python pode ser usado para ensinar ao iniciante lógica de programação e programação procedural, mas também possibilita que o aluno possa evoluir para aprender outros paradigmas de programação como a programação orientada a objetos, sem ter que aprender e migrar para uma outra linguagem de programação. E ao se tornar proficiente na linguagem o estudante já estará habilitado numa linguagem com grande aplicação no mercado atual...

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!