programa para verificar códigos numéricos

03/11/2021

3

Faça um programa para verificar códigos numéricos (números inteiros positivos maiores que 0) fornecidos pelo usuário. O conteúdo de cada código tem n dígitos no seguinte formato:

dn-1...d4d3d2d1d0

Cada par de dígitos adjacentes forma uma dezena no código informado. Assim a dezena 0 é formada pelos dígitos d1d0, a dezena 1 é formada pelos dígitos d3d2, a dezena 2 é formada pelos dígitos d5d4, ... a dezena n é formada pelos dígitos d2*n+1d2*n. Caso o código tenha um número ímpar de dígitos a dezena "mais à esquerda" terá apenas 1 algarismo.

Por exemplo, no código 5011223 termos 7 dígitos, ou seja um total de 4 dezenas, a saber:

a dezena 0 é 23, a dezena 1 é 12, a dezena 2 é 01 e a dezena 3 é 05;
OBS1: note que o dígito "mais à esqueda" pode ser 0. Por exemplo, o código 054321 tem as mesmas dezenas do código 54321.

Note também que para trabalhar com uma quantidade maior de dígitos o programa deve usar algumas variáveis inteiras de 64 bits (tipo long long).

Seu programa deve ler um código (informado pelo usuário) e informar caso não seja maior que 0.

Para um código válido o programa deve informar: quantos dígitos tem o código, quantas dezenas tem o código, se o código possui ou não dezenas repetidas e, caso tenha, imprimir qual dezena mais repete e quantas vezes repete.

Seu programa deve definir e usar as seguintes funções:

Função numDigitos: essa função recebe um código em um inteiro tipo long long (passado por valor) e deve retornar a quantidade de dígitos no código. OBS2: essa função DEVE ser feita usando a repetição com um while. Usar o while nessa função faz parte do exercício.

Função numDezenas: essa função recebe um código em um inteiro tipo long long (passado por valor) e deve retornar a quantidade de dezenas no código. OBS3: essa função DEVE chamar a função numDigitos.

Função dezena: essa função recebe um código em um inteiro tipo long long (passado por valor), um número inteiro n (também passado por valor) e deve retornar o valor da dezena n do código.
Função temRepeticoes: essa função recebe como primeiro parâmetro um código em um inteiro tipo long long e deve retornar 1 (verdadeiro) ou 0 (falso) indicando se o código tem ou não dezenas repetidas. A função deve produzir também outros dois valores via parâmetros passados por referência: o valor da dezena que mais se repete no código e o número de vezes que se repete. Caso exista mais de uma dezena "mais repetida" a função deve retornar a que está mais à direita no código. OBS4: essa função DEVE chamar a funções numDezenas() e dezena() (pelo menos essas duas, mas pode chamar outras caso seja conveniente).
OBSERVAÇÕES:

Nenhuma das funções pode ler valores do teclado ou exibir valores na tela.

Todos os dados digitados devem ser lidos e exibidos na tela com cin e cout usados apenas no programa principal (main).

As funções devem ter:

tipos e ordem dos parâmetros e valor de retorno conforme especificações acima (na descrição das funções).
Maysa

Maysa

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários,
consulte nossa política de privacidade.

Aceitar