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

Propaganda
Sistemas Operacionais
e Introdução à
Programação
Introdução à Lógica de Programação
1
Lógica de Programação
Estruturas de dados
●
●
●
Representação computacional das informações do
problema ser resolvido
Informações podem ser de diferentes tipos, então
implicam diferentes representações
Ex: Identifique os dados de entrada e saída neste
algoritmo para calcular a aceleração de um corpo:
1. Leia para variável M a massa do corpo em kg
2. Leia para variável F força a ser aplicada ao corpo
3. Calcule aceleração: a = F / M – ac*Mg
4. Mostre o valor da variável a na tela
2
Lógica de Programação
Tipos primitivos de dados
●
São os tipos de informação que o computador manipula:
●
●
Numéricos:
● Inteiros: um subconjunto dos números inteiros,
podendo ser sinalizados ou não (ex: 4, -5, 1034, 0)
● Reais: um subconjunto dos números reais, com
determinada precisão (ex: 1.34, 2.7828)
Não-numéricos:
● Alfanuméricos: sequências de letras, algarismos
e símbolos (ex: “ABCDEF”, “FX90”, “R$ 10,00”)
● Booleanos: valores que representam verdadeiro
ou falso (ex: TRUE, FALSE)
3
Lógica de Programação
Constantes e variáveis
●
Informações podem estar guardadas em constantes
ou variáveis
● Constantes: valores que não mudam ao longo do
tempo
● Variáveis: guardam valores que podem mudar
● Conteúdo: valor da variável
● Identificador: o nome da variável
● Do ponto de vista computacional, uma variável é
uma área de memória RAM
4
Lógica de Programação
Constantes e variáveis
●
Ex: Algoritmo para calcular a aceleração de um corpo:
1. Leia para variável M a massa do corpo em kg
2. Leia para variável F força a ser aplicada ao corpo
3. Calcule aceleração: a = F / M – ac*Mg
4 Mostre o valor da variável a na tela
constantes
F: variável que representa a força aplicada
M: variável que representa a massa do corpo
a: variável que representa a aceleração resultante
ac: constante que representa o atrito cinético
g: constante que representa a aceleração gravitacional
5
Lógica de Programação
Constantes e variáveis
●
Ex: Algoritmo para formatar o nome de uma pessoa:
1. Leia para variável nome o primeiro nome de uma
pessoa
2. Leia para variável sobrenome seu sobrenome
3. Faça variável NomeCompleto = nome + “ “
sobrenome
4. Mostre o valor da variável NomeCompleto na tela
Variáveis: nome, sobrenome, NomeCompleto
Constantes: “ “
Obs: todas variáveis e constantes são alfanuméricas
6
Lógica de Programação
Constantes e variáveis
●
●
O identificador é o nome de um local onde se podem
guardar valores de determinado tipo de dados
A definição de identificadores possui regras (sendo
algumas de bom senso):
● Devem iniciar com caractere alfabético
● Segundo caractere em diante pode ser numérico
● Pode-se usar símbolo “_” como parte do
identificador
● Devem ajudar a lembrar do que se trata a
informação guardada (i.e: mnemônico)
● Ex: nome, sobrenome, a, F, lista, ...
7
Lógica de Programação
Declaração de variáveis
●
As variáveis necessárias em um algoritmo devem ser
previamente declaradas
Assim se reserva memória para guardar seus
conteúdos
A declaração inclui o tipo de dados da variável e seu
identificador, na forma:
Tipo variável1, variável2, ...;
Exemplos:
real x, y; // coordenadas de um ponto
texto Nome;
inteiro Dia, mes, ano;
logico Sucesso; /* verificação do nome bem
sucedida */
●
●
●
8
Lógica de Programação
Declaração de variáveis
●
Ao serem declaradas as variáveis não estão inicializadas
Quer dizer, não possuem valor inicial
A declaração ocorre antes das ações do algoritmo
Os comentários representam qualquer explicação
inserida no algoritmo, para ajudar seu entendimento
● Comentários são precedidos por //
● ... ou delimitados por /* e */ (neste caso, podem
ocupar mais de uma linha)
●
●
●
9
Lógica de Programação
Operações básicas: atribuição
●
Atribuir ou associar um valor a uma variável
● Sintaxe genérica: identificador ← expressão;
● Expressão depende do tipo da variável:
● Numéricas: expressão pode conter constantes,
variáveis numéricas, expressões aritméticas,
funções matemáticas
● Lógicas: expressão deve resultar em Verdadeiro ou
Falso
● Texto: expressão deve resultar em um texto
● Exemplos:
x ← 10 // variável x é do tipo Inteiro
sucesso ← (x < 20) E (y > 10); // sucesso é do tipo
10
Lógica de Programação
Operações básicas: operadores usados em
expressões
●
Aritméticos (somente com variáveis numéricas):
+, - Adição e subtração (unários)
+, - Adição e subtração (binários)
*
Multiplicação
/
Divisão
div Divisão inteira ou truncada
mod Resto da divisão inteira
11
Lógica de Programação
Operações básicas: operadores usados em
expressões
●
Relacionais (usados para comparações):
●
●
●
Somente com dados numéricos: >, >=, <, <=
Com quaisquer tipos de dados: = (igual), =/=
(diferente)
Lógicos ou Booleanos (usados para combinar
condições):
● E (conjunção). Ex: (x > 0) E (x < 10)
● OU (disjunção). Ex: (idade < 5) OU (idade >= 65)
● NOT (negação). Ex: NOT (opcao = “”)
12
Lógica de Programação
Descrição do algoritmo em pseudo-linguagem:
INICIO
Declaração de variáveis e constantes
Inicialização de variáveis e constantes
Comandos de entrada de dados
Processamento / cálculo
Comandos de saída de dados
FIM
13
Lógica de Programação
Descrição do algoritmo em pseudo-linguagem:
Ex: cálculo de média
INICIO
Real P1, P2, P3, P4, M;
Ler P1
Ler P2
Ler P3
Ler P4
M ← (P1 + P2 + P3 + P4) / 4
Escrever “Media final = “, M
FIM
14
Lógica de Programação
Exercícios:
1) Faça um algoritmo para ler dados pessoais
(nome, ano de nascimento, endereço, sexo), e
mostre esses dados da seguinte forma:
Nome: nome completo
Nascimento: ano de nascimento
Idade: idade
Sexo: M ou F
Maior de idade: Verdadeiro ou Falso
15
Lógica de Programação
Exercícios:
2) Faça um algoritmo para calcular e mostrar o
perímetro de um polígono qualquer.
3) Faça um algoritmo para calcular e mostrar a área de
um polígono qualquer.
4) Faça um algoritmo para mostrar de forma separada o
valor inteiro de um número real e sua parte fracionária.
16
Lógica de Programação
Exercícios:
5) Faça um algoritmo para calcular a resistência
equivalente para um circuito com duas resistências em
paralelo.
6) Faça um algoritmo para calcular o desvio padrão de
um conjunto de 8 valores reais.
7) Em um cinema as cadeiras são numeradas
sequencialmente, começando no canto esquerdo
próximo à tela. Essas cadeiras estão organizadas em 40
fileiras de 20 cadeiras. Faça um algoritmo que informe
que que fileira se encontre determinada cadeira, e sua
posiçõa em relação ao início da fileira.
17
Lógica de Programação
Estruturas de controle:
Condicional: faz a escolha de ações a serem
executadas, dependendo de condições definidas.
●
●
●
Condições são dadas por expressões booleanas,
que resultam em Verdadeiro ou Falso.
Sintaxe geral:
Se condição entao Bloco de comandos
FimSe
ou
Se condição entao Bloco de comandos
Senao
Bloco de comandos
FimSe
18
Lógica de Programação
Representação em fluxograma para se ...
então … senão
Não
Sentenças
Condição
Sim
Sentenças
19
Lógica de Programação
Estruturas de controle: exemplo
●
Determinar se um número é par ou ímpar:
INICIO
Inteiro numero
Escrever “Digite um numero: “
Ler numero
Se (numero % 2 = 0) entao
Escrever “Numero “, numero, “ é par”
Senao
Escrever “Numero “, numero, “ é ímpar”
FimSe
FIM
20
Lógica de Programação
Estruturas de controle: exemplo
Determinar se um número é par ou ímpar:
(fluxograma)
●
21
Lógica de Programação
Exercícios:
1) Faça um algoritmo para fazer a divisão de dois
números reais. Antes de dividi-los deve ser feito um teste
de validade. Caso não seja possível dividi-los, deve ser
mostrada uma mensagem de erro. Se for possível, devese mostrar o resultado da divisão.
2) Faça um algoritmo para fazer a divisão de dois
números inteiros. No entanto, antes de efetuar a divisão
deve-se verificar se é possível fazer a divisão sem resto,
gerando-se uma mensagem de erro caso contrário.
22
Lógica de Programação
Exercícios:
3) Tendo como dados de entrada o sexo e a altura de
uma pessoa, faça um algoritmo que calcule o peso ideal
usando estas fórmulas (h = altura):
Homens: 72.7 * h – 58
Mulheres: 62.1 * h - 44.7
23
Lógica de Programação
Exercícios:
4) Traduza o fluxograma ao lado para
Portugol. O que faz esse algoritmo ?
24
Lógica de Programação
Condições: expressões que resultam em
Verdadeiro ou Falso
Condições simples: apenas uma comparação. Ex:
Idade < 18 // Verdadeiro se pessoa for menor de
idade
Sexo = “M” // Verdadeiro se pessoa for do sexo
feminino
Condições compostas: combinam condições usando
operadores lógicos (NAO, E, OU). Ex:
Idade > 18 E sexo = “F”
// mulheres maiores
de idade
X > 0 E x < 10
// valor da variável x está
entre 0 e 10
25
Lógica de Programação
Condições: exercício
1) Um edifício possui dois elevadores. Quando alguém chama
um elevador, o sistema de controle seleciona o mais
adequado. As regras de seleção para o melhor elevador são as
seguintes (em ordem de preferência):
i) Aquele que estiver indo na mesma direção do chamado, e
indo para o andar de onde ele se originou.
ii) Aquele que estiver parado e mais próximo do andar de onde
veio o chamado.
(continua ...)
26
Lógica de Programação
Cada elevador é descrito pelas variáveis (N é 1 ou 2):
Logico paradoN, subindoN
Inteiro andarN
O chamado é descrito pelas variáveis:
Inteiro chamadoAndar
Logico chamadoSubindo
a) Escreva a condição que expresse a regra de seleção i)
b) Escreva a condição que expresse a regra de seleção ii)
c) Escreva a condição escolha o elevador adequado
27
Lógica de Programação
Estrutura condicional: Escolhe … caso
Mais prática para comparar uma variável (ou expressão) com
múltiplos valores
INICIO
Inteiro opcao
Escrever “Digite uma opcao entre 1 e 3: “
Ler opcao
Escolhe opcao
Caso 1:
escrever “opcao 1”
Caso 2:
escrever “opcao 2”
Caso 3:
escrever “opcao 3”
Defeito:
escrever “opcao desconhecida !”
FimEscolhe
FIM
28
Lógica de Programação
Estrutura condicional: Escolhe … caso
Equivalente a se .. então … senão aninhados:
INICIO
Inteiro opcao
Escrever “Digite uma opcao entre 1 e 3: “
Ler opcao
Se opcao = 1 entao escrever “opcao 1”
Senao
Se opcao = 2 entao escrever “opcao 2”
Senao
Se opcao = 3 entao escrever “opcao 3”
Senao escrever “opcao desconhecida !”
FimSe
FimSe
FimSe
FIM
29
Lógica de Programação
Estrutura condicional: Escolhe … caso
Podem-se especificar múltiplos valores em cada teste:
INICIO
Inteiro opcao
Escrever “Digite uma opcao entre 1 e 10: “
Ler opcao
Escolhe opcao
Caso 1, 3, 5, 7, 9:
escrever “opcao ímpar”
Caso 2, 4, 6, 8, 10:
escrever “opcao par”
Defeito:
escrever “opcao desconhecida !”
FimEscolhe
FIM
30
Lógica de Programação
Exercícios
1) Refaça o programa da calculadora, mas desta vez usando a
estrutura escolhe … caso.
2) Faça um algoritmo que mostre qual o último dia de um
determinado mês informado pelo teclado. Caso seja informado
o mês 2 (fevereiro), seu algoritmo deve identificar se é ano
bissexto (assim o mês tem 29 dias), ou não (mês tem 28 dias).
Obs: anos bissextos são dados pelas regras (segundo o
calendário Gregoriano):
i) De 4 em 4 anos é ano bissexto.
ii) De 100 em 100 anos não é ano bissexto.
iii) De 400 em 400 anos é ano bissexto.
iv) Prevalecem as últimas regras sobre as primeiras.
31
Lógica de Programação
Exercícios
3) A previsão do tempo na costa brasileira pode ser feita de forma
aproximada usando-se um barômetro e um termômetro. Uma
estimativa com boa chance de acerto se baseia na tabela abaixo
(obtida em
http://www.popa.com.br/meteorologia/pressao&temperatura.htm):
Faça um algoritmo que forneça uma estimativa da previsão do
tempo, usando a tabela acima.
32
Download