13
Linguagens de Programação
UMG
3
Linguagens de Programação
UMG
1
Linguagens de Programação
UMG
1
Linguagens de Programação
UMG
13
Linguagens de Programação
UMG
7
Linguagens de Programação
UMG
7
Linguagens de Programação
UMG
6
Linguagens de Programação
UMG
931
Linguagens de Programação
UMG
1
Linguagens de Programação
UMG
Texto de pré-visualização
DESCRIÇÃO Recomendado por um colega veterano você começou a estagiar numa grande empresa chamada LoseRar Infelizmente você entrou na empresa em um momento crítico Apesar da empresa oferecer um software muito bom e que muitos adoram ninguém quer pagar por ele A empresa então após anos de prejuízo colocou em suas mãos a tarefa de criar uma versão teste do sistema de validação que recebe várias chaves e as valida baseado nos seguintes critérios A chave é um código de 12 caracteres dividida em 3 setores e Cada setor possui uma lógica de validação e a chave só pode ser validada caso todos os setores sejam válidos Setor 1 Todos os caracteres devem ser letras maiúsculas e A soma do valor ASCII de todos os caracteres deve resultar em um número par Setor 2 Os caracteres desse setor devem corresponder a soma dos caracteres do primeiro e do último setor no intervalo ABCDYZ0129 repetindo quando passar do extremo Setor 3 Todos os caracteres devem ser números de 09 e A soma de todos os números deve resultar em um número primo Exemplo de chave válida FHBNJHEN4030 Note que uma chave já ativada não pode ser ativada novamente ENTRADA Seu programa receberá várias chaves durante a execução A quantidade de chaves será representada por um número n fornecido no início da execução SAÍDA Para cada chave recebida seu programa deverá imprimir na tela o resultado da validação informando Produto ativado com sucesso ou Chave invalida O Produto nao foi ativado Por fim no caso de uma chave válida mas já utilizada deverá ser impresso Essa chave ja foi utilizada EXEMPLOS DE EntradaSaída Entrada 3 FHBNJHEN4030 AADEHUID9988 FHBNJHEN4030 Saída Produto ativado com sucesso Chave invalida O Produto nao foi ativado Essa chave ja foi utilizada Entrada 4 SSAKVTBQ3116 XADO5CHT8245 HOOAMSOC5402 WHXA4LXB8401 Saída Produto ativado com sucesso Produto ativado com sucesso Chave invalida O Produto nao foi ativado Produto ativado com sucesso Entrada 7 DJVPMJ0U9055 OCTZSLY04951 HTSUM0UZ5725 NBYKQE0N3323 DJVPMJ0U9055 CFQHIOXQ6979 NBYKQE0N3323 Saída Produto ativado com sucesso Produto ativado com sucesso Produto ativado com sucesso Produto ativado com sucesso Essa chave ja foi utilizada Produto ativado com sucesso Essa chave ja foi utilizada Entrada 5 WQCOW1IS0764 LFIFQMOH5792 VORCXOXH2065 DIJOIRRP59A1 8LOJQ1PQ41D7 Saída Chave invalida O Produto nao foi ativado Chave invalida O Produto nao foi ativado Produto ativado com sucesso Chave invalida O Produto nao foi ativado Chave invalida O Produto nao foi ativado Entrada 2 LEOBREOI6007 KCJTNJJ2370A Saída Produto ativado com sucesso Chave invalida O Produto nao foi ativado Entrada 7 ZGP16MQR7619 FXBDM1KF7402 QRYRQS6Z018A FIGJFMLL0452 FIGJFMLL0452 FIGJFMLL0452 FXBDM1KF7402 Saída Chave invalida O Produto nao foi ativado Chave invalida O Produto nao foi ativado Chave invalida O Produto nao foi ativado Produto ativado com sucesso Essa chave ja foi utilizada Essa chave ja foi utilizada Chave invalida O Produto nao foi ativado Entrada 8 DVVPLV1U8065 QIDLSXHP2944 QZCJU4FO4535 P5BAXZGD8753 RITYYO2Z7691 FVUOOYYR9E43 GOKUGTM00526 VXRBZIXG4465 Saída Produto ativado com sucesso Chave invalida O Produto nao foi ativado Produto ativado com sucesso Chave invalida O Produto nao foi ativado Produto ativado com sucesso Chave invalida O Produto nao foi ativado Produto ativado com sucesso Chave invalida O Produto nao foi ativado A base do código deve ser exatamente a seguinte include stdioh include stringh include ctypeh define USADA Essa chave ja foi utilizada define INVALIDA Chave invalida O produto não foi ativado define VALIDA Produto ativado com sucesso int primoint n int main COMPLETE AQUI return 0 COMPLETE AQUI Deve somente ser feito no complete aqui Pode ser utilizado exclusivamente variáveis comandos condicionais comandos de repetição while dowhile e for vetores matrizes redefinição de tipos registros tipos enumerados funções e strings strlen strcpy ctrncpy strcat strncat strcmp strncmp etc Não utilizar ponteiros operadores ternários e nem qualquer ferramenta ainda mais avançada include stdioh include stringh include ctypeh define USADA Essa chave ja foi utilizada define INVALIDA Chave invalida O produto nao foi ativado define VALIDA Produto ativado com sucesso int primoint n if n 1 return 0 for int i 2 i i n i if n i 0 return 0 return 1 int main char setor15 setor25 setor35 int somaascii 0 somanumeros 0 Verificação do Setor 1 int setor1valido 1 for int j 0 j 4 j if isuppersetor1j setor1valido 0 break somaascii intsetor1j if setor1valido somaascii 2 1 Verificação do Setor 2 int setor2valido 1 for int j 0 j 4 j int charsum intsetor1j setor3j if charsum Z 9 charsum Z 9 A 0 1 if setor2j charsum setor2valido 0 break if setor2valido Verificação do Setor 3 int setor3valido 1 for int j 0 j 4 j if isdigitsetor3j setor3valido 0 break somanumeros intsetor3j 0 char chavesvalidas3 FHCFSSXAWHDJOCHTNBVOLEFIDVQZRIGO int n scanfd n char chaves1515 int usadas15 0 0 representa não usada 1 representa usada for int i 0 i n i scanfs chavesi for int i 0 i n i int chavevalida 0 int chaveusada 0 for int j 0 j sizeofchavesvalidas sizeofchavesvalidas0 j if strncmpchavesi chavesvalidasj2 0 chavevalida 1 if usadasj 1 printfs USADA chaveusada 1 else usadasj 1 break if chavevalida printfs INVALIDA continue if chaveusada continue printfs VALIDA return 0
13
Linguagens de Programação
UMG
3
Linguagens de Programação
UMG
1
Linguagens de Programação
UMG
1
Linguagens de Programação
UMG
13
Linguagens de Programação
UMG
7
Linguagens de Programação
UMG
7
Linguagens de Programação
UMG
6
Linguagens de Programação
UMG
931
Linguagens de Programação
UMG
1
Linguagens de Programação
UMG
Texto de pré-visualização
DESCRIÇÃO Recomendado por um colega veterano você começou a estagiar numa grande empresa chamada LoseRar Infelizmente você entrou na empresa em um momento crítico Apesar da empresa oferecer um software muito bom e que muitos adoram ninguém quer pagar por ele A empresa então após anos de prejuízo colocou em suas mãos a tarefa de criar uma versão teste do sistema de validação que recebe várias chaves e as valida baseado nos seguintes critérios A chave é um código de 12 caracteres dividida em 3 setores e Cada setor possui uma lógica de validação e a chave só pode ser validada caso todos os setores sejam válidos Setor 1 Todos os caracteres devem ser letras maiúsculas e A soma do valor ASCII de todos os caracteres deve resultar em um número par Setor 2 Os caracteres desse setor devem corresponder a soma dos caracteres do primeiro e do último setor no intervalo ABCDYZ0129 repetindo quando passar do extremo Setor 3 Todos os caracteres devem ser números de 09 e A soma de todos os números deve resultar em um número primo Exemplo de chave válida FHBNJHEN4030 Note que uma chave já ativada não pode ser ativada novamente ENTRADA Seu programa receberá várias chaves durante a execução A quantidade de chaves será representada por um número n fornecido no início da execução SAÍDA Para cada chave recebida seu programa deverá imprimir na tela o resultado da validação informando Produto ativado com sucesso ou Chave invalida O Produto nao foi ativado Por fim no caso de uma chave válida mas já utilizada deverá ser impresso Essa chave ja foi utilizada EXEMPLOS DE EntradaSaída Entrada 3 FHBNJHEN4030 AADEHUID9988 FHBNJHEN4030 Saída Produto ativado com sucesso Chave invalida O Produto nao foi ativado Essa chave ja foi utilizada Entrada 4 SSAKVTBQ3116 XADO5CHT8245 HOOAMSOC5402 WHXA4LXB8401 Saída Produto ativado com sucesso Produto ativado com sucesso Chave invalida O Produto nao foi ativado Produto ativado com sucesso Entrada 7 DJVPMJ0U9055 OCTZSLY04951 HTSUM0UZ5725 NBYKQE0N3323 DJVPMJ0U9055 CFQHIOXQ6979 NBYKQE0N3323 Saída Produto ativado com sucesso Produto ativado com sucesso Produto ativado com sucesso Produto ativado com sucesso Essa chave ja foi utilizada Produto ativado com sucesso Essa chave ja foi utilizada Entrada 5 WQCOW1IS0764 LFIFQMOH5792 VORCXOXH2065 DIJOIRRP59A1 8LOJQ1PQ41D7 Saída Chave invalida O Produto nao foi ativado Chave invalida O Produto nao foi ativado Produto ativado com sucesso Chave invalida O Produto nao foi ativado Chave invalida O Produto nao foi ativado Entrada 2 LEOBREOI6007 KCJTNJJ2370A Saída Produto ativado com sucesso Chave invalida O Produto nao foi ativado Entrada 7 ZGP16MQR7619 FXBDM1KF7402 QRYRQS6Z018A FIGJFMLL0452 FIGJFMLL0452 FIGJFMLL0452 FXBDM1KF7402 Saída Chave invalida O Produto nao foi ativado Chave invalida O Produto nao foi ativado Chave invalida O Produto nao foi ativado Produto ativado com sucesso Essa chave ja foi utilizada Essa chave ja foi utilizada Chave invalida O Produto nao foi ativado Entrada 8 DVVPLV1U8065 QIDLSXHP2944 QZCJU4FO4535 P5BAXZGD8753 RITYYO2Z7691 FVUOOYYR9E43 GOKUGTM00526 VXRBZIXG4465 Saída Produto ativado com sucesso Chave invalida O Produto nao foi ativado Produto ativado com sucesso Chave invalida O Produto nao foi ativado Produto ativado com sucesso Chave invalida O Produto nao foi ativado Produto ativado com sucesso Chave invalida O Produto nao foi ativado A base do código deve ser exatamente a seguinte include stdioh include stringh include ctypeh define USADA Essa chave ja foi utilizada define INVALIDA Chave invalida O produto não foi ativado define VALIDA Produto ativado com sucesso int primoint n int main COMPLETE AQUI return 0 COMPLETE AQUI Deve somente ser feito no complete aqui Pode ser utilizado exclusivamente variáveis comandos condicionais comandos de repetição while dowhile e for vetores matrizes redefinição de tipos registros tipos enumerados funções e strings strlen strcpy ctrncpy strcat strncat strcmp strncmp etc Não utilizar ponteiros operadores ternários e nem qualquer ferramenta ainda mais avançada include stdioh include stringh include ctypeh define USADA Essa chave ja foi utilizada define INVALIDA Chave invalida O produto nao foi ativado define VALIDA Produto ativado com sucesso int primoint n if n 1 return 0 for int i 2 i i n i if n i 0 return 0 return 1 int main char setor15 setor25 setor35 int somaascii 0 somanumeros 0 Verificação do Setor 1 int setor1valido 1 for int j 0 j 4 j if isuppersetor1j setor1valido 0 break somaascii intsetor1j if setor1valido somaascii 2 1 Verificação do Setor 2 int setor2valido 1 for int j 0 j 4 j int charsum intsetor1j setor3j if charsum Z 9 charsum Z 9 A 0 1 if setor2j charsum setor2valido 0 break if setor2valido Verificação do Setor 3 int setor3valido 1 for int j 0 j 4 j if isdigitsetor3j setor3valido 0 break somanumeros intsetor3j 0 char chavesvalidas3 FHCFSSXAWHDJOCHTNBVOLEFIDVQZRIGO int n scanfd n char chaves1515 int usadas15 0 0 representa não usada 1 representa usada for int i 0 i n i scanfs chavesi for int i 0 i n i int chavevalida 0 int chaveusada 0 for int j 0 j sizeofchavesvalidas sizeofchavesvalidas0 j if strncmpchavesi chavesvalidasj2 0 chavevalida 1 if usadasj 1 printfs USADA chaveusada 1 else usadasj 1 break if chavevalida printfs INVALIDA continue if chaveusada continue printfs VALIDA return 0