Capitulo 01

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 13

Algoritmos e Programação

Introdução à Lógica de Programação


Sumário
Desenvolvimento do material Introdução à Lógica de Programação
Miguel Carvalho
Para Início de Conversa: .................................................................................. 3
Objetivo .......................................................................................................... 3
1ª Edição 1. Algoritmos ....................................................................................................... 4
Copyright © 2022, Afya.
2. Lógica de Programação ............................................................................... 8
Nenhuma parte deste material poderá ser reproduzida,
transmitida e gravada, por qualquer meio eletrônico, 3. Compilador ...................................................................................................... 10
mecânico, por fotocópia e outros, sem a prévia
autorização, por escrito, da Afya. Referências ......................................................................................................... 13
Para Início de Conversa: Objetivo
Devemos entender que o algoritmo está presente em nossa vida diária. ▪ Definir Algoritmos;
Quando acordamos e decidimos se vamos levantar ou dormir mais ▪ Definir Comandos, Variáveis, Expressões e Instruções;
cinco minutos, estamos utilizando um algoritmo que é uma sequência ▪ Explicar a Execução de Programas Pelo Computador: Compilação e
de passos para resolução de um problema. Os algoritmos e a lógica Interpretação.
de programação são a base para criar soluções computacionais, pois
o algoritmo define a sequência de passos que deve ser utilizada para
alcançar um determinado objetivo. Já a lógica de programação permite
a estruturação das sequências, decisões e regras que orientam o
algoritmo. Com a utilização em conjunto dos algoritmos e da lógica de
programação, é possível criar soluções com um passo a passo lógico
indicando as etapas e decisões necessárias para resolver um problema.
Dessa maneira, neste capítulo, vamos aprender diversos conceitos
ligados aos algoritmos e à lógica de programação, e também entender
o processo de conversão de uma linguagem escrita por seres humanos
para uma linguagem de máquina entendida por computadores.

Algoritmos e Programação 3
1. Algoritmos Praticamente tudo hoje está ligado com a tecnologia. Tudo de certa
forma foi construído através de um algoritmo; a TV liga quando clicamos
Vamos imaginar que João Victor precisa estudar para a prova de em um botão, ou seja, uma ação que produz um resultado.
matemática. Dessa maneira, ele organizou o seguintes passos: Todo sistema de informação utiliza um algoritmo para receber as
entradas, realizar o processamento e produzir uma saída. O Google
utiliza um conjunto de algoritmos para realizar as buscas, que permitem
Passo 1: Passo 2: Passo 3: Passo 4:
Organiza o Seleciona Estuda o Faz os que seja trazida a informação adequada para os usuários, por exemplo,
material. exercícios. conteúdo. exercícios.
aqueles robôs que limpam a casa utilizam um algoritmo para realizar
tarefas. Em nosso dia a dia, quando planejamos tarefas estamos
utilizando pequenos algoritmos.
Passo 7: Passo 6: Passo 5:
Finaliza seus
estudos.
Revê o
conteúdo.
Verifica seus
erros. Soluções podem ser dadas através de algoritmos. Para resolver um
problema, precisamos saber os passos. Dessa forma, não importa se o
problema é simples ou complexo, o importante é saber definir os passos
Veja que João Victor elencou um conjunto de passos para se alcançar que serão necessários para a sua resolução. Claro que geralmente
um objetivo. Essa é a ideia de um algoritmo que pode ser definido como problemas complexos possuem uma maior quantidade de passos,
uma sequência de passos para a resolução de um problema, ou seja, um contudo, tudo por ser resolvido com uma sequência.
algoritmo define um passo a passo para que seja possível alcançar um
Vamos para um exemplo:
objetivo.
Lila quer pensar em um algoritmo que multiplica dois valores:
Pensando computacionalmente, todo programa tem uma entrada, um
processamento e uma saída. Criamos programas para ajudar em nossa Primeiramente, para multiplicar dois valores é preciso ler dois valores
vida diária. Veja quantos programas você utiliza todos os dias! (solicitar). Então um primeiro passo poderia ser:

