Aula-Escrita-UNIDADE-2 PDF

Summary

This document provides an overview of computational thinking, algorithms, and programming. It explains concepts and uses examples to illustrate the principles. It is suitable for those learning about these subjects.

Full Transcript

Curso: Talento Tech - Paraná Disciplina: Fundamentos de Lógica e Algoritmos de e Programação Unidade 2 - Pensamento Computacional e Estruturação de Algoritmos AULA 2 PENSAMENTO COMPUTACIONAL  O que é um Pensamento Computacional? o O pensamento computacional é a abordag...

Curso: Talento Tech - Paraná Disciplina: Fundamentos de Lógica e Algoritmos de e Programação Unidade 2 - Pensamento Computacional e Estruturação de Algoritmos AULA 2 PENSAMENTO COMPUTACIONAL  O que é um Pensamento Computacional? o O pensamento computacional é a abordagem utilizada para resolver problemas de maneira lógica e sistemática, utilizando princípios fundamentais da ciência da computação. Embora esteja intimamente ligado à programação, o pensamento computacional pode ser aplicado em qualquer campo que exija a solução de problemas complexos. o O termo foi popularizado por Jeannette Wing em 2006, professora de ciência da computação, que destacou a importância de levar o pensamento computacional para além do ambiente acadêmico e aplicá-lo em outras áreas de conhecimento e no dia a dia. Uma versão traduzida do artigo da Jeannette Wing está disponível em: https://periodicos.utfpr.edu.br/rbect/article/view/4711 Versão em inglês: https://www.cs.cmu.edu/~15110-s13/Wing06-ct.pdf  Para desenvolvermos o pensamento computacional utilizaremos um conjunto de regras em português.  Por exemplo, quais as instruções/passos necessárias para fritar um ovo:  1. Colocar um ovo na frigideira;  2. Esperar o ovo ficar frito;  3. Tirar o ovo.  Mas os passos acima não estão bem detalhados, conforme visto no vídeo da primeira semana. O não detalhamento correto poderá ocasionar falhas na sua execução: https://youtu.be/pdhqwbUWf4U?si=tQrG1xDPDSZZLEvz:  1. Retirar um ovo da geladeira;  2. Colocar a frigideira no fogo;  3. Colocar óleo;  4. Esperar até o óleo ficar quente;  5. Quebrar o ovo separando a casca;  6. Colocar o conteúdo na frigideira;  7. Esperar um minuto;  8. Retirar o ovo da frigideira;  9. Apagar o fogo.  Por isso, ao definir um conjunto de ações/procedimentos para serem executados por um computador, precisamos ser bem específicos! É a especificação de uma sequência ordenada de instruções, finitas e não-ambíguas, que deve ser seguida para a solução de um determinado problema, garantindo a sua repetibilidade.  Algoritmos no dia a dia o Aplicamos o conceito de algoritmo diariamente sempre que estabelecemos um planejamento mental para realizar uma determinada tarefa, considerando que deveremos executar um conjunto de passos até atingir o objetivo desejado. Exemplos de algoritmos no dia a dia:  Receitas culinárias;  Manuais de instrução;  Roteiros realização de tarefas específicas. o Um dos vários exemplos do uso de algoritmos no nosso dia a dia são as receitas culinárias, pois estas possuem um conjunto de passos que devem ser seguidos para obter o resultado esperado.  Algoritmo o Para que um computador possa desempenhar uma tarefa é necessário que esta seja detalhada, passo a passo, em uma linguagem compreensível pela máquina, por meio de um programa. Um programa de computador é um algoritmo escrito em um formato compreensível pelo computador.  Na elaboração de um algoritmo devem ser especificadas ações claras e precisas que resultem na solução do problema proposto;  A lógica está na correta sequência de passos que deve ser seguida para alcançar um objetivo específico;  O grau de detalhe do algoritmo dependerá da situação em que o programador se encontra.  Decomposição o No desenvolvimento de programas, estamos tratando constantemente com a complexidade inerente aos problemas que desejamos que nosso programa de computador resolva. Para tratarmos da complexidade dos problemas desenvolvemos algoritmos que devem expressar de forma objetiva e clara (legibilidade) a forma de resolvermos o problema. o A partir do algoritmo desenvolvido fica fácil construirmos o programa, basta conhecermos a linguagem de programação que se pretende adotar. Uma vez construído o algoritmo, podemos transportá-lo para qualquer linguagem de programação, o que nos dá uma flexibilidade para a efetiva implementação do programa. o Existem três estruturas básicas para a construção de algoritmos: sequenciação, seleção e repetição. A combinação destas três estruturas permite-nos a construção de algoritmos para a resolução de problemas extremamente complexos. A programação estruturada se baseia nestas três estruturas básicas. Imagine a seguinte situação: precisamos elaborar um algoritmo para trocar uma lâmpada.Para que um computador possa desempenhar uma tarefa é necessário que esta seja detalhada, passo a passo, em uma linguagem compreensível pela máquina, por meio de um programa.  Estruturas de Controle o Em determinadas situações é necessário executar ações de acordo com os dados fornecidos pelo programa. Em alguns casos, pode ser necessário que o programa execute uma determinada instrução repetidas vezes, por exemplo. Sendo assim, controlar e manipular a ordem com que instruções serão executadas em função de dados fornecidos pelo programa é essencial, e é para isso que servem as estruturas de controle. o Estruturas de controle (ou fluxos de controle) referem-se à ordem em que instruções, expressões e chamadas de função são executadas. Sem o uso de estruturas de controle, o programa seria executado de cima para baixo, instrução por instrução, dificultando assim a resolução de diversos problemas. o Serão abordados os seguintes tópicos: Desvios Condicionais Laços de Repetição Desvios Condicionais o Não é só na vida que fazemos escolhas. Nos algoritmos encontramos situações em que um conjunto de instruções deve ser executado caso uma condição seja verdadeira. Por exemplo: sua aprovação na disciplina de algoritmos depende da sua média final ser igual ou superior a 6. o Podemos ainda pensar em outra situação: a seleção brasileira de futebol só participa de uma copa do mundo se for classificada nas eliminatórias, se isso não ocorrer ficaremos sem o hexacampeonato. o Estas e outras situações podem ser representadas nos algoritmos por meio de desvios condicionais. Escolha Caso o Qual a melhor forma para programar um menu de, por exemplo, uma calculadora? Esta tarefa poderia ser executada através de desvios condicionais se e senão, porém esta solução seria complexa e demorada. o Pode-se executar esta tarefa de uma maneira melhor, através de outro tipo de desvio condicional: o escolha junto com o caso. Este comando é similar aos comandos se e senão, e reduz a complexidade do problema. o Apesar de suas similaridades com o se, ele possui algumas diferenças. Neste comando não é possível o uso de operadores lógicos, ele apenas trabalha com valores definidos, ou o valor é igual ou diferente. Além disto, o escolha e o caso tem alguns casos testes, e se a instrução pare não for colocada ao fim de cada um destes testes, o comando executará todos casos existentes. o A sintaxe do escolha é respectivamente o comando escolha a condição a ser testada e entre chaves se coloca os casos. o 7A sintaxe para se criar um caso é a palavra reservada caso, o valor que a condição testada deve possuir dois pontos e suas instruções. Lembre-se de terminá-las com o comando pare. o O comando pare evita que os blocos de comando seguinte sejam executados por engano. O caso contrário será executado caso nenhuma das expressões anteriores sejam executadas. Se o Aqui veremos como dizer a um algoritmo quando um conjunto de instruções deve ser executado. Esta determinação é estabelecida se uma condição for verdadeira. o Mas o que seria esta condição? Ao executar um teste lógico teremos como resultado um valor verdadeiro ou falso. o A condição descrita anteriormente nada mais é que um teste lógico. o Se este teste lógico resultar verdadeiro, as instruções definidas dentro do desvio condicional serão executadas. Se o teste for falso, o algoritmo pulará o trecho e continuará sua execução a partir do ponto onde o desvio condicional foi finalizado. o O desvio condicional que foi acima apresentado é considerado simples e conhecido como o comando se. A sintaxe é respectivamente a palavra reservada se, a condição a ser testada entre parênteses e as instruções que devem ser executadas entre chaves caso o desvio seja verdadeiro. Se o Aqui veremos como dizer a um algoritmo quando um conjunto de instruções deve ser executado. Esta determinação é estabelecida se uma condição for verdadeira. Mas o que seria esta condição? Ao executar um teste lógico teremos como resultado um valor verdadeiro ou falso. A condição descrita anteriormente nada mais é que um teste lógico. o Se este teste lógico resultar verdadeiro, as instruções definidas dentro do desvio condicional serão executadas. Se o teste for falso, o algoritmo pulará o trecho e continuará sua execução a partir do ponto onde o desvio condicional foi finalizado. o O desvio condicional que foi acima apresentado é considerado simples e conhecido como o comando se. A sintaxe é respectivamente a palavra reservada se, a condição a ser testada entre parênteses e as instruções que devem ser executadas entre chaves caso o desvio seja verdadeiro. Se-senao o Agora vamos imaginar que se a condição for falsa um outro conjunto de comandos deve ser executado. Quando iremos encontrar esta situação? o Imagine um programa onde um aluno com média final igual ou maior a 6 é aprovado. Se quisermos construir um algoritmo onde após calculada a média, seja mostrada na tela uma mensagem indicando se o aluno foi aprovado ou reprovado. Como fazer isto? Utilizando o comando se junto com o senao. o Sua sintaxe é simples, basta no término do comando se ao lado do fechamento de chaves, colocar o comando senao e entre chaves colocar as instruções a serem executadas caso o comando se for falso. Se-senao se o Agora imagine que você precise verificar a nota da prova de um aluno e falar se ele foi muito bem, bem, razoável ou mau em uma prova como fazer isto? o Quando você precisa verificar se uma condição é verdadeira, e se não for, precise verificar se outra condição é verdadeira uma das formas de se fazer esta verificação é utilizando o se. senao se; o A sua sintaxe é parecida com a do senao, mas usando o comando se imediatamente após escrever o comando senao. o Também pode-se colocar o comando senao no final do ultimo senao se, assim quando todos os testes falharem, ele irá executar as instruções dentro do senao. o O exemplo a seguir ilustra a resolução do em Portugol de avisar se o aluno foi muito bem, bem, razoável ou mau em uma prova. o Também pode-se colocar o comando senao no final do último senao se, assim quando todos os testes falharem, ele irá executar as instruções dentro do senao. O exemplo a seguir ilustra a resolução do em Portugol de avisar se o aluno foi muito bem, bem, razoável ou mau em uma prova. Laços de Repetição o Existem problemas que são repetitivos por natureza. Por exemplo, escrever um algoritmo para calcular a média de um aluno é algo fácil, mas se quisermos calcular a média da turma inteira? A solução mais simples seria executar o algoritmo tantas vezes que o cálculo fosse necessário, embora esta tarefa seja um tanto trabalhosa. o Esse e outros problemas podem ser resolvidos com a utilização de laços de repetição. Um laço de repetição, como sugere o próprio nome, é um comando onde uma quantidade de comandos se repete até que uma determinada condição seja verdadeira. o O Portugol contém 3 tipos de laços de repetição: pré-testado, pós-testado e laço com variável de controle. o Serão abordados os seguintes tópicos: Enquanto Faça-Enquanto Para Laço Enquanto (Pré-Testado) o Se fosse necessário a elaboração de um jogo, como por exemplo um jogo da velha, e enquanto houvesse lugares disponíveis no tabuleiro, este jogo devesse continuar, como faríamos para que o algoritmo tivesse este comportamento? É simples. O comando enquanto poderia fazer esse teste lógico. A função do comando enquanto é: executar uma lista de comandos enquanto uma determinada condição for verdadeira. o A sintaxe é respectivamente a palavra reservada enquanto, a condição a ser testada entre parênteses, e entre chaves a lista de instruções que se deseja executar. o Enquanto a variável for diferente da letra ‘S’ o comando enquanto será executado, assim como as instruções dentro dele. Quando o usuário atribuir ‘S’ a variável, o comando enquanto terminará e o programa chega ao seu final. o O exemplo a seguir ilustra em Portugol: Laço Faça-Enquanto (Pós-Testado) o Em algumas situações, faz-se necessário verificar se uma condição é verdadeira ou não após uma entrada de dados do usuário. Para situações como essa, podemos usar o laço de repetição faca-enquanto. Este teste é bem parecido com o enquanto. A diferença está no fato de que o teste lógico é realizado no final, e com isso as instruções do laço sempre serão realizadas pelo menos uma vez. O teste verifica se elas devem ser repetidas ou não. o A sintaxe é respectivamente a palavra reservada faca, entre chaves as instruções a serem executadas, a palavra reservada enquanto e entre parênteses a condição a ser testada. o A figura abaixo ilustra um algoritmo que calcula a área de um quadrado. Note que para o cálculo da área é necessário que o valor digitado pelo usuário para aresta seja maior que 0. Caso o usuário informe um valor menor ou igual a 0 para a aresta, o programa repete o comando pedindo para que o usuário entre novamente com um valor para a aresta. Caso seja um valor válido, o programa continua sua execução normalmente e ao fim exibe a área do quadrado. Laço Para (Com Variável de Controle) o E se houver um problema em que sejam necessárias um número determinado de repetições? Por exemplo, se quiséssemos pedir ao usuário que digitasse 10 valores. Poderíamos utilizar a instrução Leia repetidas vezes. Porém se ao invés de 10 valores precisássemos de 100, essa tarefa se tornaria muito extensa. Para resolver problemas como esse, podemos usar um laço de*repetição com variável de controle. No portugol, ele é conhecido como para. o O laço de repetição com variável de controle facilita a construção de algoritmos com número definido de repetições, pois possui um contador (variável de controle) embutido no comando como incremento automático. Desta forma, um erro muito com um que se comete ao esquecer de fazer o incremento do contador é evitado. Toda vez que temos um problema cuja solução necessita de um número determinado de repetições utilizamos um contador. O contador deve ser inicializado antes do laço e deve ser incrementado dentro do laço. o O laço com variável de controle possui três partes. A inicialização da variável contadora, a definição do valor final do contador e a definição do incremento. Estas três partes são escritas juntas, no início do laço. o A sintaxe é respectivamente a palavra reservada para, abre parênteses, a declaração de uma variável de controle, ponto e vírgula, a condição a ser testada, ponto e vírgula, uma alteração na variável de controle a ser feita a cada iteração, fecha parênteses, e entre chaves as instruções do programa. o A figura abaixo ilustra um algoritmo que exibe na tela a tabuada de 3. Note que conforme a sintaxe mostrada anteriormente, a primeira instrução do laço é inicializar o contador c=1. O segundo comando especifica a condição para que o laço continue a ser executado, ou seja, enquanto o contador c for menor ou igual a 10. Por último, a terceira instrução demonstra que o contador c será acrescentado em 1 em seu valor a cada iteração do comando. O laço será executado 10 vezes e mostrará a tabuada de 3.  VÍDEO AULA:  - Utilização do Portugol WebStudio para criação de código: https://youtu.be/SJkgkqXEG9Q?si=HCQp0jTCpvui-3vP - Programa Alo Mundo em diferentes linguagens: https://youtu.be/MyhjhWq6r0Q?si=F1Z2196ejo8SuNL2  ATIVIDADES 1) No Portugol WebStudio, acessar o item de menu: “Abrir Exemplo”, e implementar os códigos dos itens: “Entrada e Saída”; “Operações Aritméticas”; e “Algoritmos Sequenciais”; (15 pontos) a. https://portugol.dev/ b. Realizar modificações nos códigos dos arquivos: i. Divisões Inteiras  verificar divisão por zero; ii. Altura média  fazer para 5 pessoas; iii. Loja de Ferramentas  mostrar o valor dos itens e subtotal. - Vídeo explicativo das atividades: https://youtu.be/x9spnnEp0e8?si=ETa0TbqtA6IBglCh Referências: ADAMI, A. G. Introdução à construção de algoritmos. 1. ed. Porto Alegre: Educs, 2009. E-book. Disponível em: https://plataforma.bvirtual.com.br. Acesso em: 29 ago. 2024. ARAÚJO, Sandro de. Lógica de programação e algoritmos. 1. ed. São Paulo: Contentus, 2020. E-book. Disponível em: https://plataforma.bvirtual.com.br. Acesso em: 29 ago. 2024. EDMONDS, J. Como pensar sobre algoritmos. Rio de Janeiro: LTC, 2010. FORBELLONE, André Luiz Villar; EBERSPÄCHER, Henri Frederico. Lógica de programação: a construção de algoritmos e estruturas de dados com aplicações em Python. 4. ed. São Paulo, SP: Bookman, 2022. E-book. Disponível em: https://plataforma.bvirtual.com.br. Acesso em: 29 ago. 2024. MANZANO, J. A. N. G.; OLIVEIRA, J.F. Algoritmos: lógica para desenvolvimento de programação de computadores. 21.ed. São Paulo: Erica, 2009. MANZANO, J. A. N. G. Estudo dirigido de algoritmos. 12.ed. São Paulo: Erica, 2008.

Use Quizgecko on...
Browser
Browser