Você está na página 1de 9

Técnicas de Programação

Material de Consulta para os Alunos

1º Tópico - Lógica de Programação | Algoritmos

Introdução

Lógica de programação

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.

Então o que é lógica?

Lógica de programação é a técnica de encadear pensamentos para atingir


determinado objetivo.

Sequência Lógica

Estes pensamentos, podem ser descritos como uma sequência de instruções, que
devem ser seguidas para se cumprir uma determinada tarefa.

Sequência Lógica são passos executados até atingir um objetivo ou solução


de um problema.

Instruções

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 ação elementar a executar.
Convém ressaltar que uma ordem isolada não permite realizar o processo completo,
para isso é necessário um conjunto de instruções colocadas em ordem sequencial lógica.
Por exemplo, se quisermos fazer uma omelete 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 correta.

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 ação elementar
Técnicas de Programação
Algoritmo

O que é um algoritmo?
“Algoritmo é uma sequência de passos que visa atingir um objetivo bem
definido” (FORBELLONE, 1999).

“Algoritmo é a descrição de uma sequência de passos que deve ser seguida para a
realização de uma tarefa” (ASCENCIO, 1999).

“Algoritmo é uma sequência finita de instruções ou operações cuja execução, em


tempo finito, resolve um problema computacional, qualquer que seja sua instância”
(SALVETTI, 1999).

“Algoritmos são regras formais para a obtenção de um resultado ou da solução de


um problema, englobando fórmulas de expressões aritméticas” (MANZANO, 1997).

“Ação é um acontecimento que, a partir de um estado inicial, após um período de


tempo finito, produz um estado final previsível e bem definido. Portanto, um algoritmo é a
descrição de um conjunto de comandos que, obedecidos, resultam numa sucessão finita
de ações” (FARRER, 1999).

Analisando as definições anteriores, podemos perceber que executamos no dia a dia


vários algoritmos, como se pode observar nos exemplos a seguir.

1. Algoritmo 1 — Somar três números


1.1. Passo 1 — Receber os três números.
1.2. Passo 2 — Somar os três números.
1.3. Passo 3 — Mostrar o resultado obtido.

2. Algoritmo 2 — Fazer um sanduíche


2.1. Passo 1 — Pegar o pão.
2.2. Passo 2 — Cortar o pão ao meio.
2.3. Passo 3 — Pegar a maionese.
2.4. Passo 4 — Passar a maionese no pão.
2.5. Passo 5 — Pegar e cortar alface e tomate.
2.6. Passo 6 — Colocar alface e tomate no pão.
2.7. Passo 7 — Pegar o hambúrguer.
2.8. Passo 8 — Fritar o hambúrguer.
2.9. Passo 9 — Colocar o hambúrguer no pão.

3. Algoritmo 3 — Trocar uma lâmpada


3.1. Passo 1 — Pegar uma lâmpada nova.
3.2. Passo 2 — Pegar uma escada.
3.3. Passo 3 — Posicionar a escada embaixo da lâmpada queimada.
3.4. Passo 4 — Subir na escada com a lâmpada nova na mão.
3.5. Passo 5 — Retirar a lâmpada queimada.
3.6. Passo 6 — Colocar a lâmpada nova.
3.7. Passo 7 — Descer da escada.
3.8. Passo 8 — Testar o interruptor.
Técnicas de Programação
3.9. Passo 9 — Guardar a escada.
3.10. Passo 10 — Jogar a lâmpada velha no lixo.

4. Algoritmo 4 — Ir para a escola


4.1. Passo 1 — Acordar cedo.
4.2. Passo 2 — Ir ao banheiro.
4.3. Passo 3 — Abrir o armário para escolher uma roupa.
4.4. Passo 4 — Se o tempo estiver quente, pegar uma camiseta e uma calça jeans;
Caso contrário, pegar um agasalho e uma calça jeans.
4.5. Passo 5 — Vestir a roupa escolhida.
4.6. Passo 6 — Tomar café.
4.7. Passo 7 — Pegar uma condução.
4.8. Passo 8 — Descer próximo à escola.

5. Algoritmo 5 — Sacar dinheiro no banco 24 horas


5.1. Passo 1 — Ir até um banco 24 horas.
5.2. Passo 2 — Colocar o cartão.
5.3. Passo 3 — Digitar a senha.
5.4. Passo 4 — Solicitar a quantia desejada.
5.5. Passo 5 — Se o saldo for maior ou igual à quantia desejada, sacar; caso contrário,
mostrar mensagem de impossibilidade de saque.
5.6. Passo 6 — Retirar o cartão.
5.7. Passo 7 — Sair do banco 24 horas.

Obs: Você pode estar pensando: “Mas eu realizo essas atividades de maneira
diferente!”. Esse pensamento está correto, pois, às vezes, um problema pode ser
resolvido de diversas maneiras, porém, gerando a mesma resposta. Ou seja, podem
existir vários algoritmos para solucionar o mesmo problema.

Método para a construção de algoritmos

Para a construção de qualquer tipo de algoritmo, é necessário seguir estes passos:


1. Compreender completamente o problema a ser resolvido, destacando os
pontos mais importantes e os objetos que o compõem.

2. Definir os dados de entrada, ou seja, quais dados serão fornecidos e quais


objetos fazem parte desse cenário problema.

3. Definir o processamento, ou seja, quais cálculos serão efetuados e quais as


restrições para esses cálculos. O processamento é responsável pela transformação dos
dados de entrada em dados de saída. Além disso, deve-se verificar quais objetos são
responsáveis pelas atividades.

4. Definir os dados de saída, ou seja, quais dados serão gerados depois do


processamento.

5. Construir o algoritmo utilizando um dos tipos descritos na próxima seção.


Técnicas de Programação
Tipos de algoritmos

Os três tipos mais utilizados de algoritmos são: descrição narrativa, fluxograma e


pseudocódigo ou portugol.

1. Descrição narrativa - A descrição narrativa consiste em analisar o enunciado


do problema e escrever, utilizando uma linguagem natural (por exemplo, a língua
portuguesa), os passos a serem seguidos para sua resolução. Vantagem: não é
necessário aprender nenhum conceito novo, pois uma língua natural, neste ponto, já é
bem conhecida. Desvantagem: a língua natural abre espaço para várias interpretações, o
que posteriormente dificultará a transcrição desse algoritmo para programa.

2. Fluxograma - O fluxograma consiste em analisar o enunciado do problema e


escrever, utilizando símbolos gráficos predefinidos (Tabela 1.1), os passos a serem
seguidos para sua resolução. Vantagem: o entendimento de elementos gráficos é mais
simples que o entendimento de textos. Desvantagem: é necessário aprender a simbologia
dos fluxogramas e, além disso, o algoritmo resultante não apresenta muitos detalhes,
dificultando sua transcrição para um programa.

3. Pseudocódigo ou portugol - O pseudocódigo ou portugol consiste em


analisar o enunciado do problema e escrever, por meio de regras predefinidas, os passos
a serem seguidos para sua resolução. Vantagem: a passagem do algoritmo para qualquer
linguagem de programação é quase imediata, bastando conhecer as palavras reservadas
da linguagem que será utilizada. Desvantagem: é necessário aprender as regras do
pseudocódigo, que serão apresentadas nos próximos capítulos.
Técnicas de Programação

Operadores matemáticos

Obs: em portugol somente o operador de atribuição é modificado para :=

Operadores Relacionais

São utilizados para comparar variáveis ou expressões, resultando em um valor


lógico ( verdadeiro ou falso), sendo eles:

Operador Comparação

> maior que

< menor que

>= maior ou igual

<= menor ou igual

= igual

<> diferente
Técnicas de Programação

Operadores Lógicos

São utilizados para avaliar expressões lógicas, sendo eles:

Operador Ação

Não Inverte o valor, de verdadeiro para falso


(NOT) e vice-versa

E Retorna verdadeiro se ambas as partes


(AND) forem verdadeiras

Ou Basta que um valor seja verdadeiro para


(OR) retornar verdadeiro

Exemplos:
se (media>6) e (frequencia>75) entao… //as duas condições devem ser verdadeiras para
executar o(s) comando(s) após o entao

se (idade>18) ou (amigoDoDono=verdadeiro) entao… // uma única condição sendo


verdadeira já executa o(s) comando(s) após o entao

se nao(nome=”Andreia”)entao… //inverte o resultado da condição: se nome=”Andreia”,


retorna falso. Se nome<>”Andreia”, retorna verdadeiro.

Programas

Os programas de computadores nada mais são do que algoritmos escritos numa


linguagem de computador (Pascal, Linguagem C++, Cobol, Fortran, Visual Basic, Visual
Studio, Delphi entre outras) e que são interpretados e executados por uma máquina, no
caso um computador.
Podemos imaginar o computador como uma super calculadora, capaz de fazer
cálculos muito mais rápido que nós, mas para isso devemos dizer para o computador o que
deve ser calculado e como deve ser calculado. A função das linguagens de programação é
exatamente essa, ou seja, servir de um meio de comunicação entre computadores e
humanos.

Existem dois tipos de linguagens de programação: as de baixo nível e as de alto


nível. Os computadores interpretam tudo como números em base binária, ou seja, só
entendem zero e um. As linguagens de baixo nível são interpretadas diretamente pelo
computador, tendo um resultado rápido, porém é muito difícil e incômodo se trabalhar com
elas. Exemplos de linguagens de baixo nível são a linguagem binária e a
linguagem Assembly.

