Técnicas de Linguagens de Programação – 10º Ano

Propaganda
Técnicas de Linguagens de
Programação – 10º Ano
Unidade I
Lógica de Programação
Prof. Carlos Almeida - ESEN
Prof. Pascoal Albuquerque - ESS
“Não estamos aqui para sobreviver
e sim para explorar
a oportunidade de vencer
adquirindo o saber!”
"Penso noventa e nove vezes e nada descubro; deixo de
pensar, mergulho em profundo silêncio - e eis que a verdade
se me revela."
(Albert Einstein)
Introdução à Lógica de
Programação

Lógica
Lógica de programação é a
técnica de encadear
pensamentos para atingir
determinado
objectivo.

Sequência Lógica
Sequência Lógica são
passos executados até
atingir um objectivo ou
solução de um
problema.
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.

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.
Por exemplo, se quisermos fazer uma omelete de batatas, temos
que colocar em prática uma série de instruções:
descascar as batatas, bater os ovos, fritar as batatas, etc...
 Essas instruções tem que ser executadas em uma ordem
adequada; não se pode descascar as batatas depois de fritá-las.
 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.

Algoritmo
 Um algoritmo é uma sequência ordenada e precisa de
passos, acções ou operações, que conduzem à solução
de um dado problema.
 Em informática, a formulação de um algoritmo não é
mais do que a descrição, de forma ordenada, com
clareza e rigor, das operações que se pretende realizar
em computador para resolver um problema ou atingir
determinados objectivos.
Exemplos de algoritmos não computacionais:
“Chupar um rebuçado”:
•
Pegar no rebuçado
•
Retirar o papel
•
Chupar o rebuçado
•
Deitar o papel no lixo
“Somar dois números quaisquer”:
•
Escreva o primeiro número no rectângulo A
•
Escreva o segundo número no rectângulo B
•
Somar o número do rectângulo A com o
número do rectângulo B
•
Colocar o resultado no rectângulo C
Algoritmo não é a solução de um problema, pois, se assim fosse,
cada problema teria um único algoritmo. Algoritmo é um caminho
para a solução de um problema, e em geral, os caminhos que levam
a uma solução são muitos.
Algoritmos não se aprende:
• Copiando Algoritmos
• Estudando Algoritmos
Algoritmos só se aprendem:
• Construindo Algoritmos
• Testando Algoritmos
Aprender algoritmos não se consegue a não ser através de
muitos exercícios.

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.
 Um programa é por natureza muito específico e rígido em
relação aos algoritmos da vida real.
Exercícios
 Faça
um algoritmo para somar dois
números e multiplicar o resultado pelo
primeiro número.
 Crie uma sequência lógica para tomar
banho.
 Descreva com detalhes a sequência
lógica para trocar um pneu de um carro.
 Faça um algoritmo detalhado para
trocar uma lâmpada.
Desenvolvendo algoritmos
Regras para construção do
Algoritmo
 Usar
somente um verbo por frase.
 Imaginar que se está a desenvolver 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 duvidoso.
Fases
 Vimos que ALGORITMO é uma sequência lógica de
instruções que podem ser executadas.
 Entretanto ao montar um algoritmo, precisamos primeiro dividir
o problema apresentado em três fases fundamentais.

ENTRADA: São os dados de entrada do
algoritmo.
 PROCESSAMENTO: São os procedimentos
utilizados para chegar ao resultado final.
 SAÍDA: São os dados já processados.
ENTRADA
PROCESSAMENTO
SAÍDA
Exemplo de Algoritmo
Imagine o seguinte problema: Calcular a média final dos alunos. Os
alunos realizarão 3 provas: P1, P2 e P3.
Onde: Média Final = (P1+P2+P3)/3
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 e P3
b) Qual será o processamento a ser utilizado?
R: O procedimento será somar todos os dados de entrada e dividilos por 3: (P1 + P2 + P3)/3
c) Quais serão os dados de saída?
R: O dado de saída será a média final
Algoritmo: Calcular Média do aluno
Receber a nota da prova1
Receber a nota de prova2
Receber a nota de prova3
Somar todas as notas e dividir o resultado por 3
Mostrar o resultado da divisão
Teste do Algoritmo
Após desenvolver um algoritmo ele deverá sempre ser testado.
Deve-se seguir as instruções do algoritmo de maneira precisa
para verificar se o procedimento utilizado está correcto ou não.
Exemplo:
Nota da Prova 1
Nota da Prova 2
Nota da Prova 3
Utilizar a tabela abaixo:
P1
P2
P3
Média
Exercícios

Identifique os dados de entrada, processamento e
saída no algoritmo seguinte






Receba código do produto
Receba valor do produto (valor unitário)
Receba quantidade do produto
Calcule o valor total (Quantidade * Valor do produto)
Mostre o código do produto e o valor total
Faça um algoritmo para “Calcular o stock médio de
uma peça”, sendo que STOCKMÉDIO = (QUANTIDADE
MÍNIMA + QUANTIDADE MÁXIMA) /2

Teste o algoritmo anterior com dados à sua escolha.
Formas de Apresentação dos
Algoritmos para Computador
Pseudocódigo







Os algoritmos podem ser descritos em uma linguagem
chamada pseudocódigo.
Os algoritmos são independentes das linguagens de
programação.
Ao contrário de uma linguagem de programação não existe um
formalismo rígido de como deve ser escrito o algoritmo.
O algoritmo deve ser fácil de se interpretar e fácil de codificar.
O algoritmo deve ser o intermediário entre a linguagem falada e
a linguagem de programação.
A pseudolinguagem pode ser visto como a tentativa de fundir a
expressividade da linguagem natural e o rigor lógico de
esquemas como o fluxograma.
A pseudolinguagem permite a descrição do algoritmo de uma
forma linear, fácil de ler e fácil de compreender.
Exemplo de pseudocódigo
Algoritmo circunferência
[Este algoritmo dá as características de uma circunferência]
Dados
raio: inteiro
área, perímetro: reais
PI  3,14159
Início
Ler (raio)
área  PI x raio2
perímetro  2 x PI x raio
Escrever (área, perímetro)
Fim
Pseudocódigo
Num algoritmo, podemos definir três secções:
Cabeçalho
•
É dado o nome ao algoritmo. Começa com a palavra "Algoritmo".
Declarações
•
Descrição das variáveis usadas.
Corpo
•
Contém a sequência dos passos (acções) do algoritmo.
Inicia-se com a palavra "Início“ e termina com "Fim".
Comentários
•
Cada passo do algoritmo pode iniciar com um comentário entre dois
parênteses rectos. Estes comentários dão uma breve descrição do
passo ou dum grupo de passos seguintes.
•
Os comentários são uma parte importante do algoritmo.
Eles servem para tornar a leitura, do algoritmo, mais fácil e clara.
Fluxogramas

É uma forma padronizada e eficaz para
representar os passos lógicos de um
determinado processamento.
 Define uma sequência de símbolos, com
significado bem definido.
 Sua principal função é a de facilitar a
visualização dos passos de um processamento.
 Actualmente, a sua utilização restringe-se a um
apoio complementar na documentação do
algoritmo, valendo pela vantagem gráfica da
apresentação das interligações.
Alguns Símbolos Usados na
Construção de Fluxogramas
Processamento em geral (ex. soma de dois números)
Leitura/Escrita de dados (escrever a nota da prova 1)
Início/Fim de processamento (ex. inicio do algoritmo)
Conector de fluxos (Ligação entre partes do fluxograma)
Decisão condicional
Escolha múltipla
Subprograma
Linha de fluxo
Exemplo de Fluxograma
Início
Ler valor 1
Ler valor 2
Valor 1 > Valor 2
No
Valor 1 < Valor 2
Yes
Yes
Escrever valor
1 é maior
Escrever valor
2 é maior
Rotina Adeus
Fim
No
Escrever
valores iguais
Algoritmo Comparar
Dados
valor1, valor2: Inteiros
frase: Caracteres
Início
Ler (valor1, valor2)
Se valor1 > valor2 então
frase  “valor1 é maior”
Senão
Se valor1 < valor2 então
frase  “valor2 é maior””
Senão
frase  “valores iguais”
Fim se
Fim se
Escrever (frase)
Chamar Rotina Adeus
Fim
Abordagem Estruturada e
Concepção Top-Down

Numa linguagem estruturada como por ex. o
Pascal distingue-se a parte onde são
declarados os dados e o corpo com as
instruções do programa – parte declarativa e
parte operativa.
 A abordagem top-down procura identificar os
pontos essenciais da questão; parte-se dos
pontos mais gerais para os seus componentes
mais particulares, em níveis sucessivos mais
concretos, até ao nível de pormenor desejado.
Elementos Fundamentais de
Programação
Constantes, Variáveis e Tipos
de Dados






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 identificadores (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 por vezes um valor inicial.
Tipos de dados podem ser por exemplo: inteiros,
reais, caracteres, lógico, etc.
As expressões combinam variáveis e constantes
para calcular novos valores.
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 (caracteres).
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.
Tipos de Dados






As variáveis e as constantes podem ser basicamente de quatro
tipos: numéricas, carácter (caracteres individuais), cadeias de
caracteres (strings ou cadeias alfanuméricas) e lógicas (ou
booleanas).
Numéricas: específicas para armazenar 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.
Carácter (caracteres individuais): Específicas para armazenar
um carácter. Os caracteres disponíveis são geralmente os
caracteres da Tabela ASCII. Este tipo de dado pode assumir
qualquer carácter da referida Tabela ASCII, mas apenas um de
cada vez.
Cadeias de caracteres (strings ou cadeias alfanuméricas):
Específicas para armazenar uma cadeia de caracteres
alfanuméricos (adequados ao manuseamento de texto). No
Pascal, o carácter apóstrofo (‘) (também chamado “plica”)
delimita uma cadeia de caracteres (Ex: ‘Bom trabalho!’ ).
Lógicas ou booleanas: Armazenam somente dados lógicos que
podem ser Verdadeiro (“True”) ou Falso (“False”).
Exemplos em Pseudocódigo
 Produto * Quantidade
 Fim: lógico
 Nome: caracteres[20]
 Preço  23,5
 Casar  Verdadeiro
 Saltar  1
 Op: carácter
 Idade: inteiro
 Média, Nota1, Nota2: reais
 Total
Operadores
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, subtracção, multiplicação e divisão, podem
utilizar também o operador para exponenciação.
Alguns símbolos para os operadores aritméticos são:
+
Adição
-
Subtracção
/
Divisão
Mod
div
Resto da divisão (Resto)
Divisão inteira (Quociente)
*
multiplicação
^
potenciação
Operadores de comparação
ou 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:
=
<>
Igual a
Diferente de
>=
Maior que
Menor que
Maior ou igual a
<=
Menor ou igual a
>
<
Operadores lógicos ou
booleanos

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:
OU
E
NÃO
NÃO OU
OR
AND
NOT
XOR
a) Operador AND:
TRUE AND TRUE
=> TRUE
TRUE AND FALSE => FALSE
FALSE AND TRUE => FALSE
FALSE AND FALSE
=> FALSE
b) Operador OR:
TRUE OR TRUE
TRUE OR FALSE
FALSE OR TRUE
FALSE OR FALSE
=> TRUE
=> TRUE
=> TRUE
=> FALSE
c) Operador NOT:
NOT TRUE
NOT FALSE
=> FALSE
=> TRUE
d) Operador XOR:
TRUE XOR TRUE
TRUE XOR FALSE
FALSE XOR TRUE
FALSE XOR FALSE
=> FALSE
=> TRUE
=> TRUE
=> FALSE
Instruções Básicas

Comando de escrita:



Comado de leitura:



Escrever(“Paula”)
Escrever(“A minha idade é: “, IDADE)
Ler(NOME)
Ler(IDADE, NOME)
Instruções de atribuição




A  VALOR
NUM  3
A3+B/2
CIDADE  “Lisboa”
Download