SlideShare uma empresa Scribd logo
1 de 118
Baixar para ler offline
Introdução à Programação
Prof. Mário Sergio da Silva
mariosergio30@gmail.com
Lattes: http://lattes.cnpq.br/1161794053211014
Atualizado em Abr/2016
Este material é uma adaptação didática que utiliza ilustrações e textos retirados de uma seleção criteriosa de publicações
disponíveis livremente na internet, juntamente com conteúdo inédito. (bibliografia e links disponíveis no final dos slides)
Conteúdo
 Um pouco de história
 Introdução à Lógica e Linguagem Binária
 Linguagens de programação e Algoritmos
 Algoritmos: Fases, Métodos e Forma de Representação
 Instruções primitivas de Entrada e Saída
 Memória e Variáveis
 Lógica Condicional, Proposições e Tabela Verdade
 Operadores de Atribuição, Aritméticos, Relacionais e Lógicos
 Estruturas Condicionais (SE simples, SE composto, SE
Encadeado)
 Estruturas de Repetição(PARA, Enquanto, Repita)
3
4Obs: Assistir vídeo “Todo mundo deveria aprender a programar”
5
Uma nova Linguagem
0 (zero)
1 (um)
6
Um pouco de história: programando...
Computador do tamanho de uma sala, programado
por engenheiros elétricos
Unidade mínima de armazenamento:
dois estados possíveis:
acessa ou apagada (1 bit)
Era um “liga e desliga” de Válvulas !!!
7
Um pouco de história: salvando dados...
Mídia: cartão perfurado (1 furo = 1 bit)
Usado até o início da década de 1980
Máquina gravadora de cartões
Programa em fortran
8
Um pouco de história: lendo de dados...
Tabulador de Hollerith,
utilizado no censo
americano de 1890
Os furos do cartão,
permitiam que os pinos da
máquina atravessassem
fazendo passar corrente
elétrica, indicando o estado
ACESSO.
Veja: Evolução do armazenamento digital:
http://escreveassim.com.br/2013/10/11/a-historia-e-evolucao-do-armazenamento-digital/
9
A Linguagem Binária
Linguagem
Binária
10
Falar zero‐um‐nês
deve ser fácil. Não é?
Mas, não é !!!
Como deixar o
zero-um-nês mais fácil
de usar ?
A Linguagem Binária
11
Linguagens de Programação
 Uma linguagem de programação é um método
padronizado para comunicar instruções para um
computador (Dershem, Herbert L.; Jipping, Michael J. – 1995)
Ou simplesmente:
 É um conjunto de algoritmos que podem ser entendidos
por um computador. (Mário Sergio 2016)
??? (veremos a partir da pag 17)
12
Linguagens de Programação
Há várias disponíveis no mercado, tanto comerciais como open-source.
13
Linguagens de Programação
Exemplo de programa na Linguagem Assembly
(Linguagem de montagem)
Qual instrução é mais fácil de ler ?
mov $1, AL (assembly)
10110000 01100001 (binário)
14
Linguagens de Programação
Exemplo de programa na Linguagem Assembly
(Linguagem de montagem)
15
Linguagens de Programação
Exemplo de programa “Alô Mundo”
(Linguagens de alto Nível)
Linguagens de Programação
Processos de Tradução para linguagem de máquina binária)
Obs: Assistir vídeo “a história do computador” 16
17
Algoritmo - Introdução
• É um conjunto de passos que define como uma
tarefa deve ser executada.
• É uma sequência (lógica) finita e bem estruturada
de instruções para a resolução de um
problema.
* Um algoritmo não é necessariamente computacional
18
Algoritmo - Introdução
• É um conjunto de passos que define como uma
tarefa deve ser executada.
• É uma sequência (lógica) finita e bem estruturada
de instruções para a resolução de um
problema.
Exemplo de um problema: COMO FRITAR UM OVO?
Qual é a solução para isso ? Escrever um algoritmo.
* Um algoritmo não é necessariamente computacional
19
Algoritmo - Introdução
Problema: COMO FRITAR UM OVO?
Uma Solução:
* Há inúmeras soluções para um mesmo problema
20
Introdução à Lógica Computacional
21
Introdução à Lógica Computacional
Popularmente costumamos utilizar o termo “lógica” dessas maneiras.
A pesar de não esta errado, tais contextos
são inadequados quando tratamos do termo
“lógica” como ciência.
22
Introdução à Lógica Computacional
Não existe uma definição satisfatória para lógica, tal questão pertence a
filosofia.
No contexto da computação, esta definição parece
ser a mais adequada:
“A Lógica é a área do
conhecimento
que estuda a raciocínio ordenado,
bem estruturado e não
contraditório”
23
Introdução à Lógica Computacional
Por exemplo, a lógica matemática formal auxilia na formação da base racional do senso
comum, pois ela também altera profundamente o raciocínio socialmente aceito.
24
Algoritmos
Fases fundamentais para a construção de um algoritmo:
25
Algoritmos
Fases: Analogia com o ser humano
26
Algoritmos: Representação
Formas de Representação de Algoritmos
o Descrição Narrativa
o Diagrama ou Fluxograma Convencional
o Pseudocódigo
o Linguagem de programação (sintaxe específica de cada linguagem)
27
Algoritmos: Descrição Narrativa
• Não precisa aprender nenhum conceito novo, pois utiliza-se apenas a
linguagem natural (assim, como fizemos no exemplo do algoritmo para fritar um ovo)
• Mas, é preciso se expressar de forma clara e precisa, evitando palavras com
duplo sentido.
Problema: Somar dois números inteiros quaisquer
1. Obter o primeiro número
2. Obter o segundo número
3. Somar os dois números
4. Mostrar o resultado da soma
Descrição Narrativa
28
Algoritmos: Fluxograma
É a representação gráfica de um algoritmo, que é descrito por uma sequência de
símbolos, com notação bem definida.
Problema:
Somar dois números
inteiros quaisquer
Também, conhecida como DECISÃO.
29
Algoritmos: Fluxograma
Outros Exemplos de Fluxogramas
* Quais problemas este algoritmos resolvem ?
30
Algoritmos: Desafio
Problema: COMO FAZER UM BOLO ?
Agora é a sua vez:
Escreva um algoritmo com a solução para este complexo problema:
Represente este algoritmo em Descrição Narrativa e Fluxograma
(utilize papel e caneta)
31
Algoritmos: O problema da compreensão do problema
A engenhara de software trata deste serio problema
presente no processo de construção de um software.
32
Algoritmos: Métodos para construção
o Construir o Algoritmo.
o Testar o Algoritmo (podendo ser com o Teste de Mesa)
1
2
3
4
5
6
33
Algoritmos: Regras para construção
34
Algoritmos: Nível de Detalhamento
o Nível de Abstração Requerido
o Divisão de responsabilidades
O nível de detalhamento do algoritmo vai depender também de:
35
Algoritmos: Pseudocódigo
o A maioria esmagadora das linguagens de programação de
computadores é em língua inglesa. Para facilitar o
aprendizado de lógica de programação foram criadas algumas
pseudolinguagens.
o A sintaxe do algoritmo deve ser bem mais estruturada e
rígida em relação as representações anteriores, precisando
respeitar as palavras chaves do pseudocódigo.
o O Portugol é uma pseudolinguagem de programação em
português estruturado, é uma simbiose de Português, Algol e
Pascal.
Algumas Palavras Chave do Portugol:
Inicio, Fim, Algoritmo, Enquanto, Se, então, Para, Ate, Ate que, Leia,
Escreva, Faça, Repita, FimSe, FimEnquanto, FimSelecione, entre outras que
veremos adiante.
36
Algoritmos: Pseudocódigo
O Pseudocódigo possui a seguinte estrutura básica:
SINTAXE
37
Estruturas de Programação
Portanto, tudo o que precisamos é instruí-lo
em uma sequencia lógica, a:
“O computador uma máquina totalmente idiota, mas muito
rápida e obediente”
o Armazenar valores na memória
o Realizar cálculos
o Tomar decisões
o Realizar repetições
o Comunicar-se com o meio externo
(Interface com o usuário)
• Instruções sequenciais
• Cálculos matemáticos
38
o Armazenar valores na memória
o Realizar cálculos
o Tomar decisões
o Realizar repetições
Estruturas de Programação
Pseudocódigo Portugol
39
Algoritmo: Pseudocódigo
A Instrução primitiva de saída: ESCREVA
40
Algoritmo: Pseudocódigo
A Instrução primitiva de entrada: LEIA
41
Algoritmo: Exercício
Problema: Somar dois números inteiros quaisquer
Escreva o algoritmo da pag 27 em pseudocódigo
Não se preocupe:
A partir das próximas aulas, você irá melhorar
seu pseudocódigo com o uso de Variáveis
Lembrem-se: só se aprende Programação PRATICANDO MUITO !
42
Algoritmo: Problema
Problema: Cálculo de média do aluno
Suponha que o diretor de uma escola lhe contrata para desenvolver
um programa de computador e faz a seguinte requisição:
“Eu quero um programa que no final de cada ano letivo a secretária
da escola digite as notas de cada uma das quatro provas realizadas
durante o ano pelo aluno, e ao final o programa mostre:”
“A média do Aluno FULANO foi X”
Não se preocupe:
A partir das próximas aulas, você irá melhorar
seu pseudocódigo com o uso de Variáveis
Lembrem-se: só se aprende Programação PRATICANDO MUITO !
43
Algoritmo: Exemplo em Pseudocódigo
Problema: Somar dois números inteiros quaisquer, nas 3 representações
44
Algoritmo: Exemplo em uma Linguagem de programação
Problema: Somar dois números inteiros quaisquer, na linguagem pascal
“programar é, basicamente, construir algoritmos para
resolver problemas e codificá-los em alguma linguagem de
programação."
45
Armazenamento de Dados Temporários
Para processar dados, as linguagens de
programação precisam acessar a Memória
do computador, para armazenar esses
dados temporariamente.
Seja um dado proveniente do resultado de
uma operação matemática, ou mesmo um
dados de entrada do usuário.
Isto é feito por meio de VARIÁVEIS.
Ex: leia nome
soma := 10 + 20
Endereço
Físico
Identificador
da Variável
Valor
0x2221 nome “José”
0x2358 soma 30
46
Variáveis
Uma variável, é um espaço da memória do
computador que "reservamos" para guardar
informações (dados).
Como o próprio nome sugere, as variáveis,
podem conter valores diferentes a cada
instante de tempo, ou seja, seu conteúdo
pode variar de acordo com as instruções do
algoritmo.
As variáveis são referenciadas através de um
nome (identificador) criado por você durante
o desenvolvimento do algoritmo.
Exemplos de nomes de variáveis:
produto, idade, nota1, peso, preco,
nome_completo, etc.
O identificadores de variáveis
somente podem conter letras,
números ou o caractere _
(underline), mas não podem
começar com um número.
E também não se pode usar
palavras chaves. (ver pag 35)
47
Variáveis
O conteúdo de uma variável pode ser
alterado, consultado ou apagado quantas
vezes forem necessárias durante o
algoritmo.
Mas, ao alterar o conteúdo da variável, a
informação anterior é perdida, ou seja,
sempre "vale" a última informação
armazenada na variável. Uma variável
armazena 'apenas' um conteúdo de cada
vez.
Além disso as variáveis precisam ter um
tipo.
48
Variáveis: Tipos Primitivos
Var
idade: inteiro
media: real
Os tipos de variáveis e constantes podem ser classificadas em 3
grupos: Numéricas, caracteres, ou lógicas.
Vejamos:
Numéricas Específicas para armazenamento de números, que
posteriormente poderão ser utilizados para cálculos.
Os tipos numéricos são Inteiro ou Real.
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.
Declaração de variáveis
49
Variáveis: Tipos Primitivos
Caracteres (ou Literais): Específicas para armazenamento de
conjunto de caracteres (textos puros) que não devem ser tratados
como números.
Lógicas Armazenam somente dados lógicos que podem ser
Verdadeiro ou Falso.
Var
nome: caractere
nivel_superior: logico
Declaração de variáveis
50
Variáveis: Atribuição
A atribuição é uma notação utilizada para atribuir um valor a uma
variável, ou seja, para armazenar um determinado conteúdo em
uma variável.
o Os valores do tipo caractere devem ser sempre estar entre aspas duplas “ ” .
Ex: produto := “Notebook” nome <- “Jesus”
o Uma observação importante a ser feita em relação a atribuições é que na parte
esquerda (a que vai "receber" algo) não pode haver nada além da variável, ou seja, é
só variável é que "recebe" algum conteúdo.
o O comando leia também pode ser considerado um operador de atribuição do portugol,
ex.: leia nome
dica: Em portugol, tanto <- como := podem ser usados como operador de atribuição
51
Operadores Aritméticos
Os operadores aritméticos estão presentes em todas a
linguagens de programação, eles permitem a escrita de
expressões matemáticas para resolução de cálculos. Os
principais são:
52
Operadores Aritméticos
Nas linguagens de programação e as expressões matemáticas sempre
obedecem às regras matemáticas comuns, ou seja:
o As expressões dentro de parênteses são sempre resolvidas antes das
expressões fora dos parênteses.
o Quando existem vários níveis de parênteses, ou seja, um parêntese
dentro de outro, a solução sempre inicia do parêntese mais interno
até o mais externo (de dentro para fora).
o Quando duas ou mais expressões tiverem a mesma prioridade, a
solução é sempre iniciada da expressão mais à esquerda até a mais
à direita.
Desta forma, veja os seguintes exemplos e os respectivos resultados:
soma := 10 + 20 (valor armazenado: 30)
media := (10 + 20) / 3 (valor armazenado: 10)
media := 10 + 20 / 3 (valor armazenado: 16,6666)
53
Operadores Aritméticos
Outros Operadores aritméticos:
DIV – Divisão inteira
MOD – Resto da Divisão inteira
54
Operadores de Caracteres
O Operador + Concatena (junta) Caracteres
Exemplo:
Leia (nome)
Leia (sobrenome)
nome_completo <- nome + “ “ + sobrenome
Escreva (“Oi “, nome_completo, “ Seja bem Vindo !“)
55
Algoritmo: Pseudocódigo
Problema: Cálculo de média completo em PORTUGOL
SINTAXE
56
Algoritmo: Problema
Problema: Vendas
Suponha que o gerente comercial de uma rede de varejo precisa de
um programa de computador, e lhe faz o seguinte solicitação:
“Eu quero um programa que calcule a o valor total da venda
de um produto vendido, de maneira que a cada venda o vendedor
Informa o nome do produto, a quantidade e o preço unitário,
e ao final o programa mostre:”
Pedido de Venda
Produto: ..........
Qtd: ........
Preço ..........
Valor Total: ..........
Lembrem-se: só se aprende Programação PRATICANDO MUITO !
57
Testando Algoritmos:
58
Testando Algoritmos:
O teste de mesa simula a execução de um algoritmo sem
utilizar o computador, empregando apenas “papel e caneta”
(ou melhor sem utilizar um compilador ou interpretador).
Teste de Mesa
() parênteses - indicam o momento em que a variável é lida.
{} chaves – indicam o momento em que a variável é recebe uma atribuição interna.
( )
( )
{ }
59
Testando Algoritmos:
Teste de Mesa
60
Testando Algoritmos : Exercício
Realize o Teste de Mesa para os seus algoritmos:
- Somar dois números inteiros quaisquer
- Vendas
Lembrem-se: só se aprende Programação PRATICANDO MUITO !
61
Testando Algoritmos:
Exemplo: Calculadora
OBS: Neste teste de mesa, somente estão sendo exibidas as linhas em que há alteração no valor das variáveis.
62
Testando Algoritmos:
Exemplo: Troca Valores
Problema:
OBS: Neste teste de mesa, somente estão sendo exibidas as linhas em que há alteração no valor das variáveis.
63
Testando Algoritmos : Exercício
Qual é a solução do problema da troca dos valores das variáveis a e b
Do problema anterior ?
- Escreva o algoritmo
- Realize o teste Mesa
Lembrem-se: só se aprende Programação PRATICANDO MUITO !
64
TOMANDO O CONTROLE DA SITUAÇÃO
Até agora, apenas aprendemos a escrever algoritmos em uma
estrutura sequencial, de maneira que todas as instruções eram
executadas de forma linear (de cima para baixo), obrigatoriamente
uma após a outra.
Mas,
Já percebemos que na maioria das vezes necessitamos tomar decisões durante o
andamento do algoritmo, para que possamos “pular” algumas instruções
dependendo de algumas condições. Além disso, também precisamos que algumas
instruções sejam executada mais de uma vez (repetidas vezes).
Para isso, iremos utilizar as Estruturas de Controle, são elas:
 Estruturas Condicionais (Decisão)