Exemplo de código em Assembly:


Técnicas de Programação
LOAD A,0 //carrega o registrador A com o conteúdo do endereço 0
LOAD B,3 //carrega o registrador B com o conteúdo do endereço 3
MULT A,B //multiplica o conteúdo de A com o de B, o resultado fica em A
STORE 0,A //armazena o valor de A no endereço 0

Como pode-se notar, é uma linguagem bastante complicada.

Já as linguagens de alto nível são mais fáceis de se trabalhar e de entender, as ações


são representadas por palavras de ordem (exemplo faça, imprima, etc) geralmente em
inglês, foram feitos assim para facilitar a memorização e a lógica. Elas não são interpretadas
diretamente pelo computador, sendo necessário traduzí-las para linguagem binária
utilizando-se de um programa chamado compilador.

Quando programamos em uma linguagem de programação de alto nível


primeiramente criamos um arquivo de texto comum contendo a lógica do programa, ou seja,
é onde falamos ao computador como deve ser feito o que queremos. Este arquivo de texto
é chamado de código-fonte, cada palavra de ordem dentro do código-fonte é chamada de
instrução. Após criarmos o código-fonte devemos traduzir este arquivo para linguagem
binária usando o compilador correspondente com a linguagem na qual estamos
programando. O compilador irá gerar um segundo arquivo que chamamos de executável
ou programa, este arquivo gerado é interpretado diretamente pelo computador.

Estaremos adotando a linguagem de programação C para nossa disciplina e no


decorrer das aulas estaremos montando algoritmos em portugol e fluxogramas para auxiliar
no entendimento de como devemos escrever nossos códigos fonte em linguagem C.

Opções de softwares a serem utilizados:

• Dev C++ para programação em C.


• VisuAlg para algoritmos em portugol;

Paradigmas de programação

Um paradigma de programação está intimamente relacionado à forma de pensar do


programador e como ele busca a solução para os problemas. É o paradigma que permite
ou proíbe a utilização de algumas técnicas de programação. Ele é capaz, ainda, de
mostrar como o programador analisou e abstraiu o problema a resolver. Existem vários
paradigmas de programação: estruturado, orientado a objetos, lógico, funcional, dentre
outros. Vamos analisar os paradigmas estruturado e orientado a objetos.

• Pelo paradigma estruturado (também conhecido como imperativo ou procedural),


qualquer problema pode ser quebrado em problemas menores, de mais fácil solução,
chamados de sub-rotinas ou funções. Cada sub-rotina ou função pode receber valores de
entrada, submetê-los a um processo capaz de gerar um valor de saída para quem fez uso
da sub-rotina ou função. O paradigma estruturado preconiza, ainda, que todo
processamento pode ser realizado pelo uso de três tipos de estrutura: sequencial,
condicional e iterativa (de repetição).
Técnicas de Programação

• Já o paradigma orientado a objetos compreende o problema como uma coleção de


objetos interagindo por meio de trocas de mensagem. Os objetos são estruturas de dados
contendo estado (dados) e comportamento (lógica). Dessa maneira, um conjunto de
objetos com informações comuns e com o mesmo comportamento dá origem a uma
classe.

O que são variáveis?

O recurso utilizado nos programas para escrever e ler dados da memória do


computador é conhecido como variável, que é simplesmente um espaço na memória o
qual reservamos e damos um nome. Por exemplo, podemos criar uma variável chamada
"idade" para armazenar a idade de uma pessoa. Você pode imaginar uma variável como
uma gaveta "etiquetada" em um armário.
Quando criamos uma variável em nosso programa especificamos que tipo de dados
pode ser armazenado nela (dependendo da linguagem de programação). Por exemplo, a
variável nome só poderia armazenar valores do tipo texto. Já a variável idade, só poderia
armazenar valores do tipo número (inteiro).

Declaração de variáveis

Antes de ser utilizada, uma variável deve ser declarada, isto é, informamos ao
computador que o programa irá utilizar o referido espaço em memória. A declaração de
variáveis é feita conforme exemplo a seguir.

Exemplo em portugol:

Nome da variável : tipo

Exemplo em linguagem C:

<modificador de escopo> <modificador de tipo> <tipo> nome_da_variavel;

OBS: Cada tipo de variável necessita de um tamanho especifico reservado em


memória.
Em primeiro lugar, escreve-se o escopo, depois o tipo da variável, em seguida o
nome da variável e termina-se a declaração com um ponto-e-vírgula (;).

Exemplos de algoritmos

1. Faça um algoritmo para mostrar o resultado da multiplicação de dois números.

Algoritmo em descrição narrativa:


Técnicas de Programação
Algoritmo em Fluxograma:

Algoritmo em Pseudocódigo:

Linguagem de programação C:

Você também pode gostar