Prévia do material em texto
<p>LÓGICA DE PROGRAMAÇÃO</p><p>Aula 1</p><p>CONCEITOS INTRODUTÓRIOS</p><p>Conceitos introdutórios</p><p>Olá, estudante!</p><p>Nesta videoaula inaugural da disciplina, discutiremos sobre os fundamentos de algoritmos. A área de programação é muito</p><p>abrangente e cheia de oportunidades, por essa razão, nosso objetivo é apresentar os conceitos essenciais de algoritmos,</p><p>abordando os primeiros passos no desenvolvimento de soluções bem elaboradas e de alta performance. Além disso, trataremos</p><p>de assuntos relativos à importância da programação, aos operadores aritméticos e aos tipos de dados com exemplos práticos.</p><p>Não perca a oportunidade de agregar informações valiosas ao seu aprendizado e, assim, expandir sua compreensão e</p><p>entendimento sobre algoritmos. Junte-se a nós nesta jornada de descobertas e fortaleça suas habilidades computacionais.</p><p>Clique aqui para acessar os slides da sua videoaula.</p><p>Bons estudos!</p><p>Ponto de Partida</p><p>Olá, estudante! Seja bem-vindo à primeira aula de Algoritmos e Lógica de Programação, Conceitos introdutórios da Lógica de</p><p>programação.</p><p>https://cm-kls-content.s3.amazonaws.com/202401/ALEXANDRIA/ALGORITMOS_E_LOGICA_DE_PROGRAMACAO/PPT/u1a1_algo_log_pro.pdf</p><p>Nesta aula, vamos explorar os tópicos fundamentais do mundo da programação. Inicialmente, abordaremos a importância de</p><p>aprender a programar e como essa habilidade tornou-se indispensável em diversos setores.</p><p>A programação deixou de ser apenas um conhecimento específico de profissionais de tecnologia e tornou-se uma competência</p><p>valiosa em várias carreiras. Compreender os fundamentos da área não apenas amplia as oportunidades profissionais, como</p><p>também desenvolve aptidões cruciais, como raciocínio lógico, resolução de problemas e pensamento estruturado. A</p><p>programação é, pois, atualmente, uma ferramenta poderosa para transformar ideias em soluções tangíveis.</p><p>Além desses pontos, ao final desta aula, você vai compreender teoricamente o que são operadores dentro da construção de</p><p>algoritmos, bem como os tipos de dados existentes e como estes são trabalhados dentro de aplicações computacionais.</p><p>Para ilustrar o conteúdo desta aula, imagine um restaurante movimentado, onde a equipe enfrenta desafios para registrar os</p><p>pedidos dos clientes de maneira eficiente e necessita de um sistema que armazena informações essenciais sobre os pedidos do</p><p>restaurante por meio de instruções que tornem possível tal atividade.</p><p>Vamos dar os primeiros passos, caro estudante, na sua jornada de aprendizado. Explore o material, mergulhe nos conceitos</p><p>apresentados e pratique para fortalecer o entendimento do assunto. A programação, lembre-se, é uma habilidade dinâmica que</p><p>se aprimora com a prática constante. Vamos juntos, assim, construir uma base sólida para a sua trajetória na área de</p><p>algoritmos. Aproveite a aula!</p><p>Vamos Começar!</p><p>O objetivo desta aula é apresentar uma introdução aos algoritmos, seus conceitos e definições, suas principais características,</p><p>além de inserir você, estudante, neste enorme cenário da tecnologia.</p><p>Na era digital em que vivemos, a programação emerge como uma habilidade essencial, moldando o setor tecnológico e</p><p>permeando diversas áreas da sociedade. A capacidade de criar algoritmos e desenvolver softwares não é somente um</p><p>diferencial, mas também uma competência importante para enfrentar os desafios do mundo contemporâneo. Nesse contexto,</p><p>exploraremos alguns assuntos que constituem parte da área da programação: a importância de aprender a programar, uma</p><p>introdução básica aos operadores aritméticos e a compreensão dos tipos de dados.</p><p>No decorrer da aula, então, vamos percorrer os diferentes caminhos que a lógica de programação pode seguir. Preparado?</p><p>Importância de aprender a programar</p><p>A primeira pergunta que podemos nos fazer a respeito desse tema é: a programação é uma ferramenta somente para quem</p><p>quer ser um desenvolvedor ou trabalhar tecnicamente na área de desenvolvimento?</p><p>No século XXI, a programação surge como uma competência fundamental, transcendendo as barreiras do mundo da tecnologia</p><p>e se tornando um instrumento valioso em diversas áreas. A capacidade de criar algoritmos e desenvolver softwares não é</p><p>apenas um diferencial para profissionais da computação, mas uma aptidão transformadora para qualquer indivíduo,</p><p>independentemente da sua área de atuação.</p><p>A programação é a arte de criar sequências lógicas de instruções para que um computador execute tarefas específicas. Essa</p><p>linguagem universal possibilita a interação com máquinas de forma que ideias sejam transformadas em ações concretas. Ao</p><p>entender e aplicar conceitos de programação, é possível criar desde simples scripts até complexos sistemas, proporcionando</p><p>soluções inovadoras para desafios cotidianos.</p><p>No universo profissional, a demanda por habilidades em programação nunca foi tão alta. Especialistas da computação são</p><p>requisitados em diferentes setores, desde o desenvolvimento de softwares até a análise de dados e inteligência artificial.</p><p>Contudo, a importância de aprender a programar vai além dos limites da TI. Empregadores de áreas diversas buscam</p><p>profissionais versáteis que possam aplicar lógica de programação para otimizar processos, automatizar tarefas e encontrar</p><p>respostas inovadoras.</p><p>A programação, tradicionalmente associada à área de Tecnologia da Informação, transcende essas fronteiras e se torna uma</p><p>ferramenta transversal em diversas profissões. Desde cientistas sociais que analisam grandes conjuntos de dados até designers</p><p>que criam experiências digitais, a programação oferece uma vantagem competitiva. Seja na medicina, nas finanças, no</p><p>marketing ou design, a habilidade de programar permite a personalização de soluções e a criação de produtos que atendam às</p><p>necessidades específicas de cada setor.</p><p>A seguir, elencaremos alguns motivos para todos aprenderem a programar. Mas, a fim de adquirir novas soft skills, perguntamo-</p><p>nos: isso é possível, ou melhor, é realmente válido?</p><p>1. Pensamento lógico e resolução de problemas: a programação desenvolve o pensamento lógico, estimula a resolução</p><p>de problemas e fortalece a habilidade de decompor desafios complexos em tarefas menores.</p><p>2. Automatização e eficiência: a automação de tarefas rotineiras é uma das maiores vantagens da programação, o que não</p><p>apenas economiza tempo, como também reduz erros humanos, proporcionando maior eficiência.</p><p>3. Entendimento tecnológico: vivemos em uma era digital, e compreender a lógica por trás da tecnologia nos permite</p><p>interagir de forma mais significativa com as ferramentas digitais presentes em nosso cotidiano.</p><p>4. Inovação e criatividade: a programação é uma forma de expressão criativa, possibilitando a criação de soluções únicas e</p><p>inovadoras para desafios diversos.</p><p>5. Adaptação ao futuro: em um mundo cada vez mais tecnológico, a aprendizagem contínua e a habilidade de adaptação</p><p>são cruciais. A programação fornece uma base sólida para enfrentar os desafios do futuro.</p><p>Ao considerar a importância de aprender programação, somos instigados a refletir sobre a forma como interagimos com a</p><p>tecnologia e como podemos moldar ativamente o futuro. A programação não é apenas uma habilidade técnica; é uma linguagem</p><p>universal que capacita indivíduos a transformar ideias em realidade. Quando embarcamos nessa jornada, abrimos as portas</p><p>para a inovação, a resolução de problemas e o desenvolvimento de soluções que impactam positivamente o mundo ao nosso</p><p>redor.</p><p>Siga em Frente...</p><p>Introdução básica de operadores aritméticos</p><p>Na programação, operadores são elementos essenciais que permitem realizar diversas operações sobre dados. Eles são</p><p>responsáveis pela manipulação e processamento de informações. Dentro desse conjunto, destacam-se os</p><p>operadores aritméticos, foco do nosso conteúdo, que são fundamentais para executar operações matemáticas básicas em</p><p>algoritmos e programas.</p><p>Os operadores aritméticos são responsáveis por realizar operações matemáticas entre variáveis e valores. São eles: adição,</p><p>subtração, multiplicação e divisão, incluindo este último o resto.</p><p>Quadro 1 | Operadores aritméticos. Fonte: elaborado pelo autor.</p><p>A título de ilustração considere duas variáveis do tipo real ("a" e "b"), com valores 10 e 5, respectivamente, e o resultado de</p><p>cinco (5) instruções com os operadores aritméticos aqui apresentados.</p><p>Soma (+) Realiza a adição entre dois valores. Exemplo: a + b.</p><p>Subtração (-) Efetua a subtração entre dois valores. Exemplo: a - b.</p><p>Multiplicação (*) Executa a multiplicação entre dois valores. Exemplo: a * b.</p><p>Divisão (/) Realiza a divisão entre dois valores. Exemplo: a / b.</p><p>Resto (%) Retorna o resto da divisão entre dois valores. Exemplo: a % b.</p><p>Soma: a + b resulta em 15.</p><p>Subtração: a - b resulta em 5.</p><p>Multiplicação: a * b resulta em 50.</p><p>Quadro 2 | Instruções com operadores aritméticos. Fonte: elaborado pelo autor.</p><p>Observe que todos os operadores fazem o seu papel e apresentam o resultado corretamente. O operador aritmético resto,</p><p>talvez o menos trivial, retorna o resto da divisão entre dois valores: 10 / 5 é igual a 2, porém o resto é 0 (zero), pois a conta foi</p><p>exata. Portanto, o resultado de a % b é = 0 e está correto.</p><p>Esses exemplos mostram como os operadores aritméticos podem ser aplicados em situações reais, sendo fundamentais para</p><p>cálculos matemáticos dentro de algoritmos. Eles são, assim, peças-chave na caixa de ferramentas do programador, permitindo</p><p>realizar cálculos essenciais em seus programas. Compreender o funcionamento desses operadores é primordial para</p><p>desenvolver algoritmos eficientes e resolver uma variedade de problemas computacionais. Portanto, ao explorar e praticar o uso</p><p>desses operadores, você fortalecerá sua base na lógica de programação e estará preparado para desafios mais complexos no</p><p>desenvolvimento de software.</p><p>Tipos de dados</p><p>Os tipos de dados são a base para representar e manipular informações em um programa. Eles definem o conjunto de valores</p><p>que uma variável pode armazenar, proporcionando uma riqueza de expressão aos nossos algoritmos. Vamos abordar, nesta</p><p>seção, os tipos primitivos de dados, a saber, os inteiros, reais, caracteres e lógicos, compreendendo suas peculiaridades e</p><p>explorando como são utilizados na linguagem de programação.</p><p>Os tipos primitivos de dados estão presentes em todas as linguagens de programação, porém estas também possuem variações</p><p>desses tipos, daí serem chamados de primitivos. Por exemplo, na linguagem C# (Sharp), temos, além do tipo "int", que é o tipo</p><p>inteiro do Portugol, o tipo "long", ou um inteiro longo. Mas essa linguagem, a exemplo das outras, contêm os tipos primitivos em</p><p>sua sintaxe.</p><p>Tipos inteiros: representam números inteiros, ou seja, valores sem parte fracionária. Em muitas linguagens de</p><p>programação, assim como na pseudolinguagem Portugol, os inteiros podem ser positivos ou negativos. Por exemplo, os</p><p>valores 0, -15, 4185, -3760 são classificados como inteiros. Costumamos dizer, também, que o tipo de dado define qual</p><p>informação possível será trabalhada, ou seja, quando designamos um objeto qualquer como inteiro, estamos nos limitando</p><p>a esse tipo de valor, apenas, isto é, a números sem casas decimais.</p><p>Tipos reais: representam números inteiros e números fracionários, ou seja, valores numéricos de qualquer tipo. Podemos</p><p>fazer uma comparação dizendo que os tipos reais atendem os tipos inteiros e ainda são capazes de trabalhar com números</p><p>fracionários. Exemplos de valores dos tipos reais podem ser: -15, 18, 0, -5.3, 48.69, -5.593, etc. É muito comum o</p><p>processamento de cálculos matemáticos em programas de computadores, por essa razão, utilize sempre variáveis do tipo</p><p>real para garantir que eles não apresentem falhas.</p><p>Tipos caracteres: para representar palavras ou um conjunto de caracteres, textos, símbolos especiais ou, ainda, números</p><p>em conjunto com informações textuais, utilizamos o tipo de dado caractere. Para trabalhar com a informação do endereço</p><p>de uma pessoa, por exemplo, teremos valores textuais em conjunto com números, "Av. Brasil, 248". Repare que nessa</p><p>informação há o logradouro, o nome do dele e o número, todos representados pelo tipo caractere. Essa categoria inclui</p><p>letras, números, símbolos e espaços, e sua forma de representação sempre será dentro de aspas duplas (" "). Explicando</p><p>melhor: se o número 5000 aparecer sozinho, ele pode ser considerado um valor inteiro, mas se aparecer entre as</p><p>aspas "5000", ele passa a ser caractere. Outra restrição para o número enquanto caractere é a impossibilidade de</p><p>participar de operações matemáticas, pois ele não é um valor numérico, mas sim um valor textual. O que acontece, então.</p><p>se tivermos a seguinte instrução: "5000" + "5000"? Muitos vão querer efetuar a soma dos valores achando que o resultado</p><p>dessa expressão seria o valor 10000, porém, quando se tem dois valores textuais, o operador matemático de adição "+" faz</p><p>o que chamamos na programação de concatenação, que é a junção dos dois valores. Então, a instrução "5000" + "5000" é</p><p>igual a "50005000".</p><p>Divisão: a / b resulta em 2.</p><p>Resto: a % b resulta em 0.</p><p>Tipos lógicos: lidam com valores de verdadeiro ou falso e são importantes dentro do desenvolvimento de algoritmos mais</p><p>complexos. Para uma linguagem de programação, trabalhada no idioma inglês, esses valores serão TRUE ou FALSE. Eles</p><p>são utilizados para armazenar, por exemplo, o retorno de uma função, conteúdo que será abordado mais ao final de nossa</p><p>disciplina. Em Portugol, a manipulação desses tipos de dados é intuitiva. Podemos realizar operações matemáticas,</p><p>comparações e concatenações de caracteres de forma simples, uma vez que a linguagem facilita o entendimento dos</p><p>conceitos antes de lidar com sintaxes mais complexas.</p><p>No Quadro 3, é possível visualizar um exemplo dos tipos de dados primitivos apresentados nesta aula e os valores que podem</p><p>ser armazenados em variáveis de cada um deles.</p><p>Quadro 3 | Exemplo de tipos de dados. Fonte: elaborada pelo autor.</p><p>Percebemos, assim, a importância que esses elementos desempenham na construção sólida do conhecimento em</p><p>programação. Ao compreender os tipos de dados primitivos, como inteiros, reais, caracteres e lógicos, abrimos as portas para a</p><p>manipulação eficiente da informação no mundo digital. Além disso, ao explorá-los, desenvolvemos uma compreensão mais</p><p>profunda da natureza dos dados e das operações que podemos realizar sobre eles.</p><p>Portanto, ao encerrar esta jornada, incentivamos a prática contínua e a aplicação desses conhecimentos em desafios do mundo</p><p>real. Aprofundar-se nesse domínio não só enriquecerá suas habilidades de programação, como também abrirá novas</p><p>possibilidades criativas e analíticas em seu percurso educacional e profissional.</p><p>Vamos Exercitar?</p><p>Vamos retomar a situação apresentada no início da aula: um restaurante movimentado, onde a equipe enfrenta desafios para</p><p>registrar os pedidos dos clientes de maneira eficiente. Para melhorar esse processo, é necessário criar um sistema simples que</p><p>armazene informações essenciais sobre os pedidos.</p><p>Os dados a serem registrados incluem o nome do prato escolhido, a quantidade desejada e o valor unitário de cada item. Vamos</p><p>à resolução!</p><p>Registro do prato</p><p>Solicite ao cliente que informe o nome do prato desejado.</p><p>Armazene o nome do prato em uma variável do tipo “Caractere”.</p><p>Registro da quantidade</p><p>Pergunte ao cliente a quantidade desejada do prato escolhido.</p><p>Armazene a quantidade em uma variável do tipo “Inteiro”.</p><p>Registro do valor unitário</p><p>Peça ao cliente para informar o valor unitário do prato.</p><p>Tipo de dado Exemplo</p><p>Inteiro 35</p><p>Real -3,14165</p><p>Caractere “ANDERSON”</p><p>Lógico FALSO</p><p>Armazene o valor unitário em uma variável do tipo “Real”.</p><p>Cálculo do valor total</p><p>Calcule o valor total do pedido multiplicando a quantidade pelo valor unitário.</p><p>Apresente o valor total ao cliente.</p><p>Esse processo simplificado de controle de pedidos destaca a importância do uso de diferentes tipos de dados para armazenar</p><p>informações relevantes. A prática em manipular esses dados é fundamental para o desenvolvimento de algoritmos eficazes em</p><p>situações reais.</p><p>Saiba Mais</p><p>Para saber mais sobre os conceitos introdutórios de algoritmos, os operadores aritméticos e os tipos de dados, consulte</p><p>o</p><p>Capítulo 2 - Computação e resolução de problemas, do livro Estudo dirigido de algoritmos, de Manzano e Oliveira, disponível no</p><p>repositório da Biblioteca Virtual.</p><p>MANZANO, J. A. N. G.; OLIVEIRA, J. F. de. Capítulo 2 - Computação e resolução de problemas. In: Estudo dirigido de</p><p>algoritmos. São Paulo: Érica, 2000, p. 30-37.</p><p>Referências Bibliográficas</p><p>CORMEN, T. et al. Algoritmos: teoria e prática. 3. ed. Rio de Janeiro: LTC, 2022.</p><p>MANZANO, J. A. N. G.; OLIVEIRA, J. F. de. Estudo dirigido de algoritmos. São Paulo: Érica, 2000.</p><p>MENÉNDEZ, A. Simplificando algoritmos. São Paulo: LTC, 2023.</p><p>SILVA, F. S. C. da; FINGER, M.; MELO, A. C. V. Lógica para computação. 2. ed. São Paulo: Cengage Learning, 2017.</p><p>ZIVIANI, N. Projeto de algoritmos com implementações em Pascal e C. 3. ed. São Paulo: Cengage Learning, 2011.</p><p>Aula 2</p><p>DEFINIÇÕES DE LÓGICA</p><p>Definições de lógica</p><p>Olá, estudante!</p><p>Nesta videoaula, aprofundaremos nossos conhecimentos sobre algoritmos e lógica de programação e exploraremos alguns</p><p>conceitos essenciais para um futuro programador. Você será guiado através de exemplos práticos, exercícios interativos e dicas</p><p>para garantir a compreensão dos conceitos apresentados e a aplicação destes em seus próprios projetos.</p><p>Contamos com a sua presença e participação nesta experiência dinâmica de aprendizado para investigarmos juntos os</p><p>segredos da programação e, cada vez mais, criarmos soluções inovadoras e eficazes.</p><p>Clique aqui para acessar os slides da sua videoaula.</p><p>Bons estudos!</p><p>https://integrada.minhabiblioteca.com.br/reader/books/9788536519067/pageid/29</p><p>https://integrada.minhabiblioteca.com.br/reader/books/9788536519067/pageid/29</p><p>https://integrada.minhabiblioteca.com.br/reader/books/9788536519067/pageid/29</p><p>https://integrada.minhabiblioteca.com.br/reader/books/9788536519067/pageid/29</p><p>https://integrada.minhabiblioteca.com.br/reader/books/9788536519067/pageid/29</p><p>https://integrada.minhabiblioteca.com.br/reader/books/9788536519067/pageid/29</p><p>https://integrada.minhabiblioteca.com.br/reader/books/9788536519067/pageid/29</p><p>https://cm-kls-content.s3.amazonaws.com/202401/ALEXANDRIA/ALGORITMOS_E_LOGICA_DE_PROGRAMACAO/PPT/u1a2_algo_log_pro.pdf</p><p>Ponto de Partida</p><p>Olá, estudante! Seja bem-vindo à aula sobre a construção lógica de soluções computacionais, campo fundamental da ciência da</p><p>computação que é a base para o entendimento da programação de software. Aqui, exploraremos maneiras de transformar</p><p>problemas complexos em sequências lógicas com passos precisos e compreensíveis para o computador, permitindo-nos criar</p><p>algoritmos eficientes e funcionais.</p><p>No decorrer desta aula, vamos analisar três abordagens essenciais do tema: a definição de lógica, as características e as</p><p>aplicação da lógica e as formas de representação por meio de fluxogramas.</p><p>A título de exemplo, imagine que uma mercearia deseja otimizar o controle de estoque de seus produtos. O gerente quer saber</p><p>se a quantidade de itens em estoque está abaixo do nível mínimo para acionar pedidos de reposição. Portanto, você deverá</p><p>desenvolver um algoritmo simples para otimizar o controle de estoque dos produtos de uma mercearia.</p><p>Preparado para iniciar este conteúdo, no qual cada linha de código é uma oportunidade para exercitar a criatividade, o raciocínio</p><p>lógico e a habilidade de resolução de problemas? Boa aula!</p><p>Vamos Começar!</p><p>O objetivo desta aula é apresentar uma introdução aos algoritmos e às lógicas de programação, seus conceitos, suas</p><p>definições, características, aplicações e formas de representação. Durante a aula, vamos focar no desenvolvimento das</p><p>habilidades fundamentais de resolução de problemas, abstração e pensamento crítico.</p><p>Ao longo desta explanação, vamos explorar os princípios necessários para a criação de algoritmos eficientes, que são</p><p>sequências ordenadas de instruções projetadas para resolver problemas específicos, permitindo-nos decompor problemas</p><p>complexos em passos menores e mais gerenciáveis.</p><p>Definição de lógica</p><p>Em primeira instância, é importante compreendermos que a lógica é um dos fundamentos essenciais para a compreensão e</p><p>resolução de problemas em diversos âmbitos, especialmente na programação e no desenvolvimento de algoritmos. Nesse</p><p>contexto, a definição de lógica se torna indispensável para qualquer estudante ou profissional que busque desenvolver</p><p>habilidades na área e melhorar a eficiência na resolução de problemas.</p><p>Vários autores, então, trazem descrições significativas do conceito. Vejamos algumas delas:</p><p>José Augusto Manzano e Jayr Oliveira (2019, p. 29): “Na ciência da computação (informática), está associada a um</p><p>conjunto das regras e procedimentos lógicos perfeitamente definidos que levam à solução de um problema em um número</p><p>finito de etapas.” "Programação é uma arte, e a lógica de programação é o pincel que nos permite criar obras-primas</p><p>digitais."</p><p>Edsger W. Dijkstra: (2022, p. 3) "Um algoritmo é qualquer procedimento computacional bem definido que toma algum</p><p>valor ou conjunto de valores como entrada e produz algum valor ou conjunto de valores como saída."</p><p>Como podemos perceber, essas citações destacam a importância da lógica de programação como uma competência essencial</p><p>para qualquer programador, pois ela é a base sobre a qual construímos soluções de software eficientes e confiáveis.</p><p>Para conhecer a lógica, devemos conhecer e entender o que são algoritmos, e como utilizá-los para determinar a sequência de</p><p>passos necessários para resolvermos determinados problemas (JR, 2019). Em outras palavras, é uma reunião de tarefas</p><p>organizadas e estruturadas com um propósito bem definido para a solução de um problema.</p><p>Em seu livro Estudo dirigido de algoritmos, Manzano (2000, p. 14) define a lógica como:</p><p>Uma sequência coerente, regular e necessária de acontecimentos, de coisas e na área da informática é a forma pela qual</p><p>assertivas, pressupostos e instruções são organizados em um algoritmo para implementação de um programa de</p><p>computador.</p><p>Logo, as definições de lógica referem-se à estrutura de pensamento que permite a análise e o raciocínio coerente. Em termos</p><p>gerais, ela trata das regras do pensamento válido e da inferência correta. Suas principais características são:</p><p>Coerência: a lógica visa manter a coerência no raciocínio, garantindo que as conclusões derivem de premissas válidas.</p><p>Validade: um argumento lógico é válido quando as conclusões seguem necessariamente das premissas,</p><p>independentemente da verdade ou falsidade delas.</p><p>Racionalidade: a lógica é uma abordagem racional para analisar informações, tomar decisões e resolver problemas de</p><p>maneira ordenada.</p><p>A seguir, podemos compreender e demonstrar, por meio de alguns exemplos, as diversas situações em que a lógica pode ser</p><p>aplicada, tanto no âmbito profissional quanto pessoal, em nosso cotidiano.</p><p>Desenvolvimento de algoritmos: em programação, a lógica é fundamental para criar algoritmos eficientes e livres de</p><p>contradições. O desenvolvimento lógico permite a resolução de problemas de maneira estruturada.</p><p>Tomada de decisões empresariais: executivos utilizam a lógica para analisar dados, considerar diferentes cenários e</p><p>tomar decisões estratégicas consistentes.</p><p>Engenharia de software: na criação de sistemas complexos, a lógica é aplicada para garantir que os componentes</p><p>interajam de maneira lógica e previsível.</p><p>Planejamento de rotina: a lógica permite organizar tarefas diárias para otimizar o tempo e recursos.</p><p>Resolução de problemas pessoais: o raciocínio lógico pode ser usado para analisar opções, considerar consequências e</p><p>tomar decisões.</p><p>Comunicação eficaz: a lógica é utilizada na expressão de ideias para garantir clareza e compreensão.</p><p>Ao conhecermos as principais características de lógica e compreendermos as suas diversas aplicações, adquirimos ferramentas</p><p>importantes para enfrentar desafios e tomar decisões de forma mais fundamentada. A lógica é uma habilidade aplicável em</p><p>diversas áreas da vida profissional e pessoal. Nos exemplos fornecidos, percebemos como ela é essencial no desenvolvimento</p><p>de algoritmos, na tomada de decisões empresariais</p><p>e, até mesmo, nas nossas escolhas diárias. Ao incorporar a lógica em seu</p><p>pensamento, você fortalecerá suas capacidades analíticas e pragmáticas.</p><p>Siga em Frente...</p><p>Formas de representação-fluxograma</p><p>Os fluxogramas são representações gráficas que desempenham um papel importante na análise e no design de algoritmos e</p><p>processos, permitindo a compreensão clara e sistemática de uma sequência de ações. Nesta aula, exploraremos as</p><p>características das formas de representação com fluxogramas e como elas podem ser aplicadas em diversas situações por meio</p><p>de exemplos práticos que destacam sua utilidade na realidade profissional. Algumas dessas características são:</p><p>Simplicidade e clareza: os fluxogramas buscam simplificar a representação de processos complexos, tornando-os</p><p>visualmente compreensíveis. Eles utilizam símbolos padronizados para representar diferentes tipos de operações.</p><p>Sequencialidade e estruturação: os fluxogramas seguem uma lógica sequencial, facilitando a visualização de etapas</p><p>sucessivas em um processo. A estruturação clara permite identificar o fluxo de informações e tomadas de decisão.</p><p>Adaptabilidade: fluxogramas podem ser adaptados para representar diversos contextos, desde algoritmos computacionais</p><p>até processos de negócios. São uma ferramenta versátil para a análise e comunicação.</p><p>Um fluxograma, em síntese, simplifica o entendimento da sequência de um determinado conceito/assunto abordado, mesmo</p><p>para quem não é conhecedor em linguagens de programação. Ao seguir as setas e formas, ele mostra, de forma intuitiva, como</p><p>o algoritmo trabalha, e essa clareza visual torna-se essencial para o raciocínio lógico.</p><p>Na Figura 1, trazemos um exemplo de fluxograma de um algoritmo que solicita ao usuário dois valores numéricos inteiros, faz a</p><p>soma deles e, na sequência, exibe o resultado na tela.</p><p>Figura 1 | Exemplo de fluxograma. Fonte: elaborada pelo</p><p>autor.</p><p>Note que na Figura 1, as instruções estão dispostas com uma sequência lógica que garante a execução de maneira ordenada</p><p>de todos os comandos dentro do algoritmo.</p><p>Vale mencionar, ainda, algumas aplicações e exemplos práticos das representações de fluxogramas, como:</p><p>Desenvolvimento de software: em programação, fluxogramas são utilizados para representar algoritmos, destacando o</p><p>fluxo de controle e as decisões lógicas do código.</p><p>Gestão de processos empresariais: empresas utilizam fluxogramas para mapear e otimizar processos internos,</p><p>identificando áreas de melhoria e aumentando a eficiência operacional.</p><p>Projetos de engenharia: engenheiros utilizam fluxogramas para representar o sequenciamento de etapas em projetos,</p><p>desde a concepção até a sua implementação.</p><p>Fluxograma de atendimento ao cliente: representação visual do processo de atendimento ao cliente em uma central de</p><p>suporte, mostrando as etapas desde a chegada do pedido até a resolução do problema.</p><p>Fluxograma de compra on-line: ilustração gráfica do processo de compra em uma loja online, destacando as escolhas do</p><p>cliente, o fluxo de pagamento e a confirmação da compra.</p><p>As formas de representação com fluxogramas são ferramentas eficazes na visualização e compreensão de processos</p><p>complexos. Sua aplicação em diversas áreas, do desenvolvimento de software à gestão empresarial, destaca a variabilidade</p><p>dessa abordagem. Ao compreender as características e aplicações dos fluxogramas, os profissionais podem melhorar a análise</p><p>e a comunicação de informações, promovendo a eficiência e o sucesso em suas atividades. Portanto, explore, pratique e</p><p>incorpore o uso de fluxogramas em seu repertório de habilidades, pois eles são ótimos aliados no mundo profissional.</p><p>Vamos Exercitar?</p><p>Vamos retomar a situação apresentada no início da aula: uma mercearia deseja otimizar o controle de estoque de seus</p><p>produtos. O gerente quer saber se a quantidade de itens em estoque está abaixo do nível mínimo para acionar pedidos de</p><p>reposição.</p><p>Para desenvolver um algoritmo simples para otimizar o controle de estoque dos produtos de uma mercearia, você deve aplicar</p><p>a lógica para identificar os produtos que precisam ser reabastecidos. Vamos a resolução?</p><p>Solicitar a quantidade atual de um produto em estoque</p><p>Exibir uma mensagem pedindo para o usuário informar a quantidade do produto.</p><p>Ler e armazenar a quantidade em uma variável.</p><p>Verificar se a quantidade está abaixo do nível mínimo</p><p>Utilizar uma estrutura condicional para comparar a quantidade com um valor mínimo preestabelecido.</p><p>Se a quantidade estiver abaixo do nível mínimo, atribuir à variável “reabastecer” o valor verdadeiro (sim).</p><p>Exibir o resultado</p><p>Exibir uma mensagem indicando se é necessário ou não reabastecer o produto, com base na verificação realizada.</p><p>Neste exemplo, aplicamos a lógica para resolver um desafio comum de gerenciamento de estoque. A capacidade de tomar</p><p>decisões com base em condições é fundamental, e essa situação destaca a aplicação prática da lógica na solução de</p><p>problemas do cotidiano. Continuar aprimorando essas habilidades é essencial para o desenvolvimento profissional. Estude,</p><p>pratique e explore diferentes cenários para fortalecer sua capacidade de raciocínio lógico.</p><p>Saiba Mais</p><p>Para saber mais sobre os conceitos e introdução aos algoritmos, consulte o Capítulo 1 - Introdução, do livro Estudo dirigido de</p><p>algoritmos, de Manzano e Oliveira, disponível no repositório da Biblioteca Virtual.</p><p>MANZANO, J. A. N. G.; OLIVEIRA, J. F. de. Capítulo 1 – Introdução. In: Estudo dirigido de algoritmos. São Paulo: Érica, 2000,</p><p>p. 15-24.</p><p>Referências Bibliográficas</p><p>CORMEN, T. et al. Algoritmos: teoria e prática. 3. ed. Rio de Janeiro: LTC, 2022.</p><p>JR., Dilermando. Algoritmos e Programação de Computadores. Rio de Janeiro: Grupo GEN, 2019.</p><p>MANZANO, J. A. N. G.; OLIVEIRA, J. F. de. Algoritmos - Lógica para Desenvolvimento de Programação de Computadores.</p><p>São Paulo: Editora Saraiva, 2019.</p><p>MANZANO, J. A. N. G.; OLIVEIRA, J. F. de. Estudo dirigido de algoritmos. São Paulo: Érica, 2000.</p><p>MENÉNDEZ, A. Simplificando algoritmos. São Paulo: LTC, 2023.</p><p>SILVA, F. S. C. da; FINGER, M.; MELO, A. C. V. Lógica para computação. 2. ed. São Paulo: Cengage Learning, 2017.</p><p>ZIVIANI, N. Projeto de algoritmos com implementações em Pascal e C. 3. ed. São Paulo: Cengage Learning, 2011.</p><p>Aula 3</p><p>ELEMENTOS FUNDAMENTAIS DE PROGRAMAÇÃO</p><p>Elementos fundamentais de programação</p><p>Olá, estudante!</p><p>Nesta videoaula, abordaremos os três pilares fundamentais para o desenvolvimento de habilidades sólidas em programação: a</p><p>importância da aplicação de algoritmos, a utilização de operadores relacionais e lógicos, e a declaração e utilização de variáveis.</p><p>Este vídeo será conduzido com o objetivo de compartilhar conhecimentos e explorar diferentes formas para compreender os</p><p>conteúdos tratados por meio da apresentação de exemplos práticos, exercícios interativos e dicas importantes para garantir que</p><p>você assimile os conceitos discutidos e consiga aplicá-los em seus próprios projetos.</p><p>Aproveite para aprimorar seus talentos em programação e expandir seu entendimento sobre os elementos que serão aqui</p><p>discutidos.</p><p>Clique aqui para acessar os slides da sua videoaula.</p><p>Bons estudos!</p><p>https://integrada.minhabiblioteca.com.br/reader/books/9788536519067/pageid/13</p><p>https://integrada.minhabiblioteca.com.br/reader/books/9788536519067/pageid/13</p><p>https://integrada.minhabiblioteca.com.br/reader/books/9788536519067/pageid/13</p><p>https://integrada.minhabiblioteca.com.br/reader/books/9788536519067/pageid/13</p><p>https://integrada.minhabiblioteca.com.br/reader/books/9788536519067/pageid/13</p><p>https://integrada.minhabiblioteca.com.br/reader/books/9788536519067/pageid/13</p><p>https://integrada.minhabiblioteca.com.br/reader/books/9788536519067/pageid/13</p><p>https://cm-kls-content.s3.amazonaws.com/202401/ALEXANDRIA/ALGORITMOS_E_LOGICA_DE_PROGRAMACAO/PPT/u1a3_algo_log_pro.pdf</p><p>Ponto de Partida</p><p>Olá, estudante! Seja bem-vindo à aula sobre os elementos fundamentais de programação.</p><p>Como vimos anteriormente, os algoritmos são a base para resolver problemas de forma estruturada e eficiente. Por essa razão,</p><p>destacaremos a importância de desenvolver</p><p>algoritmos claros e concisos que nos permitam criar soluções para uma variedade</p><p>de desafios.</p><p>Exploraremos, nesse processo, os operadores relacionais e lógicos, os quais nos permitem comparar valores e tomar decisões</p><p>dentro de nossos programas, e compreenderemos como eles são utilizados para construir expressões lógicas que nos ajudam a</p><p>controlar o fluxo de execução do código.</p><p>Por fim, vamos aprender sobre a declaração de variáveis, elementos fundamentais para armazenar e manipular dados nos</p><p>programas, e como atribuir valores a elas e utilizá-las em diferentes contextos para resolver problemas do mundo real.</p><p>Para ilustrar, imagine que você está desenvolvendo um sistema de segurança para uma empresa que deseja controlar o acesso</p><p>de seus funcionários a determinadas áreas restritas com a utilização de operadores lógicos.</p><p>Preparado para esses novos aprendizados? Então, boa aula!</p><p>Vamos Começar!</p><p>O objetivo desta aula é introduzir os elementos fundamentais da programação, abordando alguns de seus principais conceitos,</p><p>definições e características, além de contextualizar você, estudante, neste enorme cenário de tecnologia no qual estamos</p><p>inseridos.</p><p>Estudar esses tópicos é primordial para qualquer pessoa que deseje crescer em sua formação acadêmica e profissional na área</p><p>de programação. Eles são estruturas essenciais sobre as quais a compreensão e a prática da programação são construídas. O</p><p>entendimento da aplicação de algoritmos, dos operadores relacionais e lógicos, e da declaração e utilização de variáveis</p><p>também será de extrema importância para que haja o desenvolvimento de habilidades e a resolução de problemas, e,</p><p>igualmente, para que seja proporcionada uma base sólida para o aprendizado de linguagens de programação específicas,</p><p>permitindo uma transição suave para explorar tecnologias mais avançadas.</p><p>Ao compreender os elementos fundamentais do campo, os estudantes desenvolvem uma mentalidade crítica que os capacita a</p><p>abordar uma variedade de desafios computacionais com confiança e criatividade.</p><p>Importância da aplicação de algoritmos</p><p>Na programação, a aplicação de algoritmos é um dos conteúdos fundamentais que impulsiona o desenvolvimento de softwares</p><p>e de soluções tecnológicas. Algoritmos são conjuntos de instruções sequenciais que resolvem problemas específicos. Nesta</p><p>seção, vamos explorar a importância da aplicação de algoritmos na programação, destacando, para tanto, suas características</p><p>distintivas e fornecendo exemplos práticos que evidenciam sua relevância na realidade profissional.</p><p>Quanto às principais características dos algoritmos, temos:</p><p>Precisão e clareza: algoritmos são projetados para serem precisos e claros, com instruções específicas que não deixam</p><p>margem para ambiguidades, o que facilita a implementação e compreensão por parte dos programadores.</p><p>Eficiência: a eficiência é uma característica crucial dos algoritmos. Algoritmos eficientes executam tarefas de maneira</p><p>rápida e consomem recursos de forma otimizada, garantindo um desempenho adequado do software.</p><p>Reusabilidade: algoritmos podem ser reutilizados em diferentes partes de um programa ou em projetos distintos,</p><p>economizando tempo e esforço no desenvolvimento de software.</p><p>E para que fique mais clara a importância de sua utilização em situações reais, apresentamos, a seguir, algumas ilustrações:</p><p>Ordenação de dados: algoritmos de ordenação, como o algoritmo de ordenação rápida (Quicksort) ou o algoritmo de</p><p>ordenação por mistura (Merge Sort), são essenciais para organizar grandes conjuntos de dados em ordem crescente ou</p><p>decrescente.</p><p>Busca de informações: algoritmos de busca, como a busca binária, são importantes aliados na busca de informações em</p><p>conjuntos de dados ordenados, minimizando o tempo de execução.</p><p>Inteligência artificial: algoritmos são a base da inteligência artificial, impulsionando a criação de modelos de aprendizado</p><p>de máquina que podem reconhecer padrões, tomar decisões e melhorar cada vez mais com o tempo.</p><p>Roteamento em redes: em sistemas de navegação GPS, por exemplo, algoritmos são aplicados para calcular a rota mais</p><p>eficiente de um ponto A para um ponto B, considerando variáveis como tráfego e distância.</p><p>A aplicação de algoritmos na programação é, em suma, de grande importância para a eficiência e o sucesso no</p><p>desenvolvimento de software. Sua precisão, competência e reusabilidade proporcionam uma base confiável para a construção</p><p>de sistemas inteligentes e inovações tecnológicas interessantes e instigantes. Ao compreender e aplicar algoritmos de maneira</p><p>assertiva, os programadores são capazes de criar soluções inteligentes que irão impactar positivamente diversos setores</p><p>profissionais. Portanto, mergulhe no estudo e na prática deste tema, pois isso não apenas aprimorará suas habilidades como</p><p>programador, como também abrirá portas para contribuições significativas no mundo da tecnologia.</p><p>Siga em Frente...</p><p>Operadores relacionais e lógicos</p><p>Os operadores relacionais e lógicos são também elementos essenciais na programação, desempenhando um papel de grande</p><p>relevância na construção de algoritmos e na tomada de decisões. Neste tópico, apresentaremos as características desses</p><p>operadores, fornecendo uma compreensão um pouco mais aprofundada de como são utilizados na prática, trazendo exemplos</p><p>que destacam sua importância na realidade profissional.</p><p>Os operadores relacionais são responsáveis por comparar valores e produzir resultados booleanos (verdadeiro ou falso). As</p><p>suas características principais incluem:</p><p>Igualdade (==) Verifica se dois valores são iguais.</p><p>Diferença (!=) Verifica se dois valores são diferentes.</p><p>Quadro 1 | Operadores relacionais. Fonte: elaborado pelo autor.</p><p>Os operadores lógicos, por seu turno, combinam resultados booleanos e produzem um novo resultado booleano. Suas</p><p>características principais incluem:</p><p>Quadro 2 : Operadores lógicos. Fonte: elaborado pelo autor.</p><p>Observe, a seguir, alguns exemplos práticos de códigos com operadores relacionais e lógicos:</p><p>1. Operadores relacionais:</p><p>2. Operadores lógicos:</p><p>Aqui, vale também destacar as aplicações desses operadores no âmbito profissional, como:</p><p>Validação de dados em formulários web: operadores relacionais são utilizados para validar se os dados inseridos em</p><p>formulários atendem a critérios específicos, como idade mínima ou formato de e-mail.</p><p>Controle de acesso em sistemas: operadores lógicos são empregados para determinar se um usuário possui permissões</p><p>suficientes para acessar determinadas partes de um sistema.</p><p>Os operadores relacionais e lógicos são, portanto, ferramentas necessárias na programação, pois permitem criar algoritmos</p><p>complexos e tomar decisões lógicas. Compreender esses operadores é primordial para os futuros programadores, dado que</p><p>eles são amplamente utilizados em todas as fases do desenvolvimento de software. Ao dominar tais conceitos, os profissionais</p><p>Maior (>) Verifica se o valor à esquerda é maior que o valor à direita.</p><p>Menor (<) Verifica se o valor à esquerda é menor que o valor à direita.</p><p>Maior ou Igual (>=) Verifica se o valor à esquerda é maior ou igual ao valor à direita.</p><p>Menor ou Igual (<=) Verifica se o valor à esquerda é menor ou igual ao valor à direita.</p><p>E Lógico (&&) Retorna verdadeiro apenas se ambas as expressões forem verdadeiras.</p><p>OU Lógico (||) Retorna verdadeiro se pelo menos uma das expressões for verdadeira.</p><p>NÃO Lógico (!)</p><p>Inverte o valor booleano, ou seja, se a expressão for verdadeira, torna-se falsa, e vice-</p><p>versa.</p><p>int idade = 25;</p><p>boolean maiorDeIdade = idade >= 18; // Retorna verdadeiro</p><p>int temperatura = 25;</p><p>boolean ensolarado = true;</p><p>boolean condicaoPasseio = temperatura > 20 && ensolarado; // Retorna</p><p>verdadeiro</p><p>ganham a habilidade de criar códigos mais eficientes e funcionais, os quais serão capazes de lidar com uma variedade de</p><p>situações.</p><p>Declaração e utilização de variáveis</p><p>A declaração de variáveis é o processo pelo qual o programador reserva um espaço na memória do computador para armazenar</p><p>dados. Cada variável tem um nome único que a identifica e um tipo</p><p>de dado associado que define as informações que ela pode</p><p>armazenar. A declaração, assim, é essencial para informar ao compilador ou interpretador qual será o tipo de dado que ela</p><p>manipula.</p><p>Na pseudolinguagem Portugol, a declaração de variáveis é feita de maneira simples, atribuindo um nome à variável e indicando</p><p>seu tipo. Os tipos mais comuns são Inteiro, Real e Caractere. Na sequência, com o objetivo de contextualizar a sua</p><p>importância, apresentaremos alguns exemplos práticos de declaração e aplicação de variável em Portugol.</p><p>Após a declaração, as variáveis podem ser utilizadas para armazenar e manipular dados, o que inclui a atribuição de valores, a</p><p>realização de cálculos e a exibição de informações. Esse uso torna possível a criação algoritmos dinâmicos e interativos.</p><p>algoritmo "Exemplo Variáveis"</p><p>var</p><p>nome: caractere</p><p>idade: inteiro</p><p>altura: real</p><p>fim_var</p><p>inicio</p><p>// Código do algoritmo</p><p>fim</p><p>algoritmo "CalculoIMC"</p><p>var</p><p>peso, altura, imc: real</p><p>fim_var</p><p>inicio</p><p>escreva("Digite o peso: ")</p><p>leia(peso)</p><p>escreva("Digite a altura: ")</p><p>leia(altura)</p><p>Na prática profissional, a declaração e utilização de variáveis são de grande relevância para diversas áreas, como:</p><p>Desenvolvimento de software: em sistemas de gestão, variáveis podem ser utilizadas para armazenar informações do</p><p>usuário, como nome e idade.</p><p>Engenharia de dados: no processamento de dados, variáveis são empregadas para armazenar resultados intermediários</p><p>de cálculos complexos.</p><p>Automatização de tarefas: em scripts de automação, variáveis são utilizadas para armazenar caminhos de arquivos,</p><p>facilitando a manutenção e reutilização do código.</p><p>É importante, por fim, compreendermos que esses conceitos são fundamentais na programação, permitindo que os</p><p>programadores manipulem dados de forma dinâmica e eficaz. Em Portugol, eles são aplicados de maneira acessível,</p><p>proporcionando uma base segura para a compreensão de linguagens de programação mais complexas. Ao dominar a</p><p>declaração e utilização de variáveis, os estudantes e profissionais estão adquirindo habilidades essenciais para resolver</p><p>problemas computacionais e criar soluções práticas. Portanto, pratique, experimente e aprofunde seus conhecimentos na área.</p><p>Vamos Exercitar?</p><p>Vamos retomar a situação apresentado no início da aula: você está desenvolvendo um sistema de segurança para uma</p><p>empresa que deseja controlar o acesso de seus funcionários a determinadas áreas restritas. Para isso, é necessário</p><p>implementar operadores lógicos em um algoritmo que avalie as condições de acesso com base em diferentes critérios.</p><p>Cada funcionário possui um cartão de identificação contendo informações sobre sua função e nível de autorização. As</p><p>condições de acesso são as seguintes:</p><p>Horário de expediente: o acesso é permitido durante o horário de expediente, que vai das 8h às 18h.</p><p>Autorização especial: alguns funcionários têm autorização especial para acessar as áreas restritas fora do horário de</p><p>expediente.</p><p>Função específica: determinadas áreas só podem ser acessadas por funcionários de uma função específica.</p><p>Vamos para a resolução?</p><p>Veja no código a seguir como o algoritmo de resolução da situação apresentada:</p><p>imc <- peso / (altura * altura)</p><p>escreva("O IMC é: ", imc)</p><p>fim</p><p>Figura 1 | Resolução. Fonte: elaborada pelo autor.</p><p>Neste exemplo, o algoritmo utiliza operadores lógicos ("E" e "OU") para verificar as condições de acesso com base no horário de</p><p>expediente, na autorização especial e na função do funcionário. O resultado informa se o acesso é permitido ou negado.</p><p>Saiba Mais</p><p>Para saber mais sobre os elementos fundamentais da programação, acesse, em sua Biblioteca virtual, o Capítulo 4 -</p><p>Programação com decisão, do livro Estudo dirigido de algoritmos, de Manzano e Oliveira.</p><p>MANZANO, J. A. N. G.; OLIVEIRA, J. F. de. Capítulo 4 – Programação com decisão. In: Estudo dirigido de algoritmos. São</p><p>Paulo: Érica, 2000, p. 75-86.</p><p>Referências Bibliográficas</p><p>CORMEN, T. et al. Algoritmos: teoria e prática. 3. ed. Rio de Janeiro: LTC, 2022.</p><p>MANZANO, J. A. N. G.; OLIVEIRA, J. F. de. Estudo dirigido de algoritmos. São Paulo: Érica, 2000.</p><p>MENÉNDEZ, A. Simplificando algoritmos. São Paulo: LTC, 2023.</p><p>SILVA, F. S. C. da; FINGER, M.; MELO, A. C. V. Lógica para computação. 2. ed. São Paulo: Cengage Learning, 2017.</p><p>ZIVIANI, N. Projeto de algoritmos com implementações em Pascal e C. 3. ed. São Paulo: Cengage Learning, 2011.</p><p>Aula 4</p><p>https://integrada.minhabiblioteca.com.br/reader/books/9788536519067/pageid/57</p><p>https://integrada.minhabiblioteca.com.br/reader/books/9788536519067/pageid/57</p><p>https://integrada.minhabiblioteca.com.br/reader/books/9788536519067/pageid/57</p><p>https://integrada.minhabiblioteca.com.br/reader/books/9788536519067/pageid/57</p><p>https://integrada.minhabiblioteca.com.br/reader/books/9788536519067/pageid/57</p><p>https://integrada.minhabiblioteca.com.br/reader/books/9788536519067/pageid/57</p><p>https://integrada.minhabiblioteca.com.br/reader/books/9788536519067/pageid/57</p><p>ALGORITMOS</p><p>Algoritmos</p><p>Olá, estudante!</p><p>Nesta videoaula, abordaremos temas relevantes da lógica de programação, a saber: a utilização de constantes em algoritmos, o</p><p>formato de um algoritmo e sua descrição narrativa e pseudocódigos, e a atribuição e comandos de entrada e saída de</p><p>operadores. Essa exposição proporcionará uma imersão prática e acessível a tais temas, essenciais para quem está dando os</p><p>primeiros passos na programação ou deseja aprofundar seu conhecimento na área.</p><p>Clique aqui para acessar os slides da sua videoaula.</p><p>Bons estudos!</p><p>Ponto de Partida</p><p>Olá, estudante! Seja bem-vindo à esta aula sobre a importância e o uso de constantes em algoritmos. Entender como esses</p><p>valores fixos podem ser aplicados em diferentes contextos é, como veremos, crucial para a construção de algoritmos robustos e</p><p>flexíveis.</p><p>Destacaremos, nesse processo, a estrutura fundamental de um algoritmo, explorando tanto a descrição narrativa quanto o uso</p><p>de pseudocódigos, dado que compreender seu formato adequado é essencial para transformar lógica em código de maneira</p><p>eficaz. Trataremos, do mesmo modo, dos operadores, ferramentas que permitem a manipulação de dados em um algoritmo.</p><p>Aprenderemos sobre o operador de atribuição e como os comandos de entrada e saída são primordiais para a interação com o</p><p>usuário.</p><p>Como exemplo prático, imagine que você foi designado para desenvolver um algoritmo em Portugol de consulta de dados</p><p>bancários por meio de um menu de opções. O programa deve oferecer opções para o usuário visualizar o saldo da conta, o</p><p>extrato dos últimos lançamentos e as informações sobre o seu cartão de crédito.</p><p>https://cm-kls-content.s3.amazonaws.com/202401/ALEXANDRIA/ALGORITMOS_E_LOGICA_DE_PROGRAMACAO/PPT/u1a4_algo_log_pro.pdf</p><p>Preparado? Boa aula!</p><p>Vamos Começar!</p><p>Nesta aula, vamos embarcar em uma jornada de aprendizado que desenvolverá três tópicos fundamentais para quem está</p><p>dando os primeiros passos na criação de algoritmos.</p><p>Vamos começar entendendo a importância da utilização de constantes em algoritmos. Ao compreender como declarar e utilizar</p><p>constantes, você será capaz de atribuir valores fixos que permanecem inalterados durante a execução do programa,</p><p>proporcionando clareza ao código e facilitando futuras manutenções.</p><p>Em seguida, exploraremos o formato de um algoritmo, já que a habilidade de expressar ideias de maneira estruturada é crucial</p><p>na programação. Por essa razão, vamos nos aprofundar em como utilizar descrições narrativas para organizar a lógica do</p><p>programa e em pseudocódigos como uma forma intermediária entre a linguagem natural e a de programação.</p><p>Por fim, considerando que a manipulação de dados é essencial na programação, abordaremos os operadores, ferramentas que</p><p>nos permitem realizar diversas operações. Conheceremos os operadores de atribuição, necessários para a manipulação de</p><p>variáveis, e os comandos de entrada e saída, elementares para a interação usuário-programa.</p><p>Prepare-se para explorar cada um desses tópicos de maneira prática e interativa, garantindo uma compreensão sólida</p><p>dos</p><p>fundamentos da programação. Vamos mergulhar nesse universo emocionante, construindo as bases que impulsionarão sua</p><p>jornada no mundo da codificação.</p><p>Utilização de constantes em algoritmos</p><p>As constantes possuem um papel determinante na programação, proporcionando uma maneira eficiente de atribuir valores fixos</p><p>que permanecem inalterados durante a execução de um algoritmo. Ao contrário das variáveis, que podem ter seus valores</p><p>modificados ao longo do programa, as constantes mantêm sua integridade, tornando o código mais legível e de fácil</p><p>manutenção.</p><p>Em seu livro Estudo dirigido de algoritmos, Manzano (2000, p. 43) define uma constante como:</p><p>Todo valor que é fixo, estável, que não é passível de mudança é considerado uma constante. Dessa maneira, do ponto de</p><p>vista matemático e computacional, uma constante é uma grandeza numérica fixa, utilizada normalmente numa expressão</p><p>aritmética ou matemática, a qual define um valor inalterado na expressão, independente das variáveis envolvidas na</p><p>operação a ser realizada.</p><p>A declaração de constantes é realizada para reservar um espaço de armazenamento na memória que será utilizado para</p><p>guardar um valor fixo. Geralmente, as constantes são declaradas no início do programa e recebem um identificador único. A</p><p>sintaxe pode variar dependendo da linguagem de programação escolhida, mas em Portugol, por exemplo, a declaração pode</p><p>ocorrer da seguinte forma:</p><p>Figura 1 | Constante de PI. Fonte: elaborada pelo autor.</p><p>O valor de PI, apresentado na Figura 1, sempre é um valor de referência quando estamos falando de uma constante. Seu valor</p><p>arredondado é 3.14, ou seja, é um valor que nunca muda.</p><p>Algumas vantagens da utilização de constantes são:</p><p>https://s3.amazonaws.com/platos-alexandria-prod/kroton/image/66191cda5ee97b6e846a0dc6/55a66ef1-0ca0-4938-903d-a7150220c944/original</p><p>https://s3.amazonaws.com/platos-alexandria-prod/kroton/image/66191cda5ee97b6e846a0dc6/55a66ef1-0ca0-4938-903d-a7150220c944/original</p><p>Legibilidade do código: o uso de constantes torna o código mais compreensível, pois valores fixos são representados por</p><p>identificadores significativos.</p><p>Facilidade de manutenção: se houver a necessidade de alterar um valor fixo em todo o programa, basta modificar a</p><p>declaração da constante, evitando buscas e substituições em todo o código.</p><p>Afastamento de magic numbers: evita a presença de "números mágicos" no código, que são valores literais usados</p><p>diretamente nas operações, tornando difícil entender seu propósito.</p><p>Suponha, por exemplo, que você esteja desenvolvendo um programa para calcular a área de um círculo. Utilizando uma</p><p>constante para representar o valor de PI, o código pode ser mais claro e fácil de entender, como observaremos a seguir:</p><p>Figura 2 | Algoritmo utilizando uma constante (PI = 3.14). Fonte: elaborada pelo autor.</p><p>Ao empregar constantes, seu código se tornará mais legível e sustentável, contribuindo para uma programação mais eficiente e</p><p>de qualidade. A compreensão e prática da utilização de constantes são habilidades fundamentais para qualquer aspirante a</p><p>programador.</p><p>Formato de um algoritmo: descrição narrativa e pseudocódigos</p><p>Quando adentramos no fascinante universo da programação, nos deparamos com desafios que exigem soluções bem</p><p>estruturadas. Logo, é importante compreender as distintas formas de representação de algoritmos, que são três: narrativa,</p><p>fluxograma e pseudolinguagem.</p><p>Como o fluxograma já foi tratado em aulas anteriores, nos debruçaremos, a seguir, na narrativa e na pseudolinguagem.</p><p>Forma narrativa: nessa forma de representar um algoritmo, utilizamos uma linguagem próxima ao nosso cotidiano,</p><p>descrevendo, de maneira clara e sequencial, as ações a serem executadas. Um exemplo é a receita de bolo em forma de</p><p>instruções.</p><p>Ingredientes:</p><p>2 xícaras de farinha de trigo</p><p>1 xícara de açúcar</p><p>3 ovos</p><p>1 xícara de leite</p><p>1/2 xícara de óleo</p><p>1 colher de sopa de fermento em pó</p><p>1 colher de chá de essência de baunilha</p><p>Preparar um bolo é uma atividade prazerosa e criar a sua própria versão pode tornar a experiência ainda mais única. Essa</p><p>receita básica serve como ponto de partida, permitindo que você solte sua criatividade ao experimentar diferentes ingredientes e</p><p>técnicas. Aprecie o processo e, principalmente, saboreie o resultado!</p><p>Pseudolinguagem: a pseudolinguagem Portugol, conhecida também como "português estruturado", é uma ferramenta</p><p>pedagógica utilizada no ensino de lógica de programação. Desenvolvida para facilitar o entendimento dos conceitos</p><p>fundamentais da área, ela se destaca por sua simplicidade e clareza, sendo especialmente voltada para iniciantes. A</p><p>pseudolinguagem, é uma forma de expressão que combina elementos da linguagem humana com estruturas de</p><p>programação. Ela oferece uma transição suave do conceitual para o prático, preparando o terreno para a codificação</p><p>efetiva (Manzano, 2000).</p><p>Na Figura 3, apresentamos um exemplo simples de programação em Portugol, ou seja, utilizando o português estruturado.</p><p>Figura 3 | Pseudolinguagem Portugol. Fonte: elaborada pelo autor.</p><p>Essa representação oferece uma visão clara e legível do algoritmo, facilitando o entendimento das etapas lógicas envolvidas na</p><p>entrada e saída de dados.</p><p>Siga em Frente...</p><p>Preparo:</p><p>Pré-aqueça o forno a 180°C.</p><p>Em uma tigela, misture a farinha de trigo e o fermento em pó.</p><p>Em outra tigela, bata os ovos e adicione o açúcar, o leite, o óleo e a essência de baunilha. Misture bem.</p><p>Acrescente a mistura de farinha de trigo aos poucos à segunda tigela, mexendo continuamente até obter</p><p>uma massa homogênea.</p><p>Unte uma forma com margarina e farinha.</p><p>Despeje a massa na forma e leve ao forno pré-aquecido por aproximadamente 40 minutos, ou até que o</p><p>bolo esteja dourado e firme ao toque.</p><p>Faça o teste do palito: insira um palito no centro do bolo; se sair limpo, o bolo está pronto.</p><p>Retire do forno e deixe esfriar antes de desenformar.</p><p>Dicas:</p><p>Varie adicionando frutas, como bananas ou maçãs, à massa.</p><p>Explore coberturas, como ganache de chocolate ou glacê.</p><p>Operadores: atribuição e comandos de entrada e saída</p><p>De acordo com Manzano (2000, p. 47),</p><p>Para elaborar um programa, é necessário ter em mente três pontos: a entrada, o processamento e a saída de dados. Se</p><p>os dados forem entrados de forma errada, serão consequentemente processados de forma errada e resultarão respostas</p><p>erradas. Se houve algum erro, é porque foi causado por falha humana. Uma entrada e uma saída podem ocorrer em um</p><p>computador de diversas formas. Por exemplo, uma entrada pode ser feita via teclado, modem, leitores ópticos, disco,</p><p>entre outras. Uma saída pode ser feita em vídeo, impressora, disco, entre outras formas. Devido a esta grande variedade,</p><p>os programas escritos em português estruturado fazem menção às instruções de entrada leia e de saída escreva.</p><p>Os comandos de entrada e saída, assim, desempenham um papel indispensável na interação entre o usuário e o programa,</p><p>permitindo a troca de informações de forma dinâmica. Em Portugol, pseudolinguagem amplamente utilizada no aprendizado de</p><p>programação, esses comandos são fundamentais para criar algoritmos interativos e funcionais.</p><p>Comando de entrada: representado por leia(), é utilizado para capturar dados fornecidos pelo usuário durante a execução</p><p>do programa. Esse comando possibilita a interação direta, na qual o usuário introduz valores que serão posteriormente</p><p>processados pelo algoritmo. Observe a Figura 4:</p><p>Figura 4 | Comando "leia”. Fonte: elaborada pelo autor.</p><p>No exemplo anterior, o programa solicita que o usuário digite seu nome, armazena essa informação na variável nome e, em</p><p>seguida, emite uma saudação personalizada.</p><p>Comando de saída: representado por escreva(), tem a finalidade de exibir informações ao usuário. Pode ser utilizado para</p><p>apresentar resultados de cálculos, mensagens informativas ou qualquer texto relevante. Veja um exemplo simples na</p><p>Figura 5:</p><p>Figura 5 | Comando “escreva”. Fonte: elaborada pelo autor.</p><p>Nesse caso, o programa calcula o dobro de um número predefinido (10) e exibe o resultado.</p><p>https://s3.amazonaws.com/platos-alexandria-prod/kroton/image/66191cda5ee97b6e846a0dc6/6d5eac80-100e-4da9-9db4-56d76a16dd1c/original</p><p>https://s3.amazonaws.com/platos-alexandria-prod/kroton/image/66191cda5ee97b6e846a0dc6/6d5eac80-100e-4da9-9db4-56d76a16dd1c/original</p><p>Os comandos de entrada e saída são, portanto, essenciais para tornar os algoritmos mais dinâmicos e interativos. Eles</p><p>permitem que o programa se adapte aos dados fornecidos pelos usuários e forneça um feedback relevante, tornando a</p><p>experiência mais amigável e funcional.</p><p>Dominar os comandos de entrada e saída em Portugol é um passo determinante no desenvolvimento das habilidades de</p><p>programação. Esses comandos formam a base para a construção de algoritmos mais complexos, capacitando os aprendizes a</p><p>criarem programas interativos e funcionais em diferentes contextos.</p><p>Vamos Exercitar?</p><p>Vamos retomar a situação apresentada no início da aula: você foi designado para desenvolver um programa simples em</p><p>Portugol que permita a um correntista consultar seus dados bancários. O programa deve oferecer opções para o usuário</p><p>visualizar o saldo da conta, o extrato dos últimos lançamentos e as informações sobre o seu cartão de crédito. Comece fazendo</p><p>anotações de todos os processos que seu algoritmo tem que realizar.</p><p>Vamos à resolução?</p><p>Início do programa</p><p>O programa se inicia com uma mensagem de boas-vindas e apresenta as opções disponíveis para consulta. Observe o</p><p>código em Portugol a seguir:</p><p>Figura 6 | Início do programa. Fonte: elaborada pelo autor.</p><p>Comando de entrada para opção</p><p>O programa solicita que o usuário escolha uma das opções disponíveis.</p><p>Figura 7 | Comando de entrada para opção. Fonte: elaborada pelo autor.</p><p>Finalização do programa</p><p>O programa encerra com uma mensagem de agradecimento.</p><p>Figura 8 | Finalização do programa. Fonte: elaborada pelo autor.</p><p>O exemplo prático destaca a importância dos comandos de entrada e saída na programação, pois permitem a interação direta</p><p>entre o usuário e o sistema. A habilidade de manipular dados de entrada e apresentar resultados de saída é fundamental para o</p><p>desenvolvimento de aplicações práticas e úteis, como o sistema de consulta bancária apresentado.</p><p>Saiba Mais</p><p>Para saber mais sobre os comandos de entrada e saída, acesse, em sua Biblioteca virtual, o Capítulo 3 - Programação com</p><p>sequência, do livro Estudo dirigido de algoritmos, de Manzano e Oliveira.</p><p>MANZANO, J. A. N. G.; OLIVEIRA, J. F. de. Capítulo 3 – Programação com sequência. In: Estudo dirigido de algoritmos. São</p><p>Paulo: Érica, 2000, p. 38-57.</p><p>Referências Bibliográficas</p><p>CORMEN, T. et al. Algoritmos: teoria e prática. 3. ed. Rio de Janeiro: LTC, 2022.</p><p>MANZANO, J. A. N. G.; OLIVEIRA, J. F. de. Estudo dirigido de algoritmos. São Paulo: Érica, 2000.</p><p>MENÉNDEZ, A. Simplificando algoritmos. São Paulo: LTC, 2023.</p><p>SILVA, F. S. C. da; FINGER, M.; MELO, A. C. V. Lógica para computação. 2. ed. São Paulo: Cengage Learning, 2017.</p><p>ZIVIANI, N. Projeto de algoritmos com implementações em Pascal e C. 3. ed. São Paulo: Cengage Learning, 2011.</p><p>Encerramento da Unidade</p><p>LÓGICA DE PROGRAMAÇÃO</p><p>Videoaula de Encerramento</p><p>Olá, estudante! Seja bem-vindo à videoaula de encerramento desta Unidade. Nela abordaremos os conceitos de algoritmos e a</p><p>definição de lógica de programação, dois temas indispensáveis para qualquer profissional da computação. Pronto para</p><p>embarcar nesta jornada de conhecimento? Vamos desmistificar os conceitos, fortalecer nossas bases e construir um caminho</p><p>sólido para o sucesso na área.</p><p>Clique aqui para acessar os slides da sua videoaula.</p><p>Bons estudos!</p><p>https://integrada.minhabiblioteca.com.br/reader/books/9788536519067/pageid/37</p><p>https://integrada.minhabiblioteca.com.br/reader/books/9788536519067/pageid/37</p><p>https://integrada.minhabiblioteca.com.br/reader/books/9788536519067/pageid/37</p><p>https://integrada.minhabiblioteca.com.br/reader/books/9788536519067/pageid/37</p><p>https://integrada.minhabiblioteca.com.br/reader/books/9788536519067/pageid/37</p><p>https://integrada.minhabiblioteca.com.br/reader/books/9788536519067/pageid/37</p><p>https://cm-kls-content.s3.amazonaws.com/202401/ALEXANDRIA/ALGORITMOS_E_LOGICA_DE_PROGRAMACAO/PPT/u1enc_algo_log_pro.pdf</p><p>Ponto de Chegada</p><p>Olá, estudante! Para desenvolver a competência desta Unidade, tivemos, primeiramente, que conhecer os conceitos</p><p>fundamentais do tema.</p><p>Um deles foi entender e identificar as situações em que o uso dos algoritmos e da lógica de programação é necessário e</p><p>construí-los. Essa competência forma a base para qualquer aspirante na área de desenvolvimento de sistemas e também</p><p>oferece uma abordagem estruturada e lógica para a resolução de problemas computacionais.</p><p>A utilização de pseudocódigos é igualmente valiosa, pois serve como uma linguagem intermediária entre o pensamento lógico e</p><p>a implementação prática. A capacidade de expressar algoritmos de forma mais próxima a uma linguagem de programação</p><p>facilita a transição para a codificação efetiva em diversas linguagens.</p><p>Tais habilidades capacitam você a se destacar no desenvolvimento de software, contribuindo para a criação de programas</p><p>robustos e eficientes. Além disso, fornecem uma base sólida para o aprendizado contínuo, permitindo enfrentar desafios mais</p><p>avançados ao longo de sua jornada na área de programação.</p><p>Em síntese, dominar a construção de algoritmos com lógica de programação e pseudocódigos é o alicerce para se tornar um</p><p>programador bem-sucedido e adaptável às demandas em constante evolução na área de computação.</p><p>É Hora de Praticar!</p><p>Chegou a hora, caro estudante, de colocar em prática o conhecimento adquirido nesta unidade de ensino. Para tanto, vamos</p><p>abordar um estudo de caso sobre Processo de atendimento ao cliente com o cenário descrito a seguir.</p><p>Uma empresa de serviços deseja otimizar seu processo de atendimento ao cliente, buscando maior eficiência e clareza nas</p><p>etapas envolvidas. A equipe identificou a necessidade de representar o algoritmo desse processo de maneiras diferentes, por</p><p>meio de narrativa, fluxograma e pseudolinguagem.</p><p>O desafio envolve várias etapas, como:</p><p>1. Compreensão do processo: narrativa (descrever o processo em linguagem natural, garantindo que todos os envolvidos</p><p>compreendam as etapas).</p><p>2. Visualização do fluxo: fluxograma (criar um fluxograma visualizando o sequenciamento e as decisões no processo de</p><p>atendimento).</p><p>3. Detalhamento lógico: pseudolinguagem (representar o algoritmo de maneira mais próxima da linguagem de programação,</p><p>detalhando a lógica do processo).</p><p>Agora é a sua vez! Utilize seus conhecimentos em representação de algoritmos para criar soluções para o estudo de caso</p><p>apresentado. Siga os passos estudados nas aulas e demonstre suas habilidades nas três formas de representação.</p><p>Reflita</p><p>A seguir, apresentamos duas questões de reflexão para aprofundar sua compreensão sobre esses temas:</p><p>1. Lógica de programação</p><p>Após ter explorado a lógica de programação, considere como essa habilidade impacta não apenas a escrita de código, mas</p><p>também a capacidade de abordar problemas complexos.</p><p>Reflita sobre como a lógica de programação influencia sua forma de pensar e resolver desafios no contexto computacional.</p><p>2. Pseudocódigos</p><p>Agora que você teve contato com pseudocódigos, pense em situações práticas nas quais essa representação intermédia</p><p>pode ser particularmente útil. Reflita sobre como a criação de pseudocódigos pode ser uma etapa valiosa na resolução de</p><p>problemas antes da implementação real em linguagens de programação.</p><p>Como essa prática pode contribuir para um desenvolvimento de código mais eficiente e compreensível?</p><p>Dê o Play!</p><p>Clique aqui para acessar os slides do Dê o play!</p><p>Resolução do estudo de caso</p><p>Processo de atendimento ao cliente</p><p>Passo 1: narrativa do processo</p><p>Descrição do atendimento: inicialmente, é elaborada uma narrativa detalhada do processo de atendimento ao cliente.</p><p>Inicia-se com a identificação do cliente e sua requisição de serviço. Em seguida, são descritas as etapas, desde a triagem</p><p>até a resolução do problema ou fornecimento do serviço solicitado. Destacam-se interações específicas, como a coleta de</p><p>informações e o feedback do cliente.</p><p>Passo 2: fluxograma</p><p>Visualização do fluxo: utilizando símbolos</p><p>convencionais, é criado um fluxograma para representar visualmente o</p><p>sequenciamento do atendimento. São incluídas caixas para cada etapa do processo, setas indicando a direção do fluxo e</p><p>tomadas decisões com base nas informações fornecidas pelo cliente. O fluxograma proporciona uma visão clara e lógica</p><p>das interações no processo de atendimento.</p><p>Passo 3: pseudolinguagem</p><p>Detalhamento lógico: para uma representação mais técnica, é desenvolvido o algoritmo em pseudolinguagem. Essa</p><p>abordagem mais próxima à linguagem de programação é adotada, descrevendo as instruções lógicas envolvidas em cada</p><p>etapa do atendimento. Isso inclui condições, loops (se necessário) e ações específicas que a equipe deve executar.</p><p>Conclusão</p><p>A aplicação desses três métodos de representação permite uma compreensão aprofundada e abrangente do processo de</p><p>atendimento ao cliente. A narrativa fornece uma visão descritiva e contextualizada, o fluxograma proporciona uma melhor</p><p>visualização do fluxo, e a pseudolinguagem detalha a lógica subjacente. Essas representações múltiplas são essenciais para</p><p>uma comunicação eficiente e contribuem para a otimização contínua do processo de atendimento ao cliente.</p><p>Dê o play!</p><p>https://cm-kls-content.s3.amazonaws.com/202401/ALEXANDRIA/ALGORITMOS_E_LOGICA_DE_PROGRAMACAO/PPT/u1play_algo_log_pro.pdf</p><p>Assimile</p><p>Nesta linha do tempo, apresentamos, resumidamente, os principais conceitos diretamente relacionados à lógica de programação</p><p>e que nos auxiliam na compreensão de outras temáticas da disciplina.</p><p>Figura | Linha do tempo da lógica de programação. Fonte: elaborada pelo autor.</p><p>Referências</p><p>CORMEN, T. et al. Algoritmos: teoria e prática. 3. ed. Rio de Janeiro: LTC, 2022.</p><p>MANZANO, J. A. N. G.; OLIVEIRA, J. F. de. Estudo dirigido de algoritmos. São Paulo: Érica, 2000.</p><p>MENÉNDEZ, A. Simplificando algoritmos. São Paulo: LTC, 2023.</p><p>SILVA, F. S. C. da; FINGER, M.; MELO, A. C. V. Lógica para computação. 2. ed. São Paulo: Cengage Learning, 2017.</p><p>ZIVIANI, N. Projeto de algoritmos com implementações em Pascal e C. 3. ed. São Paulo: Cengage Learning, 2011.</p>