programa para verificar códigos numéricos
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).
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
Curtidas 0