Escolar Documentos
Profissional Documentos
Cultura Documentos
1 / 80
Allan
Naim
Tlio1
18 de Maio de 2015
2 / 80
Sumrio
Desenvolvendo Algoritmos
Constantes, Variveis e Tipos de Dados
Operadores
3 / 80
Parte I
Introduo Lgica de
Programao
4 / 80
5 / 80
Conceitos: Lgica
Definies
Nada mais do que conseguir organizar os pensamentos para
que se consiga chegar a um determinado objetivo.
Sequncia Lgica
So os passos executados at atingir um objetivo ou a soluo
de um problema.
6 / 80
Conceitos: Lgica
Definies
Nada mais do que conseguir organizar os pensamentos para
que se consiga chegar a um determinado objetivo.
Sequncia Lgica
So os passos executados at atingir um objetivo ou a soluo
de um problema.
6 / 80
Conceitos: Instrues
Definies
Instrues: Na linguagem comum, entende-se por instrues "um
conjunto de regras ou normas definidas para a realizao ou emprego de algo".
Em informtica, porm, instruo a informao que indica a um
computador uma ao elementar a executar.
Convm ressaltar que uma ordem isolada no permite realizar o
processo completo, para isso necessrio um conjunto de instrues colocadas em ordem sequencial lgica.
um conjunto de regras ou normas definidas para a realizao
ou emprego de algo. Em informtica, o que indica a um computador uma ao elementar a executar.
7 / 80
Conceitos: Instrues
Definies
Instrues: Na linguagem comum, entende-se por instrues "um
conjunto de regras ou normas definidas para a realizao ou emprego de algo".
Em informtica, porm, instruo a informao que indica a um
computador uma ao elementar a executar.
Convm ressaltar que uma ordem isolada no permite realizar o
processo completo, para isso necessrio um conjunto de instrues colocadas em ordem sequencial lgica.
um conjunto de regras ou normas definidas para a realizao
ou emprego de algo. Em informtica, o que indica a um computador uma ao elementar a executar.
7 / 80
Conceitos: Instrues
Definies
Instrues: Na linguagem comum, entende-se por instrues "um
conjunto de regras ou normas definidas para a realizao ou emprego de algo".
Em informtica, porm, instruo a informao que indica a um
computador uma ao elementar a executar.
Convm ressaltar que uma ordem isolada no permite realizar o
processo completo, para isso necessrio um conjunto de instrues colocadas em ordem sequencial lgica.
um conjunto de regras ou normas definidas para a realizao
ou emprego de algo. Em informtica, o que indica a um computador uma ao elementar a executar.
7 / 80
Conceitos: Instrues
Definies
Instrues: Na linguagem comum, entende-se por instrues "um
conjunto de regras ou normas definidas para a realizao ou emprego de algo".
Em informtica, porm, instruo a informao que indica a um
computador uma ao elementar a executar.
Convm ressaltar que uma ordem isolada no permite realizar o
processo completo, para isso necessrio um conjunto de instrues colocadas em ordem sequencial lgica.
um conjunto de regras ou normas definidas para a realizao
ou emprego de algo. Em informtica, o que indica a um computador uma ao elementar a executar.
7 / 80
Conceitos: Instrues
Exemplos
Trocar o pneu furado de um carro;
Trocar uma lmpada;
Fazer uma receita de bolo;
Construir uma casa.
8 / 80
Conceitos: Instrues
Exemplos
Trocar o pneu furado de um carro;
Trocar uma lmpada;
Fazer uma receita de bolo;
Construir uma casa.
8 / 80
Conceitos: Instrues
Exemplos
Trocar o pneu furado de um carro;
Trocar uma lmpada;
Fazer uma receita de bolo;
Construir uma casa.
8 / 80
Conceitos: Instrues
Exemplos
Trocar o pneu furado de um carro;
Trocar uma lmpada;
Fazer uma receita de bolo;
Construir uma casa.
8 / 80
Conceitos: Algoritmos
Definies
Nada mais do que uma receita que mostra passo a passo as
instrues necessrias para a resoluo de uma tarefa;
Algoritmo no responde "o que fazer"e sim "como fazer";
Vale ressaltar que quando se trata de computadores, no se
existe a palavra "bvio", ento necessrio se informar exatamente as instrues a serem realizadas para que ele entenda o
que fazer.
Algoritmos so conjuntos de passos finitos, que visam realizar
uma tarefa ou a resoluo de um problema.
9 / 80
Conceitos: Algoritmos
Definies
Nada mais do que uma receita que mostra passo a passo as
instrues necessrias para a resoluo de uma tarefa;
Algoritmo no responde "o que fazer"e sim "como fazer";
Vale ressaltar que quando se trata de computadores, no se
existe a palavra "bvio", ento necessrio se informar exatamente as instrues a serem realizadas para que ele entenda o
que fazer.
Algoritmos so conjuntos de passos finitos, que visam realizar
uma tarefa ou a resoluo de um problema.
9 / 80
Conceitos: Algoritmos
Definies
Nada mais do que uma receita que mostra passo a passo as
instrues necessrias para a resoluo de uma tarefa;
Algoritmo no responde "o que fazer"e sim "como fazer";
Vale ressaltar que quando se trata de computadores, no se
existe a palavra "bvio", ento necessrio se informar exatamente as instrues a serem realizadas para que ele entenda o
que fazer.
Algoritmos so conjuntos de passos finitos, que visam realizar
uma tarefa ou a resoluo de um problema.
9 / 80
Conceitos: Algoritmos
Definies
Nada mais do que uma receita que mostra passo a passo as
instrues necessrias para a resoluo de uma tarefa;
Algoritmo no responde "o que fazer"e sim "como fazer";
Vale ressaltar que quando se trata de computadores, no se
existe a palavra "bvio", ento necessrio se informar exatamente as instrues a serem realizadas para que ele entenda o
que fazer.
Algoritmos so conjuntos de passos finitos, que visam realizar
uma tarefa ou a resoluo de um problema.
9 / 80
Conceitos: Algoritmos
subir na escada;
10 / 80
Conceitos: Algoritmos
Exemplo 2: Trocar uma lmpada
1
Acionar o interruptor;
Se a lmpada no acender, ento
1
2
3
subir na escada;
retirar a lmpada velha;
colocar a lmpada nova.
Conceitos: Algoritmos
Acionar o interruptor;
Se a lmpada no acender, ento
1
2
3
4
5
6
12 / 80
Conceitos: Algoritmos
Exemplo 3: Trocar uma lmpada
1
2
acionar o interruptor;
Se a lmpada no acender, ento
1
2
3
4
5
6
7
13 / 80
Conceitos: Algoritmos
acionar o interruptor;
Se a lmpada no acender, ento
1
2
3
4
5
6
7
14 / 80
Conceitos: Algoritmos
Exemplo 5: Trocar uma lmpada
1
15 / 80
Conceitos: Algoritmos
Exemplo 6: Trocar uma lmpada
1
2
16 / 80
Conceitos: Programas
Definies
Linguagem de programao a forma com que o programador
consegue interagir com o computador utilizando de uma sintaxe
na qual ele consegue escrever seus algoritmos em um cdigo
fonte, que ser interpretado ou compilado para que o computador
consiga entender.
Exemplos de linguagem de programao: Pascal/Delphi, Visual
Basic, Ruby, PHP, C/C++, C#, Java, python, entre muitas outras.
Programa de computador um conjunto de algoritmos escritos
em alguma linguagem de programao, que so interpretadas
pelo computador.
17 / 80
Conceitos: Programas
Definies
Linguagem de programao a forma com que o programador
consegue interagir com o computador utilizando de uma sintaxe
na qual ele consegue escrever seus algoritmos em um cdigo
fonte, que ser interpretado ou compilado para que o computador
consiga entender.
Exemplos de linguagem de programao: Pascal/Delphi, Visual
Basic, Ruby, PHP, C/C++, C#, Java, python, entre muitas outras.
Programa de computador um conjunto de algoritmos escritos
em alguma linguagem de programao, que so interpretadas
pelo computador.
17 / 80
Conceitos: Programas
Definies
Linguagem de programao a forma com que o programador
consegue interagir com o computador utilizando de uma sintaxe
na qual ele consegue escrever seus algoritmos em um cdigo
fonte, que ser interpretado ou compilado para que o computador
consiga entender.
Exemplos de linguagem de programao: Pascal/Delphi, Visual
Basic, Ruby, PHP, C/C++, C#, Java, python, entre muitas outras.
Programa de computador um conjunto de algoritmos escritos
em alguma linguagem de programao, que so interpretadas
pelo computador.
17 / 80
18 / 80
18 / 80
18 / 80
18 / 80
Go to my frame
19 / 80
20 / 80
1
Mova o disco da torre 1 para a torre 3.
21 / 80
OK
1
22 / 80
1
2
23 / 80
1
Mova o disco da torre 1 para a torre 2.
24 / 80
25 / 80
1
2
Mova o disco da torre 2 para a torre 3.
26 / 80
OK
1
2
27 / 80
1
2
3
28 / 80
2
3
1
Mova o disco da torre 1 para a torre 3.
29 / 80
30 / 80
1
2
Mova o disco da torre 3 para a torre 2.
31 / 80
1
2
32 / 80
33 / 80
2
3
1
Mova o disco da torre 2 para a torre 3.
34 / 80
1
2
3
Mova o disco da torre 1 para a torre 3.
35 / 80
OK
1
2
3
36 / 80
1
2
3
4
37 / 80
2
3
4
1
Mova o disco da torre 1 para a torre 2.
38 / 80
3
4
39 / 80
3
4
1
2
Mova o disco da torre 2 para a torre 3.
40 / 80
1
2
41 / 80
1
4
42 / 80
1
4
2
3
Mova o disco da torre 3 para a torre 2.
43 / 80
1
2
3
Mova o disco da torre 1 para a torre 2.
44 / 80
1
2
3
45 / 80
2
3
1
4
46 / 80
1
4
47 / 80
1
2
48 / 80
1
2
3
4
Mova o disco da torre 2 para a torre 3.
49 / 80
3
4
50 / 80
2
3
4
51 / 80
1
2
3
4
Mova o disco da torre 2 para a torre 3.
52 / 80
OK
1
2
3
4
53 / 80
1
2
3
4
5
?
54 / 80
55 / 80
Parte II
Desenvolvendo Algoritmos
56 / 80
Desenvolvendo Algoritmos
Pseudocdigos
Pseudocdigo uma aluso a uma linguagem de programao,
que servem para descrevermos algoritmos em uma linguagem
simples e nativa de fcil entendimento;
Onde qualquer pessoa que ler o cdigo, sem a necessidade do
programador explicar, o entenda;
Pseudocdigos so escritos de forma a serem to ricos em detalhes, que facilmente se conseguir traduzi-los a uma linguagem
de programao;
Durante o curso iremos utilizar uma codificao de
pseudocdigo bastante utilizada que o Portugol.
57 / 80
Desenvolvendo Algoritmos
Pseudocdigos
Pseudocdigo uma aluso a uma linguagem de programao,
que servem para descrevermos algoritmos em uma linguagem
simples e nativa de fcil entendimento;
Onde qualquer pessoa que ler o cdigo, sem a necessidade do
programador explicar, o entenda;
Pseudocdigos so escritos de forma a serem to ricos em detalhes, que facilmente se conseguir traduzi-los a uma linguagem
de programao;
Durante o curso iremos utilizar uma codificao de
pseudocdigo bastante utilizada que o Portugol.
57 / 80
Desenvolvendo Algoritmos
Pseudocdigos
Pseudocdigo uma aluso a uma linguagem de programao,
que servem para descrevermos algoritmos em uma linguagem
simples e nativa de fcil entendimento;
Onde qualquer pessoa que ler o cdigo, sem a necessidade do
programador explicar, o entenda;
Pseudocdigos so escritos de forma a serem to ricos em detalhes, que facilmente se conseguir traduzi-los a uma linguagem
de programao;
Durante o curso iremos utilizar uma codificao de
pseudocdigo bastante utilizada que o Portugol.
57 / 80
Desenvolvendo Algoritmos
Pseudocdigos
Pseudocdigo uma aluso a uma linguagem de programao,
que servem para descrevermos algoritmos em uma linguagem
simples e nativa de fcil entendimento;
Onde qualquer pessoa que ler o cdigo, sem a necessidade do
programador explicar, o entenda;
Pseudocdigos so escritos de forma a serem to ricos em detalhes, que facilmente se conseguir traduzi-los a uma linguagem
de programao;
Durante o curso iremos utilizar uma codificao de
pseudocdigo bastante utilizada que o Portugol.
57 / 80
Entrada;
Processamento;
Sada/Resultados.
Entrada:
So os dados informados para que sejam processados.
Processamento
So os procedimentos feitos para que se atinja a sada/resultado.
Sada:
So os dados j processados.
59 / 80
Processamento
IMC = peso / (altura * altura)
Sada:
MC
60 / 80
Processamento
IMC = peso / (altura * altura)
Sada:
MC
60 / 80
PortugolIDE
O que ?
O Portugol um ambiente de desenvolvimento de algoritmos
que visa o desenvolvimento do raciocnio algortmico atravs de
um ambiente simples e com ferramentas visuais para desenvolvimento e depurao dos algoritmos desenvolvidos;
Neste ambiente privilegiamos o desenvolvimento de algoritmos
ao invs do desenvolvimento de programas;
Utilizamos a linguagem algortmica, uma pseudo-linguagem de
programao que utiliza o portugus como base das suas
instrues;
61 / 80
PortugolIDE
O que ?
O Portugol um ambiente de desenvolvimento de algoritmos
que visa o desenvolvimento do raciocnio algortmico atravs de
um ambiente simples e com ferramentas visuais para desenvolvimento e depurao dos algoritmos desenvolvidos;
Neste ambiente privilegiamos o desenvolvimento de algoritmos
ao invs do desenvolvimento de programas;
Utilizamos a linguagem algortmica, uma pseudo-linguagem de
programao que utiliza o portugus como base das suas
instrues;
61 / 80
PortugolIDE
O que ?
O Portugol um ambiente de desenvolvimento de algoritmos
que visa o desenvolvimento do raciocnio algortmico atravs de
um ambiente simples e com ferramentas visuais para desenvolvimento e depurao dos algoritmos desenvolvidos;
Neste ambiente privilegiamos o desenvolvimento de algoritmos
ao invs do desenvolvimento de programas;
Utilizamos a linguagem algortmica, uma pseudo-linguagem de
programao que utiliza o portugus como base das suas
instrues;
61 / 80
PortugolIDE
O que ?
O Editor de algoritmo tem ferramentas que complementam e corrigem algumas falhas que o aprendiz comete;
O Editor de fluxograma uma abordagem grfica da programao que permite o desenvolvimento de algoritmos de forma visual
e com ferramentas fazem a traduo de e para linguagem algortmica;
Qualquer um dos mdulos permite fazer a execuo do
algoritmo e a depurao dos mesmo.
62 / 80
PortugolIDE
O que ?
O Editor de algoritmo tem ferramentas que complementam e corrigem algumas falhas que o aprendiz comete;
O Editor de fluxograma uma abordagem grfica da programao que permite o desenvolvimento de algoritmos de forma visual
e com ferramentas fazem a traduo de e para linguagem algortmica;
Qualquer um dos mdulos permite fazer a execuo do
algoritmo e a depurao dos mesmo.
62 / 80
PortugolIDE
O que ?
O Editor de algoritmo tem ferramentas que complementam e corrigem algumas falhas que o aprendiz comete;
O Editor de fluxograma uma abordagem grfica da programao que permite o desenvolvimento de algoritmos de forma visual
e com ferramentas fazem a traduo de e para linguagem algortmica;
Qualquer um dos mdulos permite fazer a execuo do
algoritmo e a depurao dos mesmo.
62 / 80
PortugolIDE
Requesitos:
Instalar Java JRE (Java Runtime Environment) http://www.java.com/en/download/index.jsp
Pode verificar qual a verso do Java JRE instalada no seu
computador em:
http://www.java.com/en/download/installed.jsp
Pgina de Download e Ajuda
http://www.dei.estt.ipt.pt/portugol/node/32
63 / 80
PortugolIDE
Execuo
Descomprimir o ficheiro portugol23.zip.
Executar o ficheiro run.bat ou clique no arquivo Portugol.jar
Notas:
Plataformas baseadas no unix devem executar a partir do
ficheiro jar ("java -jar Portugol.jar").
No caso do MacOSX, o Java JRE deve ser instalado atravs do
Apple Software Update.
64 / 80
PortugolIDE
Tela inicial do Portugol
65 / 80
PortugolIDE
Tela inicial do Portugol
66 / 80
PortugolIDE
Definies
A linguagem algortmica utiliza o portugus para a definio dos
comandos e tem as seguintes caracterstica:
1
Constantes e Variveis
Para desenvolvermos nossos algoritmos precisaremos muitas vezes
armazenar informaes em alguma estrutura, para que possamos
manipular e tratar essas informaes. Essas estruturas so as
constantes e variveis. Essas estruturas iro precisar ser declaradas
com seu tipo e nome.
Varivel
um espao da memria reservado para guardar alguma
informao. As variveis precisam ser declaradas com seu tipo e
nome. As variveis possuem valores que podem ser alterados no
decorrer do cdigo.
Constante
um espao reservado de memria para guardar informaes. A
constante precisa ser declarada com seu tipo e nome. A constante
possui um valor fixo que no pode ser alterado no decorrer do cdigo.
68 / 80
No use palavras reservadas pelo programa (Palavras reservadas so nomes utilizadas pelos programas para executar alguma
funo, como por exemplo no Portugol as palavras ler, escrever
, inicio e fim so palavras reservadas)
69 / 80
Constante
Se aplica as mesmas das variveis com a exceo que so
escritas em caixa alta.
a constante real pi = 3. 14159265 -> ERRADO (Para constantes
devemos utilizar texto em caixa ALTA)
a constante real PI = 3. 14159265 -> CORRETO
70 / 80
PortugolIDE:Tipos de Dados
Quando formos declarar nossas constantes ou variveis, precisamos
informar alm do nome qual o seu tipo de dado que ele ir guardar.
Esses tipos so os que iro definir o que pode ou no pode ser
armazenado em nossas constantes e variveis.
Vejamos abaixo os tipos que so suportados pelo Portugol:
bsicos
Tipo
Inteiro
Real
Lgico
Carcter
Texto
Descrio
Valores
2.147.483.648
2.147.483.647
1.7E 308 1.7E 308
Conjuntos
de
caracteres.
"Sequncias de caracteres"
verdadeiro ou falso
ASCII(0)
ASCII(255)
"entre aspas"
Valor
por
defeito
0
0.0
falso
(espao)
(vazio)
71 / 80
72 / 80
Constantes: Sintaxe
constante [tipo] [nome] <- [valor]
constante [tipo] [nome] <- [expresso]
constante [tipo] [nome] <- [valor],[nome] <- [expresso]
Constantes: Exemplos
constante inteiro meses <- 12
constante real pi <- 3.141592
73 / 80
Operadores
Os operadores so as formas com que conseguimos modificar e
comparar nossos dados. Existem trs classes de operadores:
Aritmticos;
Relacionais;
Lgicos.
Operadores aritmticos
Operador
+
/
*
%
^
Descrio
Adio
Subtrao
Diviso
Multiplicao
Resto da diviso
Potenciao
Exemplo
x <- 10 + 10
x <- 20 10
x <- 20/2
x <- 10 2
x <- 13%4
x <- 52
Valor
x = 20
x = 10
x = 10
x = 20
x =1
x = 25
74 / 80
Operadores
Operadores Relacionais
Os operadores relacionais so utilizados para obtermos
comparaes entre valores sempre resultando um valor lgico
(verdadeiro ou falso).
Operador Descrio
Exemplo
Valor
=
Igual
x <- 100; x = 200
Falso
=/=
Diferente
x <- 100;x = / = 200 Verdadeiro
>
Maior
x <- 100 ; x > 200
Falso
<
Menor
x <- 100 ; x < 200
Verdadeiro
>=
Maior ou igual
x <- 100; x >= 100
Verdadeiro
<=
Menor ou igual x <- 100; x <= 200
Verdadeiro
75 / 80
Operadores
Operadores Lgicos
Os operadores lgicos so utilizados para combinarmos resultados de expresses
relacionais (Verdadeiro ou falso), essas combinaes resultam em um valor lgico
(Verdadeiro ou falso).
Operador
Descrio
Exemplo
Valor
E
Conjuno verdadeiro E Verda- verdadeiro
deiro
E
Conjuno verdadeiro E falso
Falso
OU
Disjuno
verdadeiro E Verdaverdadeiro
deiro
OU
Disjuno
verdadeiro OU falso
Verdadeiro
E
Conjuno (2 = 2) E (2 = 3) (ver- Falso
dadeiro) E (falso)
OU
Disjuno
(2 = 2) OU (2 = 3) Verdadeiro
(verdadeiro)
OU
(falso)
E
Conjuno ("A"< "B") E (2 > 3) Falso
(verdadeiro) E (falso)
NAO
Negao
NAO verdadeiro
Falso
NAO
Negao
NAO falso
Verdadeiro
76 / 80
Exemplos Prticos
Informe o valor de cada expresso:
inicio
variavel inteiro a <- 20
variavel inteiro b <- 20
// Aritmticos
escrever "A + B = ", a + b, "\n"
escrever "A / B = ", a / b, "\n"
escrever "A % B = ", a % b, "\n"
escrever "A * B = ", a * b, "\n"
escrever "A ^ B = ", a^ b, "\n"
// Relacionais
escrever "A = B ", a = b, "\n"
escrever "A =/= B", a =/= b, "\n"
escrever "A > B ", a > b, "\n"
escrever "A < B ", a < b , "\n"
escrever "A >= B", a >= b, "\n"
escrever "A <= B", a <= b, "\n"
// Lgico
escrever "(A=B)E (A > B)", a = b E a > b, "\n"
escrever "(A=B)OU (A > B)", a = b OU a> b, "\n"
fim
77 / 80
Atividades
78 / 80
Prxima Aula
79 / 80
80 / 80