Algoritmos e Programação 4
Passo 1: Ler dois valores.

Depois disso, tendo a posse dos dois valores, Lila pode realizar o Problemas podem ser resolvidos por soluções e um algoritmo descreve
processamento, que é multiplicar os dois valores. uma sequência de passos para resolver problemas simples e complexos,
podendo ser implementados computacional através de uma linguagem
Passo 2: Multiplicar valor 1 por valor 2 (valor 1 x valor 2).
de programação.
Pronto, Lila já conseguiu seu objetivo. Agora falta somente mostrar o
resultado, logo o passo 3 deve ser exibir o resultado.

Passo 3: Exibir o Resultado.

Dessa maneira, nosso algoritmo fica da seguinte forma:

Algoritmo para multiplicar dois valores:

1 2 3

Multiplicar valor 1
Ler dois valores. por valor 2 Exibir o resultado.
(valor 1 x valor 2).

Figura 1: Construção de Algoritmo. Fonte: Dreamstime.

Algoritmos e Programação 5
A Figura 1, embora ilustrativa e um tanto “vintage”, representa bem Desafio 2:
a ideia do planejamento de um algoritmo envolvendo a tomada de
Calcular o volume de um cubo.
decisões e estratégias para que seja possível criar uma sequência de
passos, de modo que essa sequência de passos possa ser escrita em uma Entrada Ler o tamanho da aresta.
linguagem de programação com comandos, variáveis e instruções, que
Processamento Volume = aresta * aresta * aresta.
será compilada e convertida em um linguagem de máquina conseguindo
Saída Apresentar o volume.
ser processada pelos computadores.

Um programa é criado através de algoritmos e lógica de programação. Desafio 3:


Basicamente um programa possui uma entrada, um processamento e
Calcular a área de um círculo.
uma saída. Criar programas para resolver problemas computacionais
envolve pensar na lógica de programação e nos algoritmos para que Entrada Ler o raio
as entradas através do processamento gerem a saída adequada. Esse Processamento Área = raio * raio * 3,14.
pensamento computacional somente é conseguido com a prática. Dessa
Saída Apresentar o área.
maneira, vamos treinar um pouco.
Desafio 4:
Desafio 1:
Apresentar o código ASCII de uma letra.
Apresentar o resultado da multiplicação de três valores.
Entrada Ler a letra
Entrada Devem ser lidos 3 valores: valor1, valor2 e valor3.
Processamento Encontrar o código ASCII (transformar para inteiro)
Processamento Resultado = valor1 * valor2 * valor3.
Saída Apresentar o resultado. Saída Apresentar o código ASCII

Algoritmos e Programação 6
Desafio 5: Desafio 8:
Calcular a média ponderada (trabalho com peso 3 e prova com peso 7). Calcular o valor final de uma aplicação.

Entrada Ler as notas do trabalho e da prova. Entrada Ler o valor inicial, os juros e o tempo.
Processamento Média = (trabalho*3 + prova*7)/10. Processamento Valor final = valor inicial * (1 + juros/100) tempo
Saída Apresentar a média. Saída Apresentar o valor final.
Desafio 6: Desafio 9:
Verificar se um aluno está aprovado. Para ser aprovado, a média deve ser Informar a raiz quadrada de um número
maior ou igual a 7.
Entrada Ler o número
Entrada Ler a média.
Processamento Calcular a raiz quadrada
Se média >=7 então
resultado = “aprovado” Saída Apresentar a raiz quadrada.
Processamento
Senão Desafio 10:
resultado = “reprovado”
Calcular a média entre preço de 10 produtos.
Saída Apresentar o resultado.
Desafio 7: Entrada Ler o preço de 10 produtos.
Transformar a temperatura de Celsius para Kelvin. total = 0.
Para cada produto lido:
Entrada Ler a temperatura em Celsius. Processamento total = total + preço.
Depois de lido todos os valores calcular a média.
Processamento Kelvin = Celsius + 273. média = total /10;
Saída Apresentar a temperatura em Kelvin. Saída Apresentar a média.

