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