• Home
  • Chat IA
  • Guru IA
  • Tutores
  • Central de ajuda
Home
Chat IA
Guru IA
Tutores

·

Cursos Gerais ·

Linguagens de Programação

Envie sua pergunta para a IA e receba a resposta na hora

Recomendado para você

Programação

210

Programação

Linguagens de Programação

FMU

Lógica e Programação

36

Lógica e Programação

Linguagens de Programação

FMU

Programação em C

3

Programação em C

Linguagens de Programação

FMU

Questionario Indisponivel N2 A5 23-29 Jun 2022

1

Questionario Indisponivel N2 A5 23-29 Jun 2022

Linguagens de Programação

FMU

Programação

16

Programação

Linguagens de Programação

FMU

Computacao em Nuvem - Roteiro Aula Pratica 2 - CloudSim com Netbeans

12

Computacao em Nuvem - Roteiro Aula Pratica 2 - CloudSim com Netbeans

Linguagens de Programação

FMU

Roteiro Aula Pratica - Tecnicas de Inteligencia Artificial e Weka - Rede Neural Perceptron

18

Roteiro Aula Pratica - Tecnicas de Inteligencia Artificial e Weka - Rede Neural Perceptron

Linguagens de Programação

FMU

Programação

210

Programação

Linguagens de Programação

FMU

Resolver Exercicio

13

Resolver Exercicio

Linguagens de Programação

FMU

Programação

202

Programação

Linguagens de Programação

FMU

