·
Sistemas de Informação ·
Estrutura de Dados
Send your question to AI and receive an answer instantly
Recommended for you
7
Atividade Pratica Sistemas Operacionais - Simulacao de Escalonamento de Processos
Estrutura de Dados
IFF
6
Estruturas de Dados - Atividade Avaliativa 2 - Listas Encadeadas e Sistema Bancario em C
Estrutura de Dados
IFF
5
Atividade Avaliativa 2 - Implementacao de Pilha Estatica para Analise de Expressoes
Estrutura de Dados
IFF
6
Introdução ao Conceito de Pilhas e Filas Utilizando Listas Encadeadas
Estrutura de Dados
IFF
3
Lista de Exercicios Avaliativa 2 - Estruturas de Dados - Alocacao Dinamica e Arquivos
Estrutura de Dados
IFF
7
Atividade Prática Sistemas Operacionais - Simulação de Escalonamento de Processos
Estrutura de Dados
IFF
14
Estruturas de Dados - Árvores: Conceitos e Implementação em C
Estrutura de Dados
IFF
12
Busca em Estruturas de Dados Vetores e Arvores Binarias PUCRio
Estrutura de Dados
IFF
Preview text
INSTITUTO FEDERAL FLUMINENSE IFF Campus Itaperuna Prof Leandro Fernandes dos Santos leandrofsantosiffedubr Disciplina Estruturas de Dados Lista de Exercícios Avaliativa 2 Assunto Arquivos e Recursividade Turma Sistemas de Informação 3º Período Objetivo A presente lista de exercícios tem como objetivo a prática dos conceitos de manipulação de arquivos e recursão em C Observações e regras de entrega Esta atividade deverá ser realizada de forma individual Terá o valor de 2 pontos na composição da nota na A1 A solução deverá ser enviada por meio da plataforma runcodes até as 23h59min do dia 27072022 Cada exercício deverá ser submetido de forma individual na plataforma por meio de um arquivo c com o nome do respectivo exercício Exemplo exercicio1c Pontos importantes a serem seguidos Conformidade com os requisitos aqui apresentados Códigos estruturados em funções e bem indentados Caso seja detectada a ocorrência de plágio será atribuída nota zero a todos os envolvidos O não atendimento dos requisitos especificados neste documento acarretará em perda de pontos Nas questões ao solicitar um determinado dado ao usuário não é necessário exibir nenhum tipo de texto basta fazêlo com um simples scan f Esta abordagem deve ser seguida para que os casos de teste sejam executados de forma correta no runcodes ATENÇÃO Submissões que apresentarem erros de compilação ou falhas de segmentação segmentation fault no runcodes NÃO serão corrigidas Instituto Federal FluminenseIFF Campus Itaperuna Especificacao Exercıcio 1 1 ponto Validando cartoes de credito Em todos os cartoes de credito existe um numero impresso que tambem e armazenado em alguma base de dados em algum lugar desta forma quando o cartao e utilizado a empresa responsavel sabera quais sao os dados basicos necessarios para realizar a operacao Existem muitas pessoas com cartoes de credito pelo mundo entao os numeros destes cartoes sao geral mente grandes por exemplo American Express Amex utiliza 15 dıgitos MasterCard 16 e Visa usa 13 e 16 dıgitos Estes numeros sao um pouco exagerados pois so a American Express por exemplo poderia imprimir cerca de 1015 cartoes unicos Os numeros de cartao de credito tambem costumam possuir uma estrutura predefinida Todos da American Express comecam com 34 ou 37 a maioria dos cartoes MasterCard comecam com 51 52 53 54 ou 55 e todos os cartoes Visa comecam com 4 Os cartoes tambem possuem o que chamamos de soma de verificacaochecksum Este processo estabelece uma relacao Matematica entre os numeros e permite que computadores ou seres humanos possam validar um determinado numero de cartao sem realizar um consulta a algum banco de dados o que na maioria das vezes pode ser um pouco lento Entao qual e o segredo Bem a grande maioria dos cartoes utiliza um algoritmo inventado por Hans Peter Luhn da IBM De acordo com o Algoritmo de Luhn podemos verificar se um numero de cartao de credito e sintaticamente valido da seguinte maneira 1 Multiplique cada dıgito ımpar por 2 comecando com o penultimo dıgito do numero e em seguida some os dıgitos desses produtos 2 Adicione a esta soma a soma dos dıgitos que nao foram multiplicados por 2 3 Se o ultimo dıgito desta soma final for igual a 0 entao o numero e valido Vamos a um exemplo para ilustrar os passos acima Suponha um cartao com o seguinte numero 4003600000000014 1 Antes de iniciar vamos sublinhar cada dıgito ımpar comecando com o penultimo Ok agora vamos multiplicar cada numero sublinhado por 2 O que nos da 2 Instituto Federal FluminenseIFF Campus Itaperuna Agora adicionamos os dıgitos que compoem este produto 2 Agora temos que somar o resultado anterior 13 com a soma dos dıgitos que nao foram multiplicados por 2 iniciando do final 3 Como o ultimo dıgito da soma 20 e 0 entao este numero de cartao e legıtimo Como pode ser visto validar um numero de cartao de credito manualmente pode ser um pouco demorado entao nesta tarefa vocˆe devera criar um programa em C que realize a validacao de numeros de cartoes de credito Para isso seu programa devera Solicitar a digitacao do caminho de um arquivo a ser lido Ler um conjunto de numeros disponibilizados no arquivo de entrada Os numeros deverao ser lidos como o tipo unsigned long long int llu Para cada numero lido seu programa devera realizar a validacao e classificalo usando o Algoritmo de Luhn explicado acima Seu algoritmo devera classificar os cartoes como sendo AMEX MASTERCARD VISA INVALIDO Para a classificacao dos cartoes nas bandeiras citadas vocˆe devera considerar os requisitos que se encontram no inıcio da questao 3 Observação Para cada exercício especificado abaixo você deverá fornecer uma solução usando a abordagem iterativa e outra recursiva Cada solução apresentada deverá possuir o seguinte padrão de nomenclatura exercicioxiter e exercicioxrec onde x corresponde ao número do exercício Exercício 2 025 pontos Escreva uma função em C chamada mod que retorne o resto da divisão entre dois números inteiros a e b sem utilizar o operador Tanto a versão iterativa quanto a versão recursiva deverão seguir o protótipo int modint a int b onde a representa o dividendo e b o divisor Exercício 3 025 pontos Escreva uma função em C chamada div que retorne a divisão inteira sem considerar casas decimais entre dois números inteiros a e b sem utilizar o operador A versão iterativa deverá seguir o protótipo int divint a int b onde a representa o dividendo e b o divisor Os parâmetros da versão recursiva será de sua responsabilidade definilos Exercício 4 025 pontos Escreva uma função em C chamada divisores que imprima todos os divisores de um numero inteiro passado por parâmetro A versão iterativa deverá seguir o protótipo void divisoresint n Os parâmetros da versão recursiva será de sua responsabilidade definilos Não é necessário verificar a positividade do valor n considere que o valor n sempre será inteiro e positivo Exercício 5 025 pontos Escreva uma função em C chamada mdcab que calcule o Máximo Divisor Comum MDC entre dois números inteiros a e b O programa deve ser implementado considerando o Algoritmo de Euclides no qual pode ser definido pela seguinte função recursiva m d c ab a se b 0 m d c br se b 0 Onde r a b Instituto Federal FluminenseIFF Campus Itaperuna Comece a tentar resolver os exercıcios o quanto antes enquanto os assuntos tratados estao frescos na memoria e o prazo para terminalo esta tao longe quanto jamais podera estar Bom Trabalho 5
Send your question to AI and receive an answer instantly
Recommended for you
7
Atividade Pratica Sistemas Operacionais - Simulacao de Escalonamento de Processos
Estrutura de Dados
IFF
6
Estruturas de Dados - Atividade Avaliativa 2 - Listas Encadeadas e Sistema Bancario em C
Estrutura de Dados
IFF
5
Atividade Avaliativa 2 - Implementacao de Pilha Estatica para Analise de Expressoes
Estrutura de Dados
IFF
6
Introdução ao Conceito de Pilhas e Filas Utilizando Listas Encadeadas
Estrutura de Dados
IFF
3
Lista de Exercicios Avaliativa 2 - Estruturas de Dados - Alocacao Dinamica e Arquivos
Estrutura de Dados
IFF
7
Atividade Prática Sistemas Operacionais - Simulação de Escalonamento de Processos
Estrutura de Dados
IFF
14
Estruturas de Dados - Árvores: Conceitos e Implementação em C
Estrutura de Dados
IFF
12
Busca em Estruturas de Dados Vetores e Arvores Binarias PUCRio
Estrutura de Dados
IFF
Preview text
INSTITUTO FEDERAL FLUMINENSE IFF Campus Itaperuna Prof Leandro Fernandes dos Santos leandrofsantosiffedubr Disciplina Estruturas de Dados Lista de Exercícios Avaliativa 2 Assunto Arquivos e Recursividade Turma Sistemas de Informação 3º Período Objetivo A presente lista de exercícios tem como objetivo a prática dos conceitos de manipulação de arquivos e recursão em C Observações e regras de entrega Esta atividade deverá ser realizada de forma individual Terá o valor de 2 pontos na composição da nota na A1 A solução deverá ser enviada por meio da plataforma runcodes até as 23h59min do dia 27072022 Cada exercício deverá ser submetido de forma individual na plataforma por meio de um arquivo c com o nome do respectivo exercício Exemplo exercicio1c Pontos importantes a serem seguidos Conformidade com os requisitos aqui apresentados Códigos estruturados em funções e bem indentados Caso seja detectada a ocorrência de plágio será atribuída nota zero a todos os envolvidos O não atendimento dos requisitos especificados neste documento acarretará em perda de pontos Nas questões ao solicitar um determinado dado ao usuário não é necessário exibir nenhum tipo de texto basta fazêlo com um simples scan f Esta abordagem deve ser seguida para que os casos de teste sejam executados de forma correta no runcodes ATENÇÃO Submissões que apresentarem erros de compilação ou falhas de segmentação segmentation fault no runcodes NÃO serão corrigidas Instituto Federal FluminenseIFF Campus Itaperuna Especificacao Exercıcio 1 1 ponto Validando cartoes de credito Em todos os cartoes de credito existe um numero impresso que tambem e armazenado em alguma base de dados em algum lugar desta forma quando o cartao e utilizado a empresa responsavel sabera quais sao os dados basicos necessarios para realizar a operacao Existem muitas pessoas com cartoes de credito pelo mundo entao os numeros destes cartoes sao geral mente grandes por exemplo American Express Amex utiliza 15 dıgitos MasterCard 16 e Visa usa 13 e 16 dıgitos Estes numeros sao um pouco exagerados pois so a American Express por exemplo poderia imprimir cerca de 1015 cartoes unicos Os numeros de cartao de credito tambem costumam possuir uma estrutura predefinida Todos da American Express comecam com 34 ou 37 a maioria dos cartoes MasterCard comecam com 51 52 53 54 ou 55 e todos os cartoes Visa comecam com 4 Os cartoes tambem possuem o que chamamos de soma de verificacaochecksum Este processo estabelece uma relacao Matematica entre os numeros e permite que computadores ou seres humanos possam validar um determinado numero de cartao sem realizar um consulta a algum banco de dados o que na maioria das vezes pode ser um pouco lento Entao qual e o segredo Bem a grande maioria dos cartoes utiliza um algoritmo inventado por Hans Peter Luhn da IBM De acordo com o Algoritmo de Luhn podemos verificar se um numero de cartao de credito e sintaticamente valido da seguinte maneira 1 Multiplique cada dıgito ımpar por 2 comecando com o penultimo dıgito do numero e em seguida some os dıgitos desses produtos 2 Adicione a esta soma a soma dos dıgitos que nao foram multiplicados por 2 3 Se o ultimo dıgito desta soma final for igual a 0 entao o numero e valido Vamos a um exemplo para ilustrar os passos acima Suponha um cartao com o seguinte numero 4003600000000014 1 Antes de iniciar vamos sublinhar cada dıgito ımpar comecando com o penultimo Ok agora vamos multiplicar cada numero sublinhado por 2 O que nos da 2 Instituto Federal FluminenseIFF Campus Itaperuna Agora adicionamos os dıgitos que compoem este produto 2 Agora temos que somar o resultado anterior 13 com a soma dos dıgitos que nao foram multiplicados por 2 iniciando do final 3 Como o ultimo dıgito da soma 20 e 0 entao este numero de cartao e legıtimo Como pode ser visto validar um numero de cartao de credito manualmente pode ser um pouco demorado entao nesta tarefa vocˆe devera criar um programa em C que realize a validacao de numeros de cartoes de credito Para isso seu programa devera Solicitar a digitacao do caminho de um arquivo a ser lido Ler um conjunto de numeros disponibilizados no arquivo de entrada Os numeros deverao ser lidos como o tipo unsigned long long int llu Para cada numero lido seu programa devera realizar a validacao e classificalo usando o Algoritmo de Luhn explicado acima Seu algoritmo devera classificar os cartoes como sendo AMEX MASTERCARD VISA INVALIDO Para a classificacao dos cartoes nas bandeiras citadas vocˆe devera considerar os requisitos que se encontram no inıcio da questao 3 Observação Para cada exercício especificado abaixo você deverá fornecer uma solução usando a abordagem iterativa e outra recursiva Cada solução apresentada deverá possuir o seguinte padrão de nomenclatura exercicioxiter e exercicioxrec onde x corresponde ao número do exercício Exercício 2 025 pontos Escreva uma função em C chamada mod que retorne o resto da divisão entre dois números inteiros a e b sem utilizar o operador Tanto a versão iterativa quanto a versão recursiva deverão seguir o protótipo int modint a int b onde a representa o dividendo e b o divisor Exercício 3 025 pontos Escreva uma função em C chamada div que retorne a divisão inteira sem considerar casas decimais entre dois números inteiros a e b sem utilizar o operador A versão iterativa deverá seguir o protótipo int divint a int b onde a representa o dividendo e b o divisor Os parâmetros da versão recursiva será de sua responsabilidade definilos Exercício 4 025 pontos Escreva uma função em C chamada divisores que imprima todos os divisores de um numero inteiro passado por parâmetro A versão iterativa deverá seguir o protótipo void divisoresint n Os parâmetros da versão recursiva será de sua responsabilidade definilos Não é necessário verificar a positividade do valor n considere que o valor n sempre será inteiro e positivo Exercício 5 025 pontos Escreva uma função em C chamada mdcab que calcule o Máximo Divisor Comum MDC entre dois números inteiros a e b O programa deve ser implementado considerando o Algoritmo de Euclides no qual pode ser definido pela seguinte função recursiva m d c ab a se b 0 m d c br se b 0 Onde r a b Instituto Federal FluminenseIFF Campus Itaperuna Comece a tentar resolver os exercıcios o quanto antes enquanto os assuntos tratados estao frescos na memoria e o prazo para terminalo esta tao longe quanto jamais podera estar Bom Trabalho 5