Algoritmos e Programação 7
2. Lógica de Programação Com a lógica, pode-se elaborar, entre outras coisas, as decisões nos
algoritmos analisando e comparando valores geralmente armazenados
Criar programas é uma arte que envolve criatividade, ideias e muitas em variáveis.
vezes inovação. Programas ajudam a transformar vidas em nossa
sociedade, facilitando tarefas diárias, automatizando processos,
auxiliando na resolução de inúmeros problemas, etc. Para criar Uma variável é um espaço que armazena um valor para que esse valor
programas em qualquer linguagem, é preciso, antes de tudo, entender a possa ser utilizado no código construído. Por exemplo, para dividir dois
lógica de programação. Compreendendo a lógica de programação, você valores, precisamos antes ler e armazenar esses valores em algum lugar.
consegue estruturar algoritmos computacionalmente utilizando regras e Esses valores são armazenados em variáveis.

com isso, você irá conseguir programar em QUALQUER LINGUAGEM DE Então vamos primeiro definir que o conceito de proposição é uma
sentença declarativa que pode assumir um valor verdadeiro ou falso.
PROGRAMAÇÃO.
Exemplos:
Entendendo a lógica de programação, basta depois você entender a O céu é azul.
sintaxe e a semântica da linguagem escolhida para implementar a João joga bola.
solução computacional. O grande desafio da computação não é entender Andressa come.
as linguagens, mas sim saber a lógica para propor as soluções adequadas Quando a proposição está com conectivos, chamamos de proposição
para os inúmeros problemas. composta.
João joga bola e Maria brinca.
Saber a lógica de programação, envolve saber a lógica matemática.
Andressa come ou Lila estuda.
Para isso, vamos agora revisar alguns conceitos da lógica matemática
Para programar corretamente é importante conhecer os conectivos e as
que iremos utilizar no desenvolvimento de soluções. Esses conceitos da tabelas verdades das proposições compostas.
lógica possibilitam auxiliar o entendimento dos comandos, instruções e
principalmente para análise de expressões.

Algoritmos e Programação 8
Vamos ver a seguir: Expressão Resultado
Quando utilizamos o conectivo, para que a proposição composta a => 10 Verdadeiro
pelas proposições A e B sejam verdadeiras, é necessário que ambas b > 50 Falso
as proposições sejam verdadeiras. Caso uma seja falsa, a proposição a => 10 e b <= 50 Verdadeiro
composta já será falsa. Veja a tabela verdade na Figura 2.
a < 10 e b<=50 Falso
A B AeB
Na primeira linha, “a” vale 10, logo ele é maior ou igual a 10. Portanto, o
V V V resultado é verdadeiro.
V F F
Na segunda linha, “b” vale 20, logo ele não é maior que 50. Portanto, o
F V F resultado é falso.
F F F
Na terceira linha, “a” é igual a 10 e o “b” é menor que 50. Logo, o resultado
Figura 2: Tabela Verdade do “e”. Fonte: Elaborado pelo autor. é verdadeiro.

Exemplo prático: Na quarta linha, “a” não é menor que 10, pois é igual a 10, e mesmo “b”
sendo menor que 50, o resultado será falso, pois para ser verdadeiro
Considere um valor armazenado na variável n e a seguinte expressão
tudo tinha que ser verdadeiro.
n>10 e n <50. Para que ela seja verdadeira, é necessário que n seja maior
que 10 e menor que 50. Portanto, deve ser um número maior que 10 e Agora vamos analisar o “ou”. Quando utilizamos o conectivo “ou” para
menor que 50. a proposição ser verdadeira, basta que apenas uma proposição seja
verdadeira. Com o conectivo ou a proposição composta, somente será
Vamos avaliar algumas expressões. Considere a=10 e b=20.
falsa se as duas proposições forem falsas. Veja a tabela verdade na
Figura 3.

Algoritmos e Programação 9
A B A ou B Na primeira linha, “a” vale 10, logo ele é maior ou igual a 10. Portanto, o
resultado é verdadeiro.
V V V
V F V Na segunda linha, “b” vale 20, logo ele não é maior que 50. Portanto, o
resultado é falso.
F V V
F F F Na terceira linha, “a” é igual a 10 e o “b” é menor que 50. Logo, o resultado
é verdadeiro.
Figura 3: Tabela verdade do “ou”. Fonte: Elaborado pelo autor.
Na quarta linha, “a” não é menor que 10, pois é igual a 10. Contudo, “b” é
Exemplo prático: menor que 50, logo, o resultado será verdadeiro.

Considere um valor armazenado na variável n e a seguinte expressão


n>20 ou n<100. Para que ela seja verdadeira, é necessário que n seja
maior que 20 ou que seja menor que 100. Portanto, caso n seja 10, A lógica de programação é construída tendo como base a matemática. Ao
essa expressão é verdadeira; caso n seja 1000, a expressão também é entender corretamente a lógica de programação, é possível programar
verdadeira. em qualquer linguagem. Esses conceitos são utilizados principalmente
em estruturas de seleção para a tomada de decisões.
Vamos avaliar algumas expressões. Considere a=10 e b=20.

Expressão Resultado
a => 10
b > 50
Verdadeiro
Falso
3. Compilador
Vamos agora entender como um programa escrito em uma linguagem
a => 10 ou b <= 50 Verdadeiro
formal consegue ser convertido em outra linguagem formal entendida
a < 10 ou b <= 50 Verdadeiro por máquinas.

Algoritmos e Programação 10
Primeiramente, é importante destacar que para programarmos, Compilador
utilizamos linguagem de programação. Existem diversas linguagens
de programação com suas sintaxe e semântica. Contudo, entendendo a Análise Análise Análise Gerador de
Código Otimização
Gerador
de Código
Léxica Sintática Semântica
lógica de programação, é possível criar códigos em qualquer linguagem, Intermediário Objeto

reservando somente um tempo de estudo para verificar a sintaxe e a


Figura 4: Fase do Compilador. Fonte: Elaborado pelo autor.
semântica das linguagens.

Uma linguagem de programação é uma linguagem formal com alfabeto


e gramática. Quando criamos nosso código, chamado de código fonte,
que é escrito em uma linguagem de programação entendida por Análise Léxica
seres humanos. Entretanto, o computador (máquina) não entende essa
A análise léxica divide o código fonte em tokens para que sejam
linguagem e sim outra linguagem formal (linguagem de máquina).
identificados e utilizados na próxima fase de análise sintática.
Essa conversão de uma linguagem formal entendida por seres humanos
Exemplo:
para uma linguagem de máquina é feita pelo compilador.
if ( a == b)

Tokens: if, a, ==, b


É importante destacar que o programa criado deve ser semanticamente
Análise Sintática
equivalente ao programado. Não faria muito sentido você criar um código
que calcule a média e o compilador converter isso para um código que A análise sintática verifica se todos os itens estão na ordem correta. A
calcule a moda. análise sintática funciona de forma parecida com a análise sintática
Um compilador pode ser definido como um programa que realiza a da língua portuguesa, pois, conforme descrevemos, uma linguagem
conversão de uma linguagem em outra linguagem. Basicamente, um de programação também é uma linguagem formal. Portanto, a análise
compilador passa por 6 fases, conforme mostrado na Figura 4.
sintática valida as regras da linguagem.

Algoritmos e Programação 11
Exemplo: Nesse segundo exemplo, a análise
semântica identifica se a variável
int num =0; declarada como int está recebendo um
Sequência correta tipo, nome da variável, atribuição, valor e ponto e texto, ou seja, se está sendo utilizada
para um outro tipo não compatível.
vírgula.
Essas três primeiras fases são
Essa fase pega erros comuns, como declarar primeiro o nome da variável
responsáveis pelos principais erros de
e depois o tipo. Esses erros de compilação fazem com que o programa
compilação.
nem rode.
Após essas fases, temos a seguintes fases:
Análise Semântica
Gerador de Código Intermediário
A análise semântica verifica aspectos relacionados à semântica ao
significado,verificando ambiguidades, e se a variável declarada está A fase de gerador de código intermediário gera um
sendo utilizada para a sua finalidade. código mais próximo com a linguagem de máquina para que
esse código possa ser otimizado.
Exemplo:
Otimizador
int a= 10;
Verificar o código com a finalidade de otimizá-lo em termos de recursos
float a = 20; de tempo, memória, rede e etc, por exemplo.

Nesse primeiro exemplo, a análise semântica identificaria ambiguidade. Gerador de Código Objeto

int a; Essa é a fase final do compilador, que transforma o código fonte no


código objeto. A partir desse momento, o código pode, por exemplo, ser
a = “Unigranrio” executado na máquina.

Algoritmos e Programação 12
Por enquanto, iremos focar nossos estudos na linguagem C. Dessa forma,
é importante destacar que um código na linguagem C compilado para Referências
Windows, por exemplo, não roda no Linux, devendo ser compilado no ASCENCIO, A. F. G.; CAMPOS, E. A. V. Fundamentos da programação de
Linux também. computadores: algoritmos, Pascal, C/C++ (padrão ANSI) e Java. 3. ed. São
Paulo: Pearson Education do Brasil, 2012.
Neste capítulo, embarcamos nesse mundo fabuloso de ideias, criatividade
e inovação que é o mundo da programação. Com a programação, é DEITEL, P.; DEITEL, H. C: como programar. 6. ed. São Paulo: Pearson
possível criar inúmeras soluções, melhorando entre outras coisas a vida Prentice Hall, 2011.
das pessoas em nossa sociedade.
FORBELLONE, A. L. V.; EBERSPACHER, H. F. Lógica de programação: a
Começamos nossos estudos apresentando o conceito de algoritmo construção de algoritmos e estrutura de dados. 3. ed. São Paulo: Prentice
enfatizando que os algoritmos estão presentes em tudo em nossa vida Hall, 2005.
e que as soluções computacionais devem ser estruturadas com a ajuda MANZANO, J. A. N. G.; OLIVEIRA, J. F. Algoritmos: lógica para
do algoritmo e lógica de programação. Isso nos mostra que ao entender desenvolvimento de programação de computadores. 28. ed. São Paulo:
a lógica de programa, que tem como forte base a lógica da matemática, Érica, 2016.
é possível aprender qualquer linguagem de programação bastando
verificar a sintaxe e a semântica. MIZRAHI, V. V. Treinamento em linguagem C. 2. ed. São Paulo: Pearson
Prentice Hall, 2008.
Nesse contexto, também mostramos que as linguagens de programação
SILVA, F. S. C.; FINGER, M.; MELO, A. C. V. Lógica para computação. 2. ed.
permitem a implementação dos algoritmos possibilitando que o código
São Paulo: Cengage Learning, 2018.
fonte gerado um linguagem entendida por seres humanos possa
ser convertido em código objeto em uma linguagem entendida por SZWARCFITER, J. L.; MARKENZON, L. Estruturas de dados e seus
máquinas. Isso é feito através de um processo de compilação passando algoritmos. 3. ed. Rio de Janeiro: LTC, 2010.
por diversas fases.
ZIVIANI, N. Projeto de algoritmos: com implementações em Java e C++.
São Paulo: Cengage Learning, 2007.

Algoritmos e Programação 13

Você também pode gostar

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy