Escolar Documentos
Profissional Documentos
Cultura Documentos
EDIO N 1 - 2007
Gesto e Execuo
Contedo e Tecnologia
SUMRIO
Algoritmos
Apresentao
Carta do Professor
Algoritmos
Wang (2007)
Caro aluno,
Desde o advento dos computadores, as comunidades de
programadores de software vm crescendo no somente para a criao de solues
para atender s novas necessidades do mercado, mas tambm uma resposta para
acompanhar as mudanas dos negcios empresariais. Esta constante evoluo (ou
transformao) nos oferece hoje recursos poderosos e ao mesmo tempo simples,
para a construo de sistemas.
A criao de programa para computadores uma atividade que sofre do
mesmo sentimento de aprender matemtica: h pessoas que adoram e h pessoas
que odeiam. Muitos especialistas tentam encontrar meios para melhorar as
abordagens didticas, que facilitem a conquista de novos adeptos, mas ainda se
percebe que h uma mistura de sentimento e vocao. Porm, diferente da
matemtica, a programao de sistemas uma atividade interativa que fornece
feedback imediato, como resultado de explorao, investigao e auto-avaliao do
programador.
importante observarmos que lgica uma prtica comum em nossas
atividades dirias, desde a deciso em qual local almoar at aceitar um emprego.
Por isso, acredita-se que os obstculos da lgica de programao no esto nos
conceitos e sim nas linguagens de programao utilizadas, bem como na utilidade
do trabalho de construo que est sendo realizado.
Por outro lado, ao conquistar sua posio como programador, voc poder
sentir a grande satisfao de um artista, j que utilizar seus conhecimentos e
habilidades para construir solues que sero utilizadas por outras pessoas, para
resolver problemas.
Ento, eis a proposta deste trabalho: oferecer uma abordagem simples e
construtiva para minimizar os desafios que a disciplina exige do aluno. Incentivlo(a) a persistir na evoluo dos seus estudos de lgica de programao, e faz-lo(a)
perceber que a prtica trar os resultados esperados.
Professor Larcio da Cruz Loureiro
Algoritmos
Cronograma de Estudo
Acompanhe no cronograma abaixo os contedos das aulas e atualize as
possveis datas de realizao de aprendizagem e avaliaes.
Semana
Carga horria
Aula
Data / Avaliao
Introduo Lgica de
Programao e ao Processo
de Programao
_/_ a _/_
1
12
Linguagens de
Programao
_/_ a _/_
Variveis e Constantes
_/_ a _/_
12
Estruturas de Programao
Condicionais
_/_ a _/_
12
Estruturas de Programao
Repetio
_/_ a _/_
Modularizao do programa
_/_ a _/_
Algoritmos
Plano de Estudo
Ementa
Fundamentos da lgica de programao, motivadores e histrico, processo e os
passos
que
envolvem
programao
de
computadores,
linguagens
de
Objetivos da Disciplina
Geral
.Transmitir ao aluno os conhecimentos essenciais para a programao de
computadores, aprendendo termos de lgica de programao e seus componentes.
Incentivar no aluno a capacidade de interpretao de problemas e a composio de
solues usando regras lgicas.
Especficos
Algoritmos
Aula 1
INTRODUO LGICA E AO
PROCESSO DE PROGRAMAO
Objetivos da aula
Contedos da aula
Terminologias
Exerccios propostos.
Prezado aluno, seja bem vindo a nossa primeira
aula. Vamos conhecer as bases da lgica de
programao, como surgiu e sua evoluo.
Boa Aula!
Algoritmos
necessidades
descritas
anteriormente,
mas
alguns
incovenientes
se
Com uma construo cada vez mais fcil, reduz o nvel de domnio do
programador sobre o conhecimento da linguagem. Em caso de problema na
construo do programa, o programador pode ter dificuldades para resolv-lo,
j que no possui um amplo controle sobre as peculiaridades da linguagem;
Com a necessidade de velocidade na construo de sistemas, os aplicativos
utilizados acabam gerando maior importncia que a prpria linguagem. Isso
exige do programador domnio sobre a linguagem, como tambm, sobre o
prprio programa que ser utilizado para implementar a linguagem;
Com o volume cada vez maior de recursos disponveis na linguagem, exige-se
cada vez mais a atualizao do programador em novas tecnologias, sem
conseguir obter o domnio completo de recursos essenciais;
Com a insero de mais recursos linguagem, para que o programador
esteja no topo da tecnologia, precisar dedicar cada vez mais tempo para
aprender e construir recursos, que antes poderiam ser realizados de forma
mais simples.
PERCEBEU O DESAFIO?
medida que evolumos as linguagens de programao, melhoramos
a capacidade e velocidade na construo de programas, mas tambm
geramos cada vez mais opes para se resolver um problema,
aumentando a complexidade para a elaborao de solues.
Ento, diante desse desafio, imprescindvel ao programador perceber as
nuances que se apresentam nas linguagens de hoje. Por isso a grande importncia
que a Lgica de Programao desempenha sobre o programador, formando uma
slida base de discernimento a ser aplicada na adoo de uma linguagem
especfica. Com uma forte base de lgica de programao, o programador ter
maiores chances em dominar qualquer linguagem de desenvolvimento de sistemas.
Algoritmos
10
Significado
Programa de computador
Especificao
Implementar
Cdigo de Programao
Processo de desenvolvimento
Compilar o programa
Traduzir
cdigo
de
programao
para
Depurar o programa
Sintaxe da linguagem
So
as
regras
implcitas
na
linguagem
de
Processamento
Algoritmos
11
Entendimento claro do que precisa ser feito e qual o problema que precisa ser
solucionado, estabelecendo limites objetivos e claros.
recebe
premissas
que
facilitam
entrega
de
produtos
e,
Algoritmos
12
Algoritmos
13
Entrada
Processamento
Sada
Algoritmos
14
SNTESE
Algoritmos
15
EXERCCIOS PROPOSTOS
16
Aula 2
LINGUAGENS DE PROGRAMAO
Objetivos da aula
Contedos da aula
Programao e a Internet
O que so algoritmos?
Exerccios propostos
17
Algoritmos
18
Algoritmos
19
Interpretador
Linguagem de
Mquina
Computador
Algoritmos
20
Compilador
Linguagem de
Mquina
Computador
Computador
Algoritmos
21
4 PROGRAMAO E A INTERNET
22
Algoritmos
23
Java
C++
PHP
Visual Basic
Perl
Python
JavaScript
C#
10
Ruby
6 O QUE SO ALGORITMOS?
24
SNTESE
Algoritmos
25
EXERCCIOS PROPOSTOS
26
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
Algoritmos
27
Aula 3
FORMAS DE REPRESENTAO DE
UM ALGORITMO
Objetivos da aula
Contedo da aula
O que um pseudocdigo?
O que um fluxograma?
Exerccios propostos
Nesta terceira aula, voc conhecer detalhes tcnicos envolvidos na
construo de algoritmos e aprender como represent-los.
Como voc ver nesta unidade a representao de algoritmos e o
28
1 FORMAS DE REPRESENTAO DE UM
ALGORITMO
2 O QUE UM PSEUDOCDIGO?
uma forma especial de linguagem, bem mais restrita que a lingua portuguesa
e com significados bem definidos para todas as palavras utilizadas nas instrues
inseridas em um programa. O objetivo principal dessa abordagem permitir ao
programador pensar no problema em si e no nas regras particulares de uma
Algoritmos
29
30
Algoritmos
31
32
Guia
Descrio/Objetivo
Ecran
Informaes
Ajuda da Linguagem
Algoritmos
33
34
ler nome
fimEnquanto
fim
Observe que as palavras em negrito so os comandos em conformidade com a
sintaxe da linguagem de pseudocdigo, que aplicada no Interpretador da
Linguagem. Perceba tambm que algumas linhas possuem recuos em relao
linha anterior. A essa distribuio de recuos chamamos indentao, significando
que os elementos possuem uma hierarquia facilitando a leitura do programa por
outras pessoas.
4.1 DIGITANDO O ALGORITMO NO SOFTWARE PORTUGOL
Ao digitar um programa no PORTUGOL IDE (figura 9), para verificar se o
programa funciona de acordo com suas expectativas, clique no boto Executar, ou
pressionar a tecla F3, ou executar o comando Executar do menu Algoritmo.
Algoritmos
35
5 O QUE UM FLUXOGRAMA?
36
Algoritmos
37
Algoritmos
Algoritmos
38
Algoritmos
39
40
SNTESE
Agora sim!
Comeamos a ter uma viso prtica sobre a construo de programas de
computador. Nesta aula voc aprendeu as duas principais representaes que
podem ser utilizadas para a construo de algoritmos. So as ferramentas principais
do curso e servem como principal base para acelerar no conhecimento de
linguagens de programao.
Cabe ressaltar que o uso dessas ferramentas tem como principal objetivo
facilitar a descrio do seu entendimento para a soluo de um problema e a opo
entre pseudocdigo ou fluxograma depender do contexto do problema a ser
resolvido.
Nas prximas aulas voc conhecer os comandos utilizados em cada
representao de um algoritmo, estudando detalhadamente cada exemplo.
At a prxima aula.
Algoritmos
41
EXERCCIOS PROPOSTOS
Algoritmos
42
Aula 4
VARIVEIS E CONSTANTES
Objetivos da aula
Contedos da aula
Variveis e constantes
Comentando algoritmos
Exerccios propostos
As variveis e constantes so elementos fundamentais de um
programa de computador. Nesta aula voc obter o conhecimento
necessrio para construir algoritmos usando estes elementos de
programao.
Boa aula!
Algoritmos
43
1 VARIVEIS E CONSTANTES
1.1 VARIVEIS
Quando uma determinada informao do problema tem a possibilidade de
sofrer alteraes (ou variaes) no decorrer da execuo do programa, essa
informao dever ser tratada como uma varivel do problema e deve ser
representada no algoritmo. Como o prprio nome sugere, as variveis podem conter
valores diferentes a cada instante do programa, segundo as instrues do algoritmo.
Do ponto de vista tcnico, uma varivel um espao de memria do
computador que reservamos para guardar os dados elementares do problema a
ser resolvido.
Quando descrevemos uma varivel no algoritmo, utilizamos um nome (ou
identificador) para represent-la e seu contedo pode ser alterado, consultado ou
apagado quantas vezes forem necessrias, pois a varivel sempre armazenar o
ltimo valor atribudo para o seu contedo. A ao de descrever uma varivel no
algortimo chamada de declarao ou declarar uma varivel.
1.2 CONSTANTES
Quando uma informao no tem qualquer possibilidade de alterao, ou
variar, no decorrer da execuo do programa, deve ser tratada como uma
constante.
Do ponto de vista tcnico, uma constante uma rea de armazenamento do
computador que manter seu contedo durante toda a execuo do programa. Esta
rea possui um nome (ou identificador) e poder ser recuperada (lida) a qualquer
momento no algoritmo.
Algoritmos
44
Descrio
Inteiro
Domnio
-2.147.483.648
2.147.483.647
Real
-1.7 E 308
1.7 E 308
positivo)
Lgico
Texto
Verdadeiro ou Falso,
normalmente entre pontos.
Por exemplo, .verdadeiro.
ou .f.
Seqncias de caracteres
entre aspas.
Toda varivel possui algum contedo que ser armazenado e manipulado pelo
algoritmo. As variveis que sero utilizadas nos algoritmos devem ser declaradas
inicialmente. A declarao de uma varivel indica o tipo de dado que ela pode
guardar no decorrer da execuo do algoritmo (ou no decorrer da execuo do
programa que futuramente ser construdo).
Para declararmos uma varivel, temos que criar-lhe um identificador, que ser
o nome da varivel no algoritmo e tambm temos que definir o tipo de dado que a
Algoritmos
45
Nome_Aluno
Endereco
Salario
Data_Venda
Sexo
Nr_Nota_Fiscal
Nr_Tentativas
Algoritmos
46
3 COMENTANDO ALGORITMOS
Algoritmos
47
Operador
Adio
Subtrao
Multiplicao
Diviso
Potenciao
Radiciao
Operao
^, **
Exponenciao
Algoritmos
Prioridade
1
Diviso
Multiplicao
Adio
Subtrao
48
Operador
=
Diferente
=/=
Maior que
>
Menor que
<
Maior ou igual a
>=
Menor ou igual a
<=
Algoritmos
49
Algoritmos
50
SNTESE
EXERCCIOS PROPOSTOS
) 1000
Algoritmos
4,56
) 12
.Verdadeiro.
) .v.
cinco
) Casa 8
) -456
456
) -4.56
45.876
51
2) Supondo que as variveis Nota1, Nota2, Matrcula e Sexo sero utilizadas para
armazenar as notas de um aluno, o nmero da matrcula do aluno e o sexo do aluno,
respectivamente, efetue abaixo a declarao das variveis e seus tipos
corretamente.
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
___________________________________________________________________
52
Objetivos da aula
Contedos da aula
Estruturas de controle
Bloco SE-ENTO-SENO
Bloco ESCOLHE-CASO
Algoritmos
53
1 ESTRUTURAS DE CONTROLE
54
Algoritmos
55
Operador
E
Disjuno
OU
(no-exclusiva)
Negao
NO
SE NO A = Y ENTO
Este operador inverte o resultado, neste
exemplo, se A for igual a Y retornar
FALSO.
(somente h uma possibilidade)
Disjuno
(Exclusiva)
XOU
Algoritmos
56
Operao
Operador
OU
NO
XOU
Expresso A
Expresso B
AeB
A ou B
No A
A xou B
Algoritmos
57
58
Algoritmos
59
4 BLOCO SE-SENO-ENTO
60
ler B
se A < B ENTO
escrever "A menor que B!!"
fimse
fim
Observe que, no exemplo, caso o usurio digitar o valor de B maior do que A,
nada ir acontecer no programa. Se desejarmos apresentar alguma instruo para o
B ser maior que A, precisamos utilizar a palavra SENO. Por exemplo:
inicio
inteiro A
inteiro B
escrever "Digite um valor para A:"
ler A
escrever "Digite um valor para B:"
ler B
se A < B ENTO
escrever "A menor que B!!"
SENO
escrever "B menor que A!!"
fimse
fim
5 BLOCO ESCOLHE-CASO
61
62
63
Erros de sintaxe;
Erros de lgica.
64
Alm disso, o editor tambm apresenta cores diferentes para os elementos que
compem as instrues digitadas, exemplo: valores em vermelho e smbolo de
atribuio de valor em azul.
6.3 Erros de lgica
Os erros de lgica so mais complexos de resolver. Nesses casos, o programa
foi construdo com a sintaxe correta e executado tranqilamente, mas o resultado
apresentado no foi o esperado. Dessa forma, os erros de lgica no apresentam
mensagem de erro especfica e resolv-los , muitas vezes, uma tarefa trabalhosa
para o programador.
Diante desse grande desafio, os fabricantes de software para programadores
ampliaram o potencial das ferramentas para analisar cdigo. So ferramentas
conhecidas como debugger ou depuradores de cdigo de programao. Existem
as mais variadas ferramentas disponveis no mercado, pagas e gratuitas.
Normalmente as mais comuns utilizadas so as fornecidas em conjunto com alguma
ferramenta de desenvolvimento. A ferramenta Portugol tambm oferece um recurso
de depurao do pseudocdigo criado pelo programador figura 20).
Algoritmos
65
SNTESE
66
EXERCCIOS PROPOSTOS
1) Numa festa, foi feito um sorteio para distribuir um prmio. Cinco pessoas foram
sorteadas e deveriam pegar uma bola numerada de 1 a 5, Conforme o algarismo
sorteado o prmio ser:
Nmero da Bola
% do prmio
10%
25%
15%
20%
30%
O usurio dever informar o valor do prmio e qual o nmero da bola que tirou.
Calcule o valor do prmio e escreva na tela, utilizando o desvio ESCOLHE- CASO.
Construa o algoritmo usando o software PORTUGOL.
Algoritmos
67
Aula 6
Objetivos da aula
Contedos da aula
68
Estruturas de repetio
Bloco ENQUANTO-FAZ
Bloco FAZ-ENQUANTO
Bloco PARA-AT-PASSO
Bem vindo a mais esta aula do curso. Veja que agora vamos evoluir o
conceito de lgica condicional, usando blocos de repetio e
entender quando utilizar uma condio ou outra, de acordo com o
1 ESTRUTURAS DE REPETIO
Algoritmos
69
70
2 BLOCO ENQUANTO-FAZ
Algoritmos
71
3 BLOCO FAZ-ENQUANTO
Algoritmos
72
4 BLOCO PARA-AT-PASSO
73
Algoritmos
74
5 CONTADOR E ACUMULADOR
SNTESE
Algoritmos
75
EXERCCIOS PROPOSTOS
Algoritmos
76
Aula 7
MODULARIZAO DE ALGORITMOS
Objetivos da aula
Contedos da aula
Modularizao
Mdulos
Funes
Passagem de parmetros
Chegamos na ltima aula do curso. Voc percebeu que a cada aula,
os conhecimentos obtidos foram sendo relacionados e evoluindo a
complexidade de um algoritmo.
Nesta aula, vamos ver uma abordagem para simplificar algoritmos e
Algoritmos
77
1 MODULARIZAO
78
pelo usurio. Um subalgoritmo pode ser chamado pelo algoritmo principal ou por
outros subalgoritmos que compem o programa. Quando ocorre a chamada ao
subalgoritmo, as instrues contidas sero executadas e, aps sua execuo, o
processamento do programa retornar para o ponto de chamada.
Algumas
caractersticas
de
um
algoritmo
refletem
abordagem
de
modularizao:
Confiabilidade: pela diviso do problema em pequenas partes simples,
aumenta a possibilidade da soluo correta;
Legibilidade: o programa fcil de ser lido e entendido por um programador
de nvel mdio;
Facilidade de manuteno: o programa fcil de ser modificado. Quando
houver necessidade de mudana, a alterao ser facilmente implementada.
Na verdade, apenas pequenas partes recebero modificaes;
Flexibilidade: o programa fcil de ser reutilizado.
Por exemplo:
Algoritmos
79
Algoritmos
80
2 MDULOS
Nome do mdulo;
Algoritmos
81
3 FUNES
Algoritmos
82
4 PASSAGEM DE PARMETROS
Algoritmos
83
Algoritmos
84
SNTESE
Algoritmos
85
EXERCCIOS PROPOSTOS
Algoritmos
REFERNCIAS
LOGICA DE PROGRAMAAO
A CONSTRUO DE ALGORITMOS E ESTRUTURA DE DADOS
Autor: FORBELLONE, A. e EBERSPACHER, H.
Editora: MAKRON
APRENDA EM 24 HORAS ESTRUTURA DE DADOS E ALGORITMO
Autor: LAFORE, ROBERT
Editora: CAMPUS
ESTRUTURAS DE DADOS - CONCEITOS E TCNICAS DE IMPLEMENTAO
Autor: VILLAS, MARCOS VIANNA
Editora: CAMPUS - BB
INTRODUO A ESTRUTURA DE DADOS - UMA INTRODUO COM TCNICAS DE
PROGRAMAO EM C
Coleo: CAMPUS/SOCIEDADE BRASILEIRA DE COMPUTAO (SBC)
Autores: CELES, WALDEMAR, CERQUEIRA, RENATO e RANGEL, JOSE LUCAS
Editora: CAMPUS
ALGORITMOS E LGICA DE PROGRAMAO
Autores: SOUZA, MARCO ANTONIO FURLAN DE, GOMES, MARCELO MARQUES, SOARES,
MARCIO VIEIRA e CONCILIO, RICARDO
Editora: THOMSON PIONEIRA
LGICA DE PROGRAMAO
Autor: FORBELLONE, ANDRE LUIZ
Editora: PRENTICE HALL BRASIL
LGICA DE PROGRAMAO
Autor: XAVIER, GLEY FABIANO CARDOSO
Editora: SENAC SO PAULO
LGICA DE PROGRAMAO E ESTRUTURAS DE DADOS
Autor: PUGA, SANDRA / RISSETTI, GERSON
Editora: PRENTICE HALL BRASIL
LGICA DE PROGRAMAO - ENSINO PRTICO
Autor: MAGRI, JOAO ALEXANDRE
Editora: ERICA
LGICA DE PROGRAMAO
Autores: BERG, ALEXANDRE CRUZ e FIGUEIRO, JOICE PAVEK
Editora: ULBRA
LGICA ESTRUTURADA PARA PROGRAMAO DE COMPUTADORES
Autores: MANZANO, JOSE AUGUSTO NAVARRO GARCIA
Editora: ERICA
Algoritmos
86