Sei sulla pagina 1di 50

Introdução à Programação

Lógica de Programação

Prof. Idalmir de Souza


Porque aprender à Programar?
• Para prever movimentos do tipo
Porque aprender à Programar?
• Como fazer isso?
• Respondendo a perguntas do tipo:
▫ Qual sua posição, velocidade e aceleração
atuais?
▫ Como efeitos externos afetam o movimento?
Porque aprender à Programar?
Porque aprender à Programar?
• Para criar modelos numéricos, pois
▫ Construir é caro
▫ Construir é perigoso
▫ Pode-se melhorar o projeto sem construí-lo
▫ Pode-se verificar as falhas sem construí-lo
▫ Para pensar na melhor solução
▫ Para comunicar e descrever o sistema físico
▫ Para realizar previsões
▫ Para observar o que ocorrerá após a construção
▫ Para controlar a construção
▫ Para examinar e treinar
Porque aprender à Programar?
• Para programar usamos:
▫ Linguagens de programação:
 C, C++, C#, Java
 Fortran, Fortran IV, Fortran 66, Fortran 77,
Fortran 90, Fortran 95
 Pascal, Delphi
▫ Softwares de simulação:
 MULTISIM, SIMULINK
▫ Softwares de computação gráfica:
 AUTOCAD, MICROSTATION
▫ Softwares matemáticos:
 Maple, Mathematica, Geogebra
Porque aprender à Programar?
• Para Estudar Mecânica de Sólidos
Para construir uma
estrutura como esta, temos
de conseguir responder a
várias questões que de
imediato se põem, por
exemplo:
Qual a massa da cobertura
e como ela se distribui?
Qual é a área que ocupa?
Em que pontos devem ser
colocados os apoios e que
cargas devem suportar?
Que ângulos com a vertical
devem ser localizados os
apoios?
Porque aprender à Programar?
• Para Perceber o Eletromagnetismo
Dipolo magnético
supercondutor usado
num acelerador do
CERN para acelerar
partículas elementares
até velocidades muito
altas.
Porque aprender à Programar?
• Para Perceber a Mecânica
Porque aprender à Programar?
• Para Perceber a Mecânica dos Fluidos
Como aprender à Programar?
• Inicialmente deve-se aprender o “idioma”
correto da programação, ou seja, uma linguagem
de programação.
• Mas antes da linguagem de programação, deve-
se aprender suas regras, conhecidas pelo nome
de algoritmo.
• Para aprender a respeito de algoritmos, deve-se
aprender e absorver a lógica de programação.
• Isto está tudo interligado.
Algoritmos e Lógica de Programação
• Pode-se dizer que, Lógica de Programação é
a técnica de desenvolver sequências lógicas para
atingir um determinado objetivo.
• Essas sequências lógicas são adaptadas para
cada linguagem de programação.
• Uma sequência lógica é denominada algoritmo.
• Pode-se definir um algoritmo por: Um conjunto
finito de regras que provê uma seqüência de
operações para resolver um tipo de problema
específico.
Características de Algoritmos
• ser finito;
• não dar margem à dupla interpretação;
• capacidade de receber dado(s) de entrada do
mundo exterior;
• poder gerar informações de saída para o mundo
externo ao do ambiente do algoritmo;
• ser efetivo (todas as etapas especificadas no
algoritmo devem ser alcançáveis em um tempo
finito).
Formas de representar um algoritmo
• Descrição narrativa:
▫ Receita de Pizza:
 Providencie ingredientes
 Misture os ingredientes e faça a massa
 Coloque o recheio
 Despeje a mistura na forma de bolo
 Leve a forma ao forno
 Espere o tempo necessário
 Retire a forma do forno
 Não Deixe esfriar
 Coma tudo
Formas de representar um algoritmo
• Vantagens:
▫ o português é bastante conhecido por nós;
• Desvantagens:
▫ imprecisão;
▫ pouca confiabilidade (a imprecisão acarreta a
desconfiança);
▫ extensão (normalmente, escreve-se muito para
dizer pouca coisa).
Formas de representar um algoritmo
• Fluxograma:
▫ Utilização de símbolos gráficos para representar
algoritmos. No fluxograma existem símbolos
padronizados para início, entrada de dados,
cálculos, saída de dados, fim, etc

Entrada de Saída de
Início/Fim Cálculo
Dados Dados

Seqüência das instruções


Decisão Repetição
Formas de representar um algoritmo
Significado
• Exemplo: Início Início do algoritmo.

Pede para o usuário


Leia n1,n2 digitar dois números
que serão guardados em
n1 e n2.

Md=(n1+n2)/2 Calcula a média


