Curso: Engenharia Informática 1° Ano
Disciplina: Introdução a algoritmo e
programação
Tema 2 - Lógica de Programação (Conceito de Algoritmo)
Objectivos:
• Elaborar algoritmos simples, identificar e usar os símbolos do fluxograma e
diagrama de Nassi;
• Implementar as variadas operações e declarações nos algoritmos.
Actividade: Docente:
Texto de apoio Eng. Carlitos Chitsumba
Lógica de Programação (Conceito de Algoritmo)
Lógica de programação
Lógica de programação é a técnica de encadear pensamentos para atingir determinado objectivo.
A lógica de programação é necessária para pessoas que desejam trabalhar com desenvolvimento
de sistemas e programas, ela permite definir a sequência lógica para o desenvolvimento.
Sequência Lógica
Sequência Lógica são passos executados até atingir um objectivo ou solução de um problema.
Instruções
Instruções são um conjunto de regras ou normas definidas para a realização ou emprego de algo.
Em informática, é o que indica a um computador uma acção elementar a executar.
Na linguagem comum, entende-se por instruções “um conjunto de regras ou normas definidas para
a realização ou emprego de algo”.
Em informática, porém, instrução é a informação que indica a um computador uma acção
elementar a executar. Convém ressaltar que uma ordem isolada não permite realizar o processo
14/07/2022 Página 1 de 23
completo, para isso é necessário um conjunto de instruções colocadas em ordem sequencial lógica.
Por exemplo, se quisermos fazer um hambúrguer de batatas, precisaremos colocar em prática uma
série de instruções: descascar as batatas, bater os ovos, fritar as batatas, etc...
É evidente que essas instruções tem que ser executadas em uma ordem adequada, não se pode
descascar as batatas depois de fritá-las.
Dessa maneira, uma instrução tomada em separado não tem muito sentido; para obtermos o
resultado, precisamos colocar em prática o conjunto de todas as instruções, na ordem correcta.
Resolução de Problemas através de Computador
Define-se por Processamento de Dados qualquer actividade que, utilizando informações (ou
dados), efectua transformações para obter novas informações (ou dados) como resultado.
Porém, a tarefa desempenhada pelos computadores é apenas parte do processo de solução de
problemas.
As etapas na solução de problemas são:
• Entendimento do problema;
• Criação de uma sequência de operações (ou acções) que, quando executadas, produzem a
solução para o problema;
• Execução desta sequência de operações;
• Verificação da adequação da solução.
As etapas de entendimento do problema, criação de sequência de acções e verificação da
adequação da solução são tarefas desempenhadas por pessoas.
A etapa de execução das operações pode ser desempenhada por computadores.
Problema
14/07/2022 Página 2 de 23
Algoritmo
Algoritmo é uma sequência ordenada e precisa de passos, acções ou operações que conduzem à
solução de um dado problema.
Algoritmo é um conjunto de procedimentos que seguem uma sequência lógica para a resolução
dum problema; o algoritmo é o caminho para a solução do problema, e em geral, os caminhos que
levam a uma solução são muitos.
Exemplo: Suponhamos que queiramos Ensinar um indivíduo como preparar uma chávena de café.
Para isso, temos que indicar qual o conjunto das acções, de uma forma simples e clara, necessárias
para o efeito. Ou seja, temos que constituir um algoritmo.
Podemos pensar em algoritmo como uma receita, uma sequência de instruções que dão cabo de
uma meta específica. Estas tarefas não podem ser redundantes nem subjectivas na sua definição,
devem ser claras e precisas.
Como exemplos de algoritmos podemos citar os algoritmos das operações básicas (adição,
multiplicação, divisão e subtração) de números reais decimais. Outros exemplos seriam os manuais
de aparelhos electrónicos, como um videocassete, que explicam passo-a-passo como, por exemplo,
gravar um evento.
Até mesmo as coisas mais simples, podem ser descritas por sequências lógicas.
Por exemplo:
Exemplo 1: “Chupar um rebuçado”.
o Pegar o rebuçado;
o Retirar o papel;
o Chupar o rebuçado;
o Colocar o papel no lixo.
Exemplo 2: “Somar dois números quaisquer”.
o Escreva o primeiro número no retângulo A;
o Escreva o segundo número no retângulo B;
o Some o número do retângulo A com número do retângulo B e coloque o resultado no
retângulo C.
Programas
Os programas de computadores nada mais são do que algoritmos escritos numa linguagem de
computador (Pascal, C, Cobol, Fortran, Visual Basic entre outras) e que são interpretados e
executados por uma máquina, no caso um computador.
14/07/2022 Página 3 de 23
Regras para construção do Algoritmo
Para escrever um algoritmo precisamos descrever a sequência de instruções, de maneira
simples e objectiva. Para isso utilizaremos algumas técnicas:
• Usar somente um verbo por frase;
• Imaginar que você está desenvolvendo um algoritmo para pessoas que não trabalham com
informática;
• Usar frases curtas e simples;
• Ser objectivo;
• Procurar usar palavras que não tenham sentido dúbio.
Directrizes para a Elaboração de Algoritmos
Estas directrizes são genéricas e podem ser usadas ou adaptadas na organização dos passos que
comporão a solução de um determinado problema (ou seja, na criação de um algoritmo para atingir
um objectivo determinado).
A etapa inicial e a determinante na elaboração do programa é a identificação e representação da
solução do problema (Algoritmo). Para montar um algoritmo, precisamos primeiro dividir o
problema apresentado em três fases fundamentais:
ENTRADA : São os dados de entrada do algoritmo;
PROCESSAMENTO : Procedimentos utilizados para chegar ao resultado final;
SAÍDA : São os dados já processados.
1 º Identificação do problema: determinar o que se quer resolver ou qual objectivo a ser atingido;
2 º Identificação das “entradas de dados”: informações fornecidas, a partir das quais se
desenvolverão os cálculos;
3 º Identificação das “saídas de dados”: as informações a serem geradas como resultado;
4 º Identificação das regras e limitações do problema ou das limitações do agente executante (ex:
se o agente fosse uma calculadora não científica, iriam existir limitações no cálculo de funções,
por exemplo);
5 º Determinação do que deve ser feito para transformar as “entradas” em “saídas”. Neste ponto
deve ser determinada a sequência de acções que leve à solução do problema. Para isto é
preciso:
a) observar as regras e limitações já identificadas;
b) determinar acções possíveis de serem realizadas pelo agente.
6 º Construção do Algoritmo, utilizando uma das formas de representação de algoritmos;
7 º Teste da solução - execução de todas as acções do algoritmo, seguindo o fluxo estabelecido
para verificar se ele está realmente gerando os resultados esperados ou detectar possíveis erros em
sua descrição.
14/07/2022 Página 4 de 23
Analogia com o Homem
Exemplo 1: (Imagine o seguinte problema) Calcular a média final dos estudantes com base em 2
notas: N1, N2, onde:
𝑁1 + 𝑁2
𝑀é𝑑𝑖𝑎 𝐹𝑖𝑛𝑎𝑙 =
2
Para montar o algoritmo proposto, faremos três perguntas:
a) Quais são os dados de entrada? R: Os dados de entrada são N1, N2;
b) Qual será o processamento a ser utilizado? R: O procedimento será somar todos os dados
de entrada e dividi-los por 2 (dois);
c) Quais serão os dados de saída? R: O dado de saída será a média final;
INICIO do algoritmo
Receba a nota da prova1
Receba a nota de prova2
Some todas as notas e divida o resultado por 2
Mostre o resultado da divisão
FIM do algoritmo
Exemplo 2:
Considere o problema: Calcular a média final de Estudantes que realizarão quatro provas: P1, P2,
P3 e P4. A Média Final é calculada por: MF = (P1 + P2 + P3 + P4) / 4
Para montar o algoritmo proposto, faremos três perguntas:
a) Quais são os dados de entrada? R: Os dados de entrada são P1, P2, P3 e P4
b) Qual será o processamento a ser usado? R: O procedimento será somar todos os dados de
entrada e dividi-los por 4 (quatro)
14/07/2022 Página 5 de 23
c) Quais são os dados de saída? R: O dado de saída será a média final (MF)
Formas de apresentação do algoritmo
Um algoritmo para um programa de computador pode ser representado por meio de diagramas ou
fluxograma, ou então, escrito numa linguagem convencional, com termos da nossa linguagem
natural respectivos a acções específicas da linguagem de programação – Pseudocódigo.
• Fluxograma
Fluxogramas são diagramas respectivos do fluxo das acções do algoritmo de um programa de
computador, através de símbolos específicos.
Simbologia do Fluxograma
14/07/2022 Página 6 de 23
Exemplo de um fluxograma
• Pseudocódigo
Pseudocódigo é um código escrito para representar um algoritmo, usando termos convencionais
que indicam instruções de um programa; usualmente, os termos convencionais são uma mistura
de palavras da nossa linguagem natural cm palavras e notações típicas das linguagens de
programação.
14/07/2022 Página 7 de 23
Exemplo de pseudocódigo
• Diagramas de Nassi-Shneiderman
Os diagramas de Nassi-Shneiderman foram introduzidos como fluxogramas estruturados.
Simbolos de diagramas de Nassi-Shneiderman
Exemplo de Diagrama de Nassi-Shneiderman
14/07/2022 Página 8 de 23
Técnicas de programação
A forma tradicional de indicar/escrever essas acções (instruções) é em sequência, do princípio ao
fim, de acordo com o pensamento linear deverá ser (exemplo da chávena de café):
1. Pegar numa cafeteira;
2. Encher a cafeteira de água;
3. Pôr a cafeteira numa boca do fogão;
4. Pegar na caixa de fósforos;
5. Acender um fósforo;
6. Rodar o botão da boca do fogão;
7. Acender essa boca com o fósforo;
8. Pegar numa chávena;
9. Colocá-la na mesa;
10. Pegar na lata de café;
11. Colocar o café na chávena;
11.1. Se quiser mais fraco, coloque uma colher;
11.2. Se quiser forte, coloque duas colheres;
12. Colocar açúcar na chávena;
13. Esperar que a água ferva;
14. Coloque a água na chávena;
15. Pegara numa colher;
16. Mexer o conteúdo na chávena.
Obedecendo a esta sequência, qualquer pessoa conseguirá preparar um café, todavia, esta, não é
condição necessária nem suficiente para obter os mesmos resultados. Por exemplo, nada impede
que inicie a acção pelos passos 8 a 11, depois os passos 1 a 7, seguidos dos passos 12 a 16 pois o
resultado será o mesmo. Esta é a forma considerada forma tradicional de escrever programas de
computador, em que face ao problema a solucionar, definem-se um conjunto de instruções
sequenciais, utilizando o vocabulário e a sintaxe próprios da linguagem com que se trabalha.
14/07/2022 Página 9 de 23
Fases da elaboração de um programa
14/07/2022 Página 10 de 23
Tipos de processamento de dados
Ao elaborar um algoritmo, devemos ter em mente qual o tipo de processamento será executado.
Basicamente, existem 3 tipos de processamento:
• Processamento sequencial;
• Processamento condicional;
• Processamento com repetição.
o Repetição determinada;
o Repetição indeterminada.
1. Processamento sequencial
• As instruções são executadas uma após a outra;
• Não existe desvio na sequência das instruções;
• Cada instrução é executada uma única vez.
Exemplo: Imprimir a média aritmética de duas notas
A ordem das instruções é importante!
14/07/2022 Página 11 de 23
Processamento condicional
Um conjunto de instruções (pode ser apenas uma) pode ou não ser executado
• Depende de uma condição;
• Se a condição testada for verdadeira, o conjunto de instruções é executado;
• As instruções executadas dependem da situação.
Exemplo: Imprimir a maior dentre duas notas lidas
Processamento com repetição
• Um conjunto de instruções (pode ser apenas uma) é executado um número definido ou
indefinido de vezes;
• Pode ser determinada por uma condição de parada;
• O conjunto de instruções é executado enquanto a condição for verdadeira;
• O teste da condição é realizado antes de qualquer operação.
• Também chamado de laços condicionais
• Repetem um conjunto de comandos em seu interior
Exemplo: Imprimir a soma dos números inteiro de 1 a N
Soma = 1 + 2 + 3 + ... + N
Necessidade de se identificar o que deve ser repetido no algoritmo
14/07/2022 Página 12 de 23
Processamento com repetição – Exemplo 1
Imprimir a soma dos números inteiro de 1 a N
Soma = 1 + 2 + 3 + ... + N
Identificar: valor inicial (nro = 1), valor final (N), onde o resultado será armazenado (soma),
quando parar (nro <= N), variável (contador) que controla o número de repetições (nro), etc.
Tipos primitivos de dados
Nos algoritmos criados para realizar tarefas na computação utilizamos variáveis para manipular
dados, por exemplo: nome, idade, altura, peso, data de nascimento, sexo, saldo, etc. Para optimizar
a utilização da memória, cada variável armazena apenas um tipo de dados.
Em geral, cada linguagem de programação define seus próprios tipos de dados primitivos, mas os
mais comuns são:
Número – Pode ser dividido em números inteiros (int) e reais, ou ponto-flutuante (float). Cada um
desses tipos numéricos pode ter subdivisões que definem se o número tem ou não sinal negativo,
além da faixa de valores possíveis.
Caractere – Qualquer letra do alfabeto ou símbolo usado na escrita (char). Apesar de representar
só um caractere, a maioria das linguagens também tem um tipo de dado composto chamado Texto
(string), que é um agrupamento de caracteres em um array.
Booleano – Só assume o valor Verdadeiro (true) ou Falso (false). Representa o estado de alguma
coisa, como um bit, ligado (1) ou desligado (0). Assim, algumas linguagens, como C, consideram
que 0 (zero) é falso e qualquer outro valor é verdadeiro e, por isso, podem nem ter esse tipo de
dado embutido.
14/07/2022 Página 13 de 23
Dados - Constantes, variáveis e identificadores
Qualquer programa opera com dados. Os dados num programa podem ser utilizados sob a forma
de constantes ou de variáveis:
Constantes – são valores que se mantêm inalterados dentro de um programa;
Variáveis – são entidades que podem assumir diferentes valores ao longo da execução do
programa.
Identificadores são nomes que se atribuem a variáveis, constantes ou outros elementos com que
se opera dentro de um programa.
Em programação, as constantes podem ser escritas sob a forma de dados directos ou associados a
identificadores. As variáveis, por sua vez, são sempre associadas a identificadores;
Identificadores são nomes que se atribuem a variáveis, constantes ou outros elementos com que
se opera dentro de um programa.
Os identificadores ou nomes que se utilizam dentro de um programa para designar as constantes
ou as variáveis podem ser escolhidos pelo programador, respeitando certas regras: variam
conforme a linguagem de programação.
Variáveis e constantes são os elementos básicos que um programa manipula. Uma variável é
um espaço reservado na memória do computador para armazenar um tipo de dado determinado.
Variáveis devem receber nomes para poderem ser referenciadas e modificadas quando necessário.
Um programa deve conter declarações que especificam de que tipo são as variáveis
que ele utilizará e as vezes um valor inicial.
Constantes
Constante é um determinado valor fixo que não se modifica ao longo do tempo, durante a execução
de um programa. Conforme o seu tipo, a constante é classificada como sendo numérica, lógica e
literal.
Exemplo de constante:
Variáveis
Variável é a representação simbólica dos elementos de um certo conjunto. Cada variável
corresponde a uma posição de memória, cujo conteúdo pode se alterado ao longo do tempo durante
a execução de um programa. Embora uma variável possa assumir diferentes valores, ela só pode
armazenar um valor a cada instante
14/07/2022 Página 14 de 23
Exemplos de variáveis:
Tipos de Variáveis
As variáveis e as constantes podem ser basicamente de quatro tipos: Numéricas, caracteres,
alfanuméricas ou lógicas.
Numéricas Específicas para armazenamento de números, que posteriormente poderão ser
utilizados para cálculos. Podem ser ainda classificadas como Inteiras ou Reais.
As variáveis do tipo inteiro são para armazenamento de números inteiros e as Reais são para o
armazenamento de números que possuam casas decimais.
Caracteres Específicas para armazenamento de conjunto de caracteres que não contenham
números (literais). Ex: nomes.
Alfanuméricas Específicas para dados que contenham letras e/ou números. Pode em determinados
momentos conter somente dados numéricos ou somente literais. Se usado somente para
armazenamento de números, não poderá ser utilizada para operações matemáticas.
Lógicas Armazenam somente dados lógicos que podem ser Verdadeiro ou Falso.
Declaração de Variáveis
As variáveis só podem armazenar valores de um mesmo tipo, de maneira que também são
classificadas como sendo numéricas, lógicas e literais.
Operadores
14/07/2022 Página 15 de 23
Os operadores são meios pelo qual incrementamos, decrementamos, comparamos e avaliamos
dados dentro do computador. Temos três tipos de operadores:
• Operadores Aritméticos
• Operadores Relacionais
• Operadores Lógicos
Operadores Aritméticos
Os operadores aritméticos são os utilizados para obter resultados numéricos. Além da adição,
subtração, multiplicação e divisão, podem utilizar também o operador para exponenciação.
Os símbolos para os operadores aritméticos são:
Hierarquia das Operações Aritméticas
1º ( ) Parênteses
2º Exponenciação
3º Multiplicação, divisão (o que aparecer primeiro)
4º + ou – (o que aparecer primeiro)
Exemplo
Operadores Relacionais
Os operadores relacionais são utilizados para comparar String de caracteres e números. Os valores
a serem comparados podem ser caracteres ou variáveis.
Estes operadores sempre retornam valores lógicos (verdadeiro ou falso/ True ou False) para
estabelecer prioridades no que diz respeito a qual operação executar primeiro, utilize os parênteses.
Os operadores relacionais são:
Exemplo:
14/07/2022 Página 16 de 23
Tendo duas variáveis A=5 e B=3
Os resultados das expressões seriam:
Símbolo Utilizado para comparação entre expressões
Operadores Lógicos
Os operadores lógicos servem para combinar resultados de expressões, retornando se o resultado
final é verdadeiro ou falso.
Os operadores lógicos são:
E/AND - Uma expressão AND (E) é verdadeira se todas as condições forem verdadeiras;
OR/OU - Uma expressão OR (OU) é verdadeira se pelo menos uma condição for verdadeira;
NOT - Um expressão NOT (NÃO) inverte o valor da expressão ou condição, se verdadeira inverte
para falsa e vice-versa.
A tabela abaixo mostra todos os valores possíveis criados pelos três operadores lógicos
14/07/2022 Página 17 de 23
(AND, OR e NOT)
Exemplos:
Suponha que temos três variáveis A=5, B=8 e C=1
Os resultados das expressões seriam:
14/07/2022 Página 18 de 23
Estruturas de Controle de Fluxo-Estruturas de Seleção
Até agora, desenvolvemos algoritmos que nos permitem a entrada de dados, algum processamento
desta informação e uma saída de dados. Porém, estes algoritmos ainda são incapazes de tomar
decisões ou repetir instruções uma determinada
quantidade de vezes. Imagine ter que imprimir uma sequência de 1000 números. Ou como fazer
um algoritmo que me diga se estou aprovado ou não?
As estruturas de controle de fluxo permitirão desenvolver algoritmos capazes de testar expressões
e, a partir delas, seguir pelas instruções de forma não linear.
• Seleção: se (if), escolha (switch).
• Repetição: enquanto (while), repita (repeat), faça (do), para (for).
Estruturas de Seleção
Existem quatro tipos:
• Estruturas de Seleção Simples.
• Estruturas de Seleção Compostas.
• Estruturas de Seleção Encadeadas.
• Estruturas de Seleção de Múltipla Escolha.
Comando SE (If) - [Estruturas de Seleção Simples]
Estrutura de controle de fluxo, que executa um ou vários comandos se a condição testada for
verdadeira e, em alguns casos, executando um ou vários comandos se for falsa. Também conhecido
como desvio condicional.
A <expressão-lógica> é uma condição que será testada pela Unidade Lógica-Aritmética (ULA),
devolvendo como resposta Verdadeiro ou Falso.
14/07/2022 Página 19 de 23
Na <expressão-lógica> podemos utilizar os operadores relacionais e/ou os operadores lógicos.
Exemplo:
• num1 >= 60
• num1 <= 60 E num1 >= 30
No exemplo anterior, o algoritmo apenas informará se o usuário é maior de idade. Se ele não for,
seria bom que também recebesse uma mensagem informando. Neste caso, deve-se utilizar o
comando SE com a sintaxe um pouco diferente. Ele possuirá o comando SENAO (ELSE)
[Estrutura de Seleção Composta].
Sintaxe
A <seqüência-de-comandos-2> será executada SOMENTE no caso de <expressão-lógica> ser
FALSO.
Desta forma, o algoritmo não executará a(s) instrução(ões) presentes em <seqüência-de-
comandos-1>.
Exemplo:
14/07/2022 Página 20 de 23
Comando ESCOLHA (switch) [Estrutura de Seleção de Múltipla Escolha]
Testa sucessivamente o valor de uma expressão contra uma lista de constantes (inteiras ou de
caracteres).
Quando o valor coincide, os comandos associados àquela constante são executados.
Sintaxe
Exemplo:
Se o usuário inserir uma informação que o comando não está aguardando (em seus elementos
“caso”), como por exemplo, se ele digitasse a opção 5 no exemplo anterior, o algoritmo não faria
nada.
14/07/2022 Página 21 de 23
Nestes casos, podemos usar a instrução outrocaso e definir uma acção padrão.
14/07/2022 Página 22 de 23
Bibliografias
• SALIMO GABRIEL - Introdução aos Sistemas, Informáticos Aplicativos MS-Windows,
Fundamentos & Lógica de Programação, 2011.
• Lógica de Programação – A Construção de Algoritmos e Estruturas de Dados – São Paulo:
Forbellone, André Luiz Villar - MAKRON, 1993.
• Sites na Web: http://www.inf.pucrs.br/~egidio/algo1/
14/07/2022 Página 23 de 23