Algoritmos e Programação
Prof. Ivo Brites
10/08/2012
Aula 2
1
Universidade de Cuiabá
Engenharia Ambiental
2 ° Semestre
O que é uma Linguagens de Programação
Linguagem?
“Conjunto de regras que estabelecem normas de
comunicação”.
Para haver um entendimento, ambas as partes devem falar a
mesma língua.
Caso as partes envolvidas na comunicação falem línguas
diferentes, surge a necessidade de um tradutor
(intermediário).
O que é uma Linguagens de Programação
Linguagem de Programação?
O que é uma Linguagens de Programação
Uma linguagem de programação deve ser extremamente
formal e exata.
Um determinado comando tem que ter o mesmo significado para
todos os programadores que utilizam ele e para todos os
compiladores da linguagem.
O que é uma Linguagens de Programação
Para garantir a formalidade e a sua exatidão toda LP
possui:
Sintaxe - é a forma de suas expressões, de suas instruções e de suas
unidades de programa.
Semântica - A semântica trata da análise do significado das expressões,
das instruções e das unidades de programa
Linguagens Compiladas
Programas escritos em linguagens de alto nível devem ser
traduzidos para linguagens de máquina.
Um compilador implementa uma linguagem fonte
traduzindo programas escritos nessa linguagem para a
linguagem objeto da máquina alvo onde os programas vão ser
executados.
Linguagens Compiladas
Dados
Execução
Resultados
Linguagens Interpretadas
Gera código intermediário que é executado, por um
programa ou máquina virtual, sem gerar código de
máquina.
Um interpretador simula a execução de cada instrução ou
comando de um programa, de forma que o seu efeito seja
reproduzido corretamente, à medida que essa execução se
torna necessária.
Noções de Lógica
O que é lógica?
O uso corriqueiro da palavra lógica está normalmente relacionado à coerência e
à racionalidade. Freqüentemente se associa lógica apenas à matemática, não se
percebendo seu aplicabilidade e sua relação com as demais ciências.
Existe lógica no Dia-a-Dia?
Sempre que pensamos, a lógica ou a ilógica necessariamente nos acompanham.
Quando falamos ou escrevemos, estamos expressando nosso pensamento, logo,
precisamos usar a lógica nessas atividades.
9
Noções de Lógica
Mas e a lógica de programação?
Significa o uso correto das leis do pensamento, da ‘ordem da razão’ e de
processos de raciocínio e simbolização formais na programação de
computadores.
O raciocínio é algo abstrato, nós seres humanos temos a capacidade de
expressá-lo através de palavra falada ou escrita, que por sua vez se baseia em um
determinado idioma, que segue uma série de padrões (gramática). Algo similar
ocorre com a lógica de programação.
O que é um algoritmo?
Um algoritmo pode ser definido como uma seqüência de passos que visam a
atingir um objetivo bem definido.
10
Noções de Lógica
Exemplos de algoritmos:
Algoritmo 1.1 – Troca de lâmpada
pegar uma escada;
posicionar a escada embaixo da lâmpada;
buscar uma lâmpada nova;
subir na escada;
retirar a lâmpada velha;
colocar a lâmpada nova.
11
Noções de Lógica
Exemplos de algoritmos:
Algoritmo 1.2 – Troca de lâmpada com teste
acionar o interruptor;
se a lâmpada não acender, então
pegar uma escada;
posicionar a escada embaixo da lâmpada;
buscar uma lâmpada nova;
subir na escada;
retirar a lâmpada velha;
colocar a lâmpada nova.
12
Noções de Lógica
Exemplos de algoritmos:
Algoritmo 1.3 – Troca de lâmpada com teste para 10 soquetes
acionar o interruptor do primeiro soquete;
se a lâmpada não acender, então
pegar uma escada;
posicionar a escada embaixo da lâmpada;
buscar uma lâmpada nova;
subir na escada;
retirar a lâmpada velha;
colocar a lâmpada nova;
enquanto a lâmpada não acender, faça
retirar a lâmpada queimada;
colocar uma lâmpada nova;
acionar o interruptor do segundo soquete;
se a lâmpada não acender, então
pegar uma escada;
posicionar a escada embaixo da lâmpada;
13
...
Noções de Lógica
Exemplos de algoritmos:
Algoritmo 1.3 – Troca de lâmpada com teste para 10 soquetes
acionar o interruptor do décimo soquete;
se a lâmpada não acender, então
pegar uma escada;
posicionar a escada embaixo da lâmpada;
buscar uma lâmpada nova;
subir na escada;
retirar a lâmpada velha;
colocar a lâmpada nova;
enquanto a lâmpada não acender, faça
retirar a lâmpada queimada;
colocar uma lâmpada nova;
14
Noções de Lógica
Exemplos de algoritmos:
Algoritmo 1.4 – Troca de lâmpada com teste para 10 soquetes com repetição
ir até o interruptor do primeiro soquete;
enquanto a quantidade de soquetes testados for menor que dez, faça
acionar o interruptor;
se a lâmpada não acender, então
pegar uma escada;
posicionar a escada embaixo da lâmpada;
buscar uma lâmpada nova;
subir na escada;
retirar a lâmpada velha;
colocar a lâmpada nova;
enquanto a lâmpada não acender, faça
retirar a lâmpada queimada;
colocar uma lâmpada nova;
15
ir até o interruptor do próximo soquete;
Noções de Lógica
Exemplos de algoritmos:
Algoritmo 1.5 – Fluxograma
16
Tópicos Preliminares
Tipos primitivos
Variáveis
Expressões aritméticos, lógicas e relacionais
Comandos de entrada e saída
Blocos
17
Tópicos Preliminares
Tipos primitivos
Inteiro: toda e qualquer informação numérica que pertença ao
conjunto dos números inteiros.
Real: toda e qualquer informação numérica que pertença ao
conjunto dos números reais.
Caracter: toda e qualquer informação composta de um conjunto
de caracteres alfanuméricos: numéricos (0..9), alfabéticos
(A...Z, a...z) e especiais (por exemplo, #,?,!,@).
Lógico: toda e qualquer informação que pode assumir apenas
duas situações.
18
Tópicos Preliminares
Constantes
Entendemos que um dado é constante quando não sofre
nenhuma variações no decorrer do tempo, ou seja, seu valor é
constante desde o início até o fim da execução do algoritmo,
assim como é constante para execuções diferentes no tempo.
Variável
Um dado é classificado com variável quando tem a possibilidade
de ser alterado em algum instante no decorrer do tempo.
19
Tópicos Preliminares
Formação de identificadores
Os identificadores acompanham as seguintes regras de
formação:
1.
2.
3.
20
Devem começar por um caracter alfabético.
Podem ser seguidos por mais caracteres alfabéticos ou numéricos.
Não devem ser usados caracteres especiais.
Tópicos Preliminares
Operadores Aritméticos , Caracteres, Relacionais e Lógicos
– consultar a linguagem do VisuAlg, página 2.
Comandos de entrada e saída – consultar a linguagem do
VisuAlg, página 2.
Blocos
Um bloco pode ser definido como um conjunto de ações com
uma função definida; nesse caso, um algoritmo pode ser visto
como um bloco.
21
Exemplo
// Algoritmo : MEDIA ARITMETICA
algoritmo "mediaaritmetica"
// Seção de Declarações
var
V1, V2, Media : real ;
inicio
// Seção de Comandos
escreva("Qual o primeiro valor? ")
leia(V1)
escreva("Qual o segundo valor? ")
leia(V2)
Media <- (V1+V2) / 2
escreval("A média aritmética é : ", Media)
fimalgoritmo
22
Estruturas de Controle
Estrutura sequencial
A estrutura sequencial de um algoritmo corresponde ao fato de
que o conjunto de ações primitivas será executado em uma
sequência linear de cima para baixo e da esquerda para a direita.
23
Estruturas de Controle
Estrutura de seleção
Uma estrutura de seleção permite a escolha de um grupo de
ações (bloco) a ser executado quando determinadas condições,
representadas por expressões lógicas ou relacionais, são ou não
satisfeitas.
Seleção Simples
se <condição> entao
C//comando único
fimse
Seleção Composta
24
se <condição> entao
C//comando único
Senao
C//comando único
fimse
Exercícios
Construa um algoritmo que calcule a média aritmética
entra quatro notas bimestrais quaisquer fornecidas por um
aluno (usuário).
2. Faça um algoritmo para calcular o volume de um esfera de
raio R, em que R é um dado fornecido pelo usuário. O
volume de uma esfera é dado por V = 4/3∏R3
3. Vamos incluir agora, no primeiro algoritmo a informação
do resultado falso da condição (Média >=7) como
reprovado, e o verdadeiro da condição como aprovado.
4. Dados três valores A, B e C referentes aos lados de um
triangulo, verificar se compõem um triangulo equilátero,
isósceles ou escaleno.
1.
25
Bibliografia
[1] FORBELLONE, André Luiz Villar. EBERSPÄCHER,
Henri Frederico. Lógica de Programação – A
construção de algoritmos e estruturas de dados.
Editora Pearson Brasil, 2005.
[2] SALIBA, Walter Luiz Caram. Técnicas de
Programação. Editora Pearson Brasil, 1993.
[3] WIRTH, Niklaus. Algoritmos e Estruturas de Dados.
Editora LTC – Livros Técnicos e Científicos, 1999.
[4] WEB
26