aritmética dos dois
números e guarda em
Md.
Escreva Md
Escreve o resultado do
cálculo.
Fim
Final do algoritmo.
Formas de representar um algoritmo
• Vantagens:
▫ Uma das ferramentas mais conhecidas;
▫ Figuras dizem muito mais que palavras;
▫ Padrão mundial .
• Desvantagens:
▫ Faz com que a solução do problema já esteja
amarrada a dispositivos físicos;
▫ Pouca atenção aos dados, não oferecendo recursos
para descrevê-los ou representá-los;
▫ Complica-se à medida que o algoritmo cresce
Formas de representar um algoritmo
• Algoritmos
▫ Consiste na definição de uma pseudolinguagem de
programação, cujos comandos estão próximas da
linguagem natural.
• Exemplo:
▫ Algoritmo Calcula_Média
▫ Início
▫ Leia n1,n2
▫ Md  (n1+n2)/2
▫ Escreva Md
▫ Fim
Formas de representar um algoritmo
• Vantagens:
▫ Independência física da solução (solução lógica
apenas);
▫ Usa o português como base;
▫ Pode-se definir quais e como os dados vão estar
estruturados;
▫ Passagem quase imediata do algoritmo para uma
linguagem de programação qualquer.
• Desvantagens:
▫ Exige a definição de uma linguagem não real para
trabalho;
▫ Não padronizado
Algoritmos
• Existem 3 estruturas básicas de controle nas
quais se baseiam os algoritmos:
▫ Sequenciação,
▫ Decisão ou Seleção,
▫ Repetição
Algoritmos
• Sequenciação:
▫ Os comandos do algoritmo fazem parte de uma
seqüência, onde é relevante a ordem na qual se
encontram os mesmos, pois serão executados uma
de cada vez, estritamente, de acordo com essa
ordem. De uma forma genérica, poderíamos
expressar uma seqüência da seguinte maneira:
▫ <Comando 1>
▫ <Comando 2>
▫ ...
▫ <Comando n>
Algoritmos
• Exemplo de algoritmo para troca de uma
lâmpada – versão 1:
• Pegue uma escada e uma lâmpada, coloque
embaixo da lâmpada, suba na escada, retire a
lâmpada, coloque uma lâmpada nova, desça da
escada, guarde a escada.

• O que ocorrerá se a lâmpada não acender?


Algoritmos
• Decisão ou Seleção
▫ Essa estrutura também é conhecida por estrutura
condicional. Há a subordinação da execução de um ou
mais comandos à veracidade de uma condição.
Vejamos o funcionamento:
 SE <Condição> ENTÃO
 <Comando 1>
 SENÃO
 <Comando 2>
▫ Se a <Condição> for verdadeira será executado o
<Comando 1> e, em caso contrário, teremos a
execução de <Comando 2>.
Algoritmos
• Exemplo de algoritmo para troca de uma lâmpada –
versão 2:
• Pegue uma escada e algumas lâmpadas, coloque
embaixo da lâmpada, suba na escada, retire a
lâmpada, coloque uma lâmpada nova, desça da
escada, ligue o interruptor, SE a lâmpada acender,
ENTÃO guarde a escada e as outras lâmpadas,
SENÃO, troque novamente a lâmpada e guarde a
escada e as outras lâmpadas.

• O que ocorrerá se a segunda lâmpada não acender?


Algoritmos
• Repetição
▫ Essa estrutura também é conhecida por “looping”,
”loop” ou laço. A repetição permite que tarefas
individuais sejam repetidas um número determinado
de vezes ou tantas vezes quantas uma condição lógica
permita. Vejamos alguns exemplos:
 vou comer pizza até elas acabarem;
 comerei cinco pizzas;
 enquanto tiver dinheiro, vou comer pizza.
Algoritmos
• A estrutura de repetição pode ser representada
de três maneiras:
▫ REPITA determinada tarefa ATÉ QUE uma
condição seja satisfeita;
▫ FAÇA determinada tarefa n VEZES;
▫ ENQUANTO uma condição não estiver satisfeita,
FAÇA determinada tarefa.
Algoritmos
• Exemplo de algoritmo para troca de uma lâmpada –
versão 3:
• Pegue uma escada e uma caixa de lâmpadas, coloque
embaixo da lâmpada, suba na escada e retire a
lâmpada, coloque uma lâmpada nova, desça da
escada, ligue o interruptor, REPITA este
procedimento ATÉ a lâmpada acender, e por fim,
guarde a escada e o restante das lâmpadas.

• E se a lâmpada nunca acender?