o Estruturas de Repetição
65
Recordando...
“O computador uma máquina totalmente idiota, mas muito
rápida e obediente”
o Armazenar valores na memória
o Realizar cálculos
o Tomar decisões
o Realizar repetições
o Comunicar-se com o meio externo
(Interface com o usuário)
Estruturas de Controle
essencialmente baseadas
nos conceitos da Lógica
computacional
/proposicional
• Instruções sequenciais
• Cálculos matemáticos
66
Estruturas de Controle em Pseudocódigo Portugol
o Armazenar valores na memória
o Realizar cálculos
o Tomar decisões
o Realizar repetições
67
Lógica Proposicional
Aristóteles (384-322 a.C), o primeiro e grande filósofo a discutir a lógica
como ciência, disse:
“Dizer do que não é que é, e dizer do
que é, que não é, é falso. E, dizer do
que não é, que não é, e dizer do que
é, que é, é verdadeiro”.
- Aristóteles
68
Lógica Proposicional: Proposições
Brasília é a capital do Brasil.
A argentina não é um país pertencente ao continente Africano.
Portugal é uma bela cidade.
A Casa vermelha.
Todos os homens são mortais.
Como você se chama ?
10 é um número par positivo.
7+5 = 10.
3 - 2 ≠ 6
Proposição Lógica: É uma sentença declarativa com sentido completo, expressa de
forma afirmativa ou negativa, a qual se pode atribuir um valor lógico “V” (verdadeiro) ou
“F”(falso). Veremos:
X
As Proposições Lógicas podem ser classificadas em dois tipos:
Simples - São representadas de forma única.
Ex: O cachorro é um mamífero (como vimos anteriormente)
Composta - São formadas por um conjunto de proposições simples.
Duas ou mais proposições simples ligadas por “conectivos lógicos”.
Ex: Brasília é a capital do Brasil E Lima é a capital do Peru.
Recife é um pais OU Olinda é uma cidade
Lógica Proposicional: Conectivos Lógicos
69
Conectivos Lógicos
Atribuir um valor lógico para uma proposição simples é fácil, mas e
para uma proposição composta como faremos isso?
Utilizaremos um recurso chamado de tabelas verdade.
Lógica Proposicional: Tabela Verdade
70
Lógica Proposicional: Tabela Verdade
Ex: temos as proposições A e B
A: Brasília é a capital do Brasil E B: Lima é a capital do Peru.
A: Gato é um Animal E B: Peixe é um mamífero.
A: Recife é um pais OU B: Olinda é uma cidade
A: Recife é uma cidade XOU B: Olinda é uma cidade
NÃO A: O Japão fica na Ásia
71
72
Operadores Relacionais
Operações relacionais servem para realizar comparações
entres valores, variáveis, expressões e constantes:
Comparações válidas
Essas comparações são
resultam em um valor
lógico, e são utilizadas
principalmente nas
estruturas condicionais e
de repetição.
73
Operadores Relacionais
Exemplos:
74
APRENDENDO A TOMAR DECISÕES
75
Estruturas de Controle:
Condicional (Decisão)
As principais estruturas de decisão
são:
“SE”
“Escolha Caso”
(AVALIE/QUANDO)
Também chamadas desvio de fluxo.
76
Estruturas de Controle: Condicional (Decisão)
SE simples
Resulta em um valor
Lógico (V ou F)
Esse BLOCO de instruções
somente será EXECUTADO, SE a
condição for Verdadeira,
podendo conter mais de uma
linha.
SINTAXE
77
Estruturas de Controle: Condicional (Decisão)
SE simples (Se/entao)
Problema1: Solicitar que o usuário digite um número, o programa deverá informar ao
usuário se o número é maior que 10 (dez)
Realize o Teste de Mesa deste algoritmo,
Simulando a entrada de valores diferentes
para o número.
Lembrem-se: só se aprende Programação PRATICANDO MUITO !
EXERCÍCIO
78
Estruturas de Controle: Condicional (Decisão)
SE Composto
Resulta em um valor
Lógico (V ou F)
Esse BLOCO de instruções
somente será EXECUTADO, SE a
condição for Verdadeira,
podendo conter mais de uma
linha.
Esse BLOCO de instruções
somente será EXECUTADO, SE a
condição for Falsa, podendo
conter mais de uma linha.
SINTAXE
79
Estruturas de Controle: Condicional (Decisão)
SE composto (Se/entao/Senao)
Agora você já está pronto para escrever
o algoritmo em portugol deste fluxograma
(visto anteriormente).
Realize o Teste de Mesa deste algoritmo,
Simulando a entrada de valores diferentes
para a idade.
Lembrem-se: só se aprende Programação PRATICANDO MUITO !
EXERCÍCIO
80
Estruturas de Controle: Condicional (Decisão)
SE composto (Se/entao/Senao)
Problema: Informar se a idade do usuário é PAR ou IMPAR
Realize o Teste de Mesa deste algoritmo,
Simulando a entrada de valores diferentes
para a idade.
Lembrem-se: só se aprende Programação PRATICANDO MUITO !
EXERCÍCIO
81
Estruturas de Controle: Condicional (Decisão)
SE composto (encadeado ou aninhado)
A estrutura “Se entao Senao” quando combinada dá origem
ao que chamamos de SE encadeado/aninhado.
É utilizada quando precisamos
fazer várias comparações (testes)
que dependem da comparação
anterior.
82
Estruturas de Controle: Condicional (Decisão)
SE composto (encadeado ou aninhado)
Condição1=F
Condição2=F
Condição3=F
Condição N = F
SINTAXE:
Se <condição 1> então
// bloco de instruções 1
Senão
Se <condição 2> entao
// bloco de instruções 2
Senão
Se <condição 3> entao
// bloco de instruções
Senão
Se <condição N> entao
// bloco de instruções N
Senão
// bloco de instruções N
FimSe
FimSe
FimSe
FimSe
83
Boas Práticas:
// COMENTANDO
Se <condição 1> então
// bloco de instruções 1
Senão
Se <condição 2> entao
// bloco de instruções 2
Senão
Se <condição 3> entao
// bloco de instruções
Senão
Se <condição N> entao
// bloco de instruções N
Senão
/* bloco de instruções N
FimSe
FimSe
FimSe
FimSe
SINTAXE:
/* Comentários são
lembretes, observações ou
explicações do
programador, essas linhas
não são consideradas pelo
compilador
Podem ser utilizados em
qualquer parte do código
*/
// COMENTARIO DE UMA LINHA
/* COMENTARIO DE
MULTIPLAS LINHAS */
84
Boas Práticas:
INDENTANDO
Se <condição 1> então
// bloco de instruções 1
Senão
Se <condição 2> entao
// bloco de instruções 2
Senão
Se <condição 3> entao
// bloco de instruções
Senão
Se <condição N> entao
// bloco de instruções N
Senão
// bloco de instruções N
FimSe
FimSe
FimSe
FimSe
SINTAXE:
Indentação são
espaçamentos ou recuos à
esquerda das instruções.
Deve seguir uma
hierarquia de dependência
em relação às instruções
anteriores.
Garantem melhor clareza e
legibilidade do código
Boas Práticas:
Exemplos de Indentação
SEM INDENTAÇÃO CORRETAMENTE INDENTADO
Boas Práticas:
Exemplos de Indentação
87
Estruturas de Controle: Condicional (Decisão)
SE composto (encadeado ou aninhado)
1- Escreva o algoritmo representado
(em parte) pelo fluxograma ao lado
em (pseudocódigo) Portugol,
fazendo uso da estrutura SE Aninhado.
2-Realize o Teste de Mesa deste
algoritmo, simulando a entrada
de valores diferentes para as
notas que são utilizadas para
cálculo da média.
EXERCÍCIO
Dica: Lembre-se da indentação do seu código
88
Estruturas de Controle: Condicional (Decisão)
SE composto (encadeado ou aninhado)
Problema: Categoria de Atletas
Suponha que um clube esportivo está realizando o cadastro de atletas e precisa classificá-los
de acordo com sua categoria, de maneira que ao final o algoritmo mostre na tela:
“Fulano, você se enquadra na categoria: ...”
As faixa de idade para classificação são:
Infantil (até 9 anos)
Juvenil (de 9 a 15 anos)
Junior (de 16 a 18 anos)
Adulto (maior que 18 anos)
Você dever representar esta algoritmo em:
1- Fluxograma
2- PseudoCódigo
Lembrem-se: só se aprende Programação PRATICANDO MUITO !
89
Operadores Lógicos
Os operadores lógicos permitem que mais de uma condição
seja testada em uma única expressão, ou seja, pode-se
fazer mais de uma comparação (teste) ao mesmo tempo.
Servem para combinar resultados de expressões relacionais, resultando
em um valor final lógico (verdadeiro ou falso)
Lembram-se dos
conectivos lógicos e da
tabela verdade ? Pags 69
Principais operadores lógicos
90
Operadores
Precedência entre os operadores
1º Operadores Aritméticos
2º Operadores Relacionais
3º Operador NÃO
4º Operador E
5º Operador OU
Portanto, sempre tenha atenção em expressões como:
Supomos que a condição para trabalhar no serviço publico seja:
F F V
idade > 18 E passou_concurso = “S” OU parente_deputado = “S”
F F V
idade > 18 E (passou_concurso = “S” OU parente_deputado = “S”)
91
Operadores Lógicos
A)
Se (salario > 180) E (salário < 800) Então
Escreva (“Salário válido para financiamento”)
Senão
Escreva(“Salário fora da faixa permitida para financiamento”)
FimSe
B)
Se (idade < 18) OU (idade > 95) Então
Escreva(“Você não pode fazer carteira de motorista”)
Senão
Escrever (“Você pode possuir carteira de motorista”)
FimSe
C)
Se (idade > = 18) E (idade < = 95) E (aprovado_exame = 'sim') Então
Escreva(“Sua carteira de motorista estará pronta em uma semana”)
Senão
Escreva(“Você não possui idade permitida ou não passou nos testes”)
FimSe
Exemplos com uso da estrutura SE
92
Estruturas de Controle: Condicional (Decisão)
SE composto (com operadores Lógicos)
Problema: Classificação de Triângulos
1) Lados do Triângulo: Solicite ao usuário o comprimento de cada um dos 3 lados de um
triângulo, avise se de fato se trata de um triângulo. E se for o caso, classifique-o conforme as
definições a seguir:
Condição para ser triangulo: A soma de dois dos lados deve ser maior que um terceiro lado
(em outras palavras, o comprimento de cada lado deve ser menor que a soma dos
comprimentos de dois outros).
Classificação:
Equilátero: Três lados Iguais
Isósceles: Dois lados Iguais
Escaleno: Três lados Diferentes
Represente seu algoritmo em:
1- Fluxograma
2- PseudoCódigo
Lembrem-se: só se aprende Programação PRATICANDO MUITO !
93
Estruturas de Controle: Condicional (Decisão)
SE composto (com operadores Lógicos)
Problema: Categoria de Atletas (continuação 1)
Agora suponha que para cadastrar os atletas é necessário realizar login no programa, e caso
o login não seja feito corretamente, o programa deve mostrar:
“O par usuário/senha não confere ...”
Dado que, seu programa somente possui dois usuários cadastrados:
Usuario: admin senha 123
Usuário: tecnico senha abc
Dica 1: utilize constantes para armazenar usuários e senhas.
Dica 2: utilize operadores lógicos (E, OU para checar a senha)
Represente seu algoritmo em:
1- PseudoCódigo
Lembrem-se: só se aprende Programação PRATICANDO MUITO !
94
Estruturas de Controle: Condicional (Decisão)
ESCOLHA CASO (ou múltipla escolha)
(também chamada de AVALIE/QUANDO)
É uma solução elegante quanto se tem várias estruturas de
decisão (SE-ENTÃO-SENÃO) aninhadas.
Ela compara por igualdade o resultado de uma única
expressão, com vários valores escalares para cada “Caso”.
SINTAXE:
95
Estruturas de Controle: Condicional (Decisão)
ESCOLHA CASO
Exemplo:
No caso de Origem = 3, o programa pula diretamente para esta instrução, e depois
vai para o fimescolha.
96
Estruturas de Controle: Condicional (Decisão)
ESCOLHA CASO
Escolha Caso
Escreva o algoritmo representado
no fluxograma ao lado em
(pseudocódigo) Portugol,
fazendo uso da estrutura
Escolha/Caso.
EXERCÍCIO
Lembrem-se: só se aprende Programação
PRATICANDO MUITO !
97
Estruturas de Controle: Condicional (Decisão)
ESCOLHA CASO
Problema: Calculadora
Tomando como base o problema da página: Testando Algoritmos –
Exemplo: Calculadora. Agora é desejável que o usuário também
informe qual das 4 operações ele deseja que a calculadora realize.
Você deverá utilizar a estrutura CASO para determinar qual das
operações deverá ser realizada, e então, mostrar o resultado da
operação.
Lembrem-se: só se aprende Programação PRATICANDO MUITO !
EXERCÍCIO
98
Estruturas de Controle: Repetição
o Nos exemplos e exercícios que vimos até agora,
sempre foi possível resolver os problemas com uma
sequência de instruções que eram executadas
apenas uma vez.
o Uma estrutura de repetição permite que uma
sequência de instruções seja executada um
número vezes pré-determinado várias vezes,
ou até/enquanto uma condição seja verdadeira.
o Ou seja, repete-se um conjunto de instruções sem
que seja necessário escrevê-las várias vezes.
o Essas estruturas de repetição também são
chamadas de Laços ou Loops.
99
Estruturas de Controle: Repetição
Tipos de estruturas de repetição:
o Repetição contada (definida)
• Número pré-determinado (estrutura PARA)
o Repetição condicional (indefinida)
• Com teste lógico no início (estrutura ENQUANTO)
• Com teste lógico no final (estrutura REPITA)
100
Estruturas de Controle: Repetição
para quem não conhece as estruturas de repetição
Exemplo: Problema: Dizer “Alô Mundo” 12 vezes
Sem o uso de uma estrutura de repetição teríamos:
Algoritmo Alô Mundo
Var
Inicio
Escreva (“Alô Mundo”)
Escreva (“Alô Mundo”)
Escreva (“Alô Mundo”)
Escreva (“Alô Mundo”)
Escreva (“Alô Mundo”)
Escreva (“Alô Mundo”)
Escreva (“Alô Mundo”)
Escreva (“Alô Mundo”)
Escreva (“Alô Mundo”)
Escreva (“Alô Mundo”)
Escreva (“Alô Mundo”)
Escreva (“Alô Mundo”)
Fim
101
Estruturas de Controle: Repetição
Para
PARA <variável contadora> DE <valor inicial> ATE <valor final> [PASSO <valor de incremento>] FAÇA
<instruções a serem executadas repetidamente até a <variável contadora> atingir o valor final>
FIM-PARA
SINTAXE:
102
Estruturas de Controle: Repetição
Para
Problema: Dizer “Alô Mundo” 12 vezes
Algoritmo Alô Mundo
Var
nconta: inteiro
Inicio
PARA nconta DE 1 ATE 12 FACA
Escreva (“Alô Mundo”)
......
FIMPARA
Fim
Algoritmo Alô Mundo
Var
Inicio
Escreva (“Alô Mundo”)
Escreva (“Alô Mundo”)
Escreva (“Alô Mundo”)
Escreva (“Alô Mundo”)
Escreva (“Alô Mundo”)
Escreva (“Alô Mundo”)
Escreva (“Alô Mundo”)
Escreva (“Alô Mundo”)
Escreva (“Alô Mundo”)
Escreva (“Alô Mundo”)
Escreva (“Alô Mundo”)
Escreva (“Alô Mundo”)
Fim
Instruções sequenciais
Instruções com repetição
103
Estruturas de Controle: Repetição
Para
1) Exibir na tela a seguintes mensagens:
Número 1
Número 2
.
.
.
Numero 100
2) Agora, o usuário da sua Calculadora (escolha caso) deseja realizar
10 cálculos. Ou seja, depois de executar a operação escolhida pelo
usuário, seu algoritmo não deve simplesmente mostrar o resultado e
chegar ao fim. Ou seja, o programa deve ficar à disposição do
usuário para realizar mais 9 outros cálculos.
3) Exibir cada um dos números pares a partir de 2 até um número
informado pelo usuário. E ao final exibir a soma desses números.
EXERCÍCIO
104
Estruturas de Controle: Repetição
Enquanto
ENQUANTO <expressão booleana> FAÇA
<instruções a serem executadas enquanto a condição lógica (booleana) resultar em VERDADEIRO>
FIM-ENQUANTO
SINTAXE:
A <expressão lógica> é
verificada logo na entrada de
cada repetição.
Portanto, pode ser que as
instruções jamais sejam
executadas
105
Estruturas de Controle:
Repetição
Enquanto
Algoritmo Alô Mundo
Var
nconta: inteiro
Inicio
nconta <- 1
ENQUANTO (nconta <= 12) FACA
Escreva (“Alô Mundo”)
......
nconta <- nconta + 1;
FIMENQUANTO
Fim
Problema: Dizer “Alô Mundo” 12 vezes (agora com ENQUANTO)
Dica: A estrutura PARA seria mais adequada para a implementação deste problema
Inicialização da Variável
de controle
Expressão/Condição
Lógica (booleana)
Instrução que afeta a expressão
lógica:
Neste caso é uma alteração no
valor da variável de controle.
Caso seja omitido/esquecido,
haverá um LOOP INFINITO
106
Estruturas de Controle: Repetição
Enquanto
1) Agora, no seu programa “Categoria de Atletas”, após a seleção cada
atleta, o usuário deve ter a opção de continuar fazendo o cadastro
de vários outros atletas ou finalizar o programa. E ao final do
programa, você deve exibir: “De um total de X atletas selecionados,
o atleta mais velho é FULANO”. Dica: pergunte ao usuário “Deseja
registrar mais um Atleta ? (“SIM” ou “NÃO”)
2) Mostre na tela cada um do números impares a partir do número 1,
você deve parar quanto a soma desses números ultrapassar o limite
de 1000. No final exibir: “A soma dos números impares de 1 até X é
de Y”
EXERCÍCIO
107
Estruturas de Controle: Repetição
Repita
REPITA
<instruções a serem executadas repetidamente até a expressão booleana retornar VERDADEIRO>
ATÉ <expressão booleana>
SINTAXE:
A <expressão lógica>
somente é verificada no final
de cada repetição.
Portanto, as instruções são
executadas pelo menos 1
vez.
108
Estruturas de Controle:
Repetição
Repita
Algoritmo Alô Mundo
Var
quermais: string
Inicio
REPITA
Escreva (“Alô Mundo”)
......
ESCREVA(“Deseja continuar ? S ou N:”);
LEIA(quermais);
ATE (quermais = “N”)
Fim
Problema: Dizer “Alô Mundo”, pelo menos uma vez e quantas vezes
mais o usuário quiser
Não há a
obrigatoriedade de
Inicialização da Variável
de controle
Expressão/Condição
Lógica (booleana)
Instrução que afeta a expressão
lógica:
Neste caso é uma instrução de
entrada do usuário, que
altera a variável de controle.
Caso seja omitido/esquecido,
haverá um LOOP INFINITO
109
Estruturas de Controle:
Repetição: Repita
1) Adapte o seu algoritmo Calculadora, de maneira que sempre que o
usuário informar os valores 0 (zero) para os dois números, o
programa é finalizado, não permitindo mais a realização de novos
cálculos. Ao final exibir a mensagem: “Calculadora Finalizada pelo
usuário !!!”.
2) Utilize o problema de “números pares”. Mas agora você não deve
mostra na tela os números múltiplos de 3. Além disso, a cada
múltiplo de dez, você deve dar a seguinte opção ao usuário:
“Deseja continuar com a exibição dos números ? (S ou N)“. E ao
final exibir: “Programa Finalizado pelo usuário !!!”.
3) Realize o Teste de Mesa dos algoritmos acima
EXERCÍCIO
110
Estruturas de Controle: Repetição
Problemas propostos
1) Potência: Supondo que a linguagem de programação que você
utiliza não possui operador de potenciação. Então, utilize
estrutura de repetição para calcular a potência de um número, o
usuário deve informar a base e o expoente, e o programa deve
exibir o resultado. (realize o teste de mesa)
2) Progressões Aritmética e Geométrica:
Lembrando:
PA: é uma sequência cujo o próximo termo é a soma do número antecessor com a razão da
PA.
PG: é uma sequência cujo o próximo termo é o produto do número antecessor pela a razão
da PG.
Assim, solicite ao usuário o primeiro termo e a razão. Então, exiba cata termo, do primeiro
ao décimo, linha a linha, ex.: 2º Termo: P.A.: 7 e P.G.: 12. E no final seu algoritmo deve
exibir a sequencia completa separada por virgula, tanto da P.A. como da PG. Veja o
exemplo da ilustração abaixo com apenas 6 termos.
Exemplo:
Primeiro termo: 3
Razão: 4
111
Curiosidades
A Sequência de Fibonacci
“Os números preferidos pela Natureza”
É uma sucessão de números que, misteriosamente, aparece em muitos
fenômenos da natureza. Descrita no final do século 12 pelo italiano Leonardo
Fibonacci, ela é infinita e começa com 0 e 1.
Os números seguintes são sempre a soma dos dois números anteriores.
Portanto, o inicio da sequencia é:
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233....
112
Curiosidades
A Sequência de Fibonacci
A razão Áurea “O número de Ouro”
Artes
Esse recurso matemático também foi uma das
principais marcas do Renascimento. A Mona Lisa,
de Leonardo da Vinci, usa a razão na relação
entre tronco e cabeça e entre elementos do rosto.
Arquitetura
Os gregos já conheciam a proporção, embora não
a fórmula para defini-la. A largura e a altura da
fachada do Paternon, templo do século V a.C.
estão na proporção de 1 para 1,618.
As Grandes Pirâmides
Mais um mistério: cada bloco é 1,618 vezes maior
que o bloco do nível imediatamente acima. Em
algumas, as câmaras internas têm comprimento
1,618 vezes maior que sua largura.
Outra curiosidade é que os termos da sequência
também estabelecem a chamada “proporção áurea”,
muito usada na arte, na arquitetura e no design por ser
considerada agradável aos olhos. Seu valor é de 1,618
e, quanto mais você avança na sequência de Fibonacci,
mais a divisão entre um termo e seu antecessor se
aproxima desse número.
113
Estruturas de Controle: Repetição
Problemas propostos
3) Sequencia de Fibonacci:
Solicite ao usuário a quantidade de números de Fibonacci que ele deseja ver, e então
mostre a sequencia de Fibonacci até o número dado pelo usuário.
Exiba cata número, linha a linha, ex.: 1º Número de Fibonacci: X. E no final seu
algoritmo deve exibir a sequencia completa separada por virgula.
114
Estruturas de Controle: Repetição
A instrução: volte (utilizado dentro de estruturas de repetição)
115
Estruturas de Controle: Repetição
A instrução: interrompa (utilizado dentro de estruturas de repetição)
116
Escolha sua linguagem
117
Bibliografia/Materiais
 Ciência da Computação - Uma Visão Abrangente 11ª Edição J. Glenn
Brookshear ed. Bookman
 Introdução a Lógica Para Ciência da Computação - Jair Minoro Abe; João
Inácio Da Silva Filho; Alexandre Scalzitti, ed. Arte e Ciência
 Site http://www.infoescola.com/
 Site: http://www.dicasdeprogramacao.com.br/
 Curso Básico de Lógica de Programação - Paulo Sérgio de Moraes
Unicamp: Link: http://www.inf.ufsc.br/~vania/teaching/ine5231/Logica.pdf
 Slides Prof. Fernando M. Quinhã Pereira
Link: http://pt.slideshare.net/marciapoposki/linguagem-de-programao-46262273
 Slides Prof. Mauro Jansen
Link: http://pt.slideshare.net/MauroJansen1/algoritmos-e-lp-parte3pseudocdigo
118
Mais Links sobre Linguagens de Programação
 http://www.dialetodigital.com/blog/conteudos-programacao/

Mais conteúdo relacionado

Mais procurados

Algoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigoAlgoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigoMauro Pereira
 
Lógica de programação em ppt
Lógica de programação em pptLógica de programação em ppt
Lógica de programação em pptAndrei Bastos
 
Fluxograma (Lógica de Programação)
Fluxograma (Lógica de Programação)Fluxograma (Lógica de Programação)
Fluxograma (Lógica de Programação)Gercélia Ramos
 
Sistema operacional introdução
Sistema operacional introduçãoSistema operacional introdução
Sistema operacional introduçãoCleber Ramos
 
Lógica de Programação - Algoritmos
Lógica de Programação - AlgoritmosLógica de Programação - Algoritmos
Lógica de Programação - AlgoritmosRoney Sousa
 
Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01thomasdacosta
 
Descritiva Narrativa (Lógica de Programação)
Descritiva Narrativa (Lógica de Programação)Descritiva Narrativa (Lógica de Programação)
Descritiva Narrativa (Lógica de Programação)Gercélia Ramos
 
Algoritmos e Técnicas de Programação - Curso Completo
Algoritmos e Técnicas de Programação - Curso CompletoAlgoritmos e Técnicas de Programação - Curso Completo
Algoritmos e Técnicas de Programação - Curso Completothomasdacosta
 
Algoritmos - Formas de Representação de Algoritmos
Algoritmos - Formas de Representação de AlgoritmosAlgoritmos - Formas de Representação de Algoritmos
Algoritmos - Formas de Representação de AlgoritmosElaine Cecília Gatto
 
Introdução a Algoritmos: Conceitos Básicos
Introdução a Algoritmos: Conceitos BásicosIntrodução a Algoritmos: Conceitos Básicos
Introdução a Algoritmos: Conceitos BásicosElaine Cecília Gatto
 
Lista de exercícios em portugol
Lista de exercícios em portugolLista de exercícios em portugol
Lista de exercícios em portugolGabriel Faustino
 
Algoritmos e lp parte 1-introdução
Algoritmos e lp parte 1-introduçãoAlgoritmos e lp parte 1-introdução
Algoritmos e lp parte 1-introduçãoMauro Pereira
 
Lógica de Programação
Lógica de ProgramaçãoLógica de Programação
Lógica de ProgramaçãoAdao Chiavelli
 

Mais procurados (20)

Logica Programação. ...
Logica Programação. ...Logica Programação. ...
Logica Programação. ...
 
Algoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigoAlgoritmos e lp parte3-pseudocódigo
Algoritmos e lp parte3-pseudocódigo
 
Lógica de programação em ppt
Lógica de programação em pptLógica de programação em ppt
Lógica de programação em ppt
 
Fluxograma (Lógica de Programação)
Fluxograma (Lógica de Programação)Fluxograma (Lógica de Programação)
Fluxograma (Lógica de Programação)
 
Sistema operacional introdução
Sistema operacional introduçãoSistema operacional introdução
Sistema operacional introdução
 
Lógica de Programação - Algoritmos
Lógica de Programação - AlgoritmosLógica de Programação - Algoritmos
Lógica de Programação - Algoritmos
 
Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01
 
Descritiva Narrativa (Lógica de Programação)
Descritiva Narrativa (Lógica de Programação)Descritiva Narrativa (Lógica de Programação)
Descritiva Narrativa (Lógica de Programação)
 
Python - Introdução
Python - IntroduçãoPython - Introdução
Python - Introdução
 
Algoritmos em portugol
Algoritmos em portugolAlgoritmos em portugol
Algoritmos em portugol
 
Algoritmo - tipos de dados
Algoritmo - tipos de dadosAlgoritmo - tipos de dados
Algoritmo - tipos de dados
 
Visualg
VisualgVisualg
Visualg
 
Lógica de Programação
Lógica de ProgramaçãoLógica de Programação
Lógica de Programação
 
Algoritmos e Técnicas de Programação - Curso Completo
Algoritmos e Técnicas de Programação - Curso CompletoAlgoritmos e Técnicas de Programação - Curso Completo
Algoritmos e Técnicas de Programação - Curso Completo
 
Algoritmos - Formas de Representação de Algoritmos
Algoritmos - Formas de Representação de AlgoritmosAlgoritmos - Formas de Representação de Algoritmos
Algoritmos - Formas de Representação de Algoritmos
 
Aula 07 - Visualg e Pseudocódigo
Aula 07 - Visualg e PseudocódigoAula 07 - Visualg e Pseudocódigo
Aula 07 - Visualg e Pseudocódigo
 
Introdução a Algoritmos: Conceitos Básicos
Introdução a Algoritmos: Conceitos BásicosIntrodução a Algoritmos: Conceitos Básicos
Introdução a Algoritmos: Conceitos Básicos
 
Lista de exercícios em portugol
Lista de exercícios em portugolLista de exercícios em portugol
Lista de exercícios em portugol
 
Algoritmos e lp parte 1-introdução
Algoritmos e lp parte 1-introduçãoAlgoritmos e lp parte 1-introdução
Algoritmos e lp parte 1-introdução
 
Lógica de Programação
Lógica de ProgramaçãoLógica de Programação
Lógica de Programação
 

Destaque

Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-Mauro Pereira
 
Bancode dados modelagem conceitual
Bancode dados modelagem conceitualBancode dados modelagem conceitual
Bancode dados modelagem conceitualMario Sergio
 
Introdução à programação em Android e iOS - Conceitos fundamentais de program...
Introdução à programação em Android e iOS - Conceitos fundamentais de program...Introdução à programação em Android e iOS - Conceitos fundamentais de program...
Introdução à programação em Android e iOS - Conceitos fundamentais de program...Luís Gustavo Martins
 
Material de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de ProgramaçãoMaterial de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de Programaçãorodfernandes
 
Programando em java
Programando em javaProgramando em java
Programando em javaVictor Hugo
 
Bloco diagrama - Geral do Espírito Santo
Bloco diagrama  - Geral do Espírito SantoBloco diagrama  - Geral do Espírito Santo
Bloco diagrama - Geral do Espírito SantoEAD Agroecologia
 
Aula 05 mecância - dinâmica - leis de newton
Aula 05   mecância - dinâmica - leis de newtonAula 05   mecância - dinâmica - leis de newton
Aula 05 mecância - dinâmica - leis de newtonBruno San
 
Programming languages
Programming languagesProgramming languages
Programming languagesvito_carleone
 
Tabela verdade e desvio condicional
Tabela verdade e desvio condicionalTabela verdade e desvio condicional
Tabela verdade e desvio condicionaladrianaalme
 
Educação Tecnológica com Raspberry Pi
Educação Tecnológica com Raspberry PiEducação Tecnológica com Raspberry Pi
Educação Tecnológica com Raspberry PiMario Sergio
 
Tecnicas programacao i_c_p1
Tecnicas programacao i_c_p1Tecnicas programacao i_c_p1
Tecnicas programacao i_c_p1D M
 
Algoritmos - Lógica de Programação
Algoritmos - Lógica de ProgramaçãoAlgoritmos - Lógica de Programação
Algoritmos - Lógica de ProgramaçãoElaine Cecília Gatto
 
Aula03 exercicio fluxograma casa
Aula03   exercicio fluxograma casaAula03   exercicio fluxograma casa
Aula03 exercicio fluxograma casaGrupo Tiradentes
 
Apostila de Introdução aos Algoritmos - usando o Visualg
Apostila de Introdução aos Algoritmos - usando o VisualgApostila de Introdução aos Algoritmos - usando o Visualg
Apostila de Introdução aos Algoritmos - usando o VisualgRegis Magalhães
 

Destaque (18)

Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-
 
Bancode dados modelagem conceitual
Bancode dados modelagem conceitualBancode dados modelagem conceitual
Bancode dados modelagem conceitual
 
Introdução à programação em Android e iOS - Conceitos fundamentais de program...
Introdução à programação em Android e iOS - Conceitos fundamentais de program...Introdução à programação em Android e iOS - Conceitos fundamentais de program...
Introdução à programação em Android e iOS - Conceitos fundamentais de program...
 
Material de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de ProgramaçãoMaterial de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de Programação
 
Programando em java
Programando em javaProgramando em java
Programando em java
 
Bloco diagrama - Geral do Espírito Santo
Bloco diagrama  - Geral do Espírito SantoBloco diagrama  - Geral do Espírito Santo
Bloco diagrama - Geral do Espírito Santo
 
Aula 05 mecância - dinâmica - leis de newton
Aula 05   mecância - dinâmica - leis de newtonAula 05   mecância - dinâmica - leis de newton
Aula 05 mecância - dinâmica - leis de newton
 
POO - 21 - Java e Banco de Dados
POO - 21 - Java e Banco de DadosPOO - 21 - Java e Banco de Dados
POO - 21 - Java e Banco de Dados
 
Java 00 Poo
Java 00 PooJava 00 Poo
Java 00 Poo
 
Programming languages
Programming languagesProgramming languages
Programming languages
 
Tabela verdade e desvio condicional
Tabela verdade e desvio condicionalTabela verdade e desvio condicional
Tabela verdade e desvio condicional
 
Aula 05
Aula 05Aula 05
Aula 05
 
Educação Tecnológica com Raspberry Pi
Educação Tecnológica com Raspberry PiEducação Tecnológica com Raspberry Pi
Educação Tecnológica com Raspberry Pi
 
Tecnicas programacao i_c_p1
Tecnicas programacao i_c_p1Tecnicas programacao i_c_p1
Tecnicas programacao i_c_p1
 
Algoritmos - Lógica de Programação
Algoritmos - Lógica de ProgramaçãoAlgoritmos - Lógica de Programação
Algoritmos - Lógica de Programação
 
Aula03 exercicio fluxograma casa
Aula03   exercicio fluxograma casaAula03   exercicio fluxograma casa
Aula03 exercicio fluxograma casa
 
Eletricidade basica
Eletricidade basicaEletricidade basica
Eletricidade basica
 
Apostila de Introdução aos Algoritmos - usando o Visualg
Apostila de Introdução aos Algoritmos - usando o VisualgApostila de Introdução aos Algoritmos - usando o Visualg
Apostila de Introdução aos Algoritmos - usando o Visualg
 

Semelhante a Introdução à Programação

Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2Robson Ferreira
 
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃOCURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃOMicrosoft
 
C curso - notas de aula
C   curso - notas de aulaC   curso - notas de aula
C curso - notas de aulaLoAlves21
 
Introdução a programação
Introdução a programaçãoIntrodução a programação
Introdução a programaçãoEdu Queiroz
 
Aprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoAprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoWeldir Fernando Dias
 
Aprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoAprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoFelipeDi
 
Introdução á programação - 1ª parte
Introdução á programação - 1ª parteIntrodução á programação - 1ª parte
Introdução á programação - 1ª parteLuis Fernandes
 
Aprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoAprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoUbirajara Cavaco
 
2.0_Programacao_PRG29002_-_Pseudocódigo.pdf
2.0_Programacao_PRG29002_-_Pseudocódigo.pdf2.0_Programacao_PRG29002_-_Pseudocódigo.pdf
2.0_Programacao_PRG29002_-_Pseudocódigo.pdfJustinoFontes
 
Algoritmo estruturado
Algoritmo estruturadoAlgoritmo estruturado
Algoritmo estruturadodasko
 
Aulas 13 e 14 - Algoritmos
Aulas 13 e 14 - AlgoritmosAulas 13 e 14 - Algoritmos
Aulas 13 e 14 - AlgoritmosJocelma Rios
 
02 Introdução à programação.pptx
02 Introdução à programação.pptx02 Introdução à programação.pptx
02 Introdução à programação.pptxwilliam Sarti José
 
mod1-algoritmia
mod1-algoritmiamod1-algoritmia
mod1-algoritmiadiogoa21
 
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)Leinylson Fontinele
 
Aula 3 - Programação 1
Aula 3 - Programação 1Aula 3 - Programação 1
Aula 3 - Programação 1Isaac Barros
 
Algoritmo apresentação
Algoritmo   apresentaçãoAlgoritmo   apresentação
Algoritmo apresentaçãopronatecvja
 

Semelhante a Introdução à Programação (20)

Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2
 
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃOCURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
 
C curso - notas de aula
C   curso - notas de aulaC   curso - notas de aula
C curso - notas de aula
 
Trabalho Lost171 (Atualizado)
Trabalho Lost171 (Atualizado)Trabalho Lost171 (Atualizado)
Trabalho Lost171 (Atualizado)
 
Introdução a programação
Introdução a programaçãoIntrodução a programação
Introdução a programação
 
122172 1444
122172 1444122172 1444
122172 1444
 
Aprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoAprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalho
 
Aprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoAprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalho
 
Introdução á programação - 1ª parte
Introdução á programação - 1ª parteIntrodução á programação - 1ª parte
Introdução á programação - 1ª parte
 
Aprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalhoAprenda a programar-luciano_ramalho
Aprenda a programar-luciano_ramalho
 
2.0_Programacao_PRG29002_-_Pseudocódigo.pdf
2.0_Programacao_PRG29002_-_Pseudocódigo.pdf2.0_Programacao_PRG29002_-_Pseudocódigo.pdf
2.0_Programacao_PRG29002_-_Pseudocódigo.pdf
 
Algoritmo estruturado
Algoritmo estruturadoAlgoritmo estruturado
Algoritmo estruturado
 
Aulas 13 e 14 - Algoritmos
Aulas 13 e 14 - AlgoritmosAulas 13 e 14 - Algoritmos
Aulas 13 e 14 - Algoritmos
 
02 Introdução à programação.pptx
02 Introdução à programação.pptx02 Introdução à programação.pptx
02 Introdução à programação.pptx
 
mod1-algoritmia
mod1-algoritmiamod1-algoritmia
mod1-algoritmia
 
Algoritmos - Pascal
Algoritmos - PascalAlgoritmos - Pascal
Algoritmos - Pascal
 
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
 
Aula 3 - Programação 1
Aula 3 - Programação 1Aula 3 - Programação 1
Aula 3 - Programação 1
 
Algoritmo apresentação
Algoritmo   apresentaçãoAlgoritmo   apresentação
Algoritmo apresentação
 
FC-Logic
FC-LogicFC-Logic
FC-Logic
 

Mais de Mario Sergio

Curso de Java (Parte 4)
Curso de Java (Parte 4)Curso de Java (Parte 4)
Curso de Java (Parte 4)Mario Sergio
 
Curso de Java (Parte 2)
 Curso de Java (Parte 2) Curso de Java (Parte 2)
Curso de Java (Parte 2)Mario Sergio
 
Curso Java (Parte 8) Web Service REST
Curso Java (Parte 8) Web Service RESTCurso Java (Parte 8) Web Service REST
Curso Java (Parte 8) Web Service RESTMario Sergio
 
Curso de Java (Parte 7) Web Application
Curso de Java (Parte 7) Web ApplicationCurso de Java (Parte 7) Web Application
Curso de Java (Parte 7) Web ApplicationMario Sergio
 
Curso de Java (Parte 6) Introdução a Front-end
Curso de Java (Parte 6) Introdução a Front-endCurso de Java (Parte 6) Introdução a Front-end
Curso de Java (Parte 6) Introdução a Front-endMario Sergio
 
Curso de Java (Parte 5)
Curso de Java (Parte 5)Curso de Java (Parte 5)
Curso de Java (Parte 5)Mario Sergio
 
Introdução a Banco de Dados (Parte 3)
Introdução a Banco de Dados (Parte 3)Introdução a Banco de Dados (Parte 3)
Introdução a Banco de Dados (Parte 3)Mario Sergio
 
Introdução a Banco de Dados (Parte 2)
Introdução a Banco de Dados (Parte 2)Introdução a Banco de Dados (Parte 2)
Introdução a Banco de Dados (Parte 2)Mario Sergio
 
Introdução a Banco de Dados (Parte 1)
Introdução a Banco de Dados (Parte 1)Introdução a Banco de Dados (Parte 1)
Introdução a Banco de Dados (Parte 1)Mario Sergio
 
Comparação Sintaxe Portugol vs Java
Comparação Sintaxe Portugol vs JavaComparação Sintaxe Portugol vs Java
Comparação Sintaxe Portugol vs JavaMario Sergio
 
Curso de Java (Parte 3)
 Curso de Java (Parte 3) Curso de Java (Parte 3)
Curso de Java (Parte 3)Mario Sergio
 
Curso de Java (Parte 1)
Curso de Java (Parte 1)Curso de Java (Parte 1)
Curso de Java (Parte 1)Mario Sergio
 

Mais de Mario Sergio (12)

Curso de Java (Parte 4)
Curso de Java (Parte 4)Curso de Java (Parte 4)
Curso de Java (Parte 4)
 
Curso de Java (Parte 2)
 Curso de Java (Parte 2) Curso de Java (Parte 2)
Curso de Java (Parte 2)
 
Curso Java (Parte 8) Web Service REST
Curso Java (Parte 8) Web Service RESTCurso Java (Parte 8) Web Service REST
Curso Java (Parte 8) Web Service REST
 
Curso de Java (Parte 7) Web Application
Curso de Java (Parte 7) Web ApplicationCurso de Java (Parte 7) Web Application
Curso de Java (Parte 7) Web Application
 
Curso de Java (Parte 6) Introdução a Front-end
Curso de Java (Parte 6) Introdução a Front-endCurso de Java (Parte 6) Introdução a Front-end
Curso de Java (Parte 6) Introdução a Front-end
 
Curso de Java (Parte 5)
Curso de Java (Parte 5)Curso de Java (Parte 5)
Curso de Java (Parte 5)
 
Introdução a Banco de Dados (Parte 3)
Introdução a Banco de Dados (Parte 3)Introdução a Banco de Dados (Parte 3)
Introdução a Banco de Dados (Parte 3)
 
Introdução a Banco de Dados (Parte 2)
Introdução a Banco de Dados (Parte 2)Introdução a Banco de Dados (Parte 2)
Introdução a Banco de Dados (Parte 2)
 
Introdução a Banco de Dados (Parte 1)
Introdução a Banco de Dados (Parte 1)Introdução a Banco de Dados (Parte 1)
Introdução a Banco de Dados (Parte 1)
 
Comparação Sintaxe Portugol vs Java
Comparação Sintaxe Portugol vs JavaComparação Sintaxe Portugol vs Java
Comparação Sintaxe Portugol vs Java
 
Curso de Java (Parte 3)
 Curso de Java (Parte 3) Curso de Java (Parte 3)
Curso de Java (Parte 3)
 
Curso de Java (Parte 1)
Curso de Java (Parte 1)Curso de Java (Parte 1)
Curso de Java (Parte 1)
 

Introdução à Programação

  • 1. Introdução à Programação Prof. Mário Sergio da Silva mariosergio30@gmail.com Lattes: http://lattes.cnpq.br/1161794053211014 Atualizado em Abr/2016 Este material é uma adaptação didática que utiliza ilustrações e textos retirados de uma seleção criteriosa de publicações disponíveis livremente na internet, juntamente com conteúdo inédito. (bibliografia e links disponíveis no final dos slides)
  • 2. Conteúdo  Um pouco de história  Introdução à Lógica e Linguagem Binária  Linguagens de programação e Algoritmos  Algoritmos: Fases, Métodos e Forma de Representação  Instruções primitivas de Entrada e Saída  Memória e Variáveis  Lógica Condicional, Proposições e Tabela Verdade  Operadores de Atribuição, Aritméticos, Relacionais e Lógicos  Estruturas Condicionais (SE simples, SE composto, SE Encadeado)  Estruturas de Repetição(PARA, Enquanto, Repita)
  • 3. 3
  • 4. 4Obs: Assistir vídeo “Todo mundo deveria aprender a programar”
  • 5. 5 Uma nova Linguagem 0 (zero) 1 (um)
  • 6. 6 Um pouco de história: programando... Computador do tamanho de uma sala, programado por engenheiros elétricos Unidade mínima de armazenamento: dois estados possíveis: acessa ou apagada (1 bit) Era um “liga e desliga” de Válvulas !!!
  • 7. 7 Um pouco de história: salvando dados... Mídia: cartão perfurado (1 furo = 1 bit) Usado até o início da década de 1980 Máquina gravadora de cartões Programa em fortran
  • 8. 8 Um pouco de história: lendo de dados... Tabulador de Hollerith, utilizado no censo americano de 1890 Os furos do cartão, permitiam que os pinos da máquina atravessassem fazendo passar corrente elétrica, indicando o estado ACESSO. Veja: Evolução do armazenamento digital: http://escreveassim.com.br/2013/10/11/a-historia-e-evolucao-do-armazenamento-digital/
  • 10. 10 Falar zero‐um‐nês deve ser fácil. Não é? Mas, não é !!! Como deixar o zero-um-nês mais fácil de usar ? A Linguagem Binária
  • 11. 11 Linguagens de Programação  Uma linguagem de programação é um método padronizado para comunicar instruções para um computador (Dershem, Herbert L.; Jipping, Michael J. – 1995) Ou simplesmente:  É um conjunto de algoritmos que podem ser entendidos por um computador. (Mário Sergio 2016) ??? (veremos a partir da pag 17)
  • 12. 12 Linguagens de Programação Há várias disponíveis no mercado, tanto comerciais como open-source.
  • 13. 13 Linguagens de Programação Exemplo de programa na Linguagem Assembly (Linguagem de montagem) Qual instrução é mais fácil de ler ? mov $1, AL (assembly) 10110000 01100001 (binário)
  • 14. 14 Linguagens de Programação Exemplo de programa na Linguagem Assembly (Linguagem de montagem)
  • 15. 15 Linguagens de Programação Exemplo de programa “Alô Mundo” (Linguagens de alto Nível)
  • 16. Linguagens de Programação Processos de Tradução para linguagem de máquina binária) Obs: Assistir vídeo “a história do computador” 16
  • 17. 17 Algoritmo - Introdução • É um conjunto de passos que define como uma tarefa deve ser executada. • É uma sequência (lógica) finita e bem estruturada de instruções para a resolução de um problema. * Um algoritmo não é necessariamente computacional
  • 18. 18 Algoritmo - Introdução • É um conjunto de passos que define como uma tarefa deve ser executada. • É uma sequência (lógica) finita e bem estruturada de instruções para a resolução de um problema. Exemplo de um problema: COMO FRITAR UM OVO? Qual é a solução para isso ? Escrever um algoritmo. * Um algoritmo não é necessariamente computacional
  • 19. 19 Algoritmo - Introdução Problema: COMO FRITAR UM OVO? Uma Solução: * Há inúmeras soluções para um mesmo problema
  • 20. 20 Introdução à Lógica Computacional
  • 21. 21 Introdução à Lógica Computacional Popularmente costumamos utilizar o termo “lógica” dessas maneiras. A pesar de não esta errado, tais contextos são inadequados quando tratamos do termo “lógica” como ciência.
  • 22. 22 Introdução à Lógica Computacional Não existe uma definição satisfatória para lógica, tal questão pertence a filosofia. No contexto da computação, esta definição parece ser a mais adequada: “A Lógica é a área do conhecimento que estuda a raciocínio ordenado, bem estruturado e não contraditório”
  • 23. 23 Introdução à Lógica Computacional Por exemplo, a lógica matemática formal auxilia na formação da base racional do senso comum, pois ela também altera profundamente o raciocínio socialmente aceito.
  • 24. 24 Algoritmos Fases fundamentais para a construção de um algoritmo:
  • 26. 26 Algoritmos: Representação Formas de Representação de Algoritmos o Descrição Narrativa o Diagrama ou Fluxograma Convencional o Pseudocódigo o Linguagem de programação (sintaxe específica de cada linguagem)
  • 27. 27 Algoritmos: Descrição Narrativa • Não precisa aprender nenhum conceito novo, pois utiliza-se apenas a linguagem natural (assim, como fizemos no exemplo do algoritmo para fritar um ovo) • Mas, é preciso se expressar de forma clara e precisa, evitando palavras com duplo sentido. Problema: Somar dois números inteiros quaisquer 1. Obter o primeiro número 2. Obter o segundo número 3. Somar os dois números 4. Mostrar o resultado da soma Descrição Narrativa
  • 28. 28 Algoritmos: Fluxograma É a representação gráfica de um algoritmo, que é descrito por uma sequência de símbolos, com notação bem definida. Problema: Somar dois números inteiros quaisquer Também, conhecida como DECISÃO.
  • 29. 29 Algoritmos: Fluxograma Outros Exemplos de Fluxogramas * Quais problemas este algoritmos resolvem ?
  • 30. 30 Algoritmos: Desafio Problema: COMO FAZER UM BOLO ? Agora é a sua vez: Escreva um algoritmo com a solução para este complexo problema: Represente este algoritmo em Descrição Narrativa e Fluxograma (utilize papel e caneta)
  • 31. 31 Algoritmos: O problema da compreensão do problema A engenhara de software trata deste serio problema presente no processo de construção de um software.
  • 32. 32 Algoritmos: Métodos para construção o Construir o Algoritmo. o Testar o Algoritmo (podendo ser com o Teste de Mesa) 1 2 3 4 5 6
  • 34. 34 Algoritmos: Nível de Detalhamento o Nível de Abstração Requerido o Divisão de responsabilidades O nível de detalhamento do algoritmo vai depender também de:
  • 35. 35 Algoritmos: Pseudocódigo o A maioria esmagadora das linguagens de programação de computadores é em língua inglesa. Para facilitar o aprendizado de lógica de programação foram criadas algumas pseudolinguagens. o A sintaxe do algoritmo deve ser bem mais estruturada e rígida em relação as representações anteriores, precisando respeitar as palavras chaves do pseudocódigo. o O Portugol é uma pseudolinguagem de programação em português estruturado, é uma simbiose de Português, Algol e Pascal. Algumas Palavras Chave do Portugol: Inicio, Fim, Algoritmo, Enquanto, Se, então, Para, Ate, Ate que, Leia, Escreva, Faça, Repita, FimSe, FimEnquanto, FimSelecione, entre outras que veremos adiante.
  • 36. 36 Algoritmos: Pseudocódigo O Pseudocódigo possui a seguinte estrutura básica: SINTAXE
  • 37. 37 Estruturas de Programação Portanto, tudo o que precisamos é instruí-lo em uma sequencia lógica, a: “O computador uma máquina totalmente idiota, mas muito rápida e obediente” o Armazenar valores na memória o Realizar cálculos o Tomar decisões o Realizar repetições o Comunicar-se com o meio externo (Interface com o usuário) • Instruções sequenciais • Cálculos matemáticos
  • 38. 38 o Armazenar valores na memória o Realizar cálculos o Tomar decisões o Realizar repetições Estruturas de Programação Pseudocódigo Portugol
  • 39. 39 Algoritmo: Pseudocódigo A Instrução primitiva de saída: ESCREVA
  • 40. 40 Algoritmo: Pseudocódigo A Instrução primitiva de entrada: LEIA
  • 41. 41 Algoritmo: Exercício Problema: Somar dois números inteiros quaisquer Escreva o algoritmo da pag 27 em pseudocódigo Não se preocupe: A partir das próximas aulas, você irá melhorar seu pseudocódigo com o uso de Variáveis Lembrem-se: só se aprende Programação PRATICANDO MUITO !
  • 42. 42 Algoritmo: Problema Problema: Cálculo de média do aluno Suponha que o diretor de uma escola lhe contrata para desenvolver um programa de computador e faz a seguinte requisição: “Eu quero um programa que no final de cada ano letivo a secretária da escola digite as notas de cada uma das quatro provas realizadas durante o ano pelo aluno, e ao final o programa mostre:” “A média do Aluno FULANO foi X” Não se preocupe: A partir das próximas aulas, você irá melhorar seu pseudocódigo com o uso de Variáveis Lembrem-se: só se aprende Programação PRATICANDO MUITO !
  • 43. 43 Algoritmo: Exemplo em Pseudocódigo Problema: Somar dois números inteiros quaisquer, nas 3 representações
  • 44. 44 Algoritmo: Exemplo em uma Linguagem de programação Problema: Somar dois números inteiros quaisquer, na linguagem pascal “programar é, basicamente, construir algoritmos para resolver problemas e codificá-los em alguma linguagem de programação."
  • 45. 45 Armazenamento de Dados Temporários Para processar dados, as linguagens de programação precisam acessar a Memória do computador, para armazenar esses dados temporariamente. Seja um dado proveniente do resultado de uma operação matemática, ou mesmo um dados de entrada do usuário. Isto é feito por meio de VARIÁVEIS. Ex: leia nome soma := 10 + 20 Endereço Físico Identificador da Variável Valor 0x2221 nome “José” 0x2358 soma 30
  • 46. 46 Variáveis Uma variável, é um espaço da memória do computador que "reservamos" para guardar informações (dados). Como o próprio nome sugere, as variáveis, podem conter valores diferentes a cada instante de tempo, ou seja, seu conteúdo pode variar de acordo com as instruções do algoritmo. As variáveis são referenciadas através de um nome (identificador) criado por você durante o desenvolvimento do algoritmo. Exemplos de nomes de variáveis: produto, idade, nota1, peso, preco, nome_completo, etc. O identificadores de variáveis somente podem conter letras, números ou o caractere _ (underline), mas não podem começar com um número. E também não se pode usar palavras chaves. (ver pag 35)
  • 47. 47 Variáveis O conteúdo de uma variável pode ser alterado, consultado ou apagado quantas vezes forem necessárias durante o algoritmo. Mas, ao alterar o conteúdo da variável, a informação anterior é perdida, ou seja, sempre "vale" a última informação armazenada na variável. Uma variável armazena 'apenas' um conteúdo de cada vez. Além disso as variáveis precisam ter um tipo.
  • 48. 48 Variáveis: Tipos Primitivos Var idade: inteiro media: real Os tipos de variáveis e constantes podem ser classificadas em 3 grupos: Numéricas, caracteres, ou lógicas. Vejamos: Numéricas Específicas para armazenamento de números, que posteriormente poderão ser utilizados para cálculos. Os tipos numéricos são Inteiro ou Real. 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. Declaração de variáveis
  • 49. 49 Variáveis: Tipos Primitivos Caracteres (ou Literais): Específicas para armazenamento de conjunto de caracteres (textos puros) que não devem ser tratados como números. Lógicas Armazenam somente dados lógicos que podem ser Verdadeiro ou Falso. Var nome: caractere nivel_superior: logico Declaração de variáveis
  • 50. 50 Variáveis: Atribuição A atribuição é uma notação utilizada para atribuir um valor a uma variável, ou seja, para armazenar um determinado conteúdo em uma variável. o Os valores do tipo caractere devem ser sempre estar entre aspas duplas “ ” . Ex: produto := “Notebook” nome <- “Jesus” o Uma observação importante a ser feita em relação a atribuições é que na parte esquerda (a que vai "receber" algo) não pode haver nada além da variável, ou seja, é só variável é que "recebe" algum conteúdo. o O comando leia também pode ser considerado um operador de atribuição do portugol, ex.: leia nome dica: Em portugol, tanto <- como := podem ser usados como operador de atribuição
  • 51. 51 Operadores Aritméticos Os operadores aritméticos estão presentes em todas a linguagens de programação, eles permitem a escrita de expressões matemáticas para resolução de cálculos. Os principais são:
  • 52. 52 Operadores Aritméticos Nas linguagens de programação e as expressões matemáticas sempre obedecem às regras matemáticas comuns, ou seja: o As expressões dentro de parênteses são sempre resolvidas antes das expressões fora dos parênteses. o Quando existem vários níveis de parênteses, ou seja, um parêntese dentro de outro, a solução sempre inicia do parêntese mais interno até o mais externo (de dentro para fora). o Quando duas ou mais expressões tiverem a mesma prioridade, a solução é sempre iniciada da expressão mais à esquerda até a mais à direita. Desta forma, veja os seguintes exemplos e os respectivos resultados: soma := 10 + 20 (valor armazenado: 30) media := (10 + 20) / 3 (valor armazenado: 10) media := 10 + 20 / 3 (valor armazenado: 16,6666)
  • 53. 53 Operadores Aritméticos Outros Operadores aritméticos: DIV – Divisão inteira MOD – Resto da Divisão inteira
  • 54. 54 Operadores de Caracteres O Operador + Concatena (junta) Caracteres Exemplo: Leia (nome) Leia (sobrenome) nome_completo <- nome + “ “ + sobrenome Escreva (“Oi “, nome_completo, “ Seja bem Vindo !“)
  • 55. 55 Algoritmo: Pseudocódigo Problema: Cálculo de média completo em PORTUGOL SINTAXE
  • 56. 56 Algoritmo: Problema Problema: Vendas Suponha que o gerente comercial de uma rede de varejo precisa de um programa de computador, e lhe faz o seguinte solicitação: “Eu quero um programa que calcule a o valor total da venda de um produto vendido, de maneira que a cada venda o vendedor Informa o nome do produto, a quantidade e o preço unitário, e ao final o programa mostre:” Pedido de Venda Produto: .......... Qtd: ........ Preço .......... Valor Total: .......... Lembrem-se: só se aprende Programação PRATICANDO MUITO !
  • 58. 58 Testando Algoritmos: O teste de mesa simula a execução de um algoritmo sem utilizar o computador, empregando apenas “papel e caneta” (ou melhor sem utilizar um compilador ou interpretador). Teste de Mesa () parênteses - indicam o momento em que a variável é lida. {} chaves – indicam o momento em que a variável é recebe uma atribuição interna. ( ) ( ) { }
  • 60. 60 Testando Algoritmos : Exercício Realize o Teste de Mesa para os seus algoritmos: - Somar dois números inteiros quaisquer - Vendas Lembrem-se: só se aprende Programação PRATICANDO MUITO !
  • 61. 61 Testando Algoritmos: Exemplo: Calculadora OBS: Neste teste de mesa, somente estão sendo exibidas as linhas em que há alteração no valor das variáveis.
  • 62. 62 Testando Algoritmos: Exemplo: Troca Valores Problema: OBS: Neste teste de mesa, somente estão sendo exibidas as linhas em que há alteração no valor das variáveis.
  • 63. 63 Testando Algoritmos : Exercício Qual é a solução do problema da troca dos valores das variáveis a e b Do problema anterior ? - Escreva o algoritmo - Realize o teste Mesa Lembrem-se: só se aprende Programação PRATICANDO MUITO !
  • 64. 64 TOMANDO O CONTROLE DA SITUAÇÃO Até agora, apenas aprendemos a escrever algoritmos em uma estrutura sequencial, de maneira que todas as instruções eram executadas de forma linear (de cima para baixo), obrigatoriamente uma após a outra. Mas, Já percebemos que na maioria das vezes necessitamos tomar decisões durante o andamento do algoritmo, para que possamos “pular” algumas instruções dependendo de algumas condições. Além disso, também precisamos que algumas instruções sejam executada mais de uma vez (repetidas vezes). Para isso, iremos utilizar as Estruturas de Controle, são elas:  Estruturas Condicionais (Decisão) o Estruturas de Repetição
  • 65. 65 Recordando... “O computador uma máquina totalmente idiota, mas muito rápida e obediente” o Armazenar valores na memória o Realizar cálculos o Tomar decisões o Realizar repetições o Comunicar-se com o meio externo (Interface com o usuário) Estruturas de Controle essencialmente baseadas nos conceitos da Lógica computacional /proposicional • Instruções sequenciais • Cálculos matemáticos
  • 66. 66 Estruturas de Controle em Pseudocódigo Portugol o Armazenar valores na memória o Realizar cálculos o Tomar decisões o Realizar repetições
  • 67. 67 Lógica Proposicional Aristóteles (384-322 a.C), o primeiro e grande filósofo a discutir a lógica como ciência, disse: “Dizer do que não é que é, e dizer do que é, que não é, é falso. E, dizer do que não é, que não é, e dizer do que é, que é, é verdadeiro”. - Aristóteles
  • 68. 68 Lógica Proposicional: Proposições Brasília é a capital do Brasil. A argentina não é um país pertencente ao continente Africano. Portugal é uma bela cidade. A Casa vermelha. Todos os homens são mortais. Como você se chama ? 10 é um número par positivo. 7+5 = 10. 3 - 2 ≠ 6 Proposição Lógica: É uma sentença declarativa com sentido completo, expressa de forma afirmativa ou negativa, a qual se pode atribuir um valor lógico “V” (verdadeiro) ou “F”(falso). Veremos: X
  • 69. As Proposições Lógicas podem ser classificadas em dois tipos: Simples - São representadas de forma única. Ex: O cachorro é um mamífero (como vimos anteriormente) Composta - São formadas por um conjunto de proposições simples. Duas ou mais proposições simples ligadas por “conectivos lógicos”. Ex: Brasília é a capital do Brasil E Lima é a capital do Peru. Recife é um pais OU Olinda é uma cidade Lógica Proposicional: Conectivos Lógicos 69 Conectivos Lógicos
  • 70. Atribuir um valor lógico para uma proposição simples é fácil, mas e para uma proposição composta como faremos isso? Utilizaremos um recurso chamado de tabelas verdade. Lógica Proposicional: Tabela Verdade 70
  • 71. Lógica Proposicional: Tabela Verdade Ex: temos as proposições A e B A: Brasília é a capital do Brasil E B: Lima é a capital do Peru. A: Gato é um Animal E B: Peixe é um mamífero. A: Recife é um pais OU B: Olinda é uma cidade A: Recife é uma cidade XOU B: Olinda é uma cidade NÃO A: O Japão fica na Ásia 71
  • 72. 72 Operadores Relacionais Operações relacionais servem para realizar comparações entres valores, variáveis, expressões e constantes: Comparações válidas Essas comparações são resultam em um valor lógico, e são utilizadas principalmente nas estruturas condicionais e de repetição.
  • 75. 75 Estruturas de Controle: Condicional (Decisão) As principais estruturas de decisão são: “SE” “Escolha Caso” (AVALIE/QUANDO) Também chamadas desvio de fluxo.
  • 76. 76 Estruturas de Controle: Condicional (Decisão) SE simples Resulta em um valor Lógico (V ou F) Esse BLOCO de instruções somente será EXECUTADO, SE a condição for Verdadeira, podendo conter mais de uma linha. SINTAXE
  • 77. 77 Estruturas de Controle: Condicional (Decisão) SE simples (Se/entao) Problema1: Solicitar que o usuário digite um número, o programa deverá informar ao usuário se o número é maior que 10 (dez) Realize o Teste de Mesa deste algoritmo, Simulando a entrada de valores diferentes para o número. Lembrem-se: só se aprende Programação PRATICANDO MUITO ! EXERCÍCIO
  • 78. 78 Estruturas de Controle: Condicional (Decisão) SE Composto Resulta em um valor Lógico (V ou F) Esse BLOCO de instruções somente será EXECUTADO, SE a condição for Verdadeira, podendo conter mais de uma linha. Esse BLOCO de instruções somente será EXECUTADO, SE a condição for Falsa, podendo conter mais de uma linha. SINTAXE
  • 79. 79 Estruturas de Controle: Condicional (Decisão) SE composto (Se/entao/Senao) Agora você já está pronto para escrever o algoritmo em portugol deste fluxograma (visto anteriormente). Realize o Teste de Mesa deste algoritmo, Simulando a entrada de valores diferentes para a idade. Lembrem-se: só se aprende Programação PRATICANDO MUITO ! EXERCÍCIO
  • 80. 80 Estruturas de Controle: Condicional (Decisão) SE composto (Se/entao/Senao) Problema: Informar se a idade do usuário é PAR ou IMPAR Realize o Teste de Mesa deste algoritmo, Simulando a entrada de valores diferentes para a idade. Lembrem-se: só se aprende Programação PRATICANDO MUITO ! EXERCÍCIO
  • 81. 81 Estruturas de Controle: Condicional (Decisão) SE composto (encadeado ou aninhado) A estrutura “Se entao Senao” quando combinada dá origem ao que chamamos de SE encadeado/aninhado. É utilizada quando precisamos fazer várias comparações (testes) que dependem da comparação anterior.
  • 82. 82 Estruturas de Controle: Condicional (Decisão) SE composto (encadeado ou aninhado) Condição1=F Condição2=F Condição3=F Condição N = F SINTAXE: Se <condição 1> então // bloco de instruções 1 Senão Se <condição 2> entao // bloco de instruções 2 Senão Se <condição 3> entao // bloco de instruções Senão Se <condição N> entao // bloco de instruções N Senão // bloco de instruções N FimSe FimSe FimSe FimSe
  • 83. 83 Boas Práticas: // COMENTANDO Se <condição 1> então // bloco de instruções 1 Senão Se <condição 2> entao // bloco de instruções 2 Senão Se <condição 3> entao // bloco de instruções Senão Se <condição N> entao // bloco de instruções N Senão /* bloco de instruções N FimSe FimSe FimSe FimSe SINTAXE: /* Comentários são lembretes, observações ou explicações do programador, essas linhas não são consideradas pelo compilador Podem ser utilizados em qualquer parte do código */ // COMENTARIO DE UMA LINHA /* COMENTARIO DE MULTIPLAS LINHAS */
  • 84. 84 Boas Práticas: INDENTANDO Se <condição 1> então // bloco de instruções 1 Senão Se <condição 2> entao // bloco de instruções 2 Senão Se <condição 3> entao // bloco de instruções Senão Se <condição N> entao // bloco de instruções N Senão // bloco de instruções N FimSe FimSe FimSe FimSe SINTAXE: Indentação são espaçamentos ou recuos à esquerda das instruções. Deve seguir uma hierarquia de dependência em relação às instruções anteriores. Garantem melhor clareza e legibilidade do código
  • 85. Boas Práticas: Exemplos de Indentação SEM INDENTAÇÃO CORRETAMENTE INDENTADO
  • 87. 87 Estruturas de Controle: Condicional (Decisão) SE composto (encadeado ou aninhado) 1- Escreva o algoritmo representado (em parte) pelo fluxograma ao lado em (pseudocódigo) Portugol, fazendo uso da estrutura SE Aninhado. 2-Realize o Teste de Mesa deste algoritmo, simulando a entrada de valores diferentes para as notas que são utilizadas para cálculo da média. EXERCÍCIO Dica: Lembre-se da indentação do seu código
  • 88. 88 Estruturas de Controle: Condicional (Decisão) SE composto (encadeado ou aninhado) Problema: Categoria de Atletas Suponha que um clube esportivo está realizando o cadastro de atletas e precisa classificá-los de acordo com sua categoria, de maneira que ao final o algoritmo mostre na tela: “Fulano, você se enquadra na categoria: ...” As faixa de idade para classificação são: Infantil (até 9 anos) Juvenil (de 9 a 15 anos) Junior (de 16 a 18 anos) Adulto (maior que 18 anos) Você dever representar esta algoritmo em: 1- Fluxograma 2- PseudoCódigo Lembrem-se: só se aprende Programação PRATICANDO MUITO !
  • 89. 89 Operadores Lógicos Os operadores lógicos permitem que mais de uma condição seja testada em uma única expressão, ou seja, pode-se fazer mais de uma comparação (teste) ao mesmo tempo. Servem para combinar resultados de expressões relacionais, resultando em um valor final lógico (verdadeiro ou falso) Lembram-se dos conectivos lógicos e da tabela verdade ? Pags 69 Principais operadores lógicos
  • 90. 90 Operadores Precedência entre os operadores 1º Operadores Aritméticos 2º Operadores Relacionais 3º Operador NÃO 4º Operador E 5º Operador OU Portanto, sempre tenha atenção em expressões como: Supomos que a condição para trabalhar no serviço publico seja: F F V idade > 18 E passou_concurso = “S” OU parente_deputado = “S” F F V idade > 18 E (passou_concurso = “S” OU parente_deputado = “S”)
  • 91. 91 Operadores Lógicos A) Se (salario > 180) E (salário < 800) Então Escreva (“Salário válido para financiamento”) Senão Escreva(“Salário fora da faixa permitida para financiamento”) FimSe B) Se (idade < 18) OU (idade > 95) Então Escreva(“Você não pode fazer carteira de motorista”) Senão Escrever (“Você pode possuir carteira de motorista”) FimSe C) Se (idade > = 18) E (idade < = 95) E (aprovado_exame = 'sim') Então Escreva(“Sua carteira de motorista estará pronta em uma semana”) Senão Escreva(“Você não possui idade permitida ou não passou nos testes”) FimSe Exemplos com uso da estrutura SE
  • 92. 92 Estruturas de Controle: Condicional (Decisão) SE composto (com operadores Lógicos) Problema: Classificação de Triângulos 1) Lados do Triângulo: Solicite ao usuário o comprimento de cada um dos 3 lados de um triângulo, avise se de fato se trata de um triângulo. E se for o caso, classifique-o conforme as definições a seguir: Condição para ser triangulo: A soma de dois dos lados deve ser maior que um terceiro lado (em outras palavras, o comprimento de cada lado deve ser menor que a soma dos comprimentos de dois outros). Classificação: Equilátero: Três lados Iguais Isósceles: Dois lados Iguais Escaleno: Três lados Diferentes Represente seu algoritmo em: 1- Fluxograma 2- PseudoCódigo Lembrem-se: só se aprende Programação PRATICANDO MUITO !
  • 93. 93 Estruturas de Controle: Condicional (Decisão) SE composto (com operadores Lógicos) Problema: Categoria de Atletas (continuação 1) Agora suponha que para cadastrar os atletas é necessário realizar login no programa, e caso o login não seja feito corretamente, o programa deve mostrar: “O par usuário/senha não confere ...” Dado que, seu programa somente possui dois usuários cadastrados: Usuario: admin senha 123 Usuário: tecnico senha abc Dica 1: utilize constantes para armazenar usuários e senhas. Dica 2: utilize operadores lógicos (E, OU para checar a senha) Represente seu algoritmo em: 1- PseudoCódigo Lembrem-se: só se aprende Programação PRATICANDO MUITO !
  • 94. 94 Estruturas de Controle: Condicional (Decisão) ESCOLHA CASO (ou múltipla escolha) (também chamada de AVALIE/QUANDO) É uma solução elegante quanto se tem várias estruturas de decisão (SE-ENTÃO-SENÃO) aninhadas. Ela compara por igualdade o resultado de uma única expressão, com vários valores escalares para cada “Caso”. SINTAXE:
  • 95. 95 Estruturas de Controle: Condicional (Decisão) ESCOLHA CASO Exemplo: No caso de Origem = 3, o programa pula diretamente para esta instrução, e depois vai para o fimescolha.
  • 96. 96 Estruturas de Controle: Condicional (Decisão) ESCOLHA CASO Escolha Caso Escreva o algoritmo representado no fluxograma ao lado em (pseudocódigo) Portugol, fazendo uso da estrutura Escolha/Caso. EXERCÍCIO Lembrem-se: só se aprende Programação PRATICANDO MUITO !
  • 97. 97 Estruturas de Controle: Condicional (Decisão) ESCOLHA CASO Problema: Calculadora Tomando como base o problema da página: Testando Algoritmos – Exemplo: Calculadora. Agora é desejável que o usuário também informe qual das 4 operações ele deseja que a calculadora realize. Você deverá utilizar a estrutura CASO para determinar qual das operações deverá ser realizada, e então, mostrar o resultado da operação. Lembrem-se: só se aprende Programação PRATICANDO MUITO ! EXERCÍCIO
  • 98. 98 Estruturas de Controle: Repetição o Nos exemplos e exercícios que vimos até agora, sempre foi possível resolver os problemas com uma sequência de instruções que eram executadas apenas uma vez. o Uma estrutura de repetição permite que uma sequência de instruções seja executada um número vezes pré-determinado várias vezes, ou até/enquanto uma condição seja verdadeira. o Ou seja, repete-se um conjunto de instruções sem que seja necessário escrevê-las várias vezes. o Essas estruturas de repetição também são chamadas de Laços ou Loops.
  • 99. 99 Estruturas de Controle: Repetição Tipos de estruturas de repetição: o Repetição contada (definida) • Número pré-determinado (estrutura PARA) o Repetição condicional (indefinida) • Com teste lógico no início (estrutura ENQUANTO) • Com teste lógico no final (estrutura REPITA)
  • 100. 100 Estruturas de Controle: Repetição para quem não conhece as estruturas de repetição Exemplo: Problema: Dizer “Alô Mundo” 12 vezes Sem o uso de uma estrutura de repetição teríamos: Algoritmo Alô Mundo Var Inicio Escreva (“Alô Mundo”) Escreva (“Alô Mundo”) Escreva (“Alô Mundo”) Escreva (“Alô Mundo”) Escreva (“Alô Mundo”) Escreva (“Alô Mundo”) Escreva (“Alô Mundo”) Escreva (“Alô Mundo”) Escreva (“Alô Mundo”) Escreva (“Alô Mundo”) Escreva (“Alô Mundo”) Escreva (“Alô Mundo”) Fim
  • 101. 101 Estruturas de Controle: Repetição Para PARA <variável contadora> DE <valor inicial> ATE <valor final> [PASSO <valor de incremento>] FAÇA <instruções a serem executadas repetidamente até a <variável contadora> atingir o valor final> FIM-PARA SINTAXE:
  • 102. 102 Estruturas de Controle: Repetição Para Problema: Dizer “Alô Mundo” 12 vezes Algoritmo Alô Mundo Var nconta: inteiro Inicio PARA nconta DE 1 ATE 12 FACA Escreva (“Alô Mundo”) ...... FIMPARA Fim Algoritmo Alô Mundo Var Inicio Escreva (“Alô Mundo”) Escreva (“Alô Mundo”) Escreva (“Alô Mundo”) Escreva (“Alô Mundo”) Escreva (“Alô Mundo”) Escreva (“Alô Mundo”) Escreva (“Alô Mundo”) Escreva (“Alô Mundo”) Escreva (“Alô Mundo”) Escreva (“Alô Mundo”) Escreva (“Alô Mundo”) Escreva (“Alô Mundo”) Fim Instruções sequenciais Instruções com repetição
  • 103. 103 Estruturas de Controle: Repetição Para 1) Exibir na tela a seguintes mensagens: Número 1 Número 2 . . . Numero 100 2) Agora, o usuário da sua Calculadora (escolha caso) deseja realizar 10 cálculos. Ou seja, depois de executar a operação escolhida pelo usuário, seu algoritmo não deve simplesmente mostrar o resultado e chegar ao fim. Ou seja, o programa deve ficar à disposição do usuário para realizar mais 9 outros cálculos. 3) Exibir cada um dos números pares a partir de 2 até um número informado pelo usuário. E ao final exibir a soma desses números. EXERCÍCIO
  • 104. 104 Estruturas de Controle: Repetição Enquanto ENQUANTO <expressão booleana> FAÇA <instruções a serem executadas enquanto a condição lógica (booleana) resultar em VERDADEIRO> FIM-ENQUANTO SINTAXE: A <expressão lógica> é verificada logo na entrada de cada repetição. Portanto, pode ser que as instruções jamais sejam executadas
  • 105. 105 Estruturas de Controle: Repetição Enquanto Algoritmo Alô Mundo Var nconta: inteiro Inicio nconta <- 1 ENQUANTO (nconta <= 12) FACA Escreva (“Alô Mundo”) ...... nconta <- nconta + 1; FIMENQUANTO Fim Problema: Dizer “Alô Mundo” 12 vezes (agora com ENQUANTO) Dica: A estrutura PARA seria mais adequada para a implementação deste problema Inicialização da Variável de controle Expressão/Condição Lógica (booleana) Instrução que afeta a expressão lógica: Neste caso é uma alteração no valor da variável de controle. Caso seja omitido/esquecido, haverá um LOOP INFINITO
  • 106. 106 Estruturas de Controle: Repetição Enquanto 1) Agora, no seu programa “Categoria de Atletas”, após a seleção cada atleta, o usuário deve ter a opção de continuar fazendo o cadastro de vários outros atletas ou finalizar o programa. E ao final do programa, você deve exibir: “De um total de X atletas selecionados, o atleta mais velho é FULANO”. Dica: pergunte ao usuário “Deseja registrar mais um Atleta ? (“SIM” ou “NÃO”) 2) Mostre na tela cada um do números impares a partir do número 1, você deve parar quanto a soma desses números ultrapassar o limite de 1000. No final exibir: “A soma dos números impares de 1 até X é de Y” EXERCÍCIO
  • 107. 107 Estruturas de Controle: Repetição Repita REPITA <instruções a serem executadas repetidamente até a expressão booleana retornar VERDADEIRO> ATÉ <expressão booleana> SINTAXE: A <expressão lógica> somente é verificada no final de cada repetição. Portanto, as instruções são executadas pelo menos 1 vez.
  • 108. 108 Estruturas de Controle: Repetição Repita Algoritmo Alô Mundo Var quermais: string Inicio REPITA Escreva (“Alô Mundo”) ...... ESCREVA(“Deseja continuar ? S ou N:”); LEIA(quermais); ATE (quermais = “N”) Fim Problema: Dizer “Alô Mundo”, pelo menos uma vez e quantas vezes mais o usuário quiser Não há a obrigatoriedade de Inicialização da Variável de controle Expressão/Condição Lógica (booleana) Instrução que afeta a expressão lógica: Neste caso é uma instrução de entrada do usuário, que altera a variável de controle. Caso seja omitido/esquecido, haverá um LOOP INFINITO
  • 109. 109 Estruturas de Controle: Repetição: Repita 1) Adapte o seu algoritmo Calculadora, de maneira que sempre que o usuário informar os valores 0 (zero) para os dois números, o programa é finalizado, não permitindo mais a realização de novos cálculos. Ao final exibir a mensagem: “Calculadora Finalizada pelo usuário !!!”. 2) Utilize o problema de “números pares”. Mas agora você não deve mostra na tela os números múltiplos de 3. Além disso, a cada múltiplo de dez, você deve dar a seguinte opção ao usuário: “Deseja continuar com a exibição dos números ? (S ou N)“. E ao final exibir: “Programa Finalizado pelo usuário !!!”. 3) Realize o Teste de Mesa dos algoritmos acima EXERCÍCIO
  • 110. 110 Estruturas de Controle: Repetição Problemas propostos 1) Potência: Supondo que a linguagem de programação que você utiliza não possui operador de potenciação. Então, utilize estrutura de repetição para calcular a potência de um número, o usuário deve informar a base e o expoente, e o programa deve exibir o resultado. (realize o teste de mesa) 2) Progressões Aritmética e Geométrica: Lembrando: PA: é uma sequência cujo o próximo termo é a soma do número antecessor com a razão da PA. PG: é uma sequência cujo o próximo termo é o produto do número antecessor pela a razão da PG. Assim, solicite ao usuário o primeiro termo e a razão. Então, exiba cata termo, do primeiro ao décimo, linha a linha, ex.: 2º Termo: P.A.: 7 e P.G.: 12. E no final seu algoritmo deve exibir a sequencia completa separada por virgula, tanto da P.A. como da PG. Veja o exemplo da ilustração abaixo com apenas 6 termos. Exemplo: Primeiro termo: 3 Razão: 4
  • 111. 111 Curiosidades A Sequência de Fibonacci “Os números preferidos pela Natureza” É uma sucessão de números que, misteriosamente, aparece em muitos fenômenos da natureza. Descrita no final do século 12 pelo italiano Leonardo Fibonacci, ela é infinita e começa com 0 e 1. Os números seguintes são sempre a soma dos dois números anteriores. Portanto, o inicio da sequencia é: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233....
  • 112. 112 Curiosidades A Sequência de Fibonacci A razão Áurea “O número de Ouro” Artes Esse recurso matemático também foi uma das principais marcas do Renascimento. A Mona Lisa, de Leonardo da Vinci, usa a razão na relação entre tronco e cabeça e entre elementos do rosto. Arquitetura Os gregos já conheciam a proporção, embora não a fórmula para defini-la. A largura e a altura da fachada do Paternon, templo do século V a.C. estão na proporção de 1 para 1,618. As Grandes Pirâmides Mais um mistério: cada bloco é 1,618 vezes maior que o bloco do nível imediatamente acima. Em algumas, as câmaras internas têm comprimento 1,618 vezes maior que sua largura. Outra curiosidade é que os termos da sequência também estabelecem a chamada “proporção áurea”, muito usada na arte, na arquitetura e no design por ser considerada agradável aos olhos. Seu valor é de 1,618 e, quanto mais você avança na sequência de Fibonacci, mais a divisão entre um termo e seu antecessor se aproxima desse número.
  • 113. 113 Estruturas de Controle: Repetição Problemas propostos 3) Sequencia de Fibonacci: Solicite ao usuário a quantidade de números de Fibonacci que ele deseja ver, e então mostre a sequencia de Fibonacci até o número dado pelo usuário. Exiba cata número, linha a linha, ex.: 1º Número de Fibonacci: X. E no final seu algoritmo deve exibir a sequencia completa separada por virgula.
  • 114. 114 Estruturas de Controle: Repetição A instrução: volte (utilizado dentro de estruturas de repetição)
  • 115. 115 Estruturas de Controle: Repetição A instrução: interrompa (utilizado dentro de estruturas de repetição)
  • 117. 117 Bibliografia/Materiais  Ciência da Computação - Uma Visão Abrangente 11ª Edição J. Glenn Brookshear ed. Bookman  Introdução a Lógica Para Ciência da Computação - Jair Minoro Abe; João Inácio Da Silva Filho; Alexandre Scalzitti, ed. Arte e Ciência  Site http://www.infoescola.com/  Site: http://www.dicasdeprogramacao.com.br/  Curso Básico de Lógica de Programação - Paulo Sérgio de Moraes Unicamp: Link: http://www.inf.ufsc.br/~vania/teaching/ine5231/Logica.pdf  Slides Prof. Fernando M. Quinhã Pereira Link: http://pt.slideshare.net/marciapoposki/linguagem-de-programao-46262273  Slides Prof. Mauro Jansen Link: http://pt.slideshare.net/MauroJansen1/algoritmos-e-lp-parte3pseudocdigo
  • 118. 118 Mais Links sobre Linguagens de Programação  http://www.dialetodigital.com/blog/conteudos-programacao/