22
Introdução à Lógica e Programação
UNIA
20
Introdução à Lógica e Programação
UNIA
10
Introdução à Lógica e Programação
UNIA
12
Introdução à Lógica e Programação
UNIA
25
Introdução à Lógica e Programação
UNIA
5
Introdução à Lógica e Programação
UNIA
2
Introdução à Lógica e Programação
UNIA
5
Introdução à Lógica e Programação
UNIA
4
Introdução à Lógica e Programação
UNIA
14
Introdução à Lógica e Programação
UNIA
Texto de pré-visualização
Algoritmos e Lógica de Programação Roteiro Aula Prática 2 ROTEIRO DE AULA PRÁTICA NOME DA DISCIPLINA Algoritmos e Lógica de Programação OBJETIVOS Definição dos objetivos da aula prática Desenvolver um programa utilizando os fundamentos da lógica de programação de maneira estruturada utilizando recursos básicos como estruturas de decisão e repetição e uso de variáveis e seus tipos INFRAESTRUTURA Instalações Computador com o programa Dev CC Materiais de consumo Descrição Quantidade de materiais por procedimentoatividade Computador 1 por aluno Software Sim X Não Em caso afirmativo qual Dev CC Pago Não Pago X Tipo de Licença Gratuita Descrição do software DevC é um ambiente de desenvolvimento integrado livre que utiliza os compiladores do projeto GNU para compilar programas para o sistema operacional Microsoft Windows Suporta as linguagens de programação C e C e possui toda a biblioteca ANSI C Equipamento de Proteção Individual EPI NSA PROCEDIMENTOS PRÁTICOS Desenvolvimento de um programa utilizando a Linguagem CC Atividade proposta Desenvolvimento de um programa utilizando a Linguagem CC 3 Procedimentos para a realização da atividade Você deverá Realizar o download e instalar o DEV CC o aluno poderá utilizar outro ambiente de desenvolvimento no entanto é importante que a linguagem utilizada seja o CC Após a instalação do programa o aluno deverá abrir um projeto Arquivo Novo Projeto como indicado na Figura 1 Figura 1 Criando um projeto Uma nova janela vai se abrir e nesta o aluno escolherá a opção Console Application e Projeto C como indicado na Figura 2 Figura 2 Criando um projeto 4 Uma nova janela aparecerá o aluno deverá escolher qual pasta o projeto será armazenado e qual é o nome deste projeto como indicado na Figura 3 Figura 3 Salvando e renomeando o projeto Após esta configuração o ambiente de desenvolvimento está pronto para ser utilizado e elaborar o problema proposto a seguir Problema Proposto Faça um programa problema utilizando conjectura de Collatz Esta conjuntura toma um número natural n se n for par será dividido por 2 se n for ímpar será multiplicado por 3 e ao resultado será somado 1 Repetese o processo indefinidamente A Conjectura de Collatz estabelece que com essas duas regras simples todos os números naturais chegam até 1 e a partir daí o laço 1421421421 se repete indefinidamente Matematicamente as regras são n n2 se n é par n 3n 1n se n é ímpar Vamos então fazer um programa que calcula todos os números da sequência de Collatz para uma entrada qualquer A sequência de comandos é Entrar com um número inteiro positivo superior a 1 Se o número for par dividir por dois Se o número for ímpar multiplicar por três e somar 1 Pela conjectura de Collatz a sequência sempre termina em 1 como já foi explanado Solicitar o número cuja sequência de Colatz será calculada Para conferir a sequência gerado o seguinte site gera a sequência gerada de acordo com uma entrada httpcehumilchuminhoptcollatz 5 Checklist Criar um projeto no Dev CC Desenvolver a solução para o problema proposto RESULTADOS Resultados da aula prática Elaborar um relatório que deverá conter introdução métodos resultados e conclusão sobre o assunto desenvolvido em aula prática Introdução A conjectura de Collatz também conhecida como problema 3n 1 proposta por Lothar Collatz em 1937 consiste em uma sequência de números geradas a partir de um número inteiro positivo por meio de operações matemáticas a saber se o número for par dividao por 2 se o número for ímpar multipliqueo por Com a aplicação sucessiva dessas operações obtémse uma sequência de números que independentemente de seu primeiro termo sempre chega ao número 1 Métodos O programa para a resolução do problema se divide nas seguintes etapas solicitar ao usuário um número inteiro positivo garantir que o número fornecido satisfaça as condições iniciar um contador de etapas referente ao número de operações necessárias para a obtenção do resultado realizar as operações definidas exibindo os resultados enquanto o número for diferente de 1 incrementar o contador de etapas a cada iteração exibir o número de etapas necessárias para chegar ao resultado Inicialmente foi declarada a variável n que armazenará a entrada do usuário e inicializada com um valor que possibilitará a execução da estrutura de repetição pelo menos uma vez define NOMINMAX include windowsh include stdioh int main Define a página de código de entrada do console para UTF8 SetConsoleCPCPUTF8 Define a página de código de saída do console para UTF8 SetConsoleOutputCPCPUTF8 Declara uma variável para armazenar a entrada do usuário e inicializa com um valor que garante que o loop execute pelo menos uma vez int n 0 Em seguida para garantir que o valor fornecido pelo usuário satisfaça as condições foi utilizada a estrutura de repetição while Enquanto a entrada do usuário não for positiva continue pedindo a entrada do usuário while n 0 printfDigite um número inteiro positivo scanfd n Para verificar quantas etapas serão necessárias para a obtenção do resultado foi declarada a variável etapas e inicializada com valor 0 Inicializa o contador de etapas com 0 int etapas 0 Para a realização das operações da sequência de Collatz foi utilizada a estrutura de repetição while a qual garantirá que as operações sejam realizadas até que o resultado seja obtido Dentro da estrutura de repetição foi utilizada a estrutura condicional ifelse para determinar a paridade do número n e com isso aplicar as operações apropriadas Enquanto o valor de n não for 1 continue realizando cálculos while n 1 Se n for par divida por 2 e exiba o resultado if n 2 0 n n 2 printfd n Se n for ímpar multiplique por 3 e adicione 1 e exiba o resultado else n 3 n 1 printfd n Incrementa o contador de etapas etapas Após a realização de cada operação o contador de etapas é incrementado Por fim é exibido o número de etapas necessárias Imprime o número de etapas necessárias printfNúmero de etapas d etapas Retorna 0 para indicar que o programa foi executado com sucesso return 0 Resultados Para a verificação da integridade do programa foram realizados testes cujos resultados são apresentados a seguir n 3 etapas 7 sequência 3 10 5 16 8 4 2 1 n 11 etapas 14 sequência 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1 n 14 etapas 17 sequência 14 7 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1 Conclusão Foi possível implementar a intrigante Conjectura de Collatz utilizando somente recursos básicos de programação como a estrutura de repetição while e a estrutura condicional ifelse bem como o uso de poucas variáveis Por meio de testes foi possível concluir que independentemente da escolha do número positivo inicial a sequência sempre chegará ao número 4 e consequentemente ao número 1
22
Introdução à Lógica e Programação
UNIA
20
Introdução à Lógica e Programação
UNIA
10
Introdução à Lógica e Programação
UNIA
12
Introdução à Lógica e Programação
UNIA
25
Introdução à Lógica e Programação
UNIA
5
Introdução à Lógica e Programação
UNIA
2
Introdução à Lógica e Programação
UNIA
5
Introdução à Lógica e Programação
UNIA
4
Introdução à Lógica e Programação
UNIA
14
Introdução à Lógica e Programação
UNIA
Texto de pré-visualização
Algoritmos e Lógica de Programação Roteiro Aula Prática 2 ROTEIRO DE AULA PRÁTICA NOME DA DISCIPLINA Algoritmos e Lógica de Programação OBJETIVOS Definição dos objetivos da aula prática Desenvolver um programa utilizando os fundamentos da lógica de programação de maneira estruturada utilizando recursos básicos como estruturas de decisão e repetição e uso de variáveis e seus tipos INFRAESTRUTURA Instalações Computador com o programa Dev CC Materiais de consumo Descrição Quantidade de materiais por procedimentoatividade Computador 1 por aluno Software Sim X Não Em caso afirmativo qual Dev CC Pago Não Pago X Tipo de Licença Gratuita Descrição do software DevC é um ambiente de desenvolvimento integrado livre que utiliza os compiladores do projeto GNU para compilar programas para o sistema operacional Microsoft Windows Suporta as linguagens de programação C e C e possui toda a biblioteca ANSI C Equipamento de Proteção Individual EPI NSA PROCEDIMENTOS PRÁTICOS Desenvolvimento de um programa utilizando a Linguagem CC Atividade proposta Desenvolvimento de um programa utilizando a Linguagem CC 3 Procedimentos para a realização da atividade Você deverá Realizar o download e instalar o DEV CC o aluno poderá utilizar outro ambiente de desenvolvimento no entanto é importante que a linguagem utilizada seja o CC Após a instalação do programa o aluno deverá abrir um projeto Arquivo Novo Projeto como indicado na Figura 1 Figura 1 Criando um projeto Uma nova janela vai se abrir e nesta o aluno escolherá a opção Console Application e Projeto C como indicado na Figura 2 Figura 2 Criando um projeto 4 Uma nova janela aparecerá o aluno deverá escolher qual pasta o projeto será armazenado e qual é o nome deste projeto como indicado na Figura 3 Figura 3 Salvando e renomeando o projeto Após esta configuração o ambiente de desenvolvimento está pronto para ser utilizado e elaborar o problema proposto a seguir Problema Proposto Faça um programa problema utilizando conjectura de Collatz Esta conjuntura toma um número natural n se n for par será dividido por 2 se n for ímpar será multiplicado por 3 e ao resultado será somado 1 Repetese o processo indefinidamente A Conjectura de Collatz estabelece que com essas duas regras simples todos os números naturais chegam até 1 e a partir daí o laço 1421421421 se repete indefinidamente Matematicamente as regras são n n2 se n é par n 3n 1n se n é ímpar Vamos então fazer um programa que calcula todos os números da sequência de Collatz para uma entrada qualquer A sequência de comandos é Entrar com um número inteiro positivo superior a 1 Se o número for par dividir por dois Se o número for ímpar multiplicar por três e somar 1 Pela conjectura de Collatz a sequência sempre termina em 1 como já foi explanado Solicitar o número cuja sequência de Colatz será calculada Para conferir a sequência gerado o seguinte site gera a sequência gerada de acordo com uma entrada httpcehumilchuminhoptcollatz 5 Checklist Criar um projeto no Dev CC Desenvolver a solução para o problema proposto RESULTADOS Resultados da aula prática Elaborar um relatório que deverá conter introdução métodos resultados e conclusão sobre o assunto desenvolvido em aula prática Introdução A conjectura de Collatz também conhecida como problema 3n 1 proposta por Lothar Collatz em 1937 consiste em uma sequência de números geradas a partir de um número inteiro positivo por meio de operações matemáticas a saber se o número for par dividao por 2 se o número for ímpar multipliqueo por Com a aplicação sucessiva dessas operações obtémse uma sequência de números que independentemente de seu primeiro termo sempre chega ao número 1 Métodos O programa para a resolução do problema se divide nas seguintes etapas solicitar ao usuário um número inteiro positivo garantir que o número fornecido satisfaça as condições iniciar um contador de etapas referente ao número de operações necessárias para a obtenção do resultado realizar as operações definidas exibindo os resultados enquanto o número for diferente de 1 incrementar o contador de etapas a cada iteração exibir o número de etapas necessárias para chegar ao resultado Inicialmente foi declarada a variável n que armazenará a entrada do usuário e inicializada com um valor que possibilitará a execução da estrutura de repetição pelo menos uma vez define NOMINMAX include windowsh include stdioh int main Define a página de código de entrada do console para UTF8 SetConsoleCPCPUTF8 Define a página de código de saída do console para UTF8 SetConsoleOutputCPCPUTF8 Declara uma variável para armazenar a entrada do usuário e inicializa com um valor que garante que o loop execute pelo menos uma vez int n 0 Em seguida para garantir que o valor fornecido pelo usuário satisfaça as condições foi utilizada a estrutura de repetição while Enquanto a entrada do usuário não for positiva continue pedindo a entrada do usuário while n 0 printfDigite um número inteiro positivo scanfd n Para verificar quantas etapas serão necessárias para a obtenção do resultado foi declarada a variável etapas e inicializada com valor 0 Inicializa o contador de etapas com 0 int etapas 0 Para a realização das operações da sequência de Collatz foi utilizada a estrutura de repetição while a qual garantirá que as operações sejam realizadas até que o resultado seja obtido Dentro da estrutura de repetição foi utilizada a estrutura condicional ifelse para determinar a paridade do número n e com isso aplicar as operações apropriadas Enquanto o valor de n não for 1 continue realizando cálculos while n 1 Se n for par divida por 2 e exiba o resultado if n 2 0 n n 2 printfd n Se n for ímpar multiplique por 3 e adicione 1 e exiba o resultado else n 3 n 1 printfd n Incrementa o contador de etapas etapas Após a realização de cada operação o contador de etapas é incrementado Por fim é exibido o número de etapas necessárias Imprime o número de etapas necessárias printfNúmero de etapas d etapas Retorna 0 para indicar que o programa foi executado com sucesso return 0 Resultados Para a verificação da integridade do programa foram realizados testes cujos resultados são apresentados a seguir n 3 etapas 7 sequência 3 10 5 16 8 4 2 1 n 11 etapas 14 sequência 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1 n 14 etapas 17 sequência 14 7 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1 Conclusão Foi possível implementar a intrigante Conjectura de Collatz utilizando somente recursos básicos de programação como a estrutura de repetição while e a estrutura condicional ifelse bem como o uso de poucas variáveis Por meio de testes foi possível concluir que independentemente da escolha do número positivo inicial a sequência sempre chegará ao número 4 e consequentemente ao número 1