Algoritmos
• Exemplo de algoritmo para troca de uma
lâmpada – versão 4:
• Pegue uma escada e uma caixa de lâmpadas,
coloque embaixo da lâmpada, suba na escada e
retire a lâmpada, coloque uma lâmpada nova,
desça da escada, ligue o interruptor, FAÇA este
procedimento 10 vezes para trocar a lâmpada, e
por fim, guarde a escada.

• E se a lâmpada tiver acendido na primeira vez?


Algoritmos
• Exemplo de algoritmo para troca de uma
lâmpada – versão 5:
• Pegue uma escada e uma caixa de lâmpadas,
coloque embaixo da lâmpada, suba na escada e
retire a lâmpada, coloque uma lâmpada nova,
desça da escada, ligue o interruptor,
ENQUANTO a lâmpada não acender FAÇA este
procedimento, e por fim, guarde a escada.

• E se a lâmpada nunca acender?


Algoritmos
• Exemplo de algoritmo para troca de uma lâmpada –
versão final:
• Ligue o interruptor, SE tiver energia elétrica e a
lâmpada não acender ENTÃO, Pegue uma escada e
uma caixa de lâmpadas, coloque embaixo da
lâmpada, suba na escada e retire a lâmpada, coloque
uma lâmpada nova, desça da escada, ligue o
interruptor, SE a lâmpada acender ENTÃO, guarde
a escada e as lâmpadas, e finalize o algoritmo,
SENÃO, REPITA o procedimento ATÉ que a
lâmpada acenda ou que as lâmpadas da caixa
acabem, e por fim, guarde a escada e o restante das
lâmpadas.
Lógica de Programação
• É a técnica de encadear pensamentos para atingir
determinado objetivo.

• Os passos executados até atingir um objetivo ou


solução de um problema são chamados de
Seqüência Lógica.

• Isso é feito na forma de instruções, e entende-se por


instruções “um conjunto de regras ou normas
definidas para a realização ou emprego de algo”.
Lógica de Programação
• Instruções são um conjunto de regras ou normas
definidas para a realização ou emprego de algo.
Em informática, é o que indica a um computador
uma ação elementar a executar

• Entre as ferramentas mais usadas para se


aprender a lógica de programação destacam-se:
▫ Linguagem LOGO
▫ Linguagem PROLOG
▫ Linguagem de blocos, como Scratch
Linguagem Logo
• Logo é uma linguagem de programação
interpretada, voltada para crianças, jovens e até
adultos. É utilizada com grande sucesso como
ferramenta de apoio ao ensino regular e por
aprendizes em programação de computadores.

• O uso da linguagem LOGO permite a


compreensão e o entendimento das instruções
que compõem uma determinada sequência
lógica.
Liguagem Logo - XLogo
Linguagem Logo
• Comandos primitivos
Linguagem Logo
Linguagem Logo
Linguagem Logo
• Exemplos:
▫ Quadrado: repita 4 [pf 200 pd 90]
Linguagem Logo
• Exemplos:
▫ Circunferência: repita 360 [pf 1 pd 1]
Linguagem Logo
• Além das primitivas já existentes, você pode
criar seus próprios comandos. Eles são
chamados procedimentos.

• Procedimento – funções ou subprogramas que


podem ser executados com ou sem parâmetros.

• Procedimentos começam pela palavra “aprenda”


e terminam com a palavra “fim”. Eles podem ser
criados utilizando o editor interno do Xlogo.
Linguagem Logo
• Exemplo:
▫ aprenda quadrado
 repita 4 [pf 100 pd 90]
▫ Fim

• Uma vez que o procedimento está escrito e salvo,


basta chamar o procedimento pelo nome que ele
é executado.
Linguagem Logo
• aprenda koch :tamanho :geração
▫ se :geração = 0 [parafrente :tamanho pare]
▫ koch :tamanho/3 :geração-1
▫ paraesquerda 60
▫ koch :tamanho/3 :geração-1
▫ paradireita 120
▫ koch :tamanho/3 :geração-1
▫ paraesquerda 60
▫ koch :tamanho/3 :geração-1
• fim
• Uso: ld un pf 200 ul repita 3 [pd 120 koch 300 5]
Linguagem Logo
Linguagem Scratch
• Software de programação em blocos visual
freeware, desenvolvido no MIT para o ensino de
programação de crianças ou iniciantes.

• Essa linguagem permite que se criar jogos,


animações, música, arte, estórias amimadas.

• E tudo isso é baseado em uma lógica de


programação.
Linguagem Scratch
Linguagem Scratch
Linguagem Scratch
• Exemplo:
Linguagem Scratch
Linguagem Scratch

Potrebbero piacerti anche