Texto de pré-visualização

Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO Unidade 1 Lógica de Programação Aula 1 Conceitos Introdutórios Conceitos introdutórios Este conteúdo é um vídeo Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet 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 Juntese 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 bemvindo à primeira aula de Algoritmos e Lógica de Programação Conceitos introdutórios da Lógica de programação Disciplina ALGORITMOS E 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 tornouse indispensável em diversos setores A programação deixou de ser apenas um conhecimento específico de profissionais de tecnologia e tornouse 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 lembrese é 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 Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 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 perguntamonos isso é possível ou melhor é realmente válido 1 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 2 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 3 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 Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO presentes em nosso cotidiano 4 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 5 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 destacamse 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 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çaschave 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 53 4869 5593 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 314165 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 Aprofundarse 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 Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 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 3037 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 Aula 2 Definições de Lógica Definições de lógica Este conteúdo é um vídeo Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet 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 bemvindo à 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 permitindonos 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 Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 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 permitindonos 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 obrasprimas 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 referemse à 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çãofluxograma 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 tornandoos 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 conceitoassunto 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 tornase 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 Início num1 num2 soma num1 num2 soma Fim Figura 1 Exemplo de fluxograma Fonte elaborada pelo autor Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 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 online 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 Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 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 1524 Referências 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 Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 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 Este conteúdo é um vídeo Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet 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 bemvindo à 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 tornase falsa e viceversa 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 email 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 fimvar Anhanguera 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 fimvar inicio escrevaDigite o peso leiapeso escrevaDigite a altura leiaaltura imc peso altura altura escrevaO 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 Anhanguera 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 Anhanguera Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 1 algoritmo ControleAcesso 2 var 3 horarioExpediente autorizacaoEspecial acessoPermitido logico 4 funcaoFuncionario caractere 5 inicio 6 escrevaDigite a hora atual formato 24 horas 7 leiahorarioExpediente 8 escrevaVocê possui autorização especial truefalse 9 leiaautorizacaoEspecial 10 escrevaDigite a função do funcionário A B ou C 11 leiafuncaoFuncionario 12 13 Condição para verificar o horário de expediente 14 acessoPermitido horarioExpediente 8 e horarioExpediente 18 15 16 Condição para verificar autorização especial 17 se autorizacaoEspecial entao 18 acessoPermitido verdadeiro 19 fimse 20 21 Condição para verificar a função do funcionário 22 se funcaoFuncionario A entao 23 acessoPermitido verdadeiro 24 senao 25 acessoPermitido falso 26 fimse 27 28 Exibição do resultado 29 se acessoPermitido entao 30 escrevaAcesso permitido 31 senao 32 escrevaAcesso negado 33 fimse 34 fimalgoritmo Figura 1 Resolução Fonte elaborada pelo autor 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 Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 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 7586 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 Aula 4 Algoritmos Algoritmos Este conteúdo é um vídeo Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet 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 Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃ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 bemvindo à 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árioprograma Preparese 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 const PI real 314 Figura 1 Constante de PI Fonte elaborada pelo autor O valor de PI apresentado na Figura 1 sempre é um valor de referência quando estamos falando de uma constante Seu valor arredondado é 314 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 const PI real 314 algoritmo calcularAreaCirculo var raio area real início escrevaDigite o raio do círculo leiaraio area PI raio raio escrevaA área do círculo é area fimalgoritmo Figura 2 Algoritmo utilizando uma constante PI 314 Fonte elaborada pelo autor 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 Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 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 2 xícaras de farinha de trigo 1 xícara de açúcar 3 ovos 1 xícara de leite 12 xícara de óleo 1 colher de sopa de fermento em pó 1 colher de chá de essência de baunilha Preparo Préaqueça o forno a 180C Em uma tigela misture a farinha de trigo e o fermento em pó Em outra tigela bata os ovos e adicione o açúcar o leite o óleo e a essência de baunilha Misture bem Acrescente a mistura de farinha de trigo aos poucos à segunda tigela mexendo continuamente até obter uma massa homogênea Unte uma forma com margarina e farinha Despeje a massa na forma e leve ao forno préaquecido por aproximadamente 40 minutos ou até que o bolo esteja dourado e firme ao toque Faça o teste do palito insira um palito no centro do bolo se sair limpo o bolo está pronto Retire do forno e deixe esfriar antes de desenformar Dicas Varie adicionando frutas como bananas ou maçãs à massa Explore coberturas como ganache de chocolate ou glacê 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 Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 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 1 Algoritmo ExemploPortugol 2 Var 3 caractere nome 4 5 Inicio 6 EscrevaForneça seu nome 7 Leianome 8 9 EscrevaSeu nome é nome 10 11 EscrevaFim do Programa 12 Fim Figura 3 Pseudolinguagem Portugol Fonte elaborada pelo autor 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 Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 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 1 algoritmo EntradaDeDados 2 var 3 nome caractere 4 5 inicio 6 escrevaDigite seu nome 7 leianome 8 escrevaOlá nome Bemvindo 9 fimalgoritmo 10 Figura 4 Comando leia Fonte elaborada pelo autor 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 Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO ou qualquer texto relevante Veja um exemplo simples na Figura 5 1 algoritmo SaidaDeDados 2 var 3 numero inteiro 4 5 inicio 6 7 numero 10 8 escrevaO dobro de numero é numero 2 9 10 fimalgoritmo 11 Figura 5 Comando escreva Fonte elaborada pelo autor 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 Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO O programa se inicia com uma mensagem de boasvindas e apresenta as opções disponíveis para consulta Observe o código em Portugol a seguir Figura 6 Início do programa Fonte elaborada pelo autor Comando de entrada para opção O programa solicita que o usuário escolha uma das opções disponíveis Figura 7 Comando de entrada para opção Fonte elaborada pelo autor Finalização do programa O programa encerra com uma mensagem de agradecimento Figura 8 Finalização do programa Fonte elaborada pelo autor 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 Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 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 3857 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 Aula 5 Lógica de Programação Videoaula de Encerramento Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO Este conteúdo é um vídeo Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet Olá estudante Seja bemvindo à 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 bemsucedido e adaptável às demandas em constante evolução na área de computação Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO É Hora de Praticar Este conteúdo é um vídeo Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet 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 1 Compreensão do processo narrativa descrever o processo em linguagem natural garantindo que todos os envolvidos compreendam as etapas 2 Visualização do fluxo fluxograma criar um fluxograma visualizando o sequenciamento e as decisões no processo de atendimento 3 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 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 Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃ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 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 Iniciase 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 Destacamse 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 Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 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 Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO Figura Linha do tempo da lógica de programação Fonte elaborada pelo autor 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 Unidade 2 Elementos de Algoritmos Aula 1 Estruturas de Algoritmos Fundamentais Estruturas de algoritmos fundamentais Este conteúdo é um vídeo Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet Olá estudante Nesta primeira videoaula da Unidade apresentaremos os conceitos essenciais de algoritmos sua definição e aplicabilidade Além disso desenvolveremos os tópicos introdutórios de funções e modularização Aproveite esta aula para agregar informações relevantes ao seu aprendizado e assim expandir sua compreensão e entendimento da área de algoritmos e lógica de programação Estudante esta videoaula foi preparada especialmente para você Nela você irá aprender conteúdos importantes para a sua formação profissional Vamos assistila Clique aqui para acessar os slides da sua videoaula Bons estudos Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO Ponto de Partida Olá estudante Seja bemvindo à esta aula sobre estruturas de algoritmos fundamentais Em primeiro lugar vamos entender o que são algoritmos e algumas de suas aplicabilidades Posteriormente abordaremos suas propriedades e alguns exemplos práticos no que se refere à sua aplicação Traremos também conteúdos que introduzirão o tema funções e modularização Estudar algoritmos não apenas aprimorará suas habilidades de resolução de problemas como também proporcionará um entendimento mais profundo do funcionamento interno dos programas e dos sistemas que moldam nosso cotidiano Além disso você será capaz de compreender o quanto as funções e a modularização desempenham papéis cruciais na criação de códigos eficientes e organizados Por meio das explicações e exemplos dados ficará claro que as funções são blocos de construção fundamentais em qualquer linguagem de programação e que a modularização ao dividir o código em partes menores e independentes facilita a compreensão e promove a reutilização e manutenção eficiente de um software Diante desses pontos como exemplo prático imagine que em um posto de combustível movimentado os funcionários enfrentam dificuldades para registrar as vendas de maneira eficiente Para melhorar esse processo você foi convidado a criar um sistema simples que armazene informações essenciais sobre as transações Os dados a serem registrados incluem o tipo de combustível escolhido pelo cliente a quantidade abastecida além do preço por litro dependendo do tipo de combustível Convidamos você a explorar o material da aula e a praticar os conteúdos aqui trabalhados Aproveite Vamos Começar Definição conceito e aplicabilidade dos algoritmos Os algoritmos muitas vezes considerados o ponto principal da ciência da computação desempenham um papel determinante na resolução de problemas e na execução eficiente de tarefas em diversas áreas No âmbito da programação entender a definição e a aplicabilidade dos algoritmos é essencial para qualquer desenvolvedor ou cientista de dados Nesta aula exploraremos o que são algoritmos como eles são estruturados e como são aplicados no mundo real Os algoritmos são sequências ordenadas de instruções que visam realizar uma atividade específica ou solucionar um problema Eles são como receitas detalhadas fornecendo passos claros para atingir um resultado desejado A aplicabilidade dos algoritmos é vasta abrangendo desde a ordenação de dados até a resolução de complexos problemas matemáticos Por exemplo o algoritmo Bubble Sort organiza elementos em uma lista de forma ascendente ou Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO descendente enquanto o algoritmo de Dijkstra é utilizado para encontrar o caminho mais curto em redes Vale lembrar que esses exemplos são mais complexos e sua construção exige uma maior habilidade Consideremos pois um exemplo mais simples um algoritmo em Portugol que utiliza comandos básicos de entrada e saída Esse algoritmo solicita ao usuário que insira dois números realiza a soma e exibe o resultado como podemos observar na Figura 1 Figura 1 Exemplo de algoritmo com comandos básicos Fonte elaborada pelo autor Neste exemplo o algoritmo utiliza os comandos escreva para exibir mensagens no console e leia para capturar a entrada do usuário Os números fornecidos são armazenados nas variáveis numero1 e numero2 Em seguida a soma é calculada e armazenada na variável resultado que é exibida ao usuário Este é um exemplo básico que demonstra o uso fundamental de entrada e saída em algoritmos simples Outro exemplo clássico é o cálculo da média de um aluno Baseado em informações solicitadas para o usuário é possível apresentar o resultado de cálculos como a média aritmética ou a média ponderada de uma turma de alunos ou até mesmo determinar qual aluno ficou com a maior média da turma Na Figura 2 a seguir vemos um exemplo desse algoritmo Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO Figura 2 Cálculo da média de um aluno Fonte elaborada pelo autor Note que a figura apresenta a criação das variáveis na linha 3 Nesse caso todas as variáveis foram declaradas como reais pois existem valores nos cálculos de divisão que podem retornar resultados fracionários Em seguida é solicitado do usuário as notas e após essa etapa é realizado o cálculo da média O algoritmo finaliza apresentando o resultado da média na tela do programa como uma mensagem textual que acompanha o valor numérico Em síntese compreender a definição e aplicabilidade dos algoritmos é essencial para qualquer pessoa envolvida no mundo da programação e da ciência de dados uma vez que possibilitam a automação de processos a solução de problemas básicos e complexos e a otimização de sistemas Portanto mergulhar no entendimento e na prática dos algoritmos é não apenas uma escolha sábia mas uma necessidade para quem busca excelência na área da programação e na resolução de desafios computacionais Propriedades de um algoritmo O aprendizado das propriedades de um algoritmo é fundamental no campo da ciência da computação Imagine os algoritmos como os mecanismos complexos que impulsionam a engrenagem por trás do funcionamento eficiente dos softwares que utilizamos diariamente Compreender suas propriedades permite aprimorar então a capacidade de resolução de problemas e criar soluções mais eficazes para desafios complexos Ao iniciar os estudos nesse domínio os futuros programadores aprimoram suas habilidades técnicas além de cultivar uma perspicácia analítica que é essencial para navegar no cenário em constante evolução da tecnologia Debruçarse sobre os algoritmos e suas propriedades não se trata pois de uma exploração acadêmica mas de uma habilidade indispensável para quem busca a perfeição na arte da programação e da resolução de problemas computacionais Na sequência apresentaremos alguns exemplos práticos que englobam as principais propriedades de um algoritmo 1 Passo a passo para realizar uma tarefa A característica de seguir um passo a passo em um algoritmo é crucial para garantir a execução ordenada e lógica de uma tarefa específica Isso significa que cada ação é cuidadosamente planejada e executada em uma sequência predeterminada A analogia pode ser feita com uma receita de cozinha na qual cada instrução precisa ser acompanhada na ordem correta para se obter o resultado desejado No contexto da programação a clareza e a precisão nos passos são essenciais para evitar erros e garantir o desfecho almejado Observe na Figura 3 o exemplo de um passo a passo na realização de uma tarefa A propriedade de passo a passo é essencial para guiar a execução de um algoritmo de maneira sequencial e lógica como este que calcula a média ponderada de três notas seguindo um processo ordenado de entrada cálculo e exibição do resultado 2 Processamento e instruções lógicas O processamento e as instruções lógicas são a essência do funcionamento de um algoritmo Cada passo do algoritmo envolve a manipulação de dados através de operações lógicas como comparações cálculos e tomadas de decisão Por exemplo ao verificar se um número é positivo o algoritmo utiliza a instrução lógica se para comparar o número com zero Essas operações são a base que permite que o algoritmo resolva problemas complexos decompondoos em operações lógicas mais simples como vemos na Figura 4 A propriedade de processamento e instruções lógicas é exemplificada em um algoritmo que verifica se um número é divisível por 3 Em outras palavras o processamento envolve a verificação lógica da condição de divisibilidade Aqui as instruções lógicas determinam se o número é ou não divisível por 3 Siga em Frente 3 Início e fim A propriedade de ter um início e um fim é essencial para estruturar e delimitar a execução de um algoritmo O início é o ponto de partida onde são recebidos os dados ou parâmetros necessários para realizar a tarefa O fim por sua vez marca o encerramento do processo resultando na conclusão da tarefa ou na produção do resultado desejado Essa estruturação clara proporciona uma melhor compreensão do escopo do algoritmo facilitando o controle do desenvolvedor sobre o fluxo de execução como na Figura 5 Figura 5 Exemplo em Portugol conversão de Celsius para Fahrenheit Fonte elaborada pelo autor Na Figura 5 a propriedade de ter um início e um fim é evidente em um algoritmo que converte temperatura de Celsius para Fahrenheit O início envolve a entrada da temperatura em Celsius e o fim marca a exibição da temperatura convertida 4 Instruções claras e objetivas Instruções claras e objetivas são fundamentais para garantir que o algoritmo seja compreendido e executado corretamente A clareza nas instruções significa que cada passo do algoritmo é descrito de maneira direta sem ambiguidades evitando interpretações errôneas A objetividade por seu turno está relacionada à eficiência na comunicação das ações a serem realizadas sem informações desnecessárias Essas instruções são como um manual detalhado que guia a execução do algoritmo de forma inequívoca Veja o exemplo a seguir Figura 6 Exemplo em Portugol verificação de número primo Fonte elaborada pelo autor A clareza e objetividade nas instruções como vemos na Figura 6 são primordiais em um algoritmo que verifica se um número é primo A estrutura de controle de fluxo é clara tornando o algoritmo compreensível Em suma cada uma dessas propriedades desempenha um papel elementar na criação de algoritmos robustos e eficientes A sequencialidade garante uma execução ordenada o processamento e as instruções lógicas são a essência da operação o início e fim delimitam o escopo e as instruções claras e objetivas asseguram uma compreensão e execução adequadas Ao entender e aplicar essas propriedades os programadores são capazes de desenvolver algoritmos mais eficazes precisos e fáceis de manter Introdução a funções e modularização As funções possuem grande relevância na construção de algoritmos Elas são blocos de código que realizam tarefas específicas e podem ser chamadas de diferentes partes do programa Ao introduzir funções a programação se torna mais modular e compreensível Imagineas como ferramentas especializadas no kit de um desenvolvedor cada qual projetada para executar um trabalho único No mercado da Tecnologia da Informação isso se traduz em eficiência e reutilização de código Por exemplo uma função que valida senhas pode ser usada em diferentes partes de um sistema promovendo consistência e economizando tempo de desenvolvimento A seguir veremos quatro exemplos básicos e contextualizados de funções no campo da TI 1 Validação de email Cenário em um sistema de cadastro online é necessário validar se o endereço de email fornecido pelos usuários está no formato correto Função uma função específica pode ser criada para validar emails sendo utilizada em várias partes do sistema desde o cadastro até a recuperação de senha 2 Geração de relatórios Cenário um sistema de gerenciamento financeiro precisa gerar relatórios mensais para os usuários Função uma função especializada para gerar relatórios pode ser desenvolvida proporcionando uma abordagem modular para lidar com diferentes tipos de relatórios 3 Ordenação de lista Cenário um sistema de gerenciamento de tarefas precisa exibir as tarefas em uma ordem específica como por data de vencimento Função desenvolver uma função de ordenação que aceite a lista de tarefas como entrada e retorne a lista ordenada Essa função pode ser usada sempre que for necessário exibir as tarefas em uma ordem específica 4 Conversão de moeda Cenário um aplicativo financeiro permite que o usuário converta valores entre diferentes moedas Função criar uma função de conversão de moeda que aceite o valor a ser convertido a moeda de origem e a moeda de destino como parâmetros Essa função encapsula a lógica de conversão e pode ser chamada sempre que uma conversão for necessária Dessa forma concluise que ao dominar os conceitos de funções os programadores podem organizar melhor seus programas facilitando a manutenção e a depuração destes Além disso o uso adequado de funções promove a abstração e a encapsulação permitindo que partes do código sejam isoladas e modificadas independentemente o que contribui para a escalabilidade e a flexibilidade do software Portanto investir tempo no estudo das funções na programação é fundamental para se tornar um desenvolvedor mais competente e eficaz Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO Quanto à modularização podemos definila como o princípio de dividir um sistema complexo em módulos ou componentes independentes e interconectados Esse conceito traz inúmeras vantagens para o desenvolvimento de software no mercado de TI Em termos de desempenho a modularização permite a otimização de cada módulo individual melhorando a eficiência geral do sistema Além disso ela também simplifica a manutenção uma vez que alterações ou atualizações podem ser feitas em módulos específicos sem impactar o sistema como um todo Isso se traduz em economia de tempo e recursos que são essenciais no cenário tecnológico e na vida de um desenvolvedor A seguir discorreremos sobre essas vantagens com mais detalhes 1 Manutenibilidade ao dividir um sistema em módulos tornase mais fácil localizar e corrigir problemas específicos sem afetar outras partes do código Isso simplifica a manutenção e atualização do software 2 Reusabilidade de código módulos bem definidos podem ser reutilizados em diferentes partes do sistema ou mesmo em projetos futuros o que economiza tempo de desenvolvimento e promove consistência no código 3 Escalabilidade sistemas modulares são mais fáceis de escalar pois novos módulos podem ser adicionados conforme necessário o que ajuda na adaptação do sistema às mudanças nos requisitos 4 Colaboração eficiente a modularização permite o trabalho colaborativo pois diferentes equipes podem se concentrar em módulos específicos sem interferir no trabalho umas das outras Como podemos notar por meio dos exemplos citados a modularização tem um papel importante no mercado de Tecnologia da Informação TI pois oferece uma abordagem organizada e escalável Ao dividir um sistema complexo em módulos independentes e interconectados os desenvolvedores podem aumentar a eficiência em desenvolvimento testes e manutenção de software Isso permite que equipes trabalhem de forma colaborativa em diferentes partes do projeto facilitando a identificação e correção de erros além de promover a reutilização do código A modularização também permite a integração de novos recursos e a adaptação a mudanças nos requisitos do cliente ou do mercado tornando o processo de desenvolvimento mais ágil e adaptável Logo a modularização não somente melhora a qualidade e confiabilidade dos produtos de software como também contribui para a entrega oportuna de soluções inovadoras e eficientes para os clientes As funções e a modularização são portanto elementos de grande importância no desenvolvimento de software e no mundo da programação Ao utilizar funções os desenvolvedores podem criar blocos de código reutilizáveis promovendo eficiência e coesão no desenvolvimento A modularização por sua vez traz vantagens significativas desde a melhoria do desempenho até a facilitação da manutenção e escalabilidade do sistema Esses princípios formam uma ótima base para o desenvolvimento de sistemas de qualidade que sejam flexíveis e fáceis de manter qualidades muito valorizadas no ambiente tecnológico atual Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO Vamos Exercitar Vamos retomar a situação apresentada no início da aula na qual em um posto de combustível movimentado os funcionários enfrentam dificuldades para registrar as vendas de maneira eficiente Para melhorar esse processo é necessário criar um sistema simples que armazene informações essenciais sobre as transações Os dados a serem registrados incluem o tipo de combustível escolhido pelo cliente a quantidade abastecida além do preço por litro dependendo do tipo de combustível Vamos à resolução Registro do tipo de combustível Solicite ao cliente tipo de combustível desejado gasolina etanol diesel etc Criar uma variável do tipo Caractere que armazene o tipo de combustível Registro da quantidade abastecida Solicite ao cliente a quantidade de litros desejada para o combustível escolhido Armazene a quantidade em uma variável do tipo Real pois a quantidade pode ser fracionada Registro do valor por litro O valor por litro deve ser consultado na tabela de preços do posto Armazene o valor por litro em uma variável do tipo Real Cálculo do valor total Calcule o valor total da compra multiplicando a quantidade de litros pelo preço por litro Apresente o valor total ao cliente Este método simplificado de gerenciamento de transações ressalta a relevância da utilização de variados tipos de dados para armazenar informações em um posto de abastecimento de combustível A habilidade em lidar com dados e realizar cálculos é essencial para assegurar um serviço ágil e preciso aos clientes Saiba mais Para saber mais sobre conceitos básicos de algoritmos entre os quais estão os tipos de dados e operadores aritméticos consulte o Capítulo 2 Algoritmos e a Lógica de Programação do livro Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO Algoritmos Lógica para Desenvolvimento de Programação de Computadores de Manzano e Oliveira disponível no repositório da Biblioteca virtual MANZANO J A N G OLIVEIRA J F de Capítulo 2 Algoritmos e a Lógica de Programação In Algoritmos Lógica para Desenvolvimento de Programação de Computadores São Paulo Editora Saraiva 2019 p 29 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 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 2 Execução Sequencial e Estruturas de Decisão Execução sequencial e estruturas de decisão Este conteúdo é um vídeo Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet Olá estudante Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO Nesta videoaula temos como objetivo apresentar os conceitos básicos de algoritmos que abrangem os primeiros passos no desenvolvimento da tomada de decisão em códigos Além disso abordaremos como deve ser a estrutura de um código de decisão que utiliza condicionais e como ele funciona Não perca a oportunidade de agregar informações valiosas ao seu aprendizado e assim ampliar seu conhecimento e compreensão da área de algoritmos Clique aqui para acessar os slides da sua videoaula Bons estudos Ponto de Partida Olá caro estudante Seja bemvindo à esta aula sobre estrutura sequencial e estrutura de decisão as quais constituem a base para a construção lógica de programas As estruturas sequenciais são como os blocos de construção iniciais de um projeto em que as instruções são executadas em ordem linear uma após a outra Essa abordagem é essencial para organizar o fluxo de execução do programa permitindo que a lógica siga de forma ordenada e compreensível Seja na simples exibição de mensagens ou até em cálculos mais complexos as estruturas de sequência fornecem um ponto de partida para qualquer programador iniciante À medida que avançamos entramos no domínio da estrutura de decisão um conceitochave para a tomada de decisões dinâmicas em um programa Através de declarações condicionais como se e senao podemos introduzir ramificações lógicas no fluxo do código Essas estruturas permitem que um programa escolha entre diferentes caminhos de execução com base em condições específicas aumentando assim a flexibilidade e adaptabilidade às aplicações Para ilustrar a aprendizagem dos conteúdos desta aula imagine que você precisa desenvolver um módulo para um sistema de comércio eletrônico que oferece descontos aos clientes com base em suas compras anteriores O sistema deve aplicar um percentual de desconto de acordo com o valor total da compra Ao compreender esses princípios básicos estaremos prontos para explorar cenários e desafios de programação mais complexos no futuro Vale lembrar que esses conceitos iniciais são a chave para desbloquear o enorme potencial da programação Vamos Começar No vasto universo da programação as estruturas que moldam a execução dos algoritmos são partes que integram a eficácia do código Sua compreensão é um prérequisito elementar para qualquer programador que busca criar sistemas coesos e funcionais Nesse context Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO se três aspectos fundamentais a estrutura de programação que define o esqueleto do código as estruturas sequenciais que determinam a execução linear das instruções e as estruturas de decisão que conferem ao programa a capacidade de se adaptar a diferentes cenários por meio de lógica condicional Em um nível macro a estrutura de programação estabelece a ordem geral das operações enquanto as estruturas sequenciais e de decisão refinam essa ordem proporcionando ao código a flexibilidade necessária para enfrentar desafios diversos Este mergulho no centro dessas estruturas é essencial para capacitar programadores a criar códigos mais claros concisos e eficientes podendo assim solucionar problemas de forma sofisticada no mundo da programação Estrutura de programação A estrutura de programação referese ao esqueleto básico de um programa estabelecendo a ordem em que as instruções são executadas No contexto do pseudocódigo Portugol podemos ilustrar essa qualidade com um exemplo simples Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO algoritmo Subtracao var numero1 numero2 sub inteiro inicio Entrada de dados escrevaDigite o primeiro número leianumero1 escrevaDigite o segundo número leianumero2 Processamento sub numero1 numero2 Saída de dados escrevaA diferença é sub fim Figura 1 Exemplo de estrutura de programação Fonte elaborada pelo autor Na Figura 1 é evidente a estrutura de programação O programa começa com a entrada de dados quando o usuário fornece dois números Em seguida ocorre o processamento em que os números são subtraídos e o resultado é armazenado na variável sub Por fim a saída de dados exibe a subtração ao usuário Essa sequência lógica de operações exemplifica a estrutura de programação na qual cada passo é crucial para alcançar o resultado desejado Essa abordagem estruturada é essencial para garantir a clareza e a funcionalidade do código Em projetos mais complexos a organização eficaz das operações por meio de uma estrutura de programação bem definida tornase ainda mais crítica permitindo que programadores e equipes colaborem de maneira mais eficiente e mantenham o código de forma sustentável ao longo do tempo Assim a estrutura de programação não apenas estabelece a ordem de execução mas também promove a legibilidade e a manutenção do código fatores cruciais no desenvolvimento de um software de qualidade Estruturas sequenciais As estruturas sequenciais representam a execução de instruções em ordem linear uma após a outra Em linguagens de programação isso ocorre de forma natural mas é importante compreender como organizálas de maneira lógica Para tanto vamos expandir o exemplo anterior para incluir uma estrutura sequencial Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO Figura 2 Estruturas sequenciais Fonte elaborada pelo autor Neste exemplo ampliado após a saída de dados que exibe a soma adicionamos instruções sequenciais para calcular e exibir o dobro do resultado Essa adição ilustra como as estruturas sequenciais permitem a execução linear de operações uma após a outra No caso o dobro da soma é calculado imediatamente após a exibição da soma seguindo o fluxo sequencial do programa As estruturas sequenciais são pois capitais para a organização lógica e compreensão do código Elas possibilitam que os desenvolvedores expressem a lógica de execução de maneira clara e direta Em programas mais complexos essa sequencialidade tornase primordial para evitar resultados inesperados e garantir que as operações sejam realizadas na ordem desejada A clareza proporcionada por estruturas sequenciais também facilita a depuração e a manutenção do código contribuindo para um desenvolvimento mais eficiente e eficaz Siga em Frente Estruturas de decisão No universo da programação as estruturas de decisão são fundamentais para conferir ao código a capacidade de tomar diferentes caminhos de execução com base em condições específicas Na pseudolinguagem Portugol a estrutura condicional básica é representada pelo comando seentãosenão As estruturas de decisão podem ser classificadas em três tipos principais desvio condicional simples desvio condicional composto e desvio condicional encadeado Exploremos cada uma delas com exemplos claros em Portugol Desvio condicional simples O desvio condicional simples é o tipo mais básico no qual o código executa uma instrução se uma condição for verdadeira caso contrário ele simplesmente continua sua execução normal Na Figura 3 vemos como o programa verifica se um número digitado é positivo Neste caso a mensagem O número é positivo será exibida apenas se a condição numero 0 for verdadeira Desvio condicional composto O desvio condicional composto inclui um bloco de instruções para cada possível resultado da condição No exemplo a seguir além de verificar se o número é positivo também apurase se é negativo ou igual a zero 5 Início Entrada de dados 7 EscrevaDigite um número 8 Leianumero Desvio condicional composto 11 se numero 0 entao 12 escrevaO número é positivo 14 escrevaO número é negativo ou igual a zero0 17 Fim Figura 4 Positivo ou negativo Fonte elaborada pelo autor Logo o código aborda todas as possibilidades garantindo que a mensagem correta seja exibida com base no valor do número inserido Desvio condicional encadeado O desvio condicional encadeado ocorre quando uma série de decisões está interligada Cada decisão é tomada com base na condição anterior Na Figura 5 observamos o programa classificar um aluno com base em sua nota 1 algoritmo DesvioCondicionalEncadeado 2 var 3 nota real 5 inicio Entrada de dados 7 escrevaDigite a nota do aluno 8 leianota Desvio condicional encadeado 11 se nota 70 entao 12 escrevaAluno aprovado 14 senao 15 se nota 40 entao 16 escrevaAluno em recuperação 17 senao 18 escrevaAluno reprovado 20 fim 21 Figura 5 Aprovado recuperação ou reprovado Fonte elaborada pelo autor Neste caso o programa avalia primeiro se a nota é maior ou igual a 70 Se sim o aluno é aprovado Caso contrário se a nota for maior ou igual a 40 ele está em recuperação Se não atender a nenhuma dessas condições o aluno é considerado reprovado Tais exemplos demonstram como as estruturas de decisão em Portugol podem ser aplicadas de maneiras simples e compreensíveis proporcionando ao programador flexibilidade para lidar com diferentes situações A escolha entre essas estruturas dependerá da complexidade do problema a ser resolvido e da lógica específica que se deseja implementar Conclusão Em resumo as estruturas de programação constituem a espinha dorsal do desenvolvimento de software proporcionando a organização lógica necessária para a criação de algoritmos eficientes Ao definirem o esqueleto do código elas estabelecem as bases sobre as quais as estruturas sequenciais e de decisão se desdobrarão As estruturas sequenciais por sua vez asseguram a execução ordenada das instruções conferindo clareza e linearidade ao fluxo do programa Da mesma forma as estruturas de decisão emergem como ferramentas cruciais para a adaptação dinâmica do código permitindo que ele responda a condições específicas Ao aplicar esses conceitos no ambiente de programação em Portugol os desenvolvedores têm a oportunidade de criar códigos mais legíveis organizados e eficientes A clareza proporcionada pelas estruturas de programação é fundamental para facilitar a compreensão do código não apenas pelo criador mas também por outros membros da equipe envolvida no projeto Além disso a capacidade de tomar decisões lógicas por meio das estruturas condicionais permite que os programas lidem de maneira adaptável com diferentes cenários contribuindo para a robustez e versatilidade das soluções desenvolvidas Em última análise o entendimento profundo dessas estruturas é uma habilidade essencial para programadores que aspiram a construir soluções de software robustas e funcionalmente sólidas Vamos Exercitar Vamos retomar a situação apresentada no início da aula onde você precisa desenvolver um módulo para um sistema de comércio eletrônico que oferece descontos aos clientes com base em suas compras anteriores O sistema deve aplicar um desconto de 10 em relação ao valor total da compra Vamos à resolução Identificação do cliente Crie uma estrutura de dados para representar as informações do cliente nome email e total gasto em compras anteriores Solicite ao usuário que insira seu nome email e o valor total gasto em compras anteriores Aplicação de desconto Implemente uma estrutura de seleção condicional para verificar o valor total gasto pelo cliente Aplique um desconto de 10 se o valor total for superior a R 500 Exibição do resultado Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO Mostre ao usuário o valor original da compra o desconto aplicado se houver e o valor final a ser pago Exiba uma mensagem incentivando o cliente a continuar comprando Usando a Linguagem C Figura 6 Identificação do cliente Fonte elaborada pelo autor Figura 7 Aplicação do desconto Fonte elaborada pelo autor Anhanguera Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO Figura 8 Resultado Fonte elaborada pelo autor Saiba mais Para saber mais sobre as estruturas de decisão e formas de aplicação dos desvios condicionais na linguagem de programação C e quais suas características consulte o Capítulo 7 Estruturas condicionais do livro Elementos de programação em C de Pinheiro disponível no repositório da Biblioteca virtual PINHEIRO F de A C Capítulo 7 Estrutura Condicionais In Elementos de programação em C Porto Alegre Bookman 2012 p 148165 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 PINHEIRO F de A C Elementos de programação em C Porto Alegre Bookman 2012 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 Estruturas de Repetição Anhanguera Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO Estruturas de repetição Este conteúdo é um vídeo Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet Olá estudante Esta videoaula será dedicada às estruturas de repetição as quais proporcionarão uma imersão completa nos elementos essenciais para o desenvolvimento de algoritmos mais complexos Durante nosso encontro exploraremos os conceitos fundamentais dessas estruturas discutindo como elas podem ser aplicadas para otimizar e automatizar processos em programação A habilidade de criar loops eficientes é crucial para qualquer programador e esta aula visa fornecer uma compreensão sólida do assunto Além disso abordaremos a importância da clareza na estrutura do código e como essa qualidade contribui para um desenvolvimento mais eficiente Entender como organizar e controlar o fluxo de um programa é primordial para qualquer aspirante a desenvolvedor Clique aqui e acesse os slides da sua videoaula Bons estudos Ponto de Partida Olá caro estudante Seja bemvindo à esta aula dedicada às estruturas de repetição em Portugal Nesta jornada apresentaremos essas estruturas essenciais para a criação de algoritmos dinâmicos e eficientes Elas são como os fios que tecem a complexidade dos programas proporcionando a flexibilidade necessária para enfrentar desafios variados Assim como alicerces firmes sustentam uma construção entender o EnquantoFaça ParaAtéFaça e RepitaAté permitirá assim que você construa códigos mais robustos e adaptáveis Para ilustrar a aprendizagem dos conteúdos desta aula imagine que você trabalha em uma loja de pneus que deseja otimizar o controle de estoque e conta com a sua ajuda para criar um programa que facilite a contagem de produtos Cada pneu vendido é registrado e o estoque precisa ser atualizado constantemente Portanto você precisará desenvolver um algoritmo que permita ao vendedor informar quantos pneus foram vendidos e com base nessa informação realizar a contagem atualizada do estoque Este é apenas o começo o conhecimento adquirido aqui será a chave para desbloquear as possibilidades infinitas que a programação oferece Abrace cada conceito participe ativamente e Anhanguera Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO Figura 5 Soma de vetores Fonte elaborada pelo autor Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO Figura 6 Soma de vetores cont Fonte elaborada pelo autor Nesta atividade você aprendeu como utilizar vetores em Portugol para armazenar e manipular conjuntos de dados Você criou um algoritmo que permite ao usuário inserir elementos em dois vetores somálos e depois apresentar os vetores originais e o vetor resultante da soma Esta prática é essencial para entender o conceito de vetores e como aplicálos na resolução de problemas computacionais Saiba mais Para saber mais sobre estruturas de dados homogêneas e heterogêneas vetores e matrizes consulte o Capítulo 6 Estruturas de Dados Homogêneas de Uma Dimensão do livro Algoritmos Lógica para Desenvolvimento de Programação de Computadores de Manzano e Oliveira disponível no repositório da Biblioteca virtual Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO Figura Elementos algoritmos Fonte elaborada pelo autor CORMEN T et al Algoritmos teoria e prática 3 ed Rio de Janeiro LTC 2022 Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO Figura 7 Funções Fonte elaborada pelo autor Arrays e estruturas de dados Arrays armazenam conjuntos de dados do mesmo tipo enquanto estruturas de dados mais complexas como structs permitem agrupar diferentes tipos de dados sob um único nome Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO Figura 9 Venda de calçados Fonte elaborada pelo autor Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO Figura 7 Resolução da atividade Fonte elaborada pelo autor Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO Figura 1 Condicional simples Fonte elaborada pelo autor Aqui a mensagem Você é maior de idade será exibida apenas se a condição idade maior ou igual a 18 for verdadeira Estrutura condicional composta A estrutura condicional composta permite a execução de diferentes blocos de código dependendo de uma condição Vejamos a Figura 2 Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO Figura 2 Condicional composta Fonte elaborada pelo autor Neste exemplo há dois blocos distintos de código um para o caso em que o número é positivo e outro para quando não é positivo Siga em Frente Estrutura condicional encadeada A estrutura condicional encadeada permite lidar com várias condições em sequência Cada bloco de código depende da avaliação das condições anteriores Observe Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO Figura 4 Jogo de adivinhação Fonte elaborada pelo autor Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO Vamos Exercitar Retomando a situação apresentada no início da aula onde você deverá criar uma função recursiva para calcular o nésimo termo da sequência de Pell A sequência de Pell é semelhante à sequência de Fibonacci mas cada termo é o dobro do termo anterior mais o termo antes do anterior Ou seja Pn 2Pn1 Pn2 com P0 0 e P1 1 Vamos à resolução Figura 4 Sequência de Pell Fonte elaborada pelo autor Neste código a função sequenciaPell calcula o nésimo termo da sequência de Pell de forma recursiva utilizando os casos base P0 0 e P1 1 O exemplo no main mostra como utilizar a função para obter o 5ésimo termo mas é possível substituir o valor de n conforme necessário Saiba mais Para saber mais sobre funções recursivas consulte o Capítulo 9 Seção 97 do livro Elementos de programação em C de Pinheiro disponível no repositório da Biblioteca virtual Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO Figura 8 Registros para armazenar informações Fonte elaborada pelo autor Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 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 5 Aplicações de Programação Videoaula de Encerramento Este conteúdo é um vídeo Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet Olá caro estudante Seja muito bemvindo à nossa videoaula dedicada às funções funções recursivas registros e arquivos Nela exploraremos a fundo tais conteúdos e os elementos essenciais de um programa na linguagem C Aproveite esta oportunidade de aprendizado e mergulhe neste conteúdo fundamental para o cenário de algoritmos Clique aqui para acessar os slides da sua videoaula Bons estudos Ponto de Chegada Olá estudante Para desenvolver a competência desta Unidade isto é criar soluções algorítmicas utilizando técnicas de funções e recursividade e estruturas como vetores e matrizes tivemos que estudar a fundo procedimentos e funções Durante esta jornada de aprendizado em programação C mergulhamos em conceitos fundamentais para o desenvolvimento de algoritmos Entre estes tópicos importantes estão Programação e funções com vetores exploração de conceitos e técnicas relacionados à manipulação de vetores em programação Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO Figura 1 Cálculo do IRPF Fonte elaborada pelo autor Conclusão Este estudo de caso destaca a abordagem conceitual na criação da função apresentando uma visão detalhada dos requisitos para o cálculo do Imposto de Renda Pessoa Física IRPF em linguagem C Nesta linha do tempo apresentamos resumidamente os principais conceitos relacionados a funções com vetores programação com matrizes a função e recursividade e registros e arquivos Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO Figura Programação lógica Fonte elaborada pelo autor UNIVERSIDADE PITÁGORAS UNOPAR ANHANGUERA SISTEMA DE ENSINO PRESENCIAL CONECTADO ENGENHARIA CIVIL THIAGO MENDES PIRES ROTEIRO DE AULA PRÁTICA ALGORITMOS E LÓGICA DE PROGRAMAÇÃO NITERÓI RJ THIAGO MENDES PIRES ROTEIRO DE AULA PRÁTICA ALGORITMOS E LÓGICA DE PROGRAMAÇÃO Roteiro de Aula Prática apresentado a Universidade Pitágoras Unopar Anhanguera como requisito para obtenção de média para a disciplina de Algoritmos e lógica de Programação Tutora à Distância Everton Lucas Aurelio Mafra SUMÁRIO 1 INTRODUÇÃO3 2 DESENVOLVIMENTO4 3 CONCLUSÃO16 REFERÊNCIAS17 1 INTRODUÇÃO A aula prática sobre algoritmos e lógica de programação tem como objetivo fundamental proporcionar aos alunos um entendimento profundo e aplicado dos conceitos essenciais que regem a criação de soluções computacionais Durante a aula os alunos são incentivados a mergulhar no raciocínio lógico essencial para o desenvolvimento de algoritmos eficientes e funcionais O professor inicia a atividade apresentando um problema real instigando a turma a pensar sobre como dividir essa questão em etapas menores ou seja como estruturar um algoritmo que possa ser facilmente compreendido e executado por um computador Após essa introdução os alunos são desafiados a desenvolver seus próprios algoritmos para resolver problemas simples incentivando a prática e a aplicação do conhecimento teórico A atividade prática é acompanhada por discussões em grupo onde os alunos podem compartilhar suas soluções e discutir as diferentes abordagens que utilizaram Isso promove um ambiente colaborativo e facilita o aprendizado por meio da troca de ideias Além disso o roteiro inclui a utilização de uma linguagem de programação específica onde os alunos implementam os algoritmos criados Essa etapa é crucial pois permite que os alunos vejam a transição do conceito abstrato para a aplicação prática reforçando a lógica por trás de suas soluções Ao final da aula é reservado um tempo para reflexões sobre o que foi aprendido permitindo que os alunos identifiquem desafios enfrentados e conquistas realizadas durante o processo Essa abordagem prática e interativa não apenas solidifica o entendimento dos alunos sobre algoritmos e lógica de programação mas também os prepara para desafios futuros na área de desenvolvimento de software 2 DESENVOLVIMENTO Programa Aventura na Floresta Sussurrante Este programa permite que o usuário escolha entre três caminhos na floresta enfrentando obstáculos e acumulando pontos conforme as escolhas feitas algoritmo AventuraFlorestaSussurrante Declaração de variáveis variável escolha inteiro resposta inteiro pontos inteiro início Inicializa a pontuação pontos 0 Apresenta a introdução do programa escrevaBemvindo à Floresta Sussurrante escrevaVocê é um explorador corajoso em busca de tesouros e segredos perdidos escrevaEscolha sabiamente seu caminho Menu de opções escreva1 O Caminho das Sombras escreva2 O Caminho da Luz escreva3 O Caminho das Criaturas Captura a escolha do usuário leiaescolha Estrutura de decisão para os caminhos escolha caso escolha de 1 escrevaVocê escolheu o Caminho das Sombras escrevaCuidado Uma criatura mágica guarda o caminho escrevaResolva o enigma Quem sou eu Tenho olhos mas não vejo Tenho boca mas não falo escreva1 Responder Caveira escreva2 Tentar passar sem responder leiaresposta se resposta 1 então escrevaVocê acertou A criatura deixou você passar escrevaVocê encontrou um baú com uma gema preciosa pontos pontos 100 senão escrevaVocê não conseguiu passar A criatura o impediu fimse 2 escrevaVocê escolheu o Caminho da Luz escrevaUma ponte quebrada se interpõe em seu caminho escrevaVocê deve decidir 1 Tentar atravessar a ponte 2 Procurar um desvio seguro leiaresposta se resposta 1 então escrevaVocê atravessou a ponte com sucesso escrevaVocê encontrou uma fonte mágica que restaurou sua saúde pontos pontos 50 senão escrevaVocê decidiu procurar um desvio e ficou seguro mas não ganhou pontos fimse 3 escrevaVocê escolheu o Caminho das Criaturas escrevaUma criatura mágica adormecida bloqueia o caminho escrevaVocê pode 1 Contornar a criatura 2 Acordála para passar leiaresposta se resposta 1 então escrevaVocê contornou a criatura com cuidado escrevaVocê encontrou uma árvore encantada que lhe deu uma habilidade especial pontos pontos 75 senão escrevaA criatura acordou e você não conseguiu passar fimse outro escrevaOpção inválida Escolha entre 1 2 ou 3 fimesc Exibe a pontuação final escrevaSua pontuação final é pontos fimalgoritmo Explicação do Código Declaração de Variáveis escolha armazena a opção escolhida pelo usuário resposta armazena a resposta do usuário para os enigmas e desafios pontos conta a pontuação total acumulada Introdução do Programa O programa apresenta uma breve narrativa e as opções de caminhos disponíveis Estruturas de Decisão Utiliza a estrutura ESCOLHA CASO para direcionar o fluxo com base na escolha do usuário Cada caminho tem seus próprios desafios onde o usuário pode tomar decisões que afetam a pontuação Caminhos e Desafios O Caminho das Sombras envolve um enigma O Caminho da Luz tem uma decisão sobre atravessar ou não uma ponte O Caminho das Criaturas pede que o jogador decida contornar ou acordar a criatura Pontuação O programa acumula pontos de acordo com as decisões corretas do usuário Testes e Correções Teste o código em Portugol Web Studio e verifique se todas as opções funcionam corretamente Certifiquese de que mensagens de erro aparecem quando o usuário faz uma escolha inválida Documentação Cada parte do código deve ser comentada para facilitar a compreensão da lógica do programa Apresentação Após testar o programa e garantir seu funcionamento correto apresenteo em sala de aula destacando as diferentes decisões e suas consequências na aventura RESOLUÇÃO 11 Programa Aventura no Labirinto em Busca do Tesouro Este programa permite que o usuário explore um labirinto para encontrar um tesouro escondido evitando obstáculos e armadilhas algoritmo LabirintoTesouro Declaração de variáveis inteiro labirinto55 inteiro posX posY inteiro tesouroX tesouroY caracter movimento logico encontrouTesouro Inicialização encontrouTesouro falso posX 0 posY 0 Geração do labirinto para i de 0 até 4 faça para j de 0 até 4 faça labirintoij 0 Inicia todas as posições como caminho livre fimpara fimpara Adicionando paredes e armadilhas labirinto11 1 parede labirinto12 1 parede labirinto23 1 parede labirinto31 3 armadilha Definindo a posição do tesouro aleatoriamente tesouroX aleatorio0 4 tesouroY aleatorio0 4 enquanto labirintotesouroXtesouroY 0 faça tesouroX aleatorio0 4 tesouroY aleatorio0 4 fimenquanto labirintotesouroXtesouroY 2 tesouro Início da exploração escrevaVocê está no labirinto Encontre o tesouro enquanto não encontrouTesouro faça escrevaVocê está na posição posX posY escrevaDigite w para cima s para baixo a para esquerda d para direita leiamovimento Verifica o movimento se movimento w então para cima se posX 0 então posX posX 1 senão escrevaVocê não pode ir para cima há uma parede fimse senão se movimento s então para baixo se posX 4 então posX posX 1 senão escrevaVocê não pode ir para baixo há uma parede fimse senão se movimento a então para esquerda se posY 0 então posY posY 1 senão escrevaVocê não pode ir para a esquerda há uma parede fimse senão se movimento d então para direita se posY 4 então posY posY 1 senão escrevaVocê não pode ir para a direita há uma parede fimse senão escrevaMovimento inválido Use w s a ou d fimse Verifica se encontrou o tesouro se labirintoposXposY 2 então encontrouTesouro verdadeiro escrevaParabéns Você encontrou o tesouro senão se labirintoposXposY 3 então escrevaVocê caiu em uma armadilha Volte ao início posX 0 posY 0 fimse fimenquanto fimalgoritmo Explicação do Código Declaração de Variáveis labirinto55 Matriz que representa o labirinto posX posY Posição atual do explorador tesouroX tesouroY Posição do tesouro movimento Comando do usuário para movimentação encontrouTesouro Controle se o tesouro foi encontrado Inicialização Define todas as posições do labirinto como caminhos livres Define algumas posições como paredes 1 e armadilhas 3 A posição do tesouro é gerada aleatoriamente garantindo que não esteja em uma parede Exploração do Labirinto O loop enquanto permite que o explorador se mova até encontrar o tesouro O usuário pode inserir comandos para moverse na matriz Condições verificam se o movimento é válido e se o explorador encontrou o tesouro ou caiu em uma armadilha Mensagens O programa fornece feedback sobre a posição atual e se o movimento é válido Testes e Correções Teste o programa em diferentes configurações para garantir que o tesouro possa ser encontrado corretamente e que as armadilhas funcionem Documentação e Comentários Cada parte do código é comentada para explicar a lógica por trás das movimentações e das condições de jogo Apresentação Após testar e validar o programa apresenteo em sala de aula demonstrando como o explorador se move pelo labirinto até encontrar o tesouro ATIVIDADE 13 include stdioh int main Variáveis para armazenar os dados do cliente float rendaMensal valorEmprestimo valorEntrada int historicoCredito estabilidadeEmprego Entrada de dados do cliente printfDigite sua renda mensal scanff rendaMensal printfDigite o valor do empréstimo desejado scanff valorEmprestimo printfDigite o valor da entrada scanff valorEntrada printfSeu histórico de crédito é bom 1 para sim 0 para não scanfd historicoCredito printfVocê está estável no emprego 1 para sim 0 para não scanfd estabilidadeEmprego Condição de aprovação do empréstimo if valorEmprestimo 03 rendaMensal historicoCredito 1 estabilidadeEmprego 1 printfEmpréstimo aprovado else printfEmpréstimo rejeitado return 0 float rendaMensal valorEmprestimo valorEntrada int historicoCredito estabilidadeEmprego Explicação Aqui declaramos as variáveis que armazenarão as informações do cliente como a renda mensal rendaMensal o valor do empréstimo valorEmprestimo o valor da entrada valorEntrada além de variáveis para o histórico de crédito historicoCredito e a estabilidade no emprego estabilidadeEmprego printfDigite sua renda mensal scanff rendaMensal Explicação O programa solicita ao usuário que informe sua renda mensal O valor digitado é armazenado na variável rendaMensal if valorEmprestimo 03 rendaMensal historicoCredito 1 estabilidadeEmprego 1 printfEmpréstimo aprovado else printfEmpréstimo rejeitado Explicação Esta é a principal lógica do programa O código verifica se o valor do empréstimo é menor ou igual a 30 da renda mensal se o histórico de crédito é positivo e se há estabilidade no emprego Se todas as condições forem verdadeiras o empréstimo é aprovado Caso contrário é rejeitado printfEmpréstimo aprovado Explicação Se todas as condições de aprovação forem atendidas o programa exibe a mensagem Empréstimo aprovado Caso contrário a mensagem Empréstimo rejeitado será exibida ATIVIDADE 14 include stdioh include stdlibh include stringh Definição da struct Aluno typedef struct char nome50 float mediaDisciplina1 float mediaDisciplina2 float mediaGeral int classificacao Aluno Função para calcular a média geral de um aluno float calcularMediaGeralfloat media1 float media2 return media1 media2 2 Função de comparação para ordenar os alunos com base nas médias int compararMediasconst void a const void b Aluno alunoA Aluno a Aluno alunoB Aluno b if alunoBmediaGeral alunoAmediaGeral return 1 if alunoBmediaGeral alunoAmediaGeral return 1 return 0 int main int n i FILE arquivo Solicitar o número de alunos printfQuantos alunos serao registrados scanfd n Alocar memória para os alunos Aluno alunos Aluno mallocn sizeofAluno Entrada de dados dos alunos for i 0 i n i printfNome do aluno d i 1 scanfs alunosinome printfMedia da Disciplina 1 scanff alunosimediaDisciplina1 printfMedia da Disciplina 2 scanff alunosimediaDisciplina2 Calcular a média geral do aluno alunosimediaGeral calcularMediaGeralalunosimediaDisciplina1 alunosimediaDisciplina2 Ordenar os alunos pela média geral qsortalunos n sizeofAluno compararMedias Atribuir classificações aos alunos for i 0 i n i alunosiclassificacao i 1 Gravar as informações dos alunos no arquivo arquivo fopenalunostxt w if arquivo NULL printfErro ao abrir o arquivo return 1 Escrever os dados dos alunos no arquivo for i 0 i n i fprintfarquivo Nome do Aluno s alunosinome fprintfarquivo Media Disciplina 1 2f alunosimediaDisciplina1 fprintfarquivo Media Disciplina 2 2f alunosimediaDisciplina2 fprintfarquivo Media Geral 2f alunosimediaGeral fprintfarquivo Classificacao d alunosiclassificacao Fechar o arquivo fclosearquivo Liberar a memória alocada freealunos printfInformacoes gravadas no arquivo alunostxt return 0 Explicação Esta parte do código define a struct Aluno que contém as variáveis para armazenar o nome do aluno as médias das duas disciplinas a média geral e a classificação do aluno float calcularMediaGeralfloat media1 float media2 return media1 media2 2 Explicação Esta função recebe as médias das duas disciplinas como parâmetros e retorna a média geral do aluno É uma função simples que realiza a soma das médias e divide o resultado por 2 int compararMediasconst void a const void b Aluno alunoA Aluno a Aluno alunoB Aluno b if alunoBmediaGeral alunoAmediaGeral return 1 if alunoBmediaGeral alunoAmediaGeral return 1 return 0 Explicação Esta função compara as médias gerais de dois alunos Ela é usada para ordenar os alunos de forma decrescente conforme a média geral printfQuantos alunos serao registrados scanfd n Explicação O programa solicita ao usuário quantos alunos serão registrados O valor é armazenado na variável n Aluno alunos Aluno mallocn sizeofAluno plicação Aqui o programa aloca dinamicamente memória suficiente para armazenar os dados de n alunos for i 0 i n i printfNome do aluno d i 1 scanfs alunosinome printfMedia da Disciplina 1 scanff alunosimediaDisciplina1 printfMedia da Disciplina 2 scanff alunosimediaDisciplina2 alunosimediaGeral calcularMediaGeralalunosimediaDisciplina1 alunosimediaDisciplina2 Explicação Dentro do loop o programa coleta o nome do aluno as médias das disciplinas e calcula a média geral do aluno qsortalunos n sizeofAluno compararMedias Explicação Aqui os alunos são ordenados em ordem decrescente com base na média geral utilizando a função qsort e a função de comparação compararMedias for i 0 i n i alunosiclassificacao i 1 Explicação Após a ordenação o loop atribui a classificação a cada aluno com base na posição deles após a ordenação arquivo fopenalunostxt w if arquivo NULL printfErro ao abrir o arquivo return 1 for i 0 i n i fprintfarquivo Nome do Aluno s alunosinome fprintfarquivo Media Disciplina 1 2f alunosimediaDisciplina1 fprintfarquivo Media Disciplina 2 2f alunosimediaDisciplina2 fprintfarquivo Media Geral 2f alunosimediaGeral fprintfarquivo Classificacao d alunosiclassificacao fclosearquivo Explicação A memória alocada dinamicamente para armazenar os dados dos alunos é liberada ao final do programa 3 CONCLUSÃO A conclusão da aula prática sobre algoritmos e lógica de programação destaca aprendizados cruciais e a relevância dessas habilidades na criação de soluções computacionais Ao término da aula os alunos compreenderam que a elaboração de algoritmos é uma etapa essencial no processo de programação pois permite planejar a lógica antes de iniciar a codificação o que facilita a detecção de erros e a otimização do código Além disso o desenvolvimento do pensamento lógico se mostrou fundamental pois contribui para a resolução eficiente de problemas ajudando os alunos a enfrentar desafios de maneira estruturada e sistemática A prática exercitada ao longo da aula demonstrou a importância da aplicação teórica proporcionando aos alunos uma compreensão mais profunda de como os conceitos de algoritmos se traduzem em desenvolvimento de software Eles reconheceram também a relevância do domínio da sintaxe da linguagem de programação escolhida entendendo que essa familiaridade impacta diretamente na criação de algoritmos eficazes e funcionais A interação em grupo incentivou o trabalho em equipe evidenciando que a colaboração e a troca de ideias são aspectos fundamentais do processo de desenvolvimento Ademais a aula estimulou a curiosidade e a criatividade dos estudantes encorajandoos a explorar diferentes soluções para os problemas apresentados habilidades essenciais no ambiente tecnológico em constante evolução Nesse contexto a aula prática sobre algoritmos e lógica de programação se estabelece como uma base sólida para o aprimoramento das competências necessárias na área de programação preparando os alunos para futuros desafios no campo da tecnologia A continuidade desse aprendizado por meio de práticas adicionais e aprofundamentos teóricos se revela indispensável para formar programadores competentes e versáteis REFERÊNCIAS FORBELLONE A L V EBERSPÄCHER H F Lógica de Programação A construção de algoritmos e estrutura de dados São Paulo Makron Books 2005 UNIVERSIDADE PITÁGORAS UNOPAR ANHANGUERA SISTEMA DE ENSINO PRESENCIAL CONECTADO ENGENHARIA CIVIL THIAGO MENDES PIRES ROTEIRO DE AULA PRÁTICA ALGORITMOS E LÓGICA DE PROGRAMAÇÃO NITERÓI RJ 2025 THIAGO MENDES PIRES ROTEIRO DE AULA PRÁTICA ALGORITMOS E LÓGICA DE PROGRAMAÇÃO Roteiro de Aula Prática apresentado a Universidade Pitágoras Unopar Anhanguera como requisito para obtenção de média para a disciplina de Algoritmos e lógica de Programação Tutora à Distância Everton Lucas Aurelio Mafra NITERÓI RJ 2025 SUMÁRIO 1 INTRODUÇÃO4 2 DESENVOLVIMENTO6 3 CONCLUSÃO12 REFERÊNCIAS13 1 I N T R O D U Ç Ã O A atividade prática de Algoritmos e Lógica de Programação tem como propósito principal proporcionar ao aluno uma compreensão aplicada dos conceitos básicos que envolvem o desenvolvimento de soluções computacionais A partir de situações reais do cotidiano como o registro de pedidos em um restaurante o controle de estoque em uma mercearia e o gerenciamento de transações em um posto de combustível o aluno é conduzido a refletir sobre como um problema pode ser decomposto em etapas lógicas até chegar à construção de um algoritmo simples Inicialmente os exemplos apresentados servem como ponto de partida para estimular o raciocínio lógico permitindo a identificação das variáveis necessárias a definição das entradas e saídas e o entendimento de como aplicar estruturas básicas como leitura de dados cálculos e tomadas de decisão Em seguida o aluno é incentivado a transformar essas descrições em uma representação mais estruturada como pseudocódigo ou fluxograma e por fim implementálas em linguagem de programação observando como os conceitos se aplicam na prática Essa abordagem gradual passando do contexto real para a abstração lógica e finalmente para a implementação facilita a assimilação dos conceitos de lógica de programação e evidencia a importância do pensamento estruturado na resolução de problemas Além disso permite desenvolver habilidades essenciais para o futuro acadêmico e profissional do aluno como a capacidade de interpretar situações do cotidiano analisar requisitos e criar algoritmos simples claros e eficientes Por fim as atividades desenvolvidas a seguir Restaurante Mercearia e Posto de Combustível representam a aplicação prática desses conceitos e demonstram como a lógica de programação pode ser utilizada para resolver problemas reais de forma objetiva e funcional 2 D E S E N V O L V I M E N T O Exercício 1 Programa Sistema de Registro de Pedidos em Restaurante Este programa solicita ao cliente o nome do prato a quantidade desejada e o valor unitário Em seguida calcula o valor total do pedido e exibe o resultado include stdioh int main Declaração de variáveis prato armazena o nome do prato escolhido pelo cliente quantidade armazena a quantidade desejada valorUnitario armazena o preço de uma unidade do prato valorTotal armazena o resultado do cálculo quantidade valorUnitario char prato50 int quantidade float valorUnitario float valorTotal Introdução do programa printf Sistema de Registro de Pedidos printfBemvindo Vamos registrar seu pedido Solicita o nome do prato printfInforme o nome do prato desejado fgetsprato sizeofprato stdin Solicita a quantidade desejada printfInforme a quantidade desejada scanfd quantidade Solicita o valor unitário do prato printfInforme o valor unitario do prato R scanff valorUnitario Cálculo do valor total do pedido valorTotal quantidade valorUnitario Apresenta o resultado ao cliente printfValor total do pedido R 2f valorTotal Finaliza o programa printfPedido registrado com sucesso Obrigado pela preferencia return 0 Explicação do Código Declaração de Variáveis A variável prato armazena o nome do prato escolhido pelo cliente tipo caractere A variável quantidade armazena a quantidade desejada do prato tipo inteiro A variável valorUnitario armazena o valor unitário informado pelo cliente tipo real A variável valorTotal armazena o resultado do cálculo do valor total do pedido Introdução do Programa O programa apresenta uma mensagem de boasvindas ao cliente e informa que o pedido será registrado Entrada de Dados O sistema solicita ao usuário que informe o nome do prato a quantidade desejada e o valor unitário do prato Esses dados são lidos e armazenados nas variáveis correspondentes Cálculo do Valor Total O valor total do pedido é calculado multiplicando a quantidade pelo valor unitário valorTotal quantidade valorUnitario Saída de Dados O programa exibe para o cliente o valor total do pedido e uma mensagem confirmando o registro Testes e Correções O código deve ser executado em um compilador C para verificar se os dados estão sendo lidos corretamente e se o cálculo do valor total está correto Também é importante testar diferentes valores para validar o funcionamento do programa Documentação Cada parte do código contém comentários explicativos facilitando a compreensão da lógica aplicada Apresentação Após testar e validar o programa ele pode ser apresentado em sala destacando o uso das variáveis o processo de entrada de dados e o cálculo do valor total do pedido Exercício 2 Programa Controle de Estoque da Mercearia Este programa verifica se a quantidade atual de um produto está abaixo do nível mínimo e indica se é necessário realizar o reabastecimento include stdioh include stdboolh int main Declaração de variáveis int quantidade armazena a quantidade atual do produto em estoque int nivelMinimo 10 nível mínimo permitido pode ser alterado se necessário bool reabastecer false indica se será necessário reabastecer o produto Solicita a quantidade atual do produto em estoque printfInforme a quantidade atual do produto em estoque scanfd quantidade Verifica se a quantidade está abaixo do nível mínimo if quantidade nivelMinimo reabastecer true precisa reabastecer Exibe o resultado if reabastecer printfATENCAO quantidade abaixo do nivel minimo Reabastecimento necessario else printfEstoque suficiente Nao e necessario reabastecer no momento return 0 Explicação do Código Declaração de Variáveis quantidade armazena a quantidade atual do produto em estoque nivelMinimo armazena o valor mínimo aceitável no estoque reabastecer variável lógica verdadeirofalso que indica se é necessário realizar o reabastecimento Entrada de Dados O programa solicita ao usuário a quantidade atual do produto em estoque e armazena o valor informado Verificação da Quantidade Utilizase uma estrutura condicional if para comparar a quantidade informada com o nível mínimo Se a quantidade estiver abaixo do valor definido a variável reabastecer recebe o valor true Saída de Dados O programa exibe na tela uma mensagem indicando se o produto precisa ou não ser reabastecido Testes e Correções O programa deve ser testado utilizando valores diferentes para a quantidade incluindo casos abaixo iguais e acima do nível mínimo para validar o funcionamento da condição Documentação Comentários foram adicionados ao longo do código para facilitar a compreensão da lógica implementada Apresentação Após testar o programa ele pode ser apresentado em sala mostrando como a verificação condicional auxilia na tomada de decisões em situações práticas como o controle de estoque Exercício 3 Programa Sistema de Registro de Abastecimento Este programa registra o tipo de combustível a quantidade abastecida e o valor por litro Em seguida calcula e exibe o valor total da transação include stdioh int main Declaração de variáveis char combustivel30 armazena o tipo de combustível escolhido pelo cliente float quantidadeLitros armazena a quantidade abastecida em litros float valorPorLitro armazena o preço por litro do combustível float valorTotal armazena o valor total da transação Introdução do programa printf Sistema de Registro de Abastecimento Solicita o tipo de combustível printfInforme o tipo de combustivel gasolina etanol diesel etc fgetscombustivel sizeofcombustivel stdin Solicita a quantidade abastecida printfInforme a quantidade abastecida em litros scanff quantidadeLitros Solicita o valor por litro printfInforme o valor por litro do combustivel R scanff valorPorLitro Calcula o valor total da transacao valorTotal quantidadeLitros valorPorLitro Exibe o valor total ao cliente printfValor total da transacao R 2f valorTotal return 0 Explicação do Código Declaração de Variáveis combustivel armazena o tipo de combustível escolhido pelo cliente ex gasolina etanol diesel quantidadeLitros armazena a quantidade abastecida em litros valorPorLitro armazena o valor cobrado por litro de combustível valorTotal armazena o resultado do cálculo do valor total da compra Entrada de Dados O programa solicita ao usuário o tipo de combustível escolhido a quantidade abastecida em litros e o valor por litro armazenando cada informação na variável correspondente Cálculo do Valor Total O valor total da transação é calculado multiplicando a quantidade abastecida pelo valor por litro valorTotal quantidadeLitros valorPorLitro Saída de Dados O programa exibe ao cliente o valor total da transação de forma clara Testes e Correções O código deve ser testado com diferentes valores de quantidade e valor por litro para verificar se o cálculo está correto e se as mensagens estão sendo exibidas corretamente Documentação Comentários foram adicionados às principais partes do código para facilitar a compreensão da lógica utilizada Apresentação Depois de testar o programa ele pode ser apresentado destacando como é possível utilizar diferentes tipos de dados e estruturas simples para criar um sistema de controle de transações eficiente e aplicado a um contexto real posto de combustível 3 CONCLUSÃO A realização das atividades práticas permitiu consolidar os principais conceitos de algoritmos e lógica de programação por meio de situações reais e de fácil contextualização Ao desenvolver soluções para o registro de pedidos em um restaurante para o controle de estoque de uma mercearia e para o gerenciamento de transações em um posto de combustível foi possível compreender a importância de identificar corretamente as entradas saídas e variáveis bem como aplicar estruturas condicionais e cálculos simples para resolver os problemas apresentados Esses exemplos demonstram que a prática da lógica de programação vai além da escrita de código ela envolve a capacidade de analisar um problema dividilo em etapas lógicas e estruturar uma solução clara e eficiente A aplicação dos algoritmos em linguagem C reforçou a compreensão dos conceitos e mostrou como o raciocínio lógico pode ser traduzido em instruções que o computador é capaz de executar De forma geral a atividade contribuiu para o desenvolvimento do pensamento estruturado e enfatizou a importância da prática constante para o aprimoramento das habilidades em programação A utilização de cenários do cotidiano torna o aprendizado mais significativo e prepara o aluno para futuros desafios acadêmicos e profissionais na área de tecnologia REFERÊNCIAS FORBELLONE A L V EBERSPÄCHER H F Lógica de Programação A construção de algoritmos e estrutura de dados São Paulo Makron Books 2005

Envie sua pergunta para a IA e receba a resposta na hora

Recomendado para você

Programação

210

Programação

Linguagens de Programação

FMU

Lógica e Programação

36

Lógica e Programação

Linguagens de Programação

FMU

Programação em C

3

Programação em C

Linguagens de Programação

FMU

Questionario Indisponivel N2 A5 23-29 Jun 2022

1

Questionario Indisponivel N2 A5 23-29 Jun 2022

Linguagens de Programação

FMU

Programação

16

Programação

Linguagens de Programação

FMU

Computacao em Nuvem - Roteiro Aula Pratica 2 - CloudSim com Netbeans

12

Computacao em Nuvem - Roteiro Aula Pratica 2 - CloudSim com Netbeans

Linguagens de Programação

FMU

Roteiro Aula Pratica - Tecnicas de Inteligencia Artificial e Weka - Rede Neural Perceptron

18

Roteiro Aula Pratica - Tecnicas de Inteligencia Artificial e Weka - Rede Neural Perceptron

Linguagens de Programação

FMU

Programação

210

Programação

Linguagens de Programação

FMU

Resolver Exercicio

13

Resolver Exercicio

Linguagens de Programação

FMU

Programação

202

Programação

Linguagens de Programação

FMU

Texto de pré-visualização

Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO Unidade 1 Lógica de Programação Aula 1 Conceitos Introdutórios Conceitos introdutórios Este conteúdo é um vídeo Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet 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 Juntese 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 bemvindo à primeira aula de Algoritmos e Lógica de Programação Conceitos introdutórios da Lógica de programação Disciplina ALGORITMOS E 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 tornouse indispensável em diversos setores A programação deixou de ser apenas um conhecimento específico de profissionais de tecnologia e tornouse 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 lembrese é 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 Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 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 perguntamonos isso é possível ou melhor é realmente válido 1 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 2 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 3 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 Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO presentes em nosso cotidiano 4 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 5 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 destacamse 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 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çaschave 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 53 4869 5593 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 314165 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 Aprofundarse 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 Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 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 3037 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 Aula 2 Definições de Lógica Definições de lógica Este conteúdo é um vídeo Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet 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 bemvindo à 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 permitindonos 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 Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 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 permitindonos 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 obrasprimas 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 referemse à 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çãofluxograma 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 tornandoos 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 conceitoassunto 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 tornase 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 Início num1 num2 soma num1 num2 soma Fim Figura 1 Exemplo de fluxograma Fonte elaborada pelo autor Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 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 online 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 Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 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 1524 Referências 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 Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 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 Este conteúdo é um vídeo Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet 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 bemvindo à 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 tornase falsa e viceversa 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 email 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 fimvar Anhanguera 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 fimvar inicio escrevaDigite o peso leiapeso escrevaDigite a altura leiaaltura imc peso altura altura escrevaO 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 Anhanguera 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 Anhanguera Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 1 algoritmo ControleAcesso 2 var 3 horarioExpediente autorizacaoEspecial acessoPermitido logico 4 funcaoFuncionario caractere 5 inicio 6 escrevaDigite a hora atual formato 24 horas 7 leiahorarioExpediente 8 escrevaVocê possui autorização especial truefalse 9 leiaautorizacaoEspecial 10 escrevaDigite a função do funcionário A B ou C 11 leiafuncaoFuncionario 12 13 Condição para verificar o horário de expediente 14 acessoPermitido horarioExpediente 8 e horarioExpediente 18 15 16 Condição para verificar autorização especial 17 se autorizacaoEspecial entao 18 acessoPermitido verdadeiro 19 fimse 20 21 Condição para verificar a função do funcionário 22 se funcaoFuncionario A entao 23 acessoPermitido verdadeiro 24 senao 25 acessoPermitido falso 26 fimse 27 28 Exibição do resultado 29 se acessoPermitido entao 30 escrevaAcesso permitido 31 senao 32 escrevaAcesso negado 33 fimse 34 fimalgoritmo Figura 1 Resolução Fonte elaborada pelo autor 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 Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 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 7586 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 Aula 4 Algoritmos Algoritmos Este conteúdo é um vídeo Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet 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 Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃ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 bemvindo à 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árioprograma Preparese 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 const PI real 314 Figura 1 Constante de PI Fonte elaborada pelo autor O valor de PI apresentado na Figura 1 sempre é um valor de referência quando estamos falando de uma constante Seu valor arredondado é 314 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 const PI real 314 algoritmo calcularAreaCirculo var raio area real início escrevaDigite o raio do círculo leiaraio area PI raio raio escrevaA área do círculo é area fimalgoritmo Figura 2 Algoritmo utilizando uma constante PI 314 Fonte elaborada pelo autor 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 Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 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 2 xícaras de farinha de trigo 1 xícara de açúcar 3 ovos 1 xícara de leite 12 xícara de óleo 1 colher de sopa de fermento em pó 1 colher de chá de essência de baunilha Preparo Préaqueça o forno a 180C Em uma tigela misture a farinha de trigo e o fermento em pó Em outra tigela bata os ovos e adicione o açúcar o leite o óleo e a essência de baunilha Misture bem Acrescente a mistura de farinha de trigo aos poucos à segunda tigela mexendo continuamente até obter uma massa homogênea Unte uma forma com margarina e farinha Despeje a massa na forma e leve ao forno préaquecido por aproximadamente 40 minutos ou até que o bolo esteja dourado e firme ao toque Faça o teste do palito insira um palito no centro do bolo se sair limpo o bolo está pronto Retire do forno e deixe esfriar antes de desenformar Dicas Varie adicionando frutas como bananas ou maçãs à massa Explore coberturas como ganache de chocolate ou glacê 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 Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 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 1 Algoritmo ExemploPortugol 2 Var 3 caractere nome 4 5 Inicio 6 EscrevaForneça seu nome 7 Leianome 8 9 EscrevaSeu nome é nome 10 11 EscrevaFim do Programa 12 Fim Figura 3 Pseudolinguagem Portugol Fonte elaborada pelo autor 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 Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 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 1 algoritmo EntradaDeDados 2 var 3 nome caractere 4 5 inicio 6 escrevaDigite seu nome 7 leianome 8 escrevaOlá nome Bemvindo 9 fimalgoritmo 10 Figura 4 Comando leia Fonte elaborada pelo autor 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 Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO ou qualquer texto relevante Veja um exemplo simples na Figura 5 1 algoritmo SaidaDeDados 2 var 3 numero inteiro 4 5 inicio 6 7 numero 10 8 escrevaO dobro de numero é numero 2 9 10 fimalgoritmo 11 Figura 5 Comando escreva Fonte elaborada pelo autor 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 Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO O programa se inicia com uma mensagem de boasvindas e apresenta as opções disponíveis para consulta Observe o código em Portugol a seguir Figura 6 Início do programa Fonte elaborada pelo autor Comando de entrada para opção O programa solicita que o usuário escolha uma das opções disponíveis Figura 7 Comando de entrada para opção Fonte elaborada pelo autor Finalização do programa O programa encerra com uma mensagem de agradecimento Figura 8 Finalização do programa Fonte elaborada pelo autor 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 Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 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 3857 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 Aula 5 Lógica de Programação Videoaula de Encerramento Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO Este conteúdo é um vídeo Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet Olá estudante Seja bemvindo à 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 bemsucedido e adaptável às demandas em constante evolução na área de computação Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO É Hora de Praticar Este conteúdo é um vídeo Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet 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 1 Compreensão do processo narrativa descrever o processo em linguagem natural garantindo que todos os envolvidos compreendam as etapas 2 Visualização do fluxo fluxograma criar um fluxograma visualizando o sequenciamento e as decisões no processo de atendimento 3 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 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 Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃ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 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 Iniciase 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 Destacamse 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 Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 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 Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO Figura Linha do tempo da lógica de programação Fonte elaborada pelo autor 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 Unidade 2 Elementos de Algoritmos Aula 1 Estruturas de Algoritmos Fundamentais Estruturas de algoritmos fundamentais Este conteúdo é um vídeo Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet Olá estudante Nesta primeira videoaula da Unidade apresentaremos os conceitos essenciais de algoritmos sua definição e aplicabilidade Além disso desenvolveremos os tópicos introdutórios de funções e modularização Aproveite esta aula para agregar informações relevantes ao seu aprendizado e assim expandir sua compreensão e entendimento da área de algoritmos e lógica de programação Estudante esta videoaula foi preparada especialmente para você Nela você irá aprender conteúdos importantes para a sua formação profissional Vamos assistila Clique aqui para acessar os slides da sua videoaula Bons estudos Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO Ponto de Partida Olá estudante Seja bemvindo à esta aula sobre estruturas de algoritmos fundamentais Em primeiro lugar vamos entender o que são algoritmos e algumas de suas aplicabilidades Posteriormente abordaremos suas propriedades e alguns exemplos práticos no que se refere à sua aplicação Traremos também conteúdos que introduzirão o tema funções e modularização Estudar algoritmos não apenas aprimorará suas habilidades de resolução de problemas como também proporcionará um entendimento mais profundo do funcionamento interno dos programas e dos sistemas que moldam nosso cotidiano Além disso você será capaz de compreender o quanto as funções e a modularização desempenham papéis cruciais na criação de códigos eficientes e organizados Por meio das explicações e exemplos dados ficará claro que as funções são blocos de construção fundamentais em qualquer linguagem de programação e que a modularização ao dividir o código em partes menores e independentes facilita a compreensão e promove a reutilização e manutenção eficiente de um software Diante desses pontos como exemplo prático imagine que em um posto de combustível movimentado os funcionários enfrentam dificuldades para registrar as vendas de maneira eficiente Para melhorar esse processo você foi convidado a criar um sistema simples que armazene informações essenciais sobre as transações Os dados a serem registrados incluem o tipo de combustível escolhido pelo cliente a quantidade abastecida além do preço por litro dependendo do tipo de combustível Convidamos você a explorar o material da aula e a praticar os conteúdos aqui trabalhados Aproveite Vamos Começar Definição conceito e aplicabilidade dos algoritmos Os algoritmos muitas vezes considerados o ponto principal da ciência da computação desempenham um papel determinante na resolução de problemas e na execução eficiente de tarefas em diversas áreas No âmbito da programação entender a definição e a aplicabilidade dos algoritmos é essencial para qualquer desenvolvedor ou cientista de dados Nesta aula exploraremos o que são algoritmos como eles são estruturados e como são aplicados no mundo real Os algoritmos são sequências ordenadas de instruções que visam realizar uma atividade específica ou solucionar um problema Eles são como receitas detalhadas fornecendo passos claros para atingir um resultado desejado A aplicabilidade dos algoritmos é vasta abrangendo desde a ordenação de dados até a resolução de complexos problemas matemáticos Por exemplo o algoritmo Bubble Sort organiza elementos em uma lista de forma ascendente ou Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO descendente enquanto o algoritmo de Dijkstra é utilizado para encontrar o caminho mais curto em redes Vale lembrar que esses exemplos são mais complexos e sua construção exige uma maior habilidade Consideremos pois um exemplo mais simples um algoritmo em Portugol que utiliza comandos básicos de entrada e saída Esse algoritmo solicita ao usuário que insira dois números realiza a soma e exibe o resultado como podemos observar na Figura 1 Figura 1 Exemplo de algoritmo com comandos básicos Fonte elaborada pelo autor Neste exemplo o algoritmo utiliza os comandos escreva para exibir mensagens no console e leia para capturar a entrada do usuário Os números fornecidos são armazenados nas variáveis numero1 e numero2 Em seguida a soma é calculada e armazenada na variável resultado que é exibida ao usuário Este é um exemplo básico que demonstra o uso fundamental de entrada e saída em algoritmos simples Outro exemplo clássico é o cálculo da média de um aluno Baseado em informações solicitadas para o usuário é possível apresentar o resultado de cálculos como a média aritmética ou a média ponderada de uma turma de alunos ou até mesmo determinar qual aluno ficou com a maior média da turma Na Figura 2 a seguir vemos um exemplo desse algoritmo Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO Figura 2 Cálculo da média de um aluno Fonte elaborada pelo autor Note que a figura apresenta a criação das variáveis na linha 3 Nesse caso todas as variáveis foram declaradas como reais pois existem valores nos cálculos de divisão que podem retornar resultados fracionários Em seguida é solicitado do usuário as notas e após essa etapa é realizado o cálculo da média O algoritmo finaliza apresentando o resultado da média na tela do programa como uma mensagem textual que acompanha o valor numérico Em síntese compreender a definição e aplicabilidade dos algoritmos é essencial para qualquer pessoa envolvida no mundo da programação e da ciência de dados uma vez que possibilitam a automação de processos a solução de problemas básicos e complexos e a otimização de sistemas Portanto mergulhar no entendimento e na prática dos algoritmos é não apenas uma escolha sábia mas uma necessidade para quem busca excelência na área da programação e na resolução de desafios computacionais Propriedades de um algoritmo O aprendizado das propriedades de um algoritmo é fundamental no campo da ciência da computação Imagine os algoritmos como os mecanismos complexos que impulsionam a engrenagem por trás do funcionamento eficiente dos softwares que utilizamos diariamente Compreender suas propriedades permite aprimorar então a capacidade de resolução de problemas e criar soluções mais eficazes para desafios complexos Ao iniciar os estudos nesse domínio os futuros programadores aprimoram suas habilidades técnicas além de cultivar uma perspicácia analítica que é essencial para navegar no cenário em constante evolução da tecnologia Debruçarse sobre os algoritmos e suas propriedades não se trata pois de uma exploração acadêmica mas de uma habilidade indispensável para quem busca a perfeição na arte da programação e da resolução de problemas computacionais Na sequência apresentaremos alguns exemplos práticos que englobam as principais propriedades de um algoritmo 1 Passo a passo para realizar uma tarefa A característica de seguir um passo a passo em um algoritmo é crucial para garantir a execução ordenada e lógica de uma tarefa específica Isso significa que cada ação é cuidadosamente planejada e executada em uma sequência predeterminada A analogia pode ser feita com uma receita de cozinha na qual cada instrução precisa ser acompanhada na ordem correta para se obter o resultado desejado No contexto da programação a clareza e a precisão nos passos são essenciais para evitar erros e garantir o desfecho almejado Observe na Figura 3 o exemplo de um passo a passo na realização de uma tarefa A propriedade de passo a passo é essencial para guiar a execução de um algoritmo de maneira sequencial e lógica como este que calcula a média ponderada de três notas seguindo um processo ordenado de entrada cálculo e exibição do resultado 2 Processamento e instruções lógicas O processamento e as instruções lógicas são a essência do funcionamento de um algoritmo Cada passo do algoritmo envolve a manipulação de dados através de operações lógicas como comparações cálculos e tomadas de decisão Por exemplo ao verificar se um número é positivo o algoritmo utiliza a instrução lógica se para comparar o número com zero Essas operações são a base que permite que o algoritmo resolva problemas complexos decompondoos em operações lógicas mais simples como vemos na Figura 4 A propriedade de processamento e instruções lógicas é exemplificada em um algoritmo que verifica se um número é divisível por 3 Em outras palavras o processamento envolve a verificação lógica da condição de divisibilidade Aqui as instruções lógicas determinam se o número é ou não divisível por 3 Siga em Frente 3 Início e fim A propriedade de ter um início e um fim é essencial para estruturar e delimitar a execução de um algoritmo O início é o ponto de partida onde são recebidos os dados ou parâmetros necessários para realizar a tarefa O fim por sua vez marca o encerramento do processo resultando na conclusão da tarefa ou na produção do resultado desejado Essa estruturação clara proporciona uma melhor compreensão do escopo do algoritmo facilitando o controle do desenvolvedor sobre o fluxo de execução como na Figura 5 Figura 5 Exemplo em Portugol conversão de Celsius para Fahrenheit Fonte elaborada pelo autor Na Figura 5 a propriedade de ter um início e um fim é evidente em um algoritmo que converte temperatura de Celsius para Fahrenheit O início envolve a entrada da temperatura em Celsius e o fim marca a exibição da temperatura convertida 4 Instruções claras e objetivas Instruções claras e objetivas são fundamentais para garantir que o algoritmo seja compreendido e executado corretamente A clareza nas instruções significa que cada passo do algoritmo é descrito de maneira direta sem ambiguidades evitando interpretações errôneas A objetividade por seu turno está relacionada à eficiência na comunicação das ações a serem realizadas sem informações desnecessárias Essas instruções são como um manual detalhado que guia a execução do algoritmo de forma inequívoca Veja o exemplo a seguir Figura 6 Exemplo em Portugol verificação de número primo Fonte elaborada pelo autor A clareza e objetividade nas instruções como vemos na Figura 6 são primordiais em um algoritmo que verifica se um número é primo A estrutura de controle de fluxo é clara tornando o algoritmo compreensível Em suma cada uma dessas propriedades desempenha um papel elementar na criação de algoritmos robustos e eficientes A sequencialidade garante uma execução ordenada o processamento e as instruções lógicas são a essência da operação o início e fim delimitam o escopo e as instruções claras e objetivas asseguram uma compreensão e execução adequadas Ao entender e aplicar essas propriedades os programadores são capazes de desenvolver algoritmos mais eficazes precisos e fáceis de manter Introdução a funções e modularização As funções possuem grande relevância na construção de algoritmos Elas são blocos de código que realizam tarefas específicas e podem ser chamadas de diferentes partes do programa Ao introduzir funções a programação se torna mais modular e compreensível Imagineas como ferramentas especializadas no kit de um desenvolvedor cada qual projetada para executar um trabalho único No mercado da Tecnologia da Informação isso se traduz em eficiência e reutilização de código Por exemplo uma função que valida senhas pode ser usada em diferentes partes de um sistema promovendo consistência e economizando tempo de desenvolvimento A seguir veremos quatro exemplos básicos e contextualizados de funções no campo da TI 1 Validação de email Cenário em um sistema de cadastro online é necessário validar se o endereço de email fornecido pelos usuários está no formato correto Função uma função específica pode ser criada para validar emails sendo utilizada em várias partes do sistema desde o cadastro até a recuperação de senha 2 Geração de relatórios Cenário um sistema de gerenciamento financeiro precisa gerar relatórios mensais para os usuários Função uma função especializada para gerar relatórios pode ser desenvolvida proporcionando uma abordagem modular para lidar com diferentes tipos de relatórios 3 Ordenação de lista Cenário um sistema de gerenciamento de tarefas precisa exibir as tarefas em uma ordem específica como por data de vencimento Função desenvolver uma função de ordenação que aceite a lista de tarefas como entrada e retorne a lista ordenada Essa função pode ser usada sempre que for necessário exibir as tarefas em uma ordem específica 4 Conversão de moeda Cenário um aplicativo financeiro permite que o usuário converta valores entre diferentes moedas Função criar uma função de conversão de moeda que aceite o valor a ser convertido a moeda de origem e a moeda de destino como parâmetros Essa função encapsula a lógica de conversão e pode ser chamada sempre que uma conversão for necessária Dessa forma concluise que ao dominar os conceitos de funções os programadores podem organizar melhor seus programas facilitando a manutenção e a depuração destes Além disso o uso adequado de funções promove a abstração e a encapsulação permitindo que partes do código sejam isoladas e modificadas independentemente o que contribui para a escalabilidade e a flexibilidade do software Portanto investir tempo no estudo das funções na programação é fundamental para se tornar um desenvolvedor mais competente e eficaz Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO Quanto à modularização podemos definila como o princípio de dividir um sistema complexo em módulos ou componentes independentes e interconectados Esse conceito traz inúmeras vantagens para o desenvolvimento de software no mercado de TI Em termos de desempenho a modularização permite a otimização de cada módulo individual melhorando a eficiência geral do sistema Além disso ela também simplifica a manutenção uma vez que alterações ou atualizações podem ser feitas em módulos específicos sem impactar o sistema como um todo Isso se traduz em economia de tempo e recursos que são essenciais no cenário tecnológico e na vida de um desenvolvedor A seguir discorreremos sobre essas vantagens com mais detalhes 1 Manutenibilidade ao dividir um sistema em módulos tornase mais fácil localizar e corrigir problemas específicos sem afetar outras partes do código Isso simplifica a manutenção e atualização do software 2 Reusabilidade de código módulos bem definidos podem ser reutilizados em diferentes partes do sistema ou mesmo em projetos futuros o que economiza tempo de desenvolvimento e promove consistência no código 3 Escalabilidade sistemas modulares são mais fáceis de escalar pois novos módulos podem ser adicionados conforme necessário o que ajuda na adaptação do sistema às mudanças nos requisitos 4 Colaboração eficiente a modularização permite o trabalho colaborativo pois diferentes equipes podem se concentrar em módulos específicos sem interferir no trabalho umas das outras Como podemos notar por meio dos exemplos citados a modularização tem um papel importante no mercado de Tecnologia da Informação TI pois oferece uma abordagem organizada e escalável Ao dividir um sistema complexo em módulos independentes e interconectados os desenvolvedores podem aumentar a eficiência em desenvolvimento testes e manutenção de software Isso permite que equipes trabalhem de forma colaborativa em diferentes partes do projeto facilitando a identificação e correção de erros além de promover a reutilização do código A modularização também permite a integração de novos recursos e a adaptação a mudanças nos requisitos do cliente ou do mercado tornando o processo de desenvolvimento mais ágil e adaptável Logo a modularização não somente melhora a qualidade e confiabilidade dos produtos de software como também contribui para a entrega oportuna de soluções inovadoras e eficientes para os clientes As funções e a modularização são portanto elementos de grande importância no desenvolvimento de software e no mundo da programação Ao utilizar funções os desenvolvedores podem criar blocos de código reutilizáveis promovendo eficiência e coesão no desenvolvimento A modularização por sua vez traz vantagens significativas desde a melhoria do desempenho até a facilitação da manutenção e escalabilidade do sistema Esses princípios formam uma ótima base para o desenvolvimento de sistemas de qualidade que sejam flexíveis e fáceis de manter qualidades muito valorizadas no ambiente tecnológico atual Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO Vamos Exercitar Vamos retomar a situação apresentada no início da aula na qual em um posto de combustível movimentado os funcionários enfrentam dificuldades para registrar as vendas de maneira eficiente Para melhorar esse processo é necessário criar um sistema simples que armazene informações essenciais sobre as transações Os dados a serem registrados incluem o tipo de combustível escolhido pelo cliente a quantidade abastecida além do preço por litro dependendo do tipo de combustível Vamos à resolução Registro do tipo de combustível Solicite ao cliente tipo de combustível desejado gasolina etanol diesel etc Criar uma variável do tipo Caractere que armazene o tipo de combustível Registro da quantidade abastecida Solicite ao cliente a quantidade de litros desejada para o combustível escolhido Armazene a quantidade em uma variável do tipo Real pois a quantidade pode ser fracionada Registro do valor por litro O valor por litro deve ser consultado na tabela de preços do posto Armazene o valor por litro em uma variável do tipo Real Cálculo do valor total Calcule o valor total da compra multiplicando a quantidade de litros pelo preço por litro Apresente o valor total ao cliente Este método simplificado de gerenciamento de transações ressalta a relevância da utilização de variados tipos de dados para armazenar informações em um posto de abastecimento de combustível A habilidade em lidar com dados e realizar cálculos é essencial para assegurar um serviço ágil e preciso aos clientes Saiba mais Para saber mais sobre conceitos básicos de algoritmos entre os quais estão os tipos de dados e operadores aritméticos consulte o Capítulo 2 Algoritmos e a Lógica de Programação do livro Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO Algoritmos Lógica para Desenvolvimento de Programação de Computadores de Manzano e Oliveira disponível no repositório da Biblioteca virtual MANZANO J A N G OLIVEIRA J F de Capítulo 2 Algoritmos e a Lógica de Programação In Algoritmos Lógica para Desenvolvimento de Programação de Computadores São Paulo Editora Saraiva 2019 p 29 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 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 2 Execução Sequencial e Estruturas de Decisão Execução sequencial e estruturas de decisão Este conteúdo é um vídeo Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet Olá estudante Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO Nesta videoaula temos como objetivo apresentar os conceitos básicos de algoritmos que abrangem os primeiros passos no desenvolvimento da tomada de decisão em códigos Além disso abordaremos como deve ser a estrutura de um código de decisão que utiliza condicionais e como ele funciona Não perca a oportunidade de agregar informações valiosas ao seu aprendizado e assim ampliar seu conhecimento e compreensão da área de algoritmos Clique aqui para acessar os slides da sua videoaula Bons estudos Ponto de Partida Olá caro estudante Seja bemvindo à esta aula sobre estrutura sequencial e estrutura de decisão as quais constituem a base para a construção lógica de programas As estruturas sequenciais são como os blocos de construção iniciais de um projeto em que as instruções são executadas em ordem linear uma após a outra Essa abordagem é essencial para organizar o fluxo de execução do programa permitindo que a lógica siga de forma ordenada e compreensível Seja na simples exibição de mensagens ou até em cálculos mais complexos as estruturas de sequência fornecem um ponto de partida para qualquer programador iniciante À medida que avançamos entramos no domínio da estrutura de decisão um conceitochave para a tomada de decisões dinâmicas em um programa Através de declarações condicionais como se e senao podemos introduzir ramificações lógicas no fluxo do código Essas estruturas permitem que um programa escolha entre diferentes caminhos de execução com base em condições específicas aumentando assim a flexibilidade e adaptabilidade às aplicações Para ilustrar a aprendizagem dos conteúdos desta aula imagine que você precisa desenvolver um módulo para um sistema de comércio eletrônico que oferece descontos aos clientes com base em suas compras anteriores O sistema deve aplicar um percentual de desconto de acordo com o valor total da compra Ao compreender esses princípios básicos estaremos prontos para explorar cenários e desafios de programação mais complexos no futuro Vale lembrar que esses conceitos iniciais são a chave para desbloquear o enorme potencial da programação Vamos Começar No vasto universo da programação as estruturas que moldam a execução dos algoritmos são partes que integram a eficácia do código Sua compreensão é um prérequisito elementar para qualquer programador que busca criar sistemas coesos e funcionais Nesse context Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO se três aspectos fundamentais a estrutura de programação que define o esqueleto do código as estruturas sequenciais que determinam a execução linear das instruções e as estruturas de decisão que conferem ao programa a capacidade de se adaptar a diferentes cenários por meio de lógica condicional Em um nível macro a estrutura de programação estabelece a ordem geral das operações enquanto as estruturas sequenciais e de decisão refinam essa ordem proporcionando ao código a flexibilidade necessária para enfrentar desafios diversos Este mergulho no centro dessas estruturas é essencial para capacitar programadores a criar códigos mais claros concisos e eficientes podendo assim solucionar problemas de forma sofisticada no mundo da programação Estrutura de programação A estrutura de programação referese ao esqueleto básico de um programa estabelecendo a ordem em que as instruções são executadas No contexto do pseudocódigo Portugol podemos ilustrar essa qualidade com um exemplo simples Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO algoritmo Subtracao var numero1 numero2 sub inteiro inicio Entrada de dados escrevaDigite o primeiro número leianumero1 escrevaDigite o segundo número leianumero2 Processamento sub numero1 numero2 Saída de dados escrevaA diferença é sub fim Figura 1 Exemplo de estrutura de programação Fonte elaborada pelo autor Na Figura 1 é evidente a estrutura de programação O programa começa com a entrada de dados quando o usuário fornece dois números Em seguida ocorre o processamento em que os números são subtraídos e o resultado é armazenado na variável sub Por fim a saída de dados exibe a subtração ao usuário Essa sequência lógica de operações exemplifica a estrutura de programação na qual cada passo é crucial para alcançar o resultado desejado Essa abordagem estruturada é essencial para garantir a clareza e a funcionalidade do código Em projetos mais complexos a organização eficaz das operações por meio de uma estrutura de programação bem definida tornase ainda mais crítica permitindo que programadores e equipes colaborem de maneira mais eficiente e mantenham o código de forma sustentável ao longo do tempo Assim a estrutura de programação não apenas estabelece a ordem de execução mas também promove a legibilidade e a manutenção do código fatores cruciais no desenvolvimento de um software de qualidade Estruturas sequenciais As estruturas sequenciais representam a execução de instruções em ordem linear uma após a outra Em linguagens de programação isso ocorre de forma natural mas é importante compreender como organizálas de maneira lógica Para tanto vamos expandir o exemplo anterior para incluir uma estrutura sequencial Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO Figura 2 Estruturas sequenciais Fonte elaborada pelo autor Neste exemplo ampliado após a saída de dados que exibe a soma adicionamos instruções sequenciais para calcular e exibir o dobro do resultado Essa adição ilustra como as estruturas sequenciais permitem a execução linear de operações uma após a outra No caso o dobro da soma é calculado imediatamente após a exibição da soma seguindo o fluxo sequencial do programa As estruturas sequenciais são pois capitais para a organização lógica e compreensão do código Elas possibilitam que os desenvolvedores expressem a lógica de execução de maneira clara e direta Em programas mais complexos essa sequencialidade tornase primordial para evitar resultados inesperados e garantir que as operações sejam realizadas na ordem desejada A clareza proporcionada por estruturas sequenciais também facilita a depuração e a manutenção do código contribuindo para um desenvolvimento mais eficiente e eficaz Siga em Frente Estruturas de decisão No universo da programação as estruturas de decisão são fundamentais para conferir ao código a capacidade de tomar diferentes caminhos de execução com base em condições específicas Na pseudolinguagem Portugol a estrutura condicional básica é representada pelo comando seentãosenão As estruturas de decisão podem ser classificadas em três tipos principais desvio condicional simples desvio condicional composto e desvio condicional encadeado Exploremos cada uma delas com exemplos claros em Portugol Desvio condicional simples O desvio condicional simples é o tipo mais básico no qual o código executa uma instrução se uma condição for verdadeira caso contrário ele simplesmente continua sua execução normal Na Figura 3 vemos como o programa verifica se um número digitado é positivo Neste caso a mensagem O número é positivo será exibida apenas se a condição numero 0 for verdadeira Desvio condicional composto O desvio condicional composto inclui um bloco de instruções para cada possível resultado da condição No exemplo a seguir além de verificar se o número é positivo também apurase se é negativo ou igual a zero 5 Início Entrada de dados 7 EscrevaDigite um número 8 Leianumero Desvio condicional composto 11 se numero 0 entao 12 escrevaO número é positivo 14 escrevaO número é negativo ou igual a zero0 17 Fim Figura 4 Positivo ou negativo Fonte elaborada pelo autor Logo o código aborda todas as possibilidades garantindo que a mensagem correta seja exibida com base no valor do número inserido Desvio condicional encadeado O desvio condicional encadeado ocorre quando uma série de decisões está interligada Cada decisão é tomada com base na condição anterior Na Figura 5 observamos o programa classificar um aluno com base em sua nota 1 algoritmo DesvioCondicionalEncadeado 2 var 3 nota real 5 inicio Entrada de dados 7 escrevaDigite a nota do aluno 8 leianota Desvio condicional encadeado 11 se nota 70 entao 12 escrevaAluno aprovado 14 senao 15 se nota 40 entao 16 escrevaAluno em recuperação 17 senao 18 escrevaAluno reprovado 20 fim 21 Figura 5 Aprovado recuperação ou reprovado Fonte elaborada pelo autor Neste caso o programa avalia primeiro se a nota é maior ou igual a 70 Se sim o aluno é aprovado Caso contrário se a nota for maior ou igual a 40 ele está em recuperação Se não atender a nenhuma dessas condições o aluno é considerado reprovado Tais exemplos demonstram como as estruturas de decisão em Portugol podem ser aplicadas de maneiras simples e compreensíveis proporcionando ao programador flexibilidade para lidar com diferentes situações A escolha entre essas estruturas dependerá da complexidade do problema a ser resolvido e da lógica específica que se deseja implementar Conclusão Em resumo as estruturas de programação constituem a espinha dorsal do desenvolvimento de software proporcionando a organização lógica necessária para a criação de algoritmos eficientes Ao definirem o esqueleto do código elas estabelecem as bases sobre as quais as estruturas sequenciais e de decisão se desdobrarão As estruturas sequenciais por sua vez asseguram a execução ordenada das instruções conferindo clareza e linearidade ao fluxo do programa Da mesma forma as estruturas de decisão emergem como ferramentas cruciais para a adaptação dinâmica do código permitindo que ele responda a condições específicas Ao aplicar esses conceitos no ambiente de programação em Portugol os desenvolvedores têm a oportunidade de criar códigos mais legíveis organizados e eficientes A clareza proporcionada pelas estruturas de programação é fundamental para facilitar a compreensão do código não apenas pelo criador mas também por outros membros da equipe envolvida no projeto Além disso a capacidade de tomar decisões lógicas por meio das estruturas condicionais permite que os programas lidem de maneira adaptável com diferentes cenários contribuindo para a robustez e versatilidade das soluções desenvolvidas Em última análise o entendimento profundo dessas estruturas é uma habilidade essencial para programadores que aspiram a construir soluções de software robustas e funcionalmente sólidas Vamos Exercitar Vamos retomar a situação apresentada no início da aula onde você precisa desenvolver um módulo para um sistema de comércio eletrônico que oferece descontos aos clientes com base em suas compras anteriores O sistema deve aplicar um desconto de 10 em relação ao valor total da compra Vamos à resolução Identificação do cliente Crie uma estrutura de dados para representar as informações do cliente nome email e total gasto em compras anteriores Solicite ao usuário que insira seu nome email e o valor total gasto em compras anteriores Aplicação de desconto Implemente uma estrutura de seleção condicional para verificar o valor total gasto pelo cliente Aplique um desconto de 10 se o valor total for superior a R 500 Exibição do resultado Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO Mostre ao usuário o valor original da compra o desconto aplicado se houver e o valor final a ser pago Exiba uma mensagem incentivando o cliente a continuar comprando Usando a Linguagem C Figura 6 Identificação do cliente Fonte elaborada pelo autor Figura 7 Aplicação do desconto Fonte elaborada pelo autor Anhanguera Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO Figura 8 Resultado Fonte elaborada pelo autor Saiba mais Para saber mais sobre as estruturas de decisão e formas de aplicação dos desvios condicionais na linguagem de programação C e quais suas características consulte o Capítulo 7 Estruturas condicionais do livro Elementos de programação em C de Pinheiro disponível no repositório da Biblioteca virtual PINHEIRO F de A C Capítulo 7 Estrutura Condicionais In Elementos de programação em C Porto Alegre Bookman 2012 p 148165 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 PINHEIRO F de A C Elementos de programação em C Porto Alegre Bookman 2012 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 Estruturas de Repetição Anhanguera Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO Estruturas de repetição Este conteúdo é um vídeo Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet Olá estudante Esta videoaula será dedicada às estruturas de repetição as quais proporcionarão uma imersão completa nos elementos essenciais para o desenvolvimento de algoritmos mais complexos Durante nosso encontro exploraremos os conceitos fundamentais dessas estruturas discutindo como elas podem ser aplicadas para otimizar e automatizar processos em programação A habilidade de criar loops eficientes é crucial para qualquer programador e esta aula visa fornecer uma compreensão sólida do assunto Além disso abordaremos a importância da clareza na estrutura do código e como essa qualidade contribui para um desenvolvimento mais eficiente Entender como organizar e controlar o fluxo de um programa é primordial para qualquer aspirante a desenvolvedor Clique aqui e acesse os slides da sua videoaula Bons estudos Ponto de Partida Olá caro estudante Seja bemvindo à esta aula dedicada às estruturas de repetição em Portugal Nesta jornada apresentaremos essas estruturas essenciais para a criação de algoritmos dinâmicos e eficientes Elas são como os fios que tecem a complexidade dos programas proporcionando a flexibilidade necessária para enfrentar desafios variados Assim como alicerces firmes sustentam uma construção entender o EnquantoFaça ParaAtéFaça e RepitaAté permitirá assim que você construa códigos mais robustos e adaptáveis Para ilustrar a aprendizagem dos conteúdos desta aula imagine que você trabalha em uma loja de pneus que deseja otimizar o controle de estoque e conta com a sua ajuda para criar um programa que facilite a contagem de produtos Cada pneu vendido é registrado e o estoque precisa ser atualizado constantemente Portanto você precisará desenvolver um algoritmo que permita ao vendedor informar quantos pneus foram vendidos e com base nessa informação realizar a contagem atualizada do estoque Este é apenas o começo o conhecimento adquirido aqui será a chave para desbloquear as possibilidades infinitas que a programação oferece Abrace cada conceito participe ativamente e Anhanguera Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO Figura 5 Soma de vetores Fonte elaborada pelo autor Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO Figura 6 Soma de vetores cont Fonte elaborada pelo autor Nesta atividade você aprendeu como utilizar vetores em Portugol para armazenar e manipular conjuntos de dados Você criou um algoritmo que permite ao usuário inserir elementos em dois vetores somálos e depois apresentar os vetores originais e o vetor resultante da soma Esta prática é essencial para entender o conceito de vetores e como aplicálos na resolução de problemas computacionais Saiba mais Para saber mais sobre estruturas de dados homogêneas e heterogêneas vetores e matrizes consulte o Capítulo 6 Estruturas de Dados Homogêneas de Uma Dimensão do livro Algoritmos Lógica para Desenvolvimento de Programação de Computadores de Manzano e Oliveira disponível no repositório da Biblioteca virtual Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO Figura Elementos algoritmos Fonte elaborada pelo autor CORMEN T et al Algoritmos teoria e prática 3 ed Rio de Janeiro LTC 2022 Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO Figura 7 Funções Fonte elaborada pelo autor Arrays e estruturas de dados Arrays armazenam conjuntos de dados do mesmo tipo enquanto estruturas de dados mais complexas como structs permitem agrupar diferentes tipos de dados sob um único nome Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO Figura 9 Venda de calçados Fonte elaborada pelo autor Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO Figura 7 Resolução da atividade Fonte elaborada pelo autor Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO Figura 1 Condicional simples Fonte elaborada pelo autor Aqui a mensagem Você é maior de idade será exibida apenas se a condição idade maior ou igual a 18 for verdadeira Estrutura condicional composta A estrutura condicional composta permite a execução de diferentes blocos de código dependendo de uma condição Vejamos a Figura 2 Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO Figura 2 Condicional composta Fonte elaborada pelo autor Neste exemplo há dois blocos distintos de código um para o caso em que o número é positivo e outro para quando não é positivo Siga em Frente Estrutura condicional encadeada A estrutura condicional encadeada permite lidar com várias condições em sequência Cada bloco de código depende da avaliação das condições anteriores Observe Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO Figura 4 Jogo de adivinhação Fonte elaborada pelo autor Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO Vamos Exercitar Retomando a situação apresentada no início da aula onde você deverá criar uma função recursiva para calcular o nésimo termo da sequência de Pell A sequência de Pell é semelhante à sequência de Fibonacci mas cada termo é o dobro do termo anterior mais o termo antes do anterior Ou seja Pn 2Pn1 Pn2 com P0 0 e P1 1 Vamos à resolução Figura 4 Sequência de Pell Fonte elaborada pelo autor Neste código a função sequenciaPell calcula o nésimo termo da sequência de Pell de forma recursiva utilizando os casos base P0 0 e P1 1 O exemplo no main mostra como utilizar a função para obter o 5ésimo termo mas é possível substituir o valor de n conforme necessário Saiba mais Para saber mais sobre funções recursivas consulte o Capítulo 9 Seção 97 do livro Elementos de programação em C de Pinheiro disponível no repositório da Biblioteca virtual Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO Figura 8 Registros para armazenar informações Fonte elaborada pelo autor Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO 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 5 Aplicações de Programação Videoaula de Encerramento Este conteúdo é um vídeo Para assistir este conteúdo é necessário que você acesse o AVA pelo computador ou pelo aplicativo Você pode baixar os vídeos direto no aplicativo para assistir mesmo sem conexão à internet Olá caro estudante Seja muito bemvindo à nossa videoaula dedicada às funções funções recursivas registros e arquivos Nela exploraremos a fundo tais conteúdos e os elementos essenciais de um programa na linguagem C Aproveite esta oportunidade de aprendizado e mergulhe neste conteúdo fundamental para o cenário de algoritmos Clique aqui para acessar os slides da sua videoaula Bons estudos Ponto de Chegada Olá estudante Para desenvolver a competência desta Unidade isto é criar soluções algorítmicas utilizando técnicas de funções e recursividade e estruturas como vetores e matrizes tivemos que estudar a fundo procedimentos e funções Durante esta jornada de aprendizado em programação C mergulhamos em conceitos fundamentais para o desenvolvimento de algoritmos Entre estes tópicos importantes estão Programação e funções com vetores exploração de conceitos e técnicas relacionados à manipulação de vetores em programação Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO Figura 1 Cálculo do IRPF Fonte elaborada pelo autor Conclusão Este estudo de caso destaca a abordagem conceitual na criação da função apresentando uma visão detalhada dos requisitos para o cálculo do Imposto de Renda Pessoa Física IRPF em linguagem C Nesta linha do tempo apresentamos resumidamente os principais conceitos relacionados a funções com vetores programação com matrizes a função e recursividade e registros e arquivos Disciplina ALGORITMOS E LÓGICA DE PROGRAMAÇÃO Figura Programação lógica Fonte elaborada pelo autor UNIVERSIDADE PITÁGORAS UNOPAR ANHANGUERA SISTEMA DE ENSINO PRESENCIAL CONECTADO ENGENHARIA CIVIL THIAGO MENDES PIRES ROTEIRO DE AULA PRÁTICA ALGORITMOS E LÓGICA DE PROGRAMAÇÃO NITERÓI RJ THIAGO MENDES PIRES ROTEIRO DE AULA PRÁTICA ALGORITMOS E LÓGICA DE PROGRAMAÇÃO Roteiro de Aula Prática apresentado a Universidade Pitágoras Unopar Anhanguera como requisito para obtenção de média para a disciplina de Algoritmos e lógica de Programação Tutora à Distância Everton Lucas Aurelio Mafra SUMÁRIO 1 INTRODUÇÃO3 2 DESENVOLVIMENTO4 3 CONCLUSÃO16 REFERÊNCIAS17 1 INTRODUÇÃO A aula prática sobre algoritmos e lógica de programação tem como objetivo fundamental proporcionar aos alunos um entendimento profundo e aplicado dos conceitos essenciais que regem a criação de soluções computacionais Durante a aula os alunos são incentivados a mergulhar no raciocínio lógico essencial para o desenvolvimento de algoritmos eficientes e funcionais O professor inicia a atividade apresentando um problema real instigando a turma a pensar sobre como dividir essa questão em etapas menores ou seja como estruturar um algoritmo que possa ser facilmente compreendido e executado por um computador Após essa introdução os alunos são desafiados a desenvolver seus próprios algoritmos para resolver problemas simples incentivando a prática e a aplicação do conhecimento teórico A atividade prática é acompanhada por discussões em grupo onde os alunos podem compartilhar suas soluções e discutir as diferentes abordagens que utilizaram Isso promove um ambiente colaborativo e facilita o aprendizado por meio da troca de ideias Além disso o roteiro inclui a utilização de uma linguagem de programação específica onde os alunos implementam os algoritmos criados Essa etapa é crucial pois permite que os alunos vejam a transição do conceito abstrato para a aplicação prática reforçando a lógica por trás de suas soluções Ao final da aula é reservado um tempo para reflexões sobre o que foi aprendido permitindo que os alunos identifiquem desafios enfrentados e conquistas realizadas durante o processo Essa abordagem prática e interativa não apenas solidifica o entendimento dos alunos sobre algoritmos e lógica de programação mas também os prepara para desafios futuros na área de desenvolvimento de software 2 DESENVOLVIMENTO Programa Aventura na Floresta Sussurrante Este programa permite que o usuário escolha entre três caminhos na floresta enfrentando obstáculos e acumulando pontos conforme as escolhas feitas algoritmo AventuraFlorestaSussurrante Declaração de variáveis variável escolha inteiro resposta inteiro pontos inteiro início Inicializa a pontuação pontos 0 Apresenta a introdução do programa escrevaBemvindo à Floresta Sussurrante escrevaVocê é um explorador corajoso em busca de tesouros e segredos perdidos escrevaEscolha sabiamente seu caminho Menu de opções escreva1 O Caminho das Sombras escreva2 O Caminho da Luz escreva3 O Caminho das Criaturas Captura a escolha do usuário leiaescolha Estrutura de decisão para os caminhos escolha caso escolha de 1 escrevaVocê escolheu o Caminho das Sombras escrevaCuidado Uma criatura mágica guarda o caminho escrevaResolva o enigma Quem sou eu Tenho olhos mas não vejo Tenho boca mas não falo escreva1 Responder Caveira escreva2 Tentar passar sem responder leiaresposta se resposta 1 então escrevaVocê acertou A criatura deixou você passar escrevaVocê encontrou um baú com uma gema preciosa pontos pontos 100 senão escrevaVocê não conseguiu passar A criatura o impediu fimse 2 escrevaVocê escolheu o Caminho da Luz escrevaUma ponte quebrada se interpõe em seu caminho escrevaVocê deve decidir 1 Tentar atravessar a ponte 2 Procurar um desvio seguro leiaresposta se resposta 1 então escrevaVocê atravessou a ponte com sucesso escrevaVocê encontrou uma fonte mágica que restaurou sua saúde pontos pontos 50 senão escrevaVocê decidiu procurar um desvio e ficou seguro mas não ganhou pontos fimse 3 escrevaVocê escolheu o Caminho das Criaturas escrevaUma criatura mágica adormecida bloqueia o caminho escrevaVocê pode 1 Contornar a criatura 2 Acordála para passar leiaresposta se resposta 1 então escrevaVocê contornou a criatura com cuidado escrevaVocê encontrou uma árvore encantada que lhe deu uma habilidade especial pontos pontos 75 senão escrevaA criatura acordou e você não conseguiu passar fimse outro escrevaOpção inválida Escolha entre 1 2 ou 3 fimesc Exibe a pontuação final escrevaSua pontuação final é pontos fimalgoritmo Explicação do Código Declaração de Variáveis escolha armazena a opção escolhida pelo usuário resposta armazena a resposta do usuário para os enigmas e desafios pontos conta a pontuação total acumulada Introdução do Programa O programa apresenta uma breve narrativa e as opções de caminhos disponíveis Estruturas de Decisão Utiliza a estrutura ESCOLHA CASO para direcionar o fluxo com base na escolha do usuário Cada caminho tem seus próprios desafios onde o usuário pode tomar decisões que afetam a pontuação Caminhos e Desafios O Caminho das Sombras envolve um enigma O Caminho da Luz tem uma decisão sobre atravessar ou não uma ponte O Caminho das Criaturas pede que o jogador decida contornar ou acordar a criatura Pontuação O programa acumula pontos de acordo com as decisões corretas do usuário Testes e Correções Teste o código em Portugol Web Studio e verifique se todas as opções funcionam corretamente Certifiquese de que mensagens de erro aparecem quando o usuário faz uma escolha inválida Documentação Cada parte do código deve ser comentada para facilitar a compreensão da lógica do programa Apresentação Após testar o programa e garantir seu funcionamento correto apresenteo em sala de aula destacando as diferentes decisões e suas consequências na aventura RESOLUÇÃO 11 Programa Aventura no Labirinto em Busca do Tesouro Este programa permite que o usuário explore um labirinto para encontrar um tesouro escondido evitando obstáculos e armadilhas algoritmo LabirintoTesouro Declaração de variáveis inteiro labirinto55 inteiro posX posY inteiro tesouroX tesouroY caracter movimento logico encontrouTesouro Inicialização encontrouTesouro falso posX 0 posY 0 Geração do labirinto para i de 0 até 4 faça para j de 0 até 4 faça labirintoij 0 Inicia todas as posições como caminho livre fimpara fimpara Adicionando paredes e armadilhas labirinto11 1 parede labirinto12 1 parede labirinto23 1 parede labirinto31 3 armadilha Definindo a posição do tesouro aleatoriamente tesouroX aleatorio0 4 tesouroY aleatorio0 4 enquanto labirintotesouroXtesouroY 0 faça tesouroX aleatorio0 4 tesouroY aleatorio0 4 fimenquanto labirintotesouroXtesouroY 2 tesouro Início da exploração escrevaVocê está no labirinto Encontre o tesouro enquanto não encontrouTesouro faça escrevaVocê está na posição posX posY escrevaDigite w para cima s para baixo a para esquerda d para direita leiamovimento Verifica o movimento se movimento w então para cima se posX 0 então posX posX 1 senão escrevaVocê não pode ir para cima há uma parede fimse senão se movimento s então para baixo se posX 4 então posX posX 1 senão escrevaVocê não pode ir para baixo há uma parede fimse senão se movimento a então para esquerda se posY 0 então posY posY 1 senão escrevaVocê não pode ir para a esquerda há uma parede fimse senão se movimento d então para direita se posY 4 então posY posY 1 senão escrevaVocê não pode ir para a direita há uma parede fimse senão escrevaMovimento inválido Use w s a ou d fimse Verifica se encontrou o tesouro se labirintoposXposY 2 então encontrouTesouro verdadeiro escrevaParabéns Você encontrou o tesouro senão se labirintoposXposY 3 então escrevaVocê caiu em uma armadilha Volte ao início posX 0 posY 0 fimse fimenquanto fimalgoritmo Explicação do Código Declaração de Variáveis labirinto55 Matriz que representa o labirinto posX posY Posição atual do explorador tesouroX tesouroY Posição do tesouro movimento Comando do usuário para movimentação encontrouTesouro Controle se o tesouro foi encontrado Inicialização Define todas as posições do labirinto como caminhos livres Define algumas posições como paredes 1 e armadilhas 3 A posição do tesouro é gerada aleatoriamente garantindo que não esteja em uma parede Exploração do Labirinto O loop enquanto permite que o explorador se mova até encontrar o tesouro O usuário pode inserir comandos para moverse na matriz Condições verificam se o movimento é válido e se o explorador encontrou o tesouro ou caiu em uma armadilha Mensagens O programa fornece feedback sobre a posição atual e se o movimento é válido Testes e Correções Teste o programa em diferentes configurações para garantir que o tesouro possa ser encontrado corretamente e que as armadilhas funcionem Documentação e Comentários Cada parte do código é comentada para explicar a lógica por trás das movimentações e das condições de jogo Apresentação Após testar e validar o programa apresenteo em sala de aula demonstrando como o explorador se move pelo labirinto até encontrar o tesouro ATIVIDADE 13 include stdioh int main Variáveis para armazenar os dados do cliente float rendaMensal valorEmprestimo valorEntrada int historicoCredito estabilidadeEmprego Entrada de dados do cliente printfDigite sua renda mensal scanff rendaMensal printfDigite o valor do empréstimo desejado scanff valorEmprestimo printfDigite o valor da entrada scanff valorEntrada printfSeu histórico de crédito é bom 1 para sim 0 para não scanfd historicoCredito printfVocê está estável no emprego 1 para sim 0 para não scanfd estabilidadeEmprego Condição de aprovação do empréstimo if valorEmprestimo 03 rendaMensal historicoCredito 1 estabilidadeEmprego 1 printfEmpréstimo aprovado else printfEmpréstimo rejeitado return 0 float rendaMensal valorEmprestimo valorEntrada int historicoCredito estabilidadeEmprego Explicação Aqui declaramos as variáveis que armazenarão as informações do cliente como a renda mensal rendaMensal o valor do empréstimo valorEmprestimo o valor da entrada valorEntrada além de variáveis para o histórico de crédito historicoCredito e a estabilidade no emprego estabilidadeEmprego printfDigite sua renda mensal scanff rendaMensal Explicação O programa solicita ao usuário que informe sua renda mensal O valor digitado é armazenado na variável rendaMensal if valorEmprestimo 03 rendaMensal historicoCredito 1 estabilidadeEmprego 1 printfEmpréstimo aprovado else printfEmpréstimo rejeitado Explicação Esta é a principal lógica do programa O código verifica se o valor do empréstimo é menor ou igual a 30 da renda mensal se o histórico de crédito é positivo e se há estabilidade no emprego Se todas as condições forem verdadeiras o empréstimo é aprovado Caso contrário é rejeitado printfEmpréstimo aprovado Explicação Se todas as condições de aprovação forem atendidas o programa exibe a mensagem Empréstimo aprovado Caso contrário a mensagem Empréstimo rejeitado será exibida ATIVIDADE 14 include stdioh include stdlibh include stringh Definição da struct Aluno typedef struct char nome50 float mediaDisciplina1 float mediaDisciplina2 float mediaGeral int classificacao Aluno Função para calcular a média geral de um aluno float calcularMediaGeralfloat media1 float media2 return media1 media2 2 Função de comparação para ordenar os alunos com base nas médias int compararMediasconst void a const void b Aluno alunoA Aluno a Aluno alunoB Aluno b if alunoBmediaGeral alunoAmediaGeral return 1 if alunoBmediaGeral alunoAmediaGeral return 1 return 0 int main int n i FILE arquivo Solicitar o número de alunos printfQuantos alunos serao registrados scanfd n Alocar memória para os alunos Aluno alunos Aluno mallocn sizeofAluno Entrada de dados dos alunos for i 0 i n i printfNome do aluno d i 1 scanfs alunosinome printfMedia da Disciplina 1 scanff alunosimediaDisciplina1 printfMedia da Disciplina 2 scanff alunosimediaDisciplina2 Calcular a média geral do aluno alunosimediaGeral calcularMediaGeralalunosimediaDisciplina1 alunosimediaDisciplina2 Ordenar os alunos pela média geral qsortalunos n sizeofAluno compararMedias Atribuir classificações aos alunos for i 0 i n i alunosiclassificacao i 1 Gravar as informações dos alunos no arquivo arquivo fopenalunostxt w if arquivo NULL printfErro ao abrir o arquivo return 1 Escrever os dados dos alunos no arquivo for i 0 i n i fprintfarquivo Nome do Aluno s alunosinome fprintfarquivo Media Disciplina 1 2f alunosimediaDisciplina1 fprintfarquivo Media Disciplina 2 2f alunosimediaDisciplina2 fprintfarquivo Media Geral 2f alunosimediaGeral fprintfarquivo Classificacao d alunosiclassificacao Fechar o arquivo fclosearquivo Liberar a memória alocada freealunos printfInformacoes gravadas no arquivo alunostxt return 0 Explicação Esta parte do código define a struct Aluno que contém as variáveis para armazenar o nome do aluno as médias das duas disciplinas a média geral e a classificação do aluno float calcularMediaGeralfloat media1 float media2 return media1 media2 2 Explicação Esta função recebe as médias das duas disciplinas como parâmetros e retorna a média geral do aluno É uma função simples que realiza a soma das médias e divide o resultado por 2 int compararMediasconst void a const void b Aluno alunoA Aluno a Aluno alunoB Aluno b if alunoBmediaGeral alunoAmediaGeral return 1 if alunoBmediaGeral alunoAmediaGeral return 1 return 0 Explicação Esta função compara as médias gerais de dois alunos Ela é usada para ordenar os alunos de forma decrescente conforme a média geral printfQuantos alunos serao registrados scanfd n Explicação O programa solicita ao usuário quantos alunos serão registrados O valor é armazenado na variável n Aluno alunos Aluno mallocn sizeofAluno plicação Aqui o programa aloca dinamicamente memória suficiente para armazenar os dados de n alunos for i 0 i n i printfNome do aluno d i 1 scanfs alunosinome printfMedia da Disciplina 1 scanff alunosimediaDisciplina1 printfMedia da Disciplina 2 scanff alunosimediaDisciplina2 alunosimediaGeral calcularMediaGeralalunosimediaDisciplina1 alunosimediaDisciplina2 Explicação Dentro do loop o programa coleta o nome do aluno as médias das disciplinas e calcula a média geral do aluno qsortalunos n sizeofAluno compararMedias Explicação Aqui os alunos são ordenados em ordem decrescente com base na média geral utilizando a função qsort e a função de comparação compararMedias for i 0 i n i alunosiclassificacao i 1 Explicação Após a ordenação o loop atribui a classificação a cada aluno com base na posição deles após a ordenação arquivo fopenalunostxt w if arquivo NULL printfErro ao abrir o arquivo return 1 for i 0 i n i fprintfarquivo Nome do Aluno s alunosinome fprintfarquivo Media Disciplina 1 2f alunosimediaDisciplina1 fprintfarquivo Media Disciplina 2 2f alunosimediaDisciplina2 fprintfarquivo Media Geral 2f alunosimediaGeral fprintfarquivo Classificacao d alunosiclassificacao fclosearquivo Explicação A memória alocada dinamicamente para armazenar os dados dos alunos é liberada ao final do programa 3 CONCLUSÃO A conclusão da aula prática sobre algoritmos e lógica de programação destaca aprendizados cruciais e a relevância dessas habilidades na criação de soluções computacionais Ao término da aula os alunos compreenderam que a elaboração de algoritmos é uma etapa essencial no processo de programação pois permite planejar a lógica antes de iniciar a codificação o que facilita a detecção de erros e a otimização do código Além disso o desenvolvimento do pensamento lógico se mostrou fundamental pois contribui para a resolução eficiente de problemas ajudando os alunos a enfrentar desafios de maneira estruturada e sistemática A prática exercitada ao longo da aula demonstrou a importância da aplicação teórica proporcionando aos alunos uma compreensão mais profunda de como os conceitos de algoritmos se traduzem em desenvolvimento de software Eles reconheceram também a relevância do domínio da sintaxe da linguagem de programação escolhida entendendo que essa familiaridade impacta diretamente na criação de algoritmos eficazes e funcionais A interação em grupo incentivou o trabalho em equipe evidenciando que a colaboração e a troca de ideias são aspectos fundamentais do processo de desenvolvimento Ademais a aula estimulou a curiosidade e a criatividade dos estudantes encorajandoos a explorar diferentes soluções para os problemas apresentados habilidades essenciais no ambiente tecnológico em constante evolução Nesse contexto a aula prática sobre algoritmos e lógica de programação se estabelece como uma base sólida para o aprimoramento das competências necessárias na área de programação preparando os alunos para futuros desafios no campo da tecnologia A continuidade desse aprendizado por meio de práticas adicionais e aprofundamentos teóricos se revela indispensável para formar programadores competentes e versáteis REFERÊNCIAS FORBELLONE A L V EBERSPÄCHER H F Lógica de Programação A construção de algoritmos e estrutura de dados São Paulo Makron Books 2005 UNIVERSIDADE PITÁGORAS UNOPAR ANHANGUERA SISTEMA DE ENSINO PRESENCIAL CONECTADO ENGENHARIA CIVIL THIAGO MENDES PIRES ROTEIRO DE AULA PRÁTICA ALGORITMOS E LÓGICA DE PROGRAMAÇÃO NITERÓI RJ 2025 THIAGO MENDES PIRES ROTEIRO DE AULA PRÁTICA ALGORITMOS E LÓGICA DE PROGRAMAÇÃO Roteiro de Aula Prática apresentado a Universidade Pitágoras Unopar Anhanguera como requisito para obtenção de média para a disciplina de Algoritmos e lógica de Programação Tutora à Distância Everton Lucas Aurelio Mafra NITERÓI RJ 2025 SUMÁRIO 1 INTRODUÇÃO4 2 DESENVOLVIMENTO6 3 CONCLUSÃO12 REFERÊNCIAS13 1 I N T R O D U Ç Ã O A atividade prática de Algoritmos e Lógica de Programação tem como propósito principal proporcionar ao aluno uma compreensão aplicada dos conceitos básicos que envolvem o desenvolvimento de soluções computacionais A partir de situações reais do cotidiano como o registro de pedidos em um restaurante o controle de estoque em uma mercearia e o gerenciamento de transações em um posto de combustível o aluno é conduzido a refletir sobre como um problema pode ser decomposto em etapas lógicas até chegar à construção de um algoritmo simples Inicialmente os exemplos apresentados servem como ponto de partida para estimular o raciocínio lógico permitindo a identificação das variáveis necessárias a definição das entradas e saídas e o entendimento de como aplicar estruturas básicas como leitura de dados cálculos e tomadas de decisão Em seguida o aluno é incentivado a transformar essas descrições em uma representação mais estruturada como pseudocódigo ou fluxograma e por fim implementálas em linguagem de programação observando como os conceitos se aplicam na prática Essa abordagem gradual passando do contexto real para a abstração lógica e finalmente para a implementação facilita a assimilação dos conceitos de lógica de programação e evidencia a importância do pensamento estruturado na resolução de problemas Além disso permite desenvolver habilidades essenciais para o futuro acadêmico e profissional do aluno como a capacidade de interpretar situações do cotidiano analisar requisitos e criar algoritmos simples claros e eficientes Por fim as atividades desenvolvidas a seguir Restaurante Mercearia e Posto de Combustível representam a aplicação prática desses conceitos e demonstram como a lógica de programação pode ser utilizada para resolver problemas reais de forma objetiva e funcional 2 D E S E N V O L V I M E N T O Exercício 1 Programa Sistema de Registro de Pedidos em Restaurante Este programa solicita ao cliente o nome do prato a quantidade desejada e o valor unitário Em seguida calcula o valor total do pedido e exibe o resultado include stdioh int main Declaração de variáveis prato armazena o nome do prato escolhido pelo cliente quantidade armazena a quantidade desejada valorUnitario armazena o preço de uma unidade do prato valorTotal armazena o resultado do cálculo quantidade valorUnitario char prato50 int quantidade float valorUnitario float valorTotal Introdução do programa printf Sistema de Registro de Pedidos printfBemvindo Vamos registrar seu pedido Solicita o nome do prato printfInforme o nome do prato desejado fgetsprato sizeofprato stdin Solicita a quantidade desejada printfInforme a quantidade desejada scanfd quantidade Solicita o valor unitário do prato printfInforme o valor unitario do prato R scanff valorUnitario Cálculo do valor total do pedido valorTotal quantidade valorUnitario Apresenta o resultado ao cliente printfValor total do pedido R 2f valorTotal Finaliza o programa printfPedido registrado com sucesso Obrigado pela preferencia return 0 Explicação do Código Declaração de Variáveis A variável prato armazena o nome do prato escolhido pelo cliente tipo caractere A variável quantidade armazena a quantidade desejada do prato tipo inteiro A variável valorUnitario armazena o valor unitário informado pelo cliente tipo real A variável valorTotal armazena o resultado do cálculo do valor total do pedido Introdução do Programa O programa apresenta uma mensagem de boasvindas ao cliente e informa que o pedido será registrado Entrada de Dados O sistema solicita ao usuário que informe o nome do prato a quantidade desejada e o valor unitário do prato Esses dados são lidos e armazenados nas variáveis correspondentes Cálculo do Valor Total O valor total do pedido é calculado multiplicando a quantidade pelo valor unitário valorTotal quantidade valorUnitario Saída de Dados O programa exibe para o cliente o valor total do pedido e uma mensagem confirmando o registro Testes e Correções O código deve ser executado em um compilador C para verificar se os dados estão sendo lidos corretamente e se o cálculo do valor total está correto Também é importante testar diferentes valores para validar o funcionamento do programa Documentação Cada parte do código contém comentários explicativos facilitando a compreensão da lógica aplicada Apresentação Após testar e validar o programa ele pode ser apresentado em sala destacando o uso das variáveis o processo de entrada de dados e o cálculo do valor total do pedido Exercício 2 Programa Controle de Estoque da Mercearia Este programa verifica se a quantidade atual de um produto está abaixo do nível mínimo e indica se é necessário realizar o reabastecimento include stdioh include stdboolh int main Declaração de variáveis int quantidade armazena a quantidade atual do produto em estoque int nivelMinimo 10 nível mínimo permitido pode ser alterado se necessário bool reabastecer false indica se será necessário reabastecer o produto Solicita a quantidade atual do produto em estoque printfInforme a quantidade atual do produto em estoque scanfd quantidade Verifica se a quantidade está abaixo do nível mínimo if quantidade nivelMinimo reabastecer true precisa reabastecer Exibe o resultado if reabastecer printfATENCAO quantidade abaixo do nivel minimo Reabastecimento necessario else printfEstoque suficiente Nao e necessario reabastecer no momento return 0 Explicação do Código Declaração de Variáveis quantidade armazena a quantidade atual do produto em estoque nivelMinimo armazena o valor mínimo aceitável no estoque reabastecer variável lógica verdadeirofalso que indica se é necessário realizar o reabastecimento Entrada de Dados O programa solicita ao usuário a quantidade atual do produto em estoque e armazena o valor informado Verificação da Quantidade Utilizase uma estrutura condicional if para comparar a quantidade informada com o nível mínimo Se a quantidade estiver abaixo do valor definido a variável reabastecer recebe o valor true Saída de Dados O programa exibe na tela uma mensagem indicando se o produto precisa ou não ser reabastecido Testes e Correções O programa deve ser testado utilizando valores diferentes para a quantidade incluindo casos abaixo iguais e acima do nível mínimo para validar o funcionamento da condição Documentação Comentários foram adicionados ao longo do código para facilitar a compreensão da lógica implementada Apresentação Após testar o programa ele pode ser apresentado em sala mostrando como a verificação condicional auxilia na tomada de decisões em situações práticas como o controle de estoque Exercício 3 Programa Sistema de Registro de Abastecimento Este programa registra o tipo de combustível a quantidade abastecida e o valor por litro Em seguida calcula e exibe o valor total da transação include stdioh int main Declaração de variáveis char combustivel30 armazena o tipo de combustível escolhido pelo cliente float quantidadeLitros armazena a quantidade abastecida em litros float valorPorLitro armazena o preço por litro do combustível float valorTotal armazena o valor total da transação Introdução do programa printf Sistema de Registro de Abastecimento Solicita o tipo de combustível printfInforme o tipo de combustivel gasolina etanol diesel etc fgetscombustivel sizeofcombustivel stdin Solicita a quantidade abastecida printfInforme a quantidade abastecida em litros scanff quantidadeLitros Solicita o valor por litro printfInforme o valor por litro do combustivel R scanff valorPorLitro Calcula o valor total da transacao valorTotal quantidadeLitros valorPorLitro Exibe o valor total ao cliente printfValor total da transacao R 2f valorTotal return 0 Explicação do Código Declaração de Variáveis combustivel armazena o tipo de combustível escolhido pelo cliente ex gasolina etanol diesel quantidadeLitros armazena a quantidade abastecida em litros valorPorLitro armazena o valor cobrado por litro de combustível valorTotal armazena o resultado do cálculo do valor total da compra Entrada de Dados O programa solicita ao usuário o tipo de combustível escolhido a quantidade abastecida em litros e o valor por litro armazenando cada informação na variável correspondente Cálculo do Valor Total O valor total da transação é calculado multiplicando a quantidade abastecida pelo valor por litro valorTotal quantidadeLitros valorPorLitro Saída de Dados O programa exibe ao cliente o valor total da transação de forma clara Testes e Correções O código deve ser testado com diferentes valores de quantidade e valor por litro para verificar se o cálculo está correto e se as mensagens estão sendo exibidas corretamente Documentação Comentários foram adicionados às principais partes do código para facilitar a compreensão da lógica utilizada Apresentação Depois de testar o programa ele pode ser apresentado destacando como é possível utilizar diferentes tipos de dados e estruturas simples para criar um sistema de controle de transações eficiente e aplicado a um contexto real posto de combustível 3 CONCLUSÃO A realização das atividades práticas permitiu consolidar os principais conceitos de algoritmos e lógica de programação por meio de situações reais e de fácil contextualização Ao desenvolver soluções para o registro de pedidos em um restaurante para o controle de estoque de uma mercearia e para o gerenciamento de transações em um posto de combustível foi possível compreender a importância de identificar corretamente as entradas saídas e variáveis bem como aplicar estruturas condicionais e cálculos simples para resolver os problemas apresentados Esses exemplos demonstram que a prática da lógica de programação vai além da escrita de código ela envolve a capacidade de analisar um problema dividilo em etapas lógicas e estruturar uma solução clara e eficiente A aplicação dos algoritmos em linguagem C reforçou a compreensão dos conceitos e mostrou como o raciocínio lógico pode ser traduzido em instruções que o computador é capaz de executar De forma geral a atividade contribuiu para o desenvolvimento do pensamento estruturado e enfatizou a importância da prática constante para o aprimoramento das habilidades em programação A utilização de cenários do cotidiano torna o aprendizado mais significativo e prepara o aluno para futuros desafios acadêmicos e profissionais na área de tecnologia REFERÊNCIAS FORBELLONE A L V EBERSPÄCHER H F Lógica de Programação A construção de algoritmos e estrutura de dados São Paulo Makron Books 2005

Sua Nova Sala de Aula

Sua Nova Sala de Aula

Empresa

Central de ajuda Contato Blog

Legal

Termos de uso Política de privacidade Política de cookies Código de honra

Baixe o app

4,8
(35.000 avaliações)
© 2025 Meu Guru®