Escolar Documentos
Profissional Documentos
Cultura Documentos
Agenda
` ` ` ` `
Introduo
`
Lgica
www.edeyson.com.br
Introduo
Introduo
`
O que a Lgica?
`
Maneira particular de raciocinar Conjunto de regras e princpios que orientam, implcita ou explicitamente, o desenvolvimento de uma argumentao ou de um raciocnio, a resoluo de um problema Ramo da filosofia que cuida das regras do bem pensar, do pensar corretamente
`
Coerncia e Racionalidade
`
4
Introduo
`
Pensamento
`
Manifestao do conhecimento
` `
O conhecimento busca a verdade preciso estabelecer regras para que essa meta possa ser atingida
Ordem da razo, do pensamento A forma como as pessoas raciocinam estudo da psicologia cognitiva
www.edeyson.com.br
Introduo
`
Mtodo dedutivo
`
Modo de raciocnio lgico que faz uso da deduo para obter uma concluso a respeito de determinadas premissas
`
O raciocnio dedutivo se caracteriza por apresentar concluses que so verdadeiras caso todas as premissas sejam verdadeiras
conduz particularidade de uma lei geral previamente conhecida; organiza e especifica o conhecimento que j se possui; tem como ponto de partida o plano do inteligvel.
www.edeyson.com.br
Introduo
`
Mtodo dedutivo
`
Exemplos
` `
` `
` `
Sofisma: Argumento que parte de premissas verdadeiras, ou tidas como verdadeiras, e chega a uma concluso inadmissvel.
www.edeyson.com.br
Introduo
`
Mtodo indutivo
`
O ferro conduz eletricidade e um metal; O ouro conduz eletricidade e um metal; O cobre conduz eletricidade e um metal;
Logo, os metais conduzem eletricidade.
www.edeyson.com.br
Definies Bsicas
Definies Bsicas
`
Raciocnio Lgico
`
O que ?
` ` `
Eu sei pensar!!
`
10
Definies Bsicas
`
Objetivos da Lgica
`
Lgica no dia-a-dia
` `
A gaveta est fechada A caneta est dentro da gaveta Como fazer para pegar a caneta?
Edeyson Andrade Gomes www.edeyson.com.br
11
Definies Bsicas
`
Exerccio
`
1. Dividir 21 garrafas (opacas, com mesma capacidade volumtrica e com formas diferentes) de vinho (7 Cheias, 7 Vazias e 7 pelo meio) entre 3 pessoas. Cada uma deve receber a mesma quantidade de garrafas e de vinho. 2. Problemas das Laranjas
`
Contadas de 2 em 2, 3 em 3, 5 em 5 e 7 em 7.
Trs missionrios e trs canibais esto encalhados, numa ilha, com apenas um pequeno barco para chegar a terra firme.
` ` `
Os missionrios nunca devem estar em menor nmero do que os canibais, nem na ilha, nem em terra, nem durante o transporte. Existe uma nica canoa para duas pessoas. Todos devem atravessar. Como fazer a travessia?
Edeyson Andrade Gomes www.edeyson.com.br
12
Lgica de Programao
Lgica de Programao
`
O que um programa?
` `
Qual seu programa para o fim de semana? Como se programa a gravao de um canal na SKY?
Lgica de Programao
`
Programa
`
15
www.edeyson.com.br
Lgica de Programao
`
Algoritmo
` `
Conjunto de passos para atingir um objetivo, executar uma tarefa Como determinar uma seqncia coerente e vlida de passos?
`
Ordem do pensamento
Lgica
Exerccio:
` ` `
Trocar o pneu de um carro? Como determinar todos os divisores de N? Como determinar se N primo?
16
www.edeyson.com.br
Algoritmos
Algoritmos
`
O que necessrio?
` ` `
1. Descrio clara e precisa do problema; II. Definio de uma seqncia de passos que permitam a soluo de maneira automtica e repetitiva; III. Formatao dos dados:
Entrada e sada.
18
Algoritmos
`
Definio
`
Processo de clculo, ou de resoluo de um grupo de problemas semelhantes, em que se estipulam, com generalidade e sem restries, regras formais para a obteno do resultado, ou da soluo do problema. Conjunto de regras e operaes bem definidas e ordenadas, destinadas soluo de um problema, ou de uma classe de problemas, em um nmero finito de etapas. Dicionrio Aurlio
19
www.edeyson.com.br
Algoritmos
Dados de Entrada Dados de Sada
Receita: Indicao minuciosa sobre a quantidade dos ingredientes e a maneira de preparar um prato salgado ou doce. Dicionrio Aurlio
20 Edeyson Andrade Gomes www.edeyson.com.br
Algoritmos
`
Um algoritmo opera sobre um conjunto de entradas de modo a gerar uma sada til para o usurio
`
Finitude
`
Deve sempre terminar aps um nmero finito de passos Cada passo de um algoritmo deve ser precisamente definido
As aes devem ser definidas rigorosamente e sem ambigidades
Definio
`
Entradas
`
21
www.edeyson.com.br
Algoritmos
`
Um algoritmo deve ter uma ou mais sadas Um algoritmo deve ser efetivo Todas as operaes devem ser suficientemente bsicas de modo que possam ser executadas com preciso em um tempo finito por um humano usando papel e lpis
Efetividade
` `
22
www.edeyson.com.br
Algoritmos
`
Problema
` ` `
Existem duas vasilhas com capacidades de 9 e 4 litros, respectivamente As vasilhas no tem nenhum tipo de marcao, de modo que no possvel ter medidas como metade ou um tero. Mostre uma seqncia de passos que, usando as vasilhas de 9 e 4 litros, encha uma terceira vasilha de medida desconhecida com seis litros de gua
23
www.edeyson.com.br
Algoritmos
`
As rs foram treinadas para trocar de casas, mas sempre obedecendo as seguintes regras:
` ` `
elas podem pular para a casa vizinha (frente ou trs), se ela estiver vazia; elas podem pular sobre a r vizinha para uma casa livre (frente ou trs). Mostre como as rs podem chegar a seguinte posio final:
R 5 R 4 R 3 R 2 R 1
www.edeyson.com.br
24
Algoritmos
R 1 R 2 R 3 R 4 R 5
25
www.edeyson.com.br
Algoritmos
R 1 R 2 R 1 R 2 R 3 R 3 R 4 R 4 R 5 R 5
26
www.edeyson.com.br
Algoritmos
R 1 R 2 R 2 R 1 R 1 R 2 R 3 R 3 R 3 R 4 R 4 R 4 R 5 R 5 R 5
27
www.edeyson.com.br
Algoritmos
R 1 R 2 R 2 R 2 R 3 R 1 R 1 R 1 R 2 R 3 R 3 R 3 R 4 R 4 R 4 R 4 R 5 R 5 R 5 R 5
28
www.edeyson.com.br
Algoritmos
R 1 R 2 R 2 R 2 R 2 R 3 R 3 R 1 R 1 R 1 R 1 R 2 R 3 R 3 R 3 R 4 R 4 R 4 R 4 R 4 R 5 R 5 R 5 R 5 R 5
29
www.edeyson.com.br
Algoritmos
R 1 R 2 R 2 R 2 R 2 R 2 R 3 R 3 R 3 R 4 R 1 R 1 R 1 R 1 R 1 R 2 R 3 R 3 R 3 R 4 R 4 R 4 R 4 R 4 R 5 R 5 R 5 R 5 R 5 R 5
30
www.edeyson.com.br
Algoritmos
R 1 R 2 R 2 R 2 R 2 R 2 R 2 R 3 R 3 R 3 R 3 R 4 R 4 R 1 R 1 R 1 R 1 R 1 R 1 R 2 R 3 R 3 R 3 R 4 R 4 R 4 R 4 R 4 R 5 R 5 R 5 R 5 R 5 R 5 R 5
31
www.edeyson.com.br
Algoritmos
R 1 R 2 R 2 R 2 R 2 R 2 R 2 R 2 R 3 R 3 R 3 R 3 R 3 R 4 R 4 R 4 R 5 R 1 R 1 R 1 R 1 R 1 R 1 R 1 R 2 R 3 R 3 R 3 R 4 R 4 R 4 R 4 R 4 R 5 R 5 R 5 R 5 R 5 R 5 R 5
32
www.edeyson.com.br
Algoritmos
R 1 R 2 R 2 R 2 R 2 R 2 R 2 R 2 R 2 R 3 R 3 R 3 R 3 R 3 R 3 R 4 R 4 R 4 R 4 R 5 R 5 R 1 R 1 R 1 R 1 R 1 R 1 R 1 R 1 R 2 R 3 R 3 R 3 R 4 R 4 R 4 R 4 R 4 R 5 R 5 R 5 R 5 R 5 R 5 R 5
33
www.edeyson.com.br
Algoritmos
R 2 R 2 R 3 R 3 R 4 R 5 R 5 R 4 R 1 R 1
34
www.edeyson.com.br
Algoritmos
R 2 R 2 R 2 R 3 R 3 R 3 R 5 R 4 R 5 R 5 R 4 R 4 R 1 R 1 R 1
35
www.edeyson.com.br
Algoritmos
R 2 R 2 R 2 R 2 R 3 R 3 R 3 R 5 R 5 R 3 R 4 R 5 R 5 R 4 R 4 R 4 R 1 R 1 R 1 R 1
36
www.edeyson.com.br
Algoritmos
R 2 R 2 R 2 R 2 R 2 R 5 R 3 R 3 R 3 R 5 R 5 R 3 R 3 R 4 R 5 R 5 R 4 R 4 R 4 R 4 R 1 R 1 R 1 R 1 R 1
37
www.edeyson.com.br
Algoritmos
R 2 R 2 R 2 R 2 R 2 R 5 R 5 R 2 R 3 R 3 R 3 R 5 R 5 R 3 R 3 R 3 R 4 R 5 R 5 R 4 R 4 R 4 R 4 R 4 R 1 R 1 R 1 R 1 R 1 R 1
38
www.edeyson.com.br
Algoritmos
R 2 R 2 R 2 R 2 R 2 R 5 R 5 R 5 R 2 R 2 R 3 R 3 R 3 R 5 R 5 R 3 R 3 R 3 R 3 R 4 R 5 R 5 R 4 R 4 R 4 R 4 R 4 R 4 R 1 R 1 R 1 R 1 R 1 R 1 R 1
39
www.edeyson.com.br
Algoritmos
`
Simplificar problema
Problema:
`
40
www.edeyson.com.br
Algoritmos
`
Igualar o MenorSaldo ao saldo do Primeiro Cliente e ID identificao dele Testar todos os clientes Para cada cliente fazer:
Se o MenorSaldo for maior que o saldo do cliente testado, ento MenorSaldo = saldo do cliente e ID = identificao do cliente
Imprimir MenorSaldo e ID
41
www.edeyson.com.br
Algoritmos
`
Passos de Construo:
` ` `
Compreender o problema Identificar os dados de entrada e sada Determinar o que preciso para transformar dados de entrada em dados de sada:
` ` ` `
usar a estratgia do dividir para conquistar (top-down) observar regras e limitaes identificar todas as aes a realizar eliminar ambigidades
` ` `
42
www.edeyson.com.br
Algoritmos
`
subproblemas
` `
43
www.edeyson.com.br
Algoritmos
`
Um algoritmo uma descrio detalhada, passo a passo, de como resolver um problema ou executar uma tarefa.
`
A programao consiste na codificao precisa desse algoritmo segundo uma linguagem de programao especfica.
44
www.edeyson.com.br
Representao de Algoritmos
Representao de Algoritmos
`
Linguagem Natural
`
Fluxograma
`
Pseudo-linguagem
Os algoritmos so descritos atravs de uma linguagem intermediria entre a linguagem natural e uma linguagem de programao.
46
www.edeyson.com.br
Representao de Algoritmos
`
Linguagem Natural
`
Pegar um po Abrir o po ao meio Passar manteiga no po Colocar queijo no po Colocar presunto no po Colocar ovo frito no po Fechar o po
` `
47
Representao de Algoritmos
`
Linguagem Natural
`
Atribuir um valor para a varivel a; Atribuir um valor para a varivel b; Atribuir um valor para a varivel c; Calcular mdia como a soma de a, b e c dividida por 3. Imprimir a mdia.
48
www.edeyson.com.br
Representao de Algoritmos
`
Linguagem Natural
`
` `
A deve ser diferente de 0 deve ser maior que zero para ter razes reais
49
www.edeyson.com.br
Representao de Algoritmos
`
Linguagem Natural
`
Obter os coeficientes a, b e c Se a igual a zero, informar que esta uma equao de 1 grau e terminar o algoritmo Caso contrrio continue e faa
Calcular delta = b2 - 4ac Se delta for negativo, informar que a equao no tem razes reais e terminar o algoritmo Caso contrrio continue e faa
Calcular x1=(-b + raiz quadrada de delta)/(2a) Calcular x2=(-b raiz quadrada de delta)/(2a) Fornecer como resultado x1 e x2 Terminar o algoritmo.
50
Fluxogramas
51
Fluxogramas
`
Fluxograma um diagrama
` ` `
Representa o esquema de soluo de um problema Apresenta linha de raciocnio lgico Independente de linguagem de programao
`
Como transformar as solues dos dois problemas anteriores em programas? Como explicar o raciocnio lgico da soluo?
52
www.edeyson.com.br
Fluxogramas
`
O problema da manuteno 20 x 80
` ` `
53
www.edeyson.com.br
Fluxogramas
`
E o que so Fluxogramas?
` `
Representao Grfica
Incio e Fim de Fluxo
Processo
Exibio
Deciso
54
www.edeyson.com.br
Fluxogramas
`
Estruturas de Controle
55
www.edeyson.com.br
Estruturas de Controle
`
Seqncia
` `
Execuo de um conjunto de aes em srie. No existe a possibilidade de alterao da ordem de processamento das aes
56
www.edeyson.com.br
Estruturas de Controle
`
Tomada de deciso
`
O fluxo de processamento executa a Ao 1 apenas se o valor lgico da expresso avaliada no incio da estrutura for verdade
57
www.edeyson.com.br
Estruturas de Controle
`
Tomada de deciso
`
O fluxo de processamento segue por 1 das 2 vias, dependendo do valor lgico da expresso avaliada no incio da estrutura
58
www.edeyson.com.br
Estruturas de Controle
`
Tomada de deciso
`
O fluxo de processamento segue por 1 das N vias, dependendo do valor lgico da expresso avaliada no incio da estrutura
59
www.edeyson.com.br
Estruturas de Controle
`
H a necessidade de tomar uma deciso com base no valor lgico de uma expresso.
` ` `
A mesma ao ser executada repetidamente enquanto o resultado da expresso lgica se mantiver verdadeiro. O teste da expresso lgica precede a ao. O teste funciona como uma condio de parada das repeties.
60
www.edeyson.com.br
Estruturas de Controle
`
61
www.edeyson.com.br
Fluxogramas
`
Exemplo:
`
62
www.edeyson.com.br
Fluxogramas
63
www.edeyson.com.br
Fluxogramas
`
Exemplo:
`
` `
A deve ser diferente de 0 deve ser maior que zero para ter razes reais
64
www.edeyson.com.br
Fluxogramas
65
www.edeyson.com.br
Pseudo Linguagem
Pseudo Linguagem
`
Representao de algoritmos via linguagem prxima de uma linguagem de programao de alto nvel
` ` `
Pseudocdigo Sem regras de construo gramatical muito rgidas. Linguagem natural com limitao de escopo
` `
67
www.edeyson.com.br
Pseudo Linguagem
prog Equacao2oGrau int a, b, c, delta; real x1, x2; imprima "\nQual o valor de a? "; leia a; se (a == 0) { imprima "\nA equacao de primeiro grau. "; } senao { leia b; leia c; delta <- (b * b) - (4 * a * c); se (delta >= 0) { x1 <- ((-1 * b) + raiz(delta)) / (2 * a); x2 <- ((-1 * b) + raiz(delta)) / (2 * a); imprima "\nX1 = ", x1; imprima "\nX2 = ", x2; } senao { imprima "\nA equacao nao tem raizes reais"; } } fimprog 68 Edeyson Andrade Gomes www.edeyson.com.br
Pseudocdigo
VARIAVEIS S, C, I, A, MD : Inteiro; INICIO S C 0; 0; 1 AT 10 FAA
PARA I INICIO
Escreva('Digite um numero'); LER (a); SE a >=0 ENTO INICIO S C FIM SE; FIM PARA; MD FIM. S/C ESCREVER ('A mdia :', MD); S+a C+1
69
www.edeyson.com.br
Exerccio
70
Exerccio
`
Por exemplo: a = 3, b= 5, c = 3
`
Issceles
Edeyson Andrade Gomes www.edeyson.com.br
71
Linguagem Natural
`
Obter os lados a, b e c Se os trs lados so iguais, imprima que Equiltero Se dois lados so iguais, imprima que Issceles Se os trs lados so diferentes, imprima que Escaleno
72
www.edeyson.com.br
Linguagem Natural
`
Obter os lados a, b e c Se os trs lados so iguais, imprima que Equiltero Se apenas dois lados so iguais, imprima que Issceles Se os trs lados so diferentes, imprima que Escaleno
73
www.edeyson.com.br
74
www.edeyson.com.br
Linguagem Natural
`
Obter os lados a, b e c Se os trs lados so iguais, imprima que Equiltero Seno, se dois lados so iguais, imprima que Issceles Seno, imprima que Escaleno
75
www.edeyson.com.br
Linguagem Natural
`
Obter os lados a, b e c Se a = b e b = c, imprima que Equiltero Seno, se a = b ou b = c ou a = c, imprima que Issceles Seno, imprima que Escaleno
76
www.edeyson.com.br
Tringulos
77
www.edeyson.com.br
Linguagem Natural
`
Obter os lados a, b e c Se a = b e b = c, imprima que Equiltero Se a = b ou b = c ou a = c, imprima que Issceles Seno, imprima que Escaleno
Fim do Algoritmo Tringulos Resp: SIM O segundo SE sempre ser executado independente do resultado do primeiro SE. Neste caso, todo Equiltero ser Issceles.
Edeyson Andrade Gomes www.edeyson.com.br
` `
78
Exerccio
79
Exerccios
`
Ler trs nmeros e imprimir o maior deles. Ler cinco nmeros e imprimir o maior deles. Ler dez nmeros e imprimir o maior deles. Ler mil nmeros e imprimir o maior deles.
80
www.edeyson.com.br
Incio do Algoritmo
` ` ` ` ` ` ` `
O Maior nmero (chamado de Maior) inicia com o menor valor possvel Ler n1 Se Maior menor que n1, faa Maior igual a n1 Ler n2 Se Maior menor que n2, faa Maior igual a n2 Ler n3 Se Maior menor que n3, faa Maior igual a n3 Imprima Maior
Fim do Algoritmo
81 Edeyson Andrade Gomes www.edeyson.com.br
Incio do Algoritmo
` ` ` ` ` ` ` ` ` ` ` `
O Maior nmero inicia com o menor valor possvel Ler n1 Se Maior menor que n1, faa Maior igual a n1 Ler n2 Se Maior menor que n2, faa Maior igual a n2 Ler n3 Se Maior menor que n3, faa Maior igual a n3 Ler n4 Se Maior menor que n4, faa Maior igual a n4 Ler n5 Se Maior menor que n5, faa Maior igual a n5 Imprima Maior
Fim do Algoritmo
82 Edeyson Andrade Gomes www.edeyson.com.br
Incio do Algoritmo
` `
Imprima Maior
Fim do Algoritmo
83
www.edeyson.com.br
Fluxograma
84
www.edeyson.com.br
Fluxograma
85
www.edeyson.com.br
Incio do Algoritmo
O Maior nmero inicia com o menor valor possvel Faa 10 vezes
Ler n Se Maior menor que n, faa Maior igual a n
var i, n, maior : integer; begin maior := 0; for i := 1 to 10 do begin writeln('Digite um valor para n'); readln(n); if (maior < n) then maior := n; end; writeln('O maior valor eh: ', maior); readkey; end.
Imprima Maior
Fim do Algoritmo
86
www.edeyson.com.br
Incio do Algoritmo
O Maior nmero inicia com o menor valor possvel Faa 10 vezes
Ler n Se Maior menor que n, faa Maior igual a n
Imprima Maior
Fim do Algoritmo
begin maior := 0; i := 1; while (i <= 10) do begin writeln('Digite um valor para n'); readln(n); if (maior < n) then maior := n; i := i + 1; end; writeln('O maior valor eh: ', maior); readkey; end.
87
www.edeyson.com.br
Incio do Algoritmo
O Maior nmero inicia com o menor valor possvel Faa 10 vezes
Ler n Se Maior menor que n, faa Maior igual a n
Imprima Maior
Fim do Algoritmo
begin maior := 0; i := 1; repeat begin writeln('Digite um valor para n'); readln(n); if (maior < n) then maior := n; i := i + 1; end; until (i > 10); writeln('O maior valor eh: ', maior); readkey; end.
88
www.edeyson.com.br
Exerccio
89
Exerccio
`
Ler trs nmeros e imprimi-los em ordem crescente. Ler cinco nmeros e imprimi-los em ordem crescente. Ler dez nmeros e imprimi-los em ordem crescente. Ler mil nmeros e imprimi-los em ordem crescente.
90
www.edeyson.com.br
Maior = 0, Menor = 0, Meio = 0 Ler N1, N2, N3 Se N1 > N2 ento, Maior = N1 Seno, Maior = N2 Se Maior < N3 ento, Maior = N3
91
www.edeyson.com.br
Maior = 0, Menor = 0, Meio = 0 Ler N Maior = N, Menor = N, Meio = N Ler N Se N > Maior, ento Maior = N Seno, Meio = N, Menor = N Ler N Se N > Maior, ento Meio = Maior e Maior = N Seno, Se N > Meio, ento Meio = N Seno, Menor = N
92 Edeyson Andrade Gomes www.edeyson.com.br
Maior = 0, Menor = 0, Meio = 0 Ler N1, N2, N3 Se N1 > N2 ento, Menor = N2 Seno, Menor = N1 Se Menor > N3 ento, Menor = N3
93
www.edeyson.com.br
Maior = 0, Menor = 0, Meio = 0 Ler N1, N2, N3, N4, N5 Se N1 > N2 ento, Maior = N1 Seno, Maior = N2 Se Maior < N3 ento, Maior = N3 Se Maior < N4 ento, Maior = N4 Se Maior < N5 ento, Maior = N5
94
www.edeyson.com.br
Incio do Algoritmo
` ` `
Se n menor que n1, troca n com n1 Se n menor que n1, troca n com n1 Se n menor que n2, troca n com n2 Se n menor que n1, troca n com n1 Se n menor que n2, troca n com n2 Se n menor que n3, troca n com n3
Ler n
` `
Ler n
` ` `
Fim do Algoritmo
95 Edeyson Andrade Gomes www.edeyson.com.br
Exerccios
` `
96
www.edeyson.com.br
Exerccio
97
Exerccio
` ` `
Nota1 Nota2 Nota3 Registro: Nome Ler um arquivo com N Registros Imprimir um relatrio com alunos aprovados
` `
98
www.edeyson.com.br
` Incio
`
`
do Algoritmo
` Fim
do Algoritmo
99
www.edeyson.com.br
Exerccio
` ` `
Nota1 Nota2 Nota3 Registro: Nome Ler um arquivo com N Registros Imprimir um relatrio com alunos aprovados e outro com alunos reprovados
` `
100
www.edeyson.com.br
Incio do Algoritmo
` `
Criar uma coleo de alunos aprovados e outra de reprovados Enquanto houver registros no arquivo faa:
Ler registro Fazer media = (nota1 + nota2 + nota3) / 3 Se mdia maior ou igual a 7.0, inclua o aluno na coleo de aprovados, seno coloque-o na coleo dos reprovados
` `
Fim do Algoritmo
101 Edeyson Andrade Gomes www.edeyson.com.br
Exerccio
` ` `
Nota1 Nota2 Nota3 Registro: Nome Ler um arquivo com Vrios Registros Imprimir a mdia aritmtica de todas as mdias dos alunos
` `
Mdia do aluno = (Nota1 + Nota2 + Nota3) / 3 A Mdia das Mdias a soma de todas as mdias dividida pelo nmero de registros.
102
www.edeyson.com.br
Incio do Algoritmo
` ` `
` `
Fim do Algoritmo
103 Edeyson Andrade Gomes www.edeyson.com.br
Exerccio
` ` `
Tipo Tipo
Nome Nome
Nota1 Nota1
A Mdia das Mdias a soma de todas as mdias dividida pelo nmero de registros.
Fluxogramas
`
Problema:
` ` `
105
www.edeyson.com.br
Fluxogramas
`
Problema:
` ` `
106
www.edeyson.com.br
Fluxogramas
`
Problema:
` ` ` ` `
107
www.edeyson.com.br
Fluxogramas
`
Problema:
` ` ` ` `
108
www.edeyson.com.br
Fluxograma
`
Problema:
`
Algoritmo
`
Incio do Algoritmo
`
Fim do Algoritmo
109
www.edeyson.com.br
Fluxograma
`
Problema:
`
Algoritmo
` `
110
www.edeyson.com.br
Fluxograma
`
Problema:
`
Algoritmo
` `
111
www.edeyson.com.br
Fluxograma
`
Problema:
`
Algoritmo
` `
112
www.edeyson.com.br
Fluxograma
`
Problema:
Imprimir todos os mltiplos de 3 e 5 naturais no intervalo [1, N]
`
Algoritmo
` `
113
www.edeyson.com.br
Fluxograma
`
Problema:
Escreva um lao que imprima os 10 primeiros Nmeros da seqncia de Fibonacci - 0, 1, 1, 2, 3, 5, 8, 13, ...
`
Algoritmo
` `
114
www.edeyson.com.br
Fluxograma
`
Algoritmo
`
Incio do Algoritmo
` ` ` `
Fim do Algoritmo
115
www.edeyson.com.br
` ` ` ` ` ` ` `
0 1 1 2 3 | | P2 P1 Seq = P2 + P1 0 1 1 2 3 | | P2 P1 Seq = P2 + P1
13
13
116
www.edeyson.com.br
` ` ` ` ` ` ` `
1 2 3 | | P2 P1 Seq = P2 + P1 0 1 1 2 3 | | P2 P1 Seq = P2 + P1
13
13
117
www.edeyson.com.br
Algoritmos e Programao
118
Algoritmos e Programao
`
Anlise do problema
` `
Especificao do problema, anlise de requisitos O QUE? Modelo Conceitual Modelo Arquitetural COMO? Traduo do modelo arquitetural em algoritmo Traduo do Algoritmo em linguagem de programao
Concepo da Soluo
` ` `
Implementao
` `
`
119
Testes
Edeyson Andrade Gomes www.edeyson.com.br
Pascal
120
Pascal
`
A linguagem Pascal foi desenvolvida no incio da dcada de 1970 por Nicklaus Wirth, na Universidade Tcnica de Zurique, Sua.
`
Objetivo:
` `
Ser uma linguagem de programao de alto nvel voltada ao ensino da programao estruturada. Seu nome deve-se a uma homenagem a Blaise Pascal, filsofo e matemtico francs que viveu entre 1623 e 1662.
Edeyson Andrade Gomes www.edeyson.com.br
121
Todo programa em Pascal dividido em trs reas distintas: cabealho, rea de declaraes e corpo.
cabealho
rea de declaraes
corpo
122
www.edeyson.com.br
Cabealho
`
O cabealho uma rea utilizada para que se possa identificar um programa atravs de um nome
`
instruo program
{Sintaxe:} program nomeDoPrograma;
Observaes:
` `
No pode existir nenhuma varivel no programa que tenha o mesmo nome dado a ele. O uso de { } serve para definir comentrios no cdigo.
Edeyson Andrade Gomes www.edeyson.com.br
123
rea de Declaraes
`
rea de Declaraes
`
Utilizada para criar identificadores que no sejam predefinidos. Todo objeto num programa Pascal, como variveis e constantes, precisam ser identificadas por um nome nico que no exista ainda nele.
`
124
www.edeyson.com.br
Utilizao de Units
`
As units so conjuntos de rotinas que j esto prontas para serem usadas pelo programador.
`
Por exemplo, se quisermos limpar a tela ou ler o teclado j existem funes prontas para isso nas units. So elas:
` ` ` ` ` `
CRT: possui a maior parte das rotinas e variveis de gerao de som, controle de vdeo e teclado; DOS: possui as rotinas que envolvem a utilizao do sistema operacional; GRAPH: possui rotinas destinadas a manipulaes grficas; OVERLAY: possibilita gerenciar as atividades de um programa economizando memria; PRINTER: permite declarar um arquivo tipo texto com o nome LST e associ-lo impressora; SYSTEM: possui a maior parte das rotinas padro da linguagem Pascal e usada de forma automtica.
125
www.edeyson.com.br
Utilizao de Units
`
Para se fazer uso de units necessrio o uso da instruo uses antes da declarao da instruo var.
{Sintaxe:} uses nomeDaUnidade;
1.program adicionaNumeros; 2. {Programa que l 2 nmeros e imprime sua soma.} 3. 4. {Usa a biblioteca CRT onde est a funo ReadKey} 5. uses crt;
126
www.edeyson.com.br
Declarao de Variveis
`
Observaes: ` Aps o nome de cada varivel deve ser utilizado o smbolo dois-pontos ( : ) seguido pelo tipo de dado que a varivel ir receber, seguido de ponto-e-vrgula. ` Caso as variveis sejam de mesmo tipo, estas podero ser relacionadas separadas por vrgula. Por exemplo: var a, b, c : integer; Isso define as variveis a, b e c como sendo do tipo integer (inteira).
127 Edeyson Andrade Gomes www.edeyson.com.br
Declarao de Variveis
1 program adicionaNumeros; 2 {Programa que l 2 nmeros e imprime sua soma.} 4 {Usa a biblioteca CRT onde est a funo ReadKey} 5 uses crt; 7 {Declara a, b e soma como variveis inteiras} 8 var 9 a, b : integer; 10 soma : integer;
128
www.edeyson.com.br
Corpo do Programa
`
Um programa em Pascal est escrito numa rea denominada corpo do programa que tem incio com a instruo begin e finalizada pela instruo end, seguida do smbolo ponto ( . ).
`
O uso destas instrues caracteriza o que chamado de bloco de comandos, como indicado abaixo:
{Sintaxe:} begin instrues do programa; end.
129
www.edeyson.com.br
Corpo do Programa
` ` `
130
www.edeyson.com.br
adicionaNumeros
`
Incio do Algoritmo
` ` ` ` ` ` `
Solicitar ao usurio para inserir o valor de a; Ler um valor para a varivel a; Solicitar ao usurio para inserir o valor de b; Ler um valor para a varivel b; Efetuar a soma das variveis a e b, colocando o resultado na varivel soma; Apresentar o valor da varivel soma aps a operao de soma dos dois valores fornecidos. Aguardar at que algo seja pressionado.
`
131
Fim do Algoritmo.
Edeyson Andrade Gomes www.edeyson.com.br
Exerccio
`
Solicitar ao usurio para digitar o valor da varivel a; Ler um valor para a varivel a; Solicitar ao usurio para digitar o valor da varivel b; Ler um valor para a varivel b; Solicitar ao usurio para digitar o valor da varivel c; Ler um valor para a varivel c; Calcular a mdia como a soma de a, b e c dividida por 3. Imprimir os trs valores lidos e a mdia.
Variveis e Constantes
`
Em Pascal, variveis, constantes, tipos definidos pelo usurio, procedimentos e funes precisam de um nome que fornea uma identificao nica e isso feito atravs de identificadores.
`
Iniciar sempre por uma letra (a - z, A - Z) ou um underline (_); O restante do identificador deve conter apenas letras, underlines ou dgitos (0-9). No pode conter outros caracteres; e Pode ter qualquer tamanho, desde que os primeiros 63 caracteres sejam significativos.
Edeyson Andrade Gomes www.edeyson.com.br
133
Variveis e Constantes
`
Observaes:
`
CamelCase a denominao em ingls para a prtica de escrever palavras compostas, ou frases, onde cada palavra iniciada com Maisculas e unidas sem espaos.
um padro largamente utilizado em diversas linguagens de programao, como Java, Ruby e Python. Exemplos: NomeDoCliente, TipoDePea, MediaPonderada, MediaDe3Numeros.
134
www.edeyson.com.br
Palavras Reservadas
`
Elas tm significado especial e no podem ser usadas como identificadores em um programa. So elas:
`
absolute, and, array, asm, begin, case, const, constructor, destructor, div, do, downto, else, end, file, for, function, goto, if, implementation, in, inherited, inline, interface, label, mod, nil, not, object, of, on, operator, or, packed, procedure, program, record, reintroduce, repeat, self, set, shl, shr, string, then, to, type, unit, until, uses, var, while, with, xor.
135
www.edeyson.com.br
Comentrios
`
Comentrios so textos escritos dentro do cdigo-fonte para explicar ou descrever alguns aspectos relativos ao mesmo.
`
A sintaxe requerida aos comentrios permite o uso de chaves como em: { comentrio } ou de parntesis e asteriscos, como em: (* comentrio *).
136
www.edeyson.com.br
Variveis
`
Uma varivel uma regio da memria identificada atravs de um nome, cujo valor pode mudar durante a execuo do programa.
`
Como Pascal uma linguagem fortemente tipada, cada varivel precisa obrigatoriamente de um tipo de dados predeterminado.
Variveis
` `
Nesta especificao de sintaxe, varivel tem seu tipo definido por tipo de dado. Note que varivel1 e varivel2 so definidas juntas, separadas por vrgulas e atribuindo-se um nico tipo de dados.
`
Isso pode ser feito para qualquer nmero de variveis que compartilhem um mesmo tipo de dados.
138
www.edeyson.com.br
Constantes
`
Uma constante uma regio rotulada da memria atravs de um nome cujo valor no pode mudar durante a execuo do programa.
`
139
www.edeyson.com.br
Tipos de Dados
`
Um tipo de dado especifica as caractersticas, ou seja, quais os possveis valores e operaes que um dado possui.
` `
Por exemplo, um valor inteiro pode ser somado a outro, subtrado, multiplicado, etc. Variveis, como apresentado em sua sintaxe, requerem um tipo de dado em sua definio. A linguagem Pascal fornece ao programador um conjunto de tipos de dados predefinidos e que sero descritos a seguir.
140
www.edeyson.com.br
Inteiros so valores numricos positivos ou negativos, excluindo-se qualquer nmero fracionrio. Em Pascal, este tipo de dado pode ser referenciado por um dos seguintes identificadores:
`
Byte, Shortint, Smallint, Word, Integer, Cardinal, Longint, Longword, Int64 e QWord.
Tipo Byte Shortint Smallint Word Integer Cardinal Longint Longword Int64 QWord Valores 0..255 -128 .. 127 -32768 .. 32767 0 .. 65535 Smallint ou Longint Longword -2147483648 .. 2147483647 0 .. 4294967295 -9223372036854775808 .. 9223372036854775807 0 .. 1844674473709551615 Tamanho em Bytes 1 1 2 2 2 ou 4 4 4 4 8 8
141
www.edeyson.com.br
Dvidas
142