Crie um algoritmo que leia um número (com qualquer número de dígitos) em uma base numérica de ordem < 10 e calcule o número correspondente na base decimal. O número da ordem da base (e.g., 2 para binária, 3 para ternária, 8 para octal, etc.) deve também ser informado pelo usuário.

Passo 1

Vamos entender o que a questão está pedindo. Precisamos criar um algoritmo que receba um número em qualquer base menor que 10 (como binário, ternário, octal, etc.) e converta esse número para a base decimal. Para isso, vamos precisar conhecer o sistema de numeração posicional e como cada dígito contribui para o valor total na base decimal.

Passo 2

Primeiro, precisamos saber qual é a base do número que vamos converter. Por exemplo, se a base for 2 (binária), 3 (ternária), 8 (octal), etc. Além disso, o número pode ter qualquer quantidade de dígitos.

Passo 3

A teoria por trás da conversão de uma base para decimal envolve multiplicar cada dígito do número pela base elevada à posição do dígito, começando da direita com posição 0. A soma desses valores dará o número equivalente na base decimal.
A fórmula geral para converter um número de base para decimal é:
Onde são os dígitos do número na base original.

Passo 4

Vamos criar o algoritmo passo a passo:
  1. Entrada de Dados:
    • Solicitar ao usuário que insira o número a ser convertido.
    • Solicitar ao usuário que informe a base do número.
  2. Processamento:
    • Inicializar uma variável para armazenar o resultado decimal, começando com 0.
    • Percorrer cada dígito do número, começando da direita (posição 0).
    • Para cada dígito, converter o caractere para um número inteiro.
    • Multiplicar o dígito pela base elevada à posição atual.
    • Somar o resultado à variável do resultado decimal.
  3. Saída:
    • Mostrar o número convertido na base decimal.

Passo 5

Vamos exemplificar com um número específico. Suponha que o usuário insira o número “213” na base 4.
Aplicando a fórmula:

Resposta

O número “213” na base 4 corresponde a 39 na base decimal.

Exercícios relacionados

Crie um algoritmo de caixa eletrônico que lê a quantidade de dinheiro a ser sacado e imprime a menor quantidade de notas a ser dada ao usuário. A sua máquina de saque eletrônico é carregada com 1.000 (mil) notas de 100, 50, 20, 10, 5 e 1 cada. Imprimir também a quantidade de cada nota a ser dada ao usuário. Lembre-se que você tem uma quantidade finita de cada tipo de nota. O final da leitura é marcado pelo valor 0 que não deve ser calculado.
Exemplo: 98 = uma nota de 50, duas notas de 20, uma nota de 5, e três notas de 1.
Perceba que a cada saque há uma quantidade menor de cada tipo de notas.
Outra situação é quando não é possível sacar o dinheiro com a quantidade de notas existentes. Neste caso, o programa deve cancelar a operação e informar o usuário que não é possível realizar o saque.
Crie um algoritmo que leia um número N e verifique se ele é primo. O seu programa deve fazer o MíNIMO de interações possíveis.
Jogo de dados. Dois jogadores estão confrontando-se entre si, usando dois dados, numerados de 1 até 6 (dado <random.randint(1,6)). Vence uma rodada quem obtiver o maior número no lançamento. Entretanto, caso um jogador obtiver um lançamento com dois dados iguais (por exemplo, 1 e 1 , 2 e . ) e o outro jogador não, o jogador que tiver lançado a dupla ganha. Caso os dois jogadores fizerem o lançamento e o resultado for de duas duplas para os dois jogadores, ganha o jogador com a dupla maior. A disputa é em 11 lançamentos. Indique o jogador vencedor ou se houve empate.
Faça um programa que preencha uma matriz com valores aleatórios e calcule o seu determinante. Uma vez a matriz lida, a parte que faz o cálculo do determinante não se pode ter mais de 4 linhas e não pode haver mais de três células especificadas por linha (em outras palavras, você não pode colocar em uma única linha a fórmula do determinante).