lógica de programação teoria - professor rogerão araújo · rogerioaraujo.wordpress.com –...
TRANSCRIPT
rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - [email protected]
1
Lógica de Lógica de ProgramaçãoProgramação
TeoriaTeoria
rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - [email protected]
2
TópicosTópicos● Algoritmos
● Critérios para algoritmos● Regras básicas para construção de um algoritmo● Forma geral de um algoritmo
● Exemplo 1 de algoritmo● Variáveis e Constantes
● Variáveis e Constantes x Garagens de carros● Regras para nomes de Variáveis e Constantes
● Itens importantes para um algoritmo● Exemplo 2 de algoritmo
rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - [email protected]
3
TópicosTópicos● Tipos de dados
● Classificações de tipos de dados● Tipos de dados primitivos● Operações permitidas para tipos inteiro e real● Operações div e mod● Operadores de comparação para tipos inteiro e real● Operadores de comparação para tipo caractere● Precedência dos operadores aritméticos● Operações permitidas para tipos lógicos● Tabela-verdade para os operadores lógicos● Precedência dos operadores lógicos
● Exemplo 3 de algoritmo
rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - [email protected]
4
TópicosTópicos● Exemplo 4 de algoritmo● Marco - Questões● Referências
rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - [email protected]
5
AlgoritmosAlgoritmos● O que é um algoritmo?
● É um conjunto finito de passos formalmente definidos para resolução de um problema ou tarefa
● É uma sequência lógica que pode ter um conjunto de valores de entrada para produzir um conjunto de valores de saída
● Corresponde a uma descrição de um padrão de comportamento expresso em termos de um conjunto finito de ações
● O problema solucionado por algoritmo deve ser:● Claro● Bem definido
rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - [email protected]
6
AlgoritmosAlgoritmos
EntradaEntrada ProcessamentoProcessamento SaídaSaída
rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - [email protected]
7
AlgoritmosAlgoritmos
EntradaEntrada ProcessamentoProcessamento SaídaSaída
rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - [email protected]
8
Critérios para algoritmosCritérios para algoritmos● Entrada:
● Zero ou mais valores de entrada● Saída:
● Pelo menos um valor é produzido● Clareza:
● Toda instrução deve ser clara e não ambígua● Efetividade:
● Toda instrução deve ser executável● Finito:
● O algoritmo deve ter um conjunto finito de passos
rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - [email protected]
9
Critérios para algoritmosCritérios para algoritmos
EntradaEntrada
ClarezaClareza
SaídaSaída
FinitoFinito
EfetividadeEfetividade
rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - [email protected]
10
Regras básicas para construção de um algoritmoRegras básicas para construção de um algoritmo● Usar somente um verbo por frase ● Escrever de uma forma simples para que possa ser entendido
facilmente● Até por pessoas que não trabalham na área
● Usar frases● Curtas● Simples
● Ser objetivo ● Procurar usar palavras que não tenham sentido dúbio
rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - [email protected]
11
Forma geral de um algoritmoForma geral de um algoritmo● Algoritmo <nome do algoritmo>;
● const– <identificador> = <valor>;
● var– <identificador>: <tipo>;
● início– <lista de comandos ou instruções>;
● fim
rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - [email protected]
12
Exemplo 1 de algoritmoExemplo 1 de algoritmo● Algoritmo preparar macarrão instantâneo;
● var– macarrão: instantâneo;
● início– Coloque o macarrão em um panela com água;– Enquanto não der 3 minutos de duração:
● Deixe o macarrão fervendo na água;– Adicione o tempero que vem junto com o macarrão;– Se o tempero não for o suficiente então:
● Adicione ingredientes a mais como legumes, verduras ou queijo;– Coloque em um prato;– Sirva;
● fim
rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - [email protected]
13
Variáveis e ConstantesVariáveis e Constantes● Variáveis e Constantes são recipientes que armazenam
informações de um determinado tipo● Recipiente = endereços de memória
● A diferença entre variáveis e constantes:● As informações contidas nas variáveis podem ser modificadas no
decorrer de um algoritmo● As informações relacionadas a constantes não podem
rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - [email protected]
14
Variáveis e ConstantesVariáveis e Constantes● Declaração de variáveis:
● var– <identificador1>, <identificador2>, ...: <tipo1>;– <identificador3>, <identificador4>, ...: <tipo2>;
● Declaração de constantes:● const
– <identificador1> = <valor1>;– <identificador2> = <valor2>;– <identificadorN> = <valorN>;
● O que define o tipo de uma constante é o tipo de valor atribuído a ela
rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - [email protected]
15
Variáveis e Constantes x Garagens de carrosVariáveis e Constantes x Garagens de carros● Informação
● Carro● Variáveis
● Garagem numerada com rotatividade de carros● Constantes
● Garagem também identificada, porém sendo particular para apenas um carro de colecionador– Coloquei esse exemplo, pois o carro nunca sairá da garagem
rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - [email protected]
16
Variáveis e Constantes x Garagens de carrosVariáveis e Constantes x Garagens de carros
InformaçãoInformação
Variáveis e ConstantesVariáveis e Constantes
rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - [email protected]
17
Regras para nomes de Variáveis e ConstantesRegras para nomes de Variáveis e Constantes● Não podem:
● Ter nomes de palavras reservadas (comandos de uma linguagem de programação específica)
● Possuir espaços em branco● Devem iniciar com:
● Letra● Sublinhado (_)
● Podem ter como demais caracteres:● Letras● Números● Sublinhado
● Para algoritmos, a escolha de letras maiúsculas ou minúsculas é indiferente
rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - [email protected]
18
Itens importantes para um algoritmoItens importantes para um algoritmo
ItemItem SímboloSímbolo DescriçãoDescrição
Dois pontos : Declara o tipo de uma variável no momento de sua criação
Igualdade = Atribui um valor a uma constante no momento de sua criação
Atribuição := ou ← Atribui a uma variável um valor ou resultado de alguma operação que retorna valor
Ponto e vírgula ; Indica a finalização de uma linha de instrução
rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - [email protected]
19
Exemplo 2 de algoritmoExemplo 2 de algoritmo● Algoritmo somaDoisNumerosInteiros;
● var– num1, num2, total: inteiro;
● início– leia(num1, num2);– total := num1 + num2;– escreva(“A soma dos dois números é”, total);
● fim
rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - [email protected]
20
Tipos de dadosTipos de dados● São conjuntos de valores que podem:
● Pertencer a uma constante● Ser assumidos por uma variável ou expressão● Ser gerados por uma função
● Alguns autores usam várias classificações, porém ficaremos com duas:● Classificação 1 (mais usual e que será a classificação seguida
neste material):– Primitivos– Derivados
● Classificação 2 (cobrada principalmente pelo CESPE):– Simples (também chamados de Escalares)– Estruturados (também chamados de Compostos)
rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - [email protected]
21
Classificações de tipos de dadosClassificações de tipos de dados
Classificação 1Classificação 1 TiposTipos Classificação 2Classificação 2
Primitivos
inteiro
Simples ou Escalares
reallógico
caractere
Derivados
enumeradossubconjuntos
vetores ou arrays
Estruturados ou Compostos
registrosarquivos
conjuntos ou setsreferências ou ponteiros
string
rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - [email protected]
22
Tipos de dados primitivosTipos de dados primitivos
TipoTipo Exemplo de conteúdoExemplo de conteúdo
inteiro -19, -6, -2, 0, 3, 7, 256
real -90.42, -32.87, 0, 2, 4.89
lógico V ou F
caractere A, a, B, b, C, c, !, ?, /
rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - [email protected]
23
Tipos de dados primitivosTipos de dados primitivos● Os valores possíveis para o tipo inteiro são os números
inteiros● Negativos● Zero● Positivos
● Os valores para o tipo real são números racionais● Normalmente representados por:
– Uma parte inteira– Uma parte fracionária
rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - [email protected]
24
Tipos de dados primitivosTipos de dados primitivos● O tipo lógico consiste de dois valores:
● Verdadeiro● Falso
● O tipo caractere consiste de:● Dígitos decimais (0 a 9)● Letras (A a Z)● Sinais especiais (espaço em branco, sinais de pontuação, etc)
rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - [email protected]
25
Operações permitidas para tipos inteiro e realOperações permitidas para tipos inteiro e realOperaçãoOperação SímboloSímbolo inteirointeiro realreal
potência pot raiz raiz
raiz quadrada SQRT soma +
subtração - multiplicação * divisão inteira div
resto da divisão resto ou mod divisão /
rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - [email protected]
26
Operações div e modOperações div e mod● div retorna o quociente inteiro da divisão entre dois números
inteiros● 19 div 3 = 6
● mod retorna o resto da divisão entre dois números inteiros● 19 mod 3 = 1
19 31 6
mod div
rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - [email protected]
27
Operadores de comparaçãoOperadores de comparação
OperadorOperador SímboloSímbolo inteirointeiro realreal caracterecaractere
Igual a = Diferente de ≠ Menor que <
Menor que ou igual a ≤ Maior que >
Maior que ou igual a ≥
rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - [email protected]
28
Precedência dos operadores aritméticosPrecedência dos operadores aritméticos
Ordem de precedênciaOrdem de precedência Exemplo de conteúdoExemplo de conteúdo
1 ()
2 pot, raiz
3 *, /, div, mod
4 +, -
rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - [email protected]
29
Operações permitidas para tipos lógicosOperações permitidas para tipos lógicos
OperaçãoOperação TipoTipo SímboloSímbolo
e (conjunção) Binário e ou &
ou (disjunção) Binário ou ou |
não (negação) Unário not ou !
rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - [email protected]
30
Tabela-verdade para os operadores e, ou e nãoTabela-verdade para os operadores e, ou e não
AA BB A e BA e B A ou BA ou B não (A)não (A)
V V V V F
V F F V F
F V F V V
F F F F V
rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - [email protected]
31
Precedência dos operadores lógicosPrecedência dos operadores lógicos
Ordem de precedênciaOrdem de precedência Exemplo de conteúdoExemplo de conteúdo
1 ()
2 não
3 e, ou
rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - [email protected]
32
Exemplo 3 de algoritmoExemplo 3 de algoritmo● Algoritmo mediaFinal;
● var– nota1, nota2, nota3, nota4: inteiro;– media: real;
● início– leia(nota1, nota2, nota3, nota4);– media := (nota1 + nota2 + nota3 + nota4) / 4;– escreva(“A média das notas é”, media);
● fim
rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - [email protected]
33
Exemplo 4 de algoritmoExemplo 4 de algoritmo● Algoritmo areaCircunferencia;
● const– PI = 3,14;
● var– raio, area: real;
● início– leia(raio);– area := PI * SQR(raio);– escreva(“A área da circunferência é”, area);
● fim
rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - [email protected]
34
Marco - Questões!!!Marco - Questões!!!● [RGA 2011] Algoritmo é um conjunto infinito de passos
formalmente definidos para resolução de um problema ou tarefa.
● [RGA 2011] O problema solucionado por algoritmo deve ser claro e bem definido.
rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - [email protected]
35
Marco - Questões!!!Marco - Questões!!!● [RGA 2011] Algoritmo é um conjunto infinito de passos
formalmente definidos para resolução de um problema ou tarefa.● Gabarito: ERRADO.
● [RGA 2011] O problema solucionado por algoritmo deve ser claro e bem definido.● Gabarito: CERTO.
rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - [email protected]
36
Marco - Questões!!!Marco - Questões!!!● [RGA 2011] Quais são os critérios para algoritmos?
rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - [email protected]
37
Marco - Questões!!!Marco - Questões!!!● [RGA 2011] Quais são os critérios para algoritmos?
● Entrada:– Zero ou mais valores de entrada
● Saída:– Pelo menos um valor é produzido
● Clareza:– Toda instrução deve ser clara e não ambígua
● Efetividade:– Toda instrução deve ser executável
● Finito:– O algoritmo deve ter um conjunto finito de passos
rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - [email protected]
38
EntradaEntrada
ClarezaClareza
SaídaSaída
FinitoFinito
EfetividadeEfetividade
Marco - Questões!!!Marco - Questões!!!
rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - [email protected]
39
● [RGA 2011] Em um algoritmo, podemos usar mais de um verbo por frase.
● [RGA 2011] Qual é a forma geral de um algoritmo?
Marco - Questões!!!Marco - Questões!!!
rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - [email protected]
40
● [RGA 2011] Em um algoritmo, podemos devemos usar mais de um verbo por frase.● Gabarito: ERRADO.
● [RGA 2011] Qual é a forma geral de um algoritmo?● Algoritmo <nome do algoritmo>;
– const● <identificador> = <valor>;
– var● <identificador>: <tipo>;
– início● <lista de comandos ou instruções>;
– fim
Marco - Questões!!!Marco - Questões!!!
rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - [email protected]
41
● [RGA 2011] Para declarar variáveis, fazemos da seguinte forma: <identificador1>, <identificador2>, ...= <tipo1>;. Para constantes, usamos: <identificador1>: <valor1>;.
● [RGA 2011] Nomes de variáveis e constantes podem começar com letras ou sublinhado.
Marco - Questões!!!Marco - Questões!!!
rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - [email protected]
42
● [RGA 2011] Para declarar variáveis, fazemos da seguinte forma: <identificador1>, <identificador2>, ...= <tipo1>;. Para constantes, usamos: <identificador1>: <valor1>;.● Gabarito: ERRADO.● Para declarar variáveis (usamos dois pontos):
– <identificador1>, <identificador2>, ...: <tipo1>;● Para constantes (usamos igual a):
– <identificador1> = <valor1>;● [RGA 2011] Nomes de variáveis e constantes podem começar
com letras ou sublinhado.● Gabarito: CERTO.
Marco - Questões!!!Marco - Questões!!!
rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - [email protected]
43
Itens importantes para um algoritmoItens importantes para um algoritmo
ItemItem SímboloSímbolo DescriçãoDescrição
Dois pontos :
Igualdade =
Atribuição := ou ←
Ponto e vírgula ;
rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - [email protected]
44
Itens importantes para um algoritmoItens importantes para um algoritmo
ItemItem SímboloSímbolo DescriçãoDescrição
Dois pontos : Declara o tipo de uma variável no momento de sua criação
Igualdade = Atribui um valor a uma constante no momento de sua criação
Atribuição := ou ← Atribui a uma variável um valor ou resultado de alguma operação que retorna valor
Ponto e vírgula ; Indica a finalização de uma linha de instrução
rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - [email protected]
45
Classificações de tipos de dadosClassificações de tipos de dados
Classificação 1Classificação 1 TiposTipos Classificação 2Classificação 2inteiro
reallógico
caractereenumeradossubconjuntos
vetores ou arraysregistrosarquivos
conjuntos ou setsreferências ou ponteiros
string
rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - [email protected]
46
Classificações de tipos de dadosClassificações de tipos de dados
Classificação 1Classificação 1 TiposTipos Classificação 2Classificação 2
Primitivos
inteiro
Simples ou Escalares
reallógico
caractere
Derivados
enumeradossubconjuntos
vetores ou arrays
Estruturados ou Compostos
registrosarquivos
conjuntos ou setsreferências ou ponteiros
string
rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - [email protected]
47
● [RGA 2011] 15 div 2 = 7 e 15 mod 2 = 1.
Marco - Questões!!!Marco - Questões!!!
rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - [email protected]
48
● [RGA 2011] 15 div 2 = 7 e 15 mod 2 = 1.● Gabarito: CERTO.
Marco - Questões!!!Marco - Questões!!!
rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - [email protected]
49
Precedência dos operadores aritméticosPrecedência dos operadores aritméticos
Ordem de precedênciaOrdem de precedência Exemplo de conteúdoExemplo de conteúdo
1
2
3
4
rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - [email protected]
50
Precedência dos operadores aritméticosPrecedência dos operadores aritméticos
Ordem de precedênciaOrdem de precedência Exemplo de conteúdoExemplo de conteúdo
1 ()
2 pot, raiz
3 *, /, div, mod
4 +, -
rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - [email protected]
51
Tabela-verdade para os operadores e, ou e nãoTabela-verdade para os operadores e, ou e não
AA BB A e BA e B A ou BA ou B não (A)não (A)
V V
V F
F V
F F
rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - [email protected]
52
Tabela-verdade para os operadores e, ou e nãoTabela-verdade para os operadores e, ou e não
AA BB A e BA e B A ou BA ou B não (A)não (A)
V V V V F
V F F V F
F V F V V
F F F F V
rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - [email protected]
53
Precedência dos operadores lógicosPrecedência dos operadores lógicos
Ordem de precedênciaOrdem de precedência Exemplo de conteúdoExemplo de conteúdo
1
2
3
rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - [email protected]
54
Precedência dos operadores lógicosPrecedência dos operadores lógicos
Ordem de precedênciaOrdem de precedência Exemplo de conteúdoExemplo de conteúdo
1 ()
2 não
3 e, ou
rogerioaraujo.wordpress.com – twitter: @rgildoaraujo - [email protected]
55
ReferênciasReferências● MEDINA, Marco e FERTIG, Cristina. Algoritmos e Programação:
Teoria e Prática. 2ª Edição. São Paulo: Novatec Editora, 2006.● Tipos de dados estruturados. Disponível em:
http://www.csgnet.org/documentosONLINE/apontamentos/pascal/pascal2_p4.pdf
● Estrutura de Dados. Disponível em: http://200.201.81.50/~adair/ED/Notas%20Aula/Aulas%20Estruturas%20de%20Dados.pdf
● Tipos de Dados. Disponível em: http://www.nuperc.unifacs.br/Members/thales.castro/arquivos/aulas/TiposDeDados.ppt