IF Sertão PE - Floresta 2
Apresentação da Disciplina
●
Professor: Eziom Alves de Oliveira
●Carga horária: 80 aulas.
●
1ª e 2ª aulas da segunda.
Ementa da Disciplina
●
Introdução à lógica de programação.
IF Sertão PE - Floresta 4
Objetivos
●
Geral
–
Fornecer aos alunos, através do estudo dos conceitos
de algoritmos, os conhecimentos básicos necessários
para construção de algoritmos e programas de
computador eficientes para a solução de um dado
problema.
●
Específicos
–
Introduzir o aluno nos conceitos básicos de algoritmos,
tipos de dados, operações primitivas e estruturas de
controle;
Avaliação
● Avaliação escrita.
● Exercício Desafio
IF Sertão PE - Floresta 6
Bibliografia
●
TONET, Bruno. KOLIVER, Cristian. Introdução aos
Softwares utilizados
●
Visualg – Programação em Portugol
●
CodeBlocks – Programação em C
IF Sertão PE - Floresta 8
Algoritmo: Definição
●
“Um algoritmo é uma sequência de instruções finita e
ordenada de forma lógica para a resolução de uma
determinada tarefa ou problema.” (Tonet e Koliver).
●
Algoritmo é a especificação da sequência ordenada
de passos que deve ser seguida para a solução de
um problema ou para a realização de uma tarefa,
garantindo a sua repetibilidade (José Romildo, nota
de aula, 2011).
●
Algoritmo é um conjunto ordenado de passos
IF Sertão PE - Floresta 10
Algoritmo: Definição
●
São exemplos de algoritmos instruções de
montagem, receitas, manuais de uso, etc..
●
um algoritmo é um caminho para a solução
Algoritmos não computacionais
● Um algoritmo não computacional é um algoritmo cuja sequência de passos, a princípio, não pode ser executada por um computador.
IF Sertão PE - Floresta 12
Algoritmos não computacionais
● Algoritmo para fritar um ovo
1) Colocar um ovo na frigideira
2) Esperar o ovo ficar frito
Algoritmos não computacionais
● Algoritmo para fritar um ovo (Versão mais detalhada)
1. Retirar um ovo da geladeira
2. Colocar a frigideira no fogo
3. Colocar óleo
4. Esperar até o óleo ficar quente
5. Quebrar o ovo separando a casca
6. Colocar o conteúdo do ovo na frigideira
7. Esperar um minuto
8. Retirar o ovo da frigideira
IF Sertão PE - Floresta 14
Algoritmos não computacionais
● Para que o algoritmo possa ser útil, é necessário ainda que quem faz uso dele conheça os termos utilizados nas instruções.
● Retirar, Colocar, Esperar, frigideira…
● Língua Portuguesa.
Problema com linguagens naturais
IF Sertão PE - Floresta 16
Português Estruturado
● Para que o algoritmo possa ser executado por uma máquina é importante que as instruções sejam corretas e sem ambiguidades.
● Dessa forma, utilizaremos um linguagem que é bem mais restrita que o Português om significados bem definidos para todos os termos utilizados nas instruções.
Dicas para se tornar um bom programador
●
Conhecer bem a linguagem.
●
Aprender os conceitos de lógica de programação.
●
Muita prática.
●
Em lógica de programação o principal foco é aprender as
ferramentas para resolver problemas computacionais
independente de linguagem.
●
Um problema tem várias formas de ser resolvido. Porém,
IF Sertão PE - Floresta 18
Algoritmos computacionais
● O computador, a princípio, não executa nada.
● É necessário que ele execute um programa.
Linearização de Expressões
● Para a construção de algoritmos que realizam cálculo matemáticos, todas as expressões aritméticas devem ser linearizadas, ou seja, colocadas em linhas, devendo também ser feito o mapeamento dos operadores da aritmética tradicional para os do Português Estruturado.
IF Sertão PE - Floresta 20
Operadores Aritméticos
Operadores Português Estruturado
Adição +
Subtração
-Multiplicação *
Divisão /
Divisão inteira \
Exponenciação ^ ou Exp(<base>,<espoente>)
(retorna um valor real) Módulo (resto da divisão) %
Exercícios
a+b c
2x2−3x(x+1)
2 +
√x+1 x
√
−6x+2y39
IF Sertão PE - Floresta 22
Operadores Relacionais
● Os operadores relacionais realizam a comparação entre dois operandos ou duas expressões e resultam em valores lógicos (VERDADEIRO ou FALSO).
Operadores Relacionais Português Estruturado
Maior >
Menor <
Maior ou igual >= Menor ou igual <=
igual =
Operadores Relacionais
● Os operadores relacionais realizam a comparação entre dois operandos ou duas expressões e resultam em valores lógicos (VERDADEIRO ou FALSO).
● Exemplo:
– 5 > 4: verdadeiro
– 1<>1: falso
IF Sertão PE - Floresta 24
Operadores Lógicos
● Os operadores lógicos atuam sobre expressões e também resultam em valores lógicos VERDADEIRO ou FALSO.
Operadores Lógicos Português Estrutural Significado
AND E Resulta VERDADEIRO se ambas as partes forem verdadeiras.
OR OU Resulta VERDADEIRO se uma das partes é verdadeira.
NOT NAO
Nega uma afirmação, invertendo o seu valor lógico: se for VERDADEIRO torna-se
Operadores Lógicos
● A tabela abaixo – chamada tabela-verdade – mostra os resultados das aplicações dos operadores lógicos conforme os valores dos operadores envolvidos.
IF Sertão PE - Floresta 26
Operadores Lógicos
● A tabela abaixo – chamada tabela-verdade – mostra os resultados das aplicações dos operadores lógicos conforme os valores dos operadores envolvidos.
● De acordo com a necessidade, as expressões podem ser unidas pelos operadores lógicos.
– (2+5>4) e (3<>3) resulta FALSO, pois VERDADEIRO e FALSO
Operadores – Prioridade
● Exemplos:
– (2 + 2)/2 resulta 2 e 2 + 2/2 resulta 3
– (2>3) ou (3<2) e (2<3) //resultado seria Falso
– (2>3) e (3<2) ou (2<3) //resultado seria Verdadeiro
Aritmético Lógico Geral Prioridade
Exponenciação E Aritmético 3 (maior) Multiplicação e divisão OU Relacional 2
IF Sertão PE - Floresta 28
Forma Geral de um Algorítmo
algoritmo
“nome do algoritmo”
var
<declaração de variáveis>
inicio
<lista de comandos>
Palavras Reservadas
●
As palavras que fazem parte da sintaxe da linguagem são
palavras reservadas, ou seja, não podem ser usadas para outro
propósito em um algoritmo que não seja aquele previsto nas
regras de sintaxe. A palavra algoritmo, por exemplo, é uma
palavra reservada. Neste texto, as palavras reservadas sempre
aparecerão em negrito.
Palavras Reservadas do Portugol
IF Sertão PE - Floresta 30
Variáveis
Declaração de variáveis
●
As variáveis são declaradas logo abaixo da
expressão “var”, tendo a seguinte forma:
...
var
<identificador1>,<id2>,<id3>… : <tipo de dados>
...
●
onde <identificador i> é o nome (identificador) de uma
IF Sertão PE - Floresta 32
Nome de identificadores
● Os identificadores das variáveis são usados para referenciá-las
dentro do algoritmo. Tais identificadores devem ser claros e precisos, dando uma idéia do “papel” da variável no algoritmo.
● A identificação ou nomeação de variáveis segue algumas regras:
– nomes de variáveis não podem ser iguais a palavras
reservadas;
– nomes de variáveis devem possuir como primeiro caractere
uma letra ou sublinhado '_' (os outros caracteres podem ser letras, números e sublinhado);
– nomes de variáveis devem ter no máximo 127 caracteres;
– Nomes de variáveis não podem conter espaços em branco;
– na sintaxe do Português Estruturado, não há diferença entre
Nome de identificadores
●
Os identificadores das variáveis são usados para
referenciá-las dentro do algoritmo. Tais identificadores
devem ser claros e precisos, dando uma idéia do “papel”
da variável no algoritmo.
●
A identificação ou nomeação de variáveis segue algumas
regras:
–
Exemplos:
●
Identificadores válidos:
NOME, TELEFONE,
IDADE_FILHO, IdadeFilho, NOTA1, Est_civil
IF Sertão PE - Floresta 34
Tipos de dados
● Uma variável, como o próprio nome sugere, contém valores que variam de acordo com a execução do programa. Uma variável deve possuir um tipo específico. As variáveis em portugol, são divididas em 4 tipos principais:
– Inteiro: Qualquer número pertencente ao conjunto dos números
inteiros (-11,0,34,1000)
– Real ou numérico: qualquer número pertencente ao conjunto
dos números reais. Exemplos: -10, -1.5 , 0 , 2.3 , 4.8
– Literal ou caractere: caracteres alfanuméricos. Exemplo: casa,
Win32, 123, alfa*…
Exercícios
1) Classifique os conteúdo das variáveis abaixo de acordo com seu tipo, assinalando com N os dados numéricos, com L os lógicos, com C os literais.
( ) 0 ( ) “abc” ( ) “Joao” ( ) 5.7 ( )1012
( )Falso ( ) -49 ( )+342 ( ) 659 ( )”Lucas”
( ) “Verdadeiro” ( ) 0.001 ( ) Verdadeiro
2) Assinale com um X os nomes de variáveis válidos.
( ) abc( ) 3abc ( ) a ( ) 123a ( ) –a ( ) acd1 ( ) -_ad
IF Sertão PE - Floresta 36
Operador de atribuição
●
Para “colocar” um valor em uma variável dentro de
um algoritmo, utilizamos o operador de atribuição. O
operador de atribuição é representado por uma seta
(<-) apontando para a esquerda.
●
Exemplo:
–
Peso <- 78.5
–
Nome <- “João da Silva”
Operador de atribuição
●
É importante lembrar que só se pode atribuir às variáveis
valores do mesmo tipo da variável. Assim, o seguinte comando
seria inválido:
VAR
salario: REAL
INICIO
salario <- "Insuficiente"
IF Sertão PE - Floresta 38
Operador de atribuição
●
Deve estar claro, também, que sempre à esquerda do
comando de atribuição deve haver um (e somente um)
identificador de variável. Assim, são incorretos os seguintes
comandos:
–
2
060 <- NumeroConta– NumeroAgencia+digitoControle <- 2345 + 0
Linhas de Comentário
●
Os comentários são declarações não compiladas
que podem conter qualquer informação textual
que você queira adicionar ao código-fonte para
referência e documentação de seu programa.
●
Uma linha
–
São representados por duas barras normais ( // ).
Todo o texto que você digitar após as duas barras
será comentário.
IF Sertão PE - Floresta 40
Comandos de entrada/saida (E/S)
●
Comando de Entrada:
–
escreva()
–
Exibição de informações (texto alfanumérico) para
o usuário em algum dispositivo de saída (monitor).
●
Exemplos:
–
escreva(“Meu primeiro programa”)
Comandos de entrada/saida (E/S)
●
Comando de saida:
–
leia(<identificador>)
–
Exibição de informações (texto alfanumérico) para
o usuário em algum dispositivo de saída (monitor).
●
Exemplos:
–
leia(idade)
IF Sertão PE - Floresta 42
Exercícios
1)
Faça um algoritmo que lê dois valores reais do teclado, calcula e mostra na
tela: soma, subtração, multiplicação e divisão.
2)
Faça um algoritmo que determine o volume de uma caixa dágua cilíndrica,
sendo que o raio e a altura devem ser fornecidos (lidos pelo teclado). V =
PI * Raio^2 * Altura.
3)
Escrever um algoritmo que lê o nome de um funcionário, o número de
horas trabalhadas, o valor que recebe por hora e o número de filhos. Com
estas informações, calcular o salário deste funcionário, sabendo que para
cada filho, o funcionário recebe 3% a mais, calculado sobre o salário bruto.
4)
Escrever um algoritmo que lê o nome de um vendedor, o seu salário fixo, o
total de vendas por ele efetuadas e o percentual que ganha sobre o total de
vendas. Calcular o salário total do vendedor. Escrever o número do
Estrutura sequencial
●
De forma genérica, a construção de um
algoritmo se resume às seguintes
etapas:
a)Entendimento do problema
b)Elaboração da solução algorítmica; e
c)Codificação da solução no Português estruturado.
●
Geralmente a etapa 2 é a mais
complexa,
pois
depende
da
IF Sertão PE - Floresta 44
Estrutura sequencial - Exemplo
●
Solução
1.Algoritmo "Cálculo de Média Aritmética"
2.var
3. A,B,Media : REAL
4.
5. inicio
6. Escreva ("Programa que calcula a média aritmética de dois valores.")
7. Escreva ("Digite um valor : ")
8. Leia (A)
9. Escreva ("Digite outro valor : ")
10. Leia (B)
11. Media <- (A+B)/2
12. Escreva ("A média dos dois valores é : ", Media)
Exercícios
1) Faça um programa que lê o nome de um aluno, as notas de suas três provas e, em seguida, exiba os dados do aluno com a seguinte
formatação:
Nome do aluno: XXXXX XXXXX XXXX Nota da prova 1: xx.xx
Nota da prova 2: xx.xx Nota da prova 3: xx.xx
Média da Disciplina: xx.xx
IF Sertão PE - Floresta 46
Estrutura Condicional
●
"se tiver R$ 10,00 sobrando então irei ao cinema
hoje à noite.”
●
Condição: “tiver R$ 10,00 sobrando”
●
Condição deve ser algo que tenha como resposta
SIM ou NÃO, Verdadeiro ou FALSO.
Estrutura Condicional
se
"tiver R$ 10,00 sobrando"
entao
"irei ao cinema"
IF Sertão PE - Floresta 48
Estrutura Condicional
dinheiro <- 10
se
dinheiro >= 10
entao
escreval(
"irei ao cinema"
)
Comando de condição SE
se
<condição>
entao
<ações (uma ou mais) a serem realizadas
se a condição for verdadeira>
IF Sertão PE - Floresta 50
Comando de condição SE
Agora vamos modificar o algoritmo para que ele exiba a
mensagem “ficar em casa” caso não tiver R$ 10,00 sobrando
.
●
Solução:
se
dinheiro >= 10
entao
escreval(“vou ao cinema”)
fimse
se
dinheiro < 10
entao
escreval(“vou ficar em casa”)
Comando de condição SE
Agora vamos modificar o algoritmo para que ele exiba a
mensagem “ficar em casa” caso não tiver R$ 10,00 sobrando
.
●
Solução:
se
dinheiro >= 10
entao
escreval(“vou ao cinema”)
fimse
se
dinheiro < 10
entao
escreval(“vou ficar em casa”)
IF Sertão PE - Floresta 52
Comando de condição SE
Agora vamos modificar o algoritmo para que ele exiba a
mensagem “ficar em casa” caso não tiver R$ 10,00 sobrando.
●
Solução (melhorada):
se
dinheiro >= 10
entao
escreval(“vou ao cinema”)
senao
escreval(“vou ficar em casa”)
Comando de condição SE-SENAO
Exemplo:
Determinar se um número digitado pelo usuário é negativo ou positivo
Algoritmo “Positivo-Negativo”
VAR
numero : inteiro
inicio
escreval(“Digite um número inteiro: ”)
leia(numero)
se numero >= 0 entao
escreval(“O número digitado é positivo”)
senao
IF Sertão PE - Floresta 54
Exercícios
1)Escreva um algoritmo que lê o salário em uma pessoa e determina se ela é baixa renda ou não. Pessoas de baixa renda são aquelas que ganham menos de 1 salário mínimo por mês (R$ 880,00).
2)Escreva um algoritmo que determina se um número digitado pelo usuário está entre 10 e 20.
3)Escreva um programa que leia um número inteiro. Se o número lido for
positivo, escreva uma mensagem indicando se ele é par ou ímpar. Se o número for negativo, escreva a seguinte mensagem “Este número não é positivo”.