curso bÁsico de programaÇÃo aula 2 - inf.unioeste.br · revisão da aula anterior 1. hardware e...
TRANSCRIPT
CURSO BÁSICO DE
PROGRAMAÇÃO –
AULA 2 Revisão
Variáveis
Estrutura de um algoritmo
Estruturação de operações
Ferramenta Portugol Studio
Revisão da aula anterior
1. Hardware e Software Básico/Aplicativo.
2. Sistemas Operacionais
3. O que é Programação?
4. Linguagens de Programação
5. Paradigmas da Programação
6. Compiladores e Interpretadores
7. Proposições, Conectores e Tabelas Verdade
Revisão da aula anterior
P Q ¬(P v Q) ^ P → Q
V V
V F
F V
F F
Revisão da aula anterior
P Q P v Q ¬(P v Q) ¬(P v Q) ^ P ¬(P v Q) ^ P → Q
V V V F F T
V F V F F T
F V V F F T
F F F V F T
Revisão da aula anterior
1. O que é um algoritmo?
2. Quais os passos para fazer um sanduíche?
3. O que é um desvio em um algoritmo?
Revisão da aula anterior
1. Pegar um pão.
2. Pegar uma faca
3. Abri-lo com a faca.
4. Passar maionese
5. Colocar uma fatia de mussarela.
6. Se tiver presunto, colocar uma fatia de presunto.
7. Senão se tiver peito de peru, colocar uma fatia de peito de peru e pular para o PASSO 9.
8. Senão cancelar sanduíche e fazer miojo. FIM
9. Colocar o sanduíche na sanduicheira.
10. Esperar 3 minutos.
11. Desligar a sanduicheira.
12. Retirar o sanduiche e servir. FIM
• Mas o computador entende essas sequências de
passos?
• Para o computador, o que significa “digitar sua senha” ou
“ligar o fogão”?
• Computacionalmente, os algoritmos devem seguir um
conjunto de instruções pré-determinadas.
• Essas instruções são a “língua” que o computador fala.
Ou seja – são uma linguagem de programação.
Revisão da aula anterior
Variáveis
• Trata-se de algo instável, inconstante e sujeito a alterações.
• Uma variável é um símbolo que representa um elemento não
fixo de determinado conjunto.
• Ex : x é uma variável do Universo {..., -12, -9, -6, -3, 0, 3, 6, 9, 12, ...}
• Logo x, é uma variável que pode assumir qualquer valor múltiplo de 3.
• Variáveis estão presentes em fórmulas (equações), preposições
(lógica), como também em algoritmos.
Variáveis
• Variáveis, em algoritmos, representam de forma abstrata uma
porção da memória, a qual serve para armazenar quaisquer
informações em tempo de execução.
• Variáveis podem assumir diversos valores durante uma
mesma execução.
• Variáveis possuem três atributos: • Nome: Identificador da variável
• Tipo de dado: Refere-se ao universo em que a variável está contida
• Informação: Refere-se ao valor atribuído a ela e portanto armazenado por ela.
Nomes de Variáveis
• Ao trabalhar com variáveis, devemos nomeá-las de forma a
identificá-las de forma única, e poder resgatá-las quando
necessário.
• O nome deve ser intuitivo, de forma a identificar o que o valor
contido nela representa ao programa.
• Para nomear uma variável é necessário seguir regras:
• Deve iniciar com letras ou _.
• Não é permitido uso de caracteres especiais (exceto _ ).
• Não pode ser uma palavra reservada da linguagem.
• Non-case-sensitive.
Nomes de Variáveis
Válidos Inválidos
lucro &lucro
_lucro lucro#
lucro_mensal 1lucro
lucro_ escreva, leia
lucro1 inicio, fimalgoritmo
Tipos de Variáveis
• Variáveis devem estar contidas em um conjunto definido de
valores.
• Para matemática uma variável pode estar contida em diversos
conjuntos:
N – Naturais
Z – Inteiros
Q – Racionais
I – Irracionais
R – Reais
C - Complexos
Tipos de Variáveis
• Nas linguagem em geral apenas representa-se inteiros e reais
para tipos numéricos.
• Além destes, também é possível representar valores literais e
lógicos.
• Exemplos: Tipo Valores
Inteiro {..., -3, -2, -1, 0, 1, 2, 3, ...}
Real {..., -1, ..., -0.5, ..., 0, ..., 0.5, ..., 1, ...}
Literal “João”, “Pedro”, “Francisco”, ”06/07/2013”
Lógico Verdadeiro ou Falso.
Caractere ‘a’,’b’,’D’,’1’,’&’...
Declaração de Variáveis
• Para se utilizar as variáveis, antes é necessária a declaração
das mesmas.
• Declarar: definir o tipo de variável e seu nome.
• Exemplos:
• inteiro numero_conta
• real lucro_mensal
• literal nome_cliente
• logico devendo
• int numero_conta;
• float lucro_mensal;
• char nome_cliente[50];
• boolean devendo;
Declaração de Variáveis
• Pode se declarar mais de uma variável por vez:
• numero_conta_corrente, numero_conta_poupanca : inteiro
• saldo, lucro_mensal : real
• int numero_conta_corrente,numero_conta_poupanca;
• float saldo, lucro_mensal;
Exercícios
1) Indique com um X quais dos dados seguintes são do tipo Inteiro.
• a) ( ) 1000
• b) ( ) “0”
• c) ( ) “-900”
• d) ( ) Verdadeiro
• e) ( ) -456
• f) ( ) 34
• g) ( ) “Casa 8”
• h) ( ) 0
• i) ( ) Falso
• j) ( ) -1,56
2) Indique com um X quais dos dados seguintes são do tipo Real.
• a) ( ) -678
• b) ( ) “0,97”
• c) ( ) “-9,12”
• d) ( ) Verdadeiro
• e) ( ) -456
• f) ( ) -99,8
• g) ( ) “Cinco”
• h) ( ) 45,8976
• i) ( ) Falso
• j) ( ) -1,56
Exercícios
3) Indique com um X os dados do tipo Literal.
• a) ( ) 678
• b) ( ) “0,87”
• c) ( ) “-9,12”
• d) ( ) “Verdadeiro”
• e) ( ) -456
• f)( ) -99,8
• g) ( ) “Cinco”
• h) ( ) 45,8976
• i) ( ) Falso
• j) ( ) 1,56
Exercícios
4) Indique com um X os dados do tipo Lógico
• a) ( ) -678
• b) ( ) “0,87”
• c) ( ) “-9,12”
• d) ( ) Verdadeiro
• e) ( ) -456
• f) ( ) V
• g) ( ) “Cinco”
• h) ( ) Falso
• i) ( ) F
• j) ( ) True
• k) ( ) -1,56
Exercícios
5) Assinale com um X os nomes válidos para uma variável.
• a) ( ) Endereço
• b) ( ) 21Brasil
• c) ( ) Fone$Com
• d) ( ) NomeUsuário
• e) ( ) Nome_Usuário
• f) ( ) Nome*Usuário
• g) ( ) End*A-6
• h) ( ) Cidade3
• i) ( ) Tes_Te
• j) ( ) Nome_Pess_Cont
• k) ( ) 2Aluno
Exercícios
Estrutura de um Algoritmo
• Cabeçalho
• Informações a respeito do código, elas aparecem como linhas
comentadas no inicio do código antes do conjunto de instruções.
• Em Portugol ela pode aparecer no início do código como linhas
comentadas, “//”, onde cada linha contem uma informação.
• Exemplo:
// Função : bhaskara
// Autor : Jhon
// Data : 02/07/2013
Estrutura de um Algoritmo
• Declaração de variáveis
• O local de declaração de variáveis varia entre as linguagens de
programação.
• Em Portugol devem ser declaradas na seção de variáveis, na
primeira linha logo após a palavra chave var.
• Exemplo:
real K
logico W
inteiro Z
caracter y
cadeia S
real A, B, C
Estrutura de um Algoritmo
• Corpo do Programa
• O corpo do programa é constituído pelos métodos e funções que
serão utilizados para resolver um determinado problema.
• Desenvolvimento Top-Down: consiste em projetar os algoritmos
começando com uma descrição do algoritmo em termos gerais e
através de refinamentos sucessivos progredindo até instruções de
nível mais básico.
• Exemplos de métodos que compõem o corpo de um programa:
• Comandos de entrada de dados
• Comandos de saída de dados
• Cadeias “Se” e “Senão”
• Laços de repetição
Estrutura de um Algoritmo
• Identação: Organização das linhas do código ressaltando a
hierarquia de blocos. É muito importante ter um código identado
pois melhora a sua legibilidade.
• Escopo: faixa de instrução na qual uma determinada variável é
visível. Uma variável visível é aquela que pode ser referenciada
naquela instrução.
• Blocos: seção de código que tem suas próprias variáveis locais
cujo escopo é reduzido. Linguagens como Python e Raskell usam
a identação para identificar os blocos.
Estrutura de um Algoritmo
Exemplo de código identado Exemplo de código não identado
Exemplo
• Calculando a área de um retângulo:
• Variáveis:
• inteiro aresta1, aresta2, area
• Comandos:
• Peça aresta1 ao usuário
• Peça aresta2 ao usuário
• Armazenar em area o resultado de aresta1 * aresta2
• Imprima area
Exercícios
6) Estruture os algoritmos conforme o exemplo
anterior:
• a) Calculando a área de um retângulo com entrada de
coordenadas.
• b) Calculando a área de um círculo.
• c) Calculando o volume de uma caixa retangular.
• Entrada por medidas de lados
• Entrada por coordenadas
(X1,Y1)
(X2,Y2)
(X3,Y3)
(X4,Y4)
Operadores lógicos • Lógica
• “o estudo dos processos válidos que atingem a verdade”
• O valor retornado é apenas VERDADEIRO ou FALSO
OPERADOR OPERAÇÃO TIPO RESULTANTE
== igual lógico
<> Ou != diferente lógico
< menor que lógico
> maior que lógico
<= menor ou igual lógico
>= maior ou igual lógico
Exemplos • Considere a expressão Idade < 18
• Considere a expressão Saldo >= 1250.
Valor Idade Resultado
31 FALSO
3 VERDADEIRO
15 VERDADEIRO
18 FALSO
Valor Saldo Resultado
1580 VERDADEIRO
1100 FALSO
1251 VERDADEIRO
1250 VERDADEIRO
V 18
F
F 1250
V
Exemplos • Considere a expressão Idade = 18
• Considere a expressão Saldo != 1250.
Valor Idade Resultado
31 FALSO
3 FALSO
15 FALSO
18 VERDADEIRO
Valor Idade Resultado
1580 VERDADEIRO
1100 VERDADEIRO
1251 VERDADEIRO
1250 FALSO
V
18 F
V 1250
V
F
F
Observações • Comparação entre valores reais tem o mesmo formato da
relação entre inteiros.
• Comparações
entre valores
de caracteres
e cadeias
seguem a
tabela ASCII
Conectores lógicos Símbolo Significado
AND, &&, E E
||, OR, OU OU
!,¬ negação
P Q P && Q
V V V
V F F
F V F
F F F
P Q P || Q
V V V
V F V
F V V
F F F
P ¬P
V F
F V
Conector E Conector OU Conector Não
Exemplos
• A e B
• Esta operação só retornará VERDADEIRO, somente se A e B
forem verdadeiro
• A ou B
• Esta operação só retornará VERDADEIRO, somente se A ou B
forem verdadeiro.
A B P || Q
V V V
V F V
F V V
F F F
Conector OU
P Q P && Q
V V V
V F F
F V F
F F F
Conector E
Conectores Lógicos
• Podemos juntar vários operadores para montar uma
expressão lógica complexa
• A && B || C && !D
• Ou
• (A &&B) || (C && !D)
• Ou
• A && (B || C) && !D
• Cada uma destas expressões pode ser diferente
• Somente fazendo tabela verdade para ter certeza
Precedência de operadores
• Quando usamos vários conectores lógicos, eles tem uma
ordem de resolução
1. O que está dentro dos parênteses, priorizando os parênteses
mais internos
2. Operador NOT
3. Operador AND
4. Operador OR
• Exemplo
• (A>2) AND NOT (A>20) equivale a
(A>2) AND (NOT (A>20))
• (X=0) OR (X>=2) AND (X<=5), equivale a
(X=0) OR ((X>=2) AND (X<=5))
Precedência de Operadores
• Operações com precedência igual normalmente
são executadas da esquerda para a direita,
embora o compilador possa, às vezes, rearranjar
os operadores para otimização de código.
• Na dúvida, é aconselhável usar parênteses para
garantir a prioridade desejada
Operadores aritméticos
OPERADOR OPERAÇÃO
+ adição
- subtração
* multiplicação
/ divisão
% resto da divisão inteira
Exemplos
• 1+4 = 5
• 5-3 = 2
• -5 + 9 = 4
• 5 * 5 = 25
• 20 / 2 = 10
• 20.0 / 2 = 10.0
• 2 / 4.0 = 0.5
• 2.0 / 4 = 0.5
• 2 / 4 = 0 • Não é possível dividir 2 por 4
inteiramente, então a divisão fica com quociente zero e resto 2!
• 2 % 4 = 2
• 3 % 4 = 3
• 4 % 4 = 0
• 5 % 4 = 1
Precedência de Operadores
• Prioridade 1:* / %
• Prioridade 2: + -
• Parênteses são prioritários sempre!
• A + B – C * D / E
• (A+B) – C * D /E
• ((A+B) – C) * (D/E)
• A+B – (C*D)/E
• Operações com precedência igual normalmente são executadas da esquerda para a direita, embora o compilador possa, às vezes, rearranjar os operadores para otimização de código.
• Na dúvida, é aconselhável usar parênteses para garantir a prioridade desejada
7) Indicar o resultado e o tipo do resultado de cada uma
das expressões onde A = 5, B = 2, C = 8 e D = 1,5.
a) 5 + 4 – 2
b) 10 – 3,4
c) A < B
d) 4 + B – D
e) 5/2
f) A * 2,4
g) A > B
h) B + C = B * A
Exercícios
Exercícios
8) Sendo as variáveis A = 3, B = 5, C = 1 e D = 2, construa
uma expressão que obtenha:
a) T = 8
b) T = 27
e) T = 50,5
f) T = 12
g) T = 13,5
h) T = 9
i) T = 21
Exercícios
9)Analise as expressões e responda V ou F sendo A = 1, B =
2, C = 3, D = 4, E = 5 e G = -4:
a) ( ) A * B + C = D – E
b) ( ) C * D + E = E * B + C + D
c) ( ) A + E + D – C > C * B – E + C
Ferramenta Portugol Studio
O que é o Portugol
Studio?
Ferramenta Portugol Studio
Tipos de Variáveis no Portugol Studio
• Inteiro: define variáveis numéricas do tipo inteiro, ou seja, sem
casas decimais.
• Real: define variáveis numéricas do tipo real, ou seja, com
casas decimais.
• Caracter: declara um caracter apenas;
• Cadeia: declara uma variável contendo uma cadeia de
caracteres
• Lógico: define variáveis do tipo booleano, ou seja, com valor
VERDADEIRO ou FALSO.
Declarando Variáveis do Portugol studio
• <tipo-de-dado> <lista-de-variáveis>
Exemplo:
Casos de Erro na Declaração
Atribuindo Valores a Variáveis no Portugol
Studio
• <variavel> = <valor>
Exemplo:
Casos de Erro na Atribuição
Operações Básicas do Portugol Studio
Operadores aritméticos
+, - Operadores Unários, isto é são aplicados a um único operando. São
os operadores de maior precedência. Exemplos: -3 e +x.
+, -, *, / Operadores aritméticos tradicionais de adição, subtração,
multiplicação e divisão. Por convenção * e / tem precedência sobre + e
-.
% Operador de módulo (isto é, resto da divisão inteira). Tem a mesma
precedência da divisão comum.
Operações Básicas do Portugol Studio
Operadores relacionais
=, <, >, <=, >=, != Respectivamente igual, menor que, maior que, menor ou igual
a, maior ou igual a, diferente de. São utilizados em expressões
lógicas para se testar valores de um mesmo tipo.
Operadores Lógicos
nao Operador unário de negação. nao verdadeiro = falso e nao falso
= verdadeiro. Tem a maior precedência entre os operadores
lógicos.
ou Operador que resulta verdadeiro se um dos seus operandos
lógicos for verdadeiro.
e Operador que resulta verdadeiro somente se os seus dois
operandos lógicos forem verdadeiros.
Exemplos:
Casos de Erro nas Operações
Comando de Saída no Portugol Studio
Exemplo:
• escreva(<lista-de-expressões>)
Casos de Erro nas Operação de Saída
Comando de Entrada no Portugol Studio
Exemplo:
• leia (<lista-de-variáveis>)
Casos de Erro de Entrada no Portugol
Studio
E se o usuário não for
cuidadoso com o tipo da
entrada que fornece?
Exercícios
10) Fácil: Peça para que o usuário forneça seu nome, e então
imprima-o na tela.
11) Médio: Peça para que o usuário forneça seu nome, idade,
peso e CPF, e então imprima-os na mesma linha, porém com
separação de 5 espaços entre cada um. Existe mais de uma
forma de resolver este problema?
12) Semi-Difícil: Peça para que o usuário fornaça seu peso e
altura, e então imprima seu IMC na tela. Lembre-se: IMC =
(peso)/(altura²).
Exercícios
• 13) Fazer um algoritmo para informar a área de um
triângulo
• 14) Dadas 3 notas, fazer um algoritmo para calcular a
média aritmética
• 15) Fazer um algoritmo para calcular o salário líquido de
um empregado, onde: • SB = Salário Bruto DE = descontos AD = adicionais SL = salário líquido
• 16) Dadas 2 notas, mostrar na tela: Soma e a média
• 17) Fazer um algoritmo que dado um número qualquer
obtenha a soma do número com seus 3 consecutivos
• 18) Dadas 2 variáveis, imprimi-las com os valores
invertidos.
Exercícios
19) Elabore um código que Leia do dispositivo de
entrada um valor inteiro qualquer, obtenha a raiz
desse numero e escreva no dispositivo de saída
com a precisão de duas casas decimais.
20) Elabore um código que implemente a função
de bhaskara, leia três valores inteiros qualquer de
entrada, e de saída escreva os resultados com
precisão de 3 casas decimais.
FIM Dúvidas?
Alexandre, Ayrton, Guilherme e João Paulo.
[email protected], [email protected] , [email protected], [email protected]