Upload
lucas-da-silva
View
54
Download
5
Embed Size (px)
DESCRIPTION
Lógica de Programação
Citation preview
Lgica de
Programao
Everton Coimbra de Arajo
Ministrio da Educao
Escola Tcnica Aberta do Brasil
Universidade Tecnolgica Federal do Paran
Cuiab, 2009
Ficha Catalogrfica
Cuiab, 2009
Reviso
Capa (lay out)
Ilustrao
Diagramao
Germano Aleixo Filho
Marcelo Velasco
Marcelo Velasco
Terencio Francisco de Oliveira
Prof Dr Ana Arlinda de Oliveira - UFMT
Prof Dr Lucia Helena Vendrusculo Possari - UFMT
Prof Dr Gleyva Maria Simes de Oliveira - UFMT
Prof. Dr. Henrique Oliveira da Silva - UTFPR
Prof. M. Sc. Oreste Preti - UAB/UFMT
Oreste Preti e Gleyva Maria S. de Oliveira
Prof Dr Maria Lucia Cavalli Neder - UFMTComisso Editorial
Designer Educacional
A663l Arajo, Everton Coimbra de
Lgica de programao / Everton Coimbra de Arajo.-
Cuiab : EdUFMT, 2009.
132 p. : il. ; color.
Bibliografia: p. 132.
ISBN
1.Informtica. 2. Lgica de programao. I. Ttulo
CDU - 004.422.612
978-85-61819-62-0
Amigo(a) estudante:
O Ministrio da Educao vem desenvolvendo Polticas e Programas para
expanso da Educao Bsica e do Ensino Superior no Pas. Um dos caminhos
encontrados para que essa expanso se efetive com maior rapidez e eficincia
a modalidade a distncia. No mundo inteiro so milhes os estudantes que
freqentam cursos a distncia. Aqui no Brasil, so mais de 300 mil os
matriculados em cursos regulares de Ensino Mdio e Superior a distncia,
oferecidos por instituies pblicas e privadas de ensino.
Em 2005, o MEC implantou o Sistema Universidade Aberta do Brasil (UAB), hoje,
consolidado como o maior programa nacional de formao de professores,
em nvel superior.
Para expanso e melhoria da educao profissional e fortalecimento do Ensino
Mdio, o MEC est implementando o Programa Escola Tcnica Aberta do Brasil
(e-Tec Brasil). Espera, assim, oferecer aos jovens das periferias dos grandes
centros urbanos e dos municpios do interior do Pas oportunidades para maior
escolaridade, melhores condies de insero no mundo do trabalho e, dessa
forma, com elevado potencial para o desenvolvimento produtivo regional.
O e-Tec resultado de uma parceria entre a Secretaria de Educao
Profissional e Tecnolgica (SETEC), a Secretaria de Educao a Distncia (SEED)
do Ministrio da Educao, as universidades e escolas tcnicas estaduais e
federais
O Programa apoia a oferta de cursos tcnicos de nvel mdio por parte das
escolas pblicas de educao profissional federais, estaduais, municipais e, por
outro lado, a adequao da infra-estrutura de escolas pblicas estaduais e
municipais.
Do primeiro Edital do e-Tec Brasil participaram 430 proponentes de adequao
de escolas e 74 instituies de ensino tcnico, as quais propuseram 147 cursos
tcnicos de nvel mdio, abrangendo 14 reas profissionais. O resultado deste
Edital contemplou 193 escolas em 20 unidades federativas. A perspectiva do
Programa que sejam ofertadas 10.000 vagas, em 250 plos, at 2010.
.
PROGRAMA e-TEC BRASIL
Assim, a modalidade de Educao a Distncia oferece nova interface para a
mais expressiva expanso da rede federal de educao tecnolgica dos
ltimos anos: a construo dos novos centros federais (CEFETs), a organizao
dos Institutos Federais de Educao Tecnolgica (IFETs) e de seus cmpus.
O Programa e-Tec Brasil vai sendo desenhado na construo coletiva e
participao ativa nas aes de democratizao e expanso da educao
profissional no Pas, valendo-se dos pilares da educao a distncia,
sustentados pela formao continuada de professores e pela utilizao dos
recursos tecnolgicos disponveis.
A equipe que coordena o Programa e-Tec Brasil lhe deseja sucesso na sua
formao profissional e na sua caminhada no curso a distncia em que est
matriculado(a).
Braslia, Ministrio da Educao setembro de 2009.
Caro estudante:
Os avanos tecnolgicos na rea de informtica e comunicao, associados a
modelos pedaggicos que so apoiados pelo uso de tecnologia, deram
origem modalidade de ensino chamada Ensino a Distncia ou, simplesmente,
EaD.
A caracterstica desse modelo a separao fsica entre aluno e professor.
Para suprir a distncia, a interao, entre o aluno e o professor, mediada
tanto por recursos tecnolgicos quanto pelo material impresso. Nessa
modalidade de ensino, o material impresso, juntamente com recursos de vdeo,
videoconferncia e um Ambiente Virtual de Aprendizagem, so as bases
tecnolgicas, s quais voc ter acesso durante sua formao.
Todos esses recursos so meios de comunicao entre professor e aluno. Cada
recurso possui uma caracterstica prpria e necessita de um canal especfico
de comunicao. Para assistir aos vdeos, participar de videoconferncia ou
realizar as atividades do Ambiente Virtual de Aprendizagem, voc precisar ter
acesso a computadores e a internet. Porm, tais recursos tecnolgicos nem
sempre esto disponveis em tempo integral, por isso a importncia do material
impresso, que permitir a voc ter acesso ao conhecimento
independentemente de possuir a sua disposio as tecnologias de informtica
e comunicao.
Aliado s atividades presenciais e s atividades a distncia, o material impresso
ir, tambm, apoi-lo na realizao das atividades de estudos, estimulando-o a
participar de forma mais ativa em seu processo de ensino-aprendizagem,
construindo progressivamente o conhecimento de maneira interativa. Assim, o
professor deixa de ser a nica fonte de informao. O distanciamento fsico
no ser impedimento para o processo de cooperao e interao entre voc
e o professor. O educador criar oportunidades para que voc participe de
forma ativa durante seu processo de aprendizagem. Dessa maneira, voc ser
parte essencial na construo de seu prprio conhecimento.
O material foi elaborado visando formao de Tcnicos em Informtica,
segundo os parmetros do Catlogo Nacional de Cursos Tcnicos. O
profissional formado dever ter qualificao para atender demanda regional
em consonncia com as tendncias tecnolgicas. Alm disso, deve estar
ancorado em um conhecimento cientfico-tecnolgico, de relacionamento
interpessoal e comunicao oral. Deve tambm ter pensamento crtico e
racional, capacidade para resolver problemas de ordem tcnica, capacidade
CURSO TCNICO EM INFORMTICA
criativa e inovadora, capacidade de gesto e viso estratgica. Essa base lhe
tornar competitivo no mercado de trabalho.
Mas isso somente no suficiente. Voc deve demonstrar: honestidade,
responsabilidade, adaptabilidade, capacidade de planejamento, ser gil e ter
capacidade de deciso. Alm de ser possuidor de um esprito crtico, uma
formao tecnolgica generalista e uma cultura geral slida e consistente.
Foi pensando nessa formao que equipes de professores da rede pblica
federal de educao elaboraram seu material. Professores que atuam tanto no
ensino mdio quanto no ensino superior. Todos profissionais conceituados em
suas respectivas reas de atuao. O objetivo desses profissionais auxiliar
voc em sua formao profissional.
Tanto os recursos didticos pedaggicos, quanto os profissionais envolvidos
fazem parte do projeto Escola Tcnica Aberta do Brasil, e-Tec Brasil. Um projeto
que estabelece parceria entre Instituies de Ensino Pblico Federal, no papel
de formadores, e municpio, ou Estado, que disponibilizam os plos que
recebero os cursos oferecidos na modalidade de EaD.
Mas lembre-se: simplesmente ter acesso aos recursos didticos e tecnolgicos,
alm de ter a disposio uma equipe especializada de profissionais, no
suficiente. necessrio que esse material seja utilizado intensamente, de forma
a tornar-se fonte de conhecimento que lhe auxiliar em todos os momentos de
sua formao.
Cientes de que esse tambm o seu desejo, a equipe do e-Tec Brasil deseja a
todos timo processo de aprendizagem.
Atenciosamente,
Equipe de formadores do curso de Informtica da
Universidade Tecnolgica Federal do Paran.
SUMRIO Lgica de Programao - Everton Coimbra de Arajo
CONVERSA INICIAL
UNIDADE I - PROGRAMAO: ANTES DO INCIO
Conceitos Bsico
Descrio Narrativa
UNIDADE II - TIPOS DE DADOS, VARIVEIS, EXPRESSES, SINTAXE E SEMNTICA
Tipos de Dados
Variveis
Expresses e Operadores
Sintaxe e Semntica
UNIDADE III - INTRODUO AOS PSEUDOCDIGOS
Pseudocdigos
Endentao
Declarao de Variveis
Atribuio de Variveis
Entrada de Dados
Sada de Dados
............................................................................................................. 9
..................................................................................................... 13
................................................................................................ 20
........................................................................................................ 33
................................................................................................................... 35
....................................................................................... 37
............................................................................................... 41
........................................................................................................ 45
............................................................................................................. 47
....................................................................................... 47
.......................................................................................... 48
................................................................................................... 48
....................................................................................................... 49
Algumas Situaes
Pseudocdigos - Estrutura Condicional
UNIDADE IV - ESTRUTURAS DE REPETIO COM PSEUDOCDIGOS
Estruturas de Repetio
Estruturas de Repetio Contada
Estruturas de Repetio Condicional, com Teste no Incio
Estruturas de Repetio Condicional, com Teste no Final
UNIDADE V - CONJUNTOS
Conjuntos
Matriz
Classificao e Pesquisa
UNIDADE VI - SUBALGORITMOS E REGISTROS
Subalgoritmos
Registros
RETOMANDO A CONVERSA INICIAL
REFERNCIAS
.................................................................................................. 49
............................................................... 54
.......................................................................................... 65
........................................................................ 65
............................... 70
................................ 78
................................................................................................................. 87
........................................................................................................................ 92
........................................................................................ 96
........................................................................................................ 111
.................................................................................................................. 121
.............................................................................. 129
..................................................................................................................... 131
9Lgica de Programao - Everton imbra de Arajo Co
CONVERSA INICIAL
Caro estudante:
Neste mdulo, voc ter condies de desenvolver seus conhecimentos sobre
Algoritmo, pois trataremos aqui dos fundamentos e da prtica desse contedo.
Voc ter oportunidade, ao longo da leitura das unidades, de perceber que a
utilizao da linguagem algortmica faz parte de seu cotidiano e
fundamental para o conhecimento da rea de informtica.
Nesse sentido, elaboramos uma dinmica de organizao do contedo,
partindo de uma introduo sobre a temtica, passando pelos conceitos
fundamentais dela e buscando, por meio de exemplos, sua compreenso
sobre algoritmo e a importncia deste na formao do tcnico em Informtica.
Assim, na unidade I voc ser introduzido nos conceitos de lgica, algoritmo,
dados, informao, processamento de dados e lgica de programao.
Daremos continuidade a essa iniciao, na unidade II, ao tratarmos de
conceitos que devem ser conhecidos antes do estudo da programao com o
uso de pseudocdigos, tais como tipos de dados, variveis e expresses.
Na unidade III, voc conhecer a programao hipottica muito usada em
todo o mundo, ou seja, a pseudocdigo, e entrar em contato com a
representao de algoritmos atravs dessa linguagem e sua abordagem com
estruturas condicionais.
Na unidade IV, haver um aprofundamento sobre pseudocdigos, fazendo uso
de estruturas de repetio.
Na unidade V sero abordados conjuntos, strings e mtodos de classificao e
pesquisa.
Finalmente, na Unidade VI, voc ter oportunidade de conhecer subalgoritmos
e registro.
Assim, esperamos que, ao final desta disciplina, voc esteja habilitado a:
- Desenvolver algoritmos atravs de diviso modular e
refinamentos sucessivos;
- Interpretar algoritmos nas formas de pseudocdigo;
- Desenvolver algoritmos e represent-los por meio de linguagem
de programao procedural;
- Avaliar resultados de testes dos algoritmos desenvolvidos;
- Detectar e corrigir erros em algoritmos;
- Integrar mdulos desenvolvidos separadamente.
Sugerimos que voc dedique tempo suficiente para fazer a leitura, realizar as
atividades e retirar suas dvidas. Sempre que considerar necessrio, volte ao
texto, refaa as atividades! No se limite a este material, faa pesquisas,
converse com professores e colegas. Voc ver que aprender uma
interessante aventura!
Bom estudo!
Everton Coimbra de Arajo
10 Lgica de Programao - Everton imbra de Arajo Co
UNIDADE IPROGRAMAO:
ANTES DO INCIO
13Lgica de Programao - Everton imbra de Arajo Co
Nesta unidade, voc estudar alguns conceitos relativos Lgica, Algoritmo, Dados,
Informao, Processamento de Dados e Lgica de Programao. Estes conceitos e
observaes objetivam uma sustentao cientfica aos temas propostos.
Organizamos esse contedo a fim de que voc perceba a importncia de cada
tema aqui trabalhado para a aprendizagem sobre programao e de como
efetuar o levantamento e a identificao de componentes necessrios para a
resoluo de um problema. Alm disso, fizemos uma introduo s tcnicas de
programao.
Os problemas que utilizamos nesta unidade voc encontra em seu cotidiano, o
que poder colaborar para iniciarmos um processo de raciocnio, buscando a
identificao do problema e de todos os componentes necessrios para sua
resoluo.
Inicialmente, a representao de resoluo de algoritmos ser a Descrio
Narrativa, na qual os passos de resoluo so expressos em linguagem natural,
como se fossem regras para utilizao de determinado aparelho, um manual.
Assim, ao final desta leitura esperamos que voc tenha condies de:
- Definir os fundamentos necessrios para a lgica de programao;
- Identificar que, para um processamento de dados, preciso que dados sejam
informados;
- Verificar que, para chegar a um resultado e fornecer informaes, um proces-
samento de dados necessrio.
1. CONCEITOS BSICOS
Nesta seo, voc ir estudar conceitos que so fundamentais para sua
formao em Informtica: Lgica, Algoritmo, Dados e Informao, Dados de
Entrada e Sada, Processamento de Dados e Lgica de Programao.
1.1. LGICA
- Voc j ouviu falar em Lgica? No? Mas, certamente j ouviu
algum responder algo do tipo: ' lgico que eu sei, ou
lgico que isso no daria certo. No ?
- Mas ser que, quando damos uma resposta assim, estamos
tendo pensamento lgico?
- Voc saberia dizer o que Lgica?
Escreva, a seguir, o que voc entende por lgica.
14 Lgica de Programao - Everton imbra de Arajo Co
Pois bem, a palavra lgica vem do grego clssico e foi criada pelo filsofo
grego Aristteles no sculo IV a.C. para estudar o pensamento humano e distinguir
interferncias e argumentos certos e errados.
A Lgica uma cincia de ndole matemtica, fortemente ligada Filosofia.
tambm a designao para o estudo de sistemas prescritivos de raciocnio, ou
seja, sistemas que definem como se "deveria" realmente pensar para no errar,
usando a razo, dedutivamente e indutivamente.
Assim, um sistema lgico um conjunto de axiomas e regras de inferncia que visam
representar formalmente o raciocnio vlido, dedutivo ou indutivo.
Para que voc compreenda melhor o que so esses dois tipos de pensamento e
como se diferenciam, acompanhe minha explicao e os exemplos.
O pensamento dedutivo se caracteriza por apresentar concluses que devem,
necessariamente, ser verdadeiras caso todas as premissas sejam verdadeiras.
Exemplo: Todo ser humano mortal.
O homem um ser humano
Portanto, ele mortal.
Lembra-se do Sherlock Holmes, do autor Arthur Conan Doyle? As respostas aos
enigmas policiais eram encontradas por Sherlock mediante pensamento dedutivo,
que se traduzia na to conhecida frase: "Elementar, meu caro Watson".
J o pensamento indutivo significa partir de premissas particulares, na busca de
uma lei geral, universal.
Por exemplo: O ferro conduz eletricidade
O ferro metal
O ouro conduz eletricidade
O ouro metal
O cobre conduz eletricidade
O cobre metal
Logo: os metais conduzem eletricidade.
Os indutivistas acreditavam que as explicaes para os fenmenos
advinham unicamente da observao dos fatos. Por isso eles
poderiam produzir resultados falsos.
Por exemplo: O cavalo, o burro e a mula so quadrpedes.
O cavalo, o burro e a mula so mamferos.
Logo: Todos os mamferos so quadrpedes.
Voc saberia dizer o que raciocnio ou pensamento dedutivo e
indutivo?
Dedutivo:
Indutivo:
15Lgica de Programao - Everton imbra de Arajo Co
Esta induo falsa, pois apresenta duas premissas verdadeiras, no entanto a
generalizao de concluso falsa.
Portanto, podemos concluir que
a Lgica a cincia das formas do pensamento. A Lgica estuda a correo
do raciocnio, visto que ele a forma mais complexa do pensamento. Podemos
dizer que a Lgica visa ordem da razo, isto , a razo pode funcionar
desordenadamente e a lgica estuda e ensina a colocar ordem no
pensamento.
Muito bem!
Agora que voc fez o exerccio, prossiga sua
leitura da seo 2, que trata dos algoritmos.
Mas, o que a Lgica tem a ver com
algoritmos?
1.2. ALGORITMO
Agora, ento, voc ter oportunidade de relembrar esse assunto e,
principalmente, verificar que no h como falar de algoritmos sem antes tecer
comentrios sobre automao.
Automao um processo em que uma tarefa deixa de ser desempenhada
pelo homem e passa a ser realizada por mquinas, no importando se estas
mquinas so mecnicas ou eletrnicas (SALIBA, 1993)
Vamos ver como pode ocorrer uma automao?
Determinada tarefa, para que seja automatizada, deve ter todas as etapas
conhecidas, e a mquina ou dispositivo que desempenhar este processo dever
estar apta a garantir sua repetibilidade.
O objetivo maior da automao que o resultado de uma tarefa possa ser
Agora, tente voc elaborar um raciocnio dedutivo e outro
indutivo!
Dedutivo:
Indutivo:
Certamente voc j ouviu falar em algoritmo, no?
Voc consegue se lembrar o que algoritmo? E automao,
voc saberia dizer o que ?
16 Lgica de Programao - Everton imbra de Arajo Co
conhecido ou obtido por vrias vezes, no mesmo intervalo de tempo e com a
mesma qualidade.
Exemplos:
So exemplos de automao os caixas eletrnicos dos bancos, que hoje
realizam tarefas antes realizadas pelos bancrios, e as funes mecnicas
de montagem na linha de produo automotiva.
Observe que cada situao-problema, ou processo para ser solucionada precisa
seguir algumas etapas que podemos chamar de especificao de sequncia
ordenada de passos. A esta especificao damos o nome ALGORITMO.
1.3. DADO E INFORMAO
Voc saberia dizer o que significa dado em Informtica?
Podemos dizer que o dado a matria-prima da informao, ou seja, a
informao composta de um conjunto organizado de dados. O dado puro e
simples, muitas vezes, confundido com a prpria informao, no carrega
obrigatoriamente nenhum carter informativo.
Imagine que cada letra deste texto estivesse solta na
pgina, ou seja, que as letras no estivessem presas por
nenhum processo tipogrfico. Ao sacudirmos a pgina, as
letras cairiam no cho, concorda?
Os montinhos de letras espalhadas pelo cho conteriam
todos os dados que constituem a informao deste texto,
sendo, porm, impossvel constitu-lo novamente apenas
recolocando as letras sobre o papel. Isso o que pode
acontecer com um dado puro e simples.
Veja estes exemplos de algoritmo que voc pode observar no
seu dia a dia:
- resolver uma operao matemtica seguindo passos
at chegar ao resultado final;
- ligar o forno de micro-ondas seguindo as etapas de
conectar energia, apertar determinados botes,
sequencialmente, at que a mquina seja ligada;
- tomar medicamentos seguindo orientao mdica;
- fazer receitas culinrias.
E agora, voc consegue pensar em outros exemplos? Ento
escreva no espao abaixo pelo menos mais dois exemplos
de algoritmos que voc encontrou em seu dia a dia.
a)
b)
17Lgica de Programao - Everton imbra de Arajo Co
Cada tipo de informao est associado a determinado conjunto de dados,
criados especificamente para se adequar aos processos de transmisso da
informao. Quando falamos, trabalhamos com fonemas que, atravs do sistema
vocal transmitem informaes, respeitando regras lingusticas e idiomticas.
Quando escrevemos, trabalhamos com letras que, ao serem ligadas entre si,
formam palavras (o que j uma informao), que formam frases.
Um mesmo conjunto de dados pode ser utilizado para representar informaes de
natureza distinta.
Veja o exemplo da escrita na lngua portuguesa, que utiliza o alfabeto formado
por letras, e a escrita na lngua japonesa, que utiliza smbolos.
H tambm os casos em que a linguagem escrita se socorre do mesmo alfabeto,
porm com idiomas distintos. Sendo assim, podemos verificar que, apesar de
utilizar o mesmo alfabeto, a lngua portuguesa distinta das demais lnguas
(francs, ingls, alemo, etc.). Esse um exemplo de que, quando falamos em
dados, podemos encontrar um mesmo veculo e um mesmo conjunto de dados,
com formas de informao totalmente distintas, que dependero apenas das
tcnicas de unio dos dados.
Com base em suas reflexes, cremos que j possvel enunciar uma definio que
atenda ao significado de dado e informao. Vamos s definies?
Dado: smbolo que expressa a unidade mnima da informao (tomo
da informao).
Informao: conjunto de dados reunidos com regras especficas natureza
da informao.
1.4. DADOS DE ENTRADA E SADA
Quando um problema surge em nosso dia a dia,
geralmente ele ocupa totalmente nossa ateno, e isso
pode interferir em nossa capacidade de percepo.
Ai... Tirei zero...
Ai... Tirei zero...
Ai... Tirei zero...
Na ilustrao acima, h uma preocupao fundamental: a mdia baixa na
avaliao. O estudante tem como foco principal o problema. No h uma
Este material que voc est lendo foi redigido em lngua
portuguesa brasileira. O que voc acha que aconteceria se ele
tivesse que ser utilizado por um estudante que dominasse
apenas a lngua francesa? O mesmo conjunto de dados
(alfabeto comum a muitas lnguas) est sendo utilizado, mas,
nesse caso, haveria transmisso da informao?
18 Lgica de Programao - Everton imbra de Arajo Co
preocupao com os dados que levaram quela situao.
Em sua opinio, o que levou o aluno a tirar uma nota abaixo da mdia? Que
aes ou atitudes anteriores colaboraram para que obtivesse aquele resultado?
Visualizando o problema e os componentes causadores dele, podemos identificar
dados que auxiliaro em sua resoluo. H situaes em que esta identificao
imediata, apesar de no percebermos. Porm, em situaes mais complexas, um
exaustivo trabalho de identificao de probabilidades e condies se faz
necessrio.
A estes componentes, probabilidades e condies damos o nome de dados de
entrada, pois por meio do processamento destes dados, com o uso de um
algoritmo, que chegamos soluo do problema, que gerar uma sada de
dado, ou seja, a resposta, informao ou resultado desejado.
1.5. PROCESSAMENTO DE DADOS
A informao pura e simples nada significa se no for transmitida. Ao mesmo tempo,
s podemos afirmar a existncia de uma comunicao se houver informao para
ser enviada.
Ento, observe os conceitos de comunicao e informao:
Comunicao pode ser considerada o intercmbio de informao entre
sujeitos ou objetos.
Informao o resultado do processamento, manipulao e organizao de
dados de tal forma que represente uma modificao (quantitativa ou
qualitativa) no conhecimento do sistema (pessoa, animal ou mquina) que a
recebe.
Por isso, embora sejam distintas em suas definies, s podemos justificar uma com
a existncia da outra.
Podemos dizer que a informao s existe aps o trmino de um processo que
envolve:
- A elaborao dela mesma;
- A transmisso dos dados que formam a informao;
- A absoro, por outra entidade diferente daquela que originou a informao,
de todos os dados organizados de maneira idntica informao original.
Voc saberia dizer qual a relao entre informao e
comunicao? Qual o sentido da informao se ela no puder
ser comunicada? E qual o sentido da comunicao se no
houver informao?
19Lgica de Programao - Everton imbra de Arajo Co
O universo dos conjuntos de dados associados a um veculo de comunicao
extenso. Para que a transmisso da informao seja realizada com sucesso
necessrio:
- que a entidade geradora saiba codificar a informao com o
conjunto de dados escolhidos;
- que a entidade receptora saiba decodificar a informao, por meio
do conjunto de dados escolhidos para a transmisso.
1.6. LGICA DE PROGRAMAO
Quando falamos em lgica de programao, ns nos remetemos sequncia de
instrues.
Voc sabe o que instruo?
Instruo pode ser considerada um conjunto de regras ou normas definidas
para a realizao de uma tarefa. Em informtica, instruo a informao que
indica a um computador uma ao elementar a executar.
Nas disciplinas de programao, quando nos dado um problema, o primeiro
passo determinar uma sequncia de instrues tal que, fornecidos os dados de
entrada, por meio da execuo da sequncia de instrues alcancemos como
sada a soluo do problema.
Agora, para que voc exercite seus conhecimentos sobre lgica
de programao, vamos lhe propor um desafio, por meio de
um estria muito conhecida:
Um senhor est numa das margens de um rio com uma raposa,
uma dzia de galinhas e um saco de milho. Ele pretende
atravessar o rio com sua carga, num barco que s comporta ele e parte de sua
carga. Ele no pode deixar a raposa com as galinhas, nem as galinhas com o
milho. O que fazer para atravessar o rio e chegar outra margem com a
raposa, as galinhas e o milho?
Ajude o senhor a resolver esse empasse! Porm, tente encontrar a resposta
antes de prosseguir a leitura.
Descreva-a no quadro abaixo:
20 Lgica de Programao - Everton imbra de Arajo Co
Voc conseguiu chegar resposta? Ento, parabns! Caso contrrio,
acompanhe o caminho por mim percorrido para solucionar o problema.
Geralmente, os estudantes tentam partir para a resoluo imediata, alguns
chegam a desenhar duas margens separadas por um rio e os demais personagens
tentando encontrar a soluo. Poucas so as situaes em que ocorre a
preocupao em avaliar a essncia do problema, ou seja, as caractersticas de
cada personagem, os dados de entrada.
A identificao do problema relativamente simples, o prprio texto a retrata
muito bem, sem necessidade de informao complementar.
Os componentes fornecidos tambm so suficientes, bastando uma anlise
detalhada caracterstica de cada um deles.
J os dados de sada, neste caso, no so informaes, e sim uma maneira de
resolver o problema proposto.
Avaliando as caractersticas de cada componente, identificamos que,
evidentemente, o senhor no pode deixar em uma das margens, sozinhos, a
raposa e as galinhas. Fatalmente, a raposa comeria as galinhas. Nem as galinhas e
o milho, pois as galinhas comeriam os gros.
A questo escrever uma sequncia de passos (um algoritmo) que processe estes
dados e oriente o senhor a realizar seu intento, sem que haja perda.
bvio que, na primeira viagem, ele no pode levar a raposa, pois as galinhas
comeriam o milho.
Tambm no pode levar o milho, pois a raposa comeria as galinhas.
Como resolver esse problema?
Veja o algoritmo (sequncia de
passos) identificado (dados de sada)
para a resoluo do problema:
Atravesse as galinhas
Retorne sozinho
Atravesse a raposa
Retorne com as galinhas
Atravesse o milho
Retorne sozinho
Atravesse as galinhas.
s s
2. DESCRIO NARRATIVA
O que voc imagina que seja descrio narrativa?
Ao depararmos com um problema, cuja necessidade de automao iminente,
21Lgica de Programao - Everton imbra de Arajo Co
precisamos ter certeza de que o compreendemos e de que sabemos o que se
espera da soluo para depois, sim, iniciarmos o trabalho de programao.
No h como aceitar uma resposta sem sabermos se ela que se deseja. Para
isso, quando essa situao ocorre, uma ampla anlise do problema em questo
se faz necessria.
Por meio desta anlise, possvel identificar alguns dos passos que devem ser
seguidos e respeitados para que seja possvel a resoluo da situao-problema.
Esses passos compem a tabela usada para estudo de um problema e
consequentemente serviro como base para a construo da Descrio Narrativa
de como este problema deve ser resolvido.
Esta tabela e estes passos sero amplamente discutidos e exemplificados na
sequncia.
Entretanto, antes disso, vale a pena observarmos que uma das maiores
dificuldades encontradas pelos estudantes na disciplina de algoritmos a
interpretao de texto.
No conseguir identificar aquilo que se pede (problema), o que se espera obter
(dados de sada), o que ser necessrio para o processamento (dados de
entrada) e a maneira de processar esses componentes dificulta muito o processo
de resoluo.
Portanto, aproveitamos para destacar a importncia do exerccio dirio da leitura,
seja no contexto escolar, seja no profissional, seja no lar. Mediante o hbito da
leitura, firmamos ainda mais a compreenso ou interpretao do que lemos e
essas competncias so fundamentais para todas as reas do conhecimento, no
somente quando tratamos da Lngua Portuguesa, como equivocadamente
pensam muitos estudantes.
Nos casos descritos a seguir nos prximos tpicos, por exemplo, voc precisar
interpretar o texto para identificar os elementos necessrios sua resoluo.
Portanto, exercite a leitura e ver como isso poder ajud-lo no somente em
informtica, mas em todas as reas do conhecimento, ok?
2.1. RESOLUES SEQUENCIAIS
Agora, observando o exemplo abaixo, vamos verificar se o texto que traz o
problema (enunciado) teve uma correta interpretao. Para isso, propomos o
preenchimento de uma tabela como mostrada a seguir.
PROBLEMA I
De trs prisioneiros que estavam em crcere, um tinha viso normal, o segundo
tinha apenas um olho e o terceiro era cego. Os trs eram, pelo menos, de
inteligncia mdia.
O carcereiro disse aos prisioneiros que, de um jogo de trs chapus brancos e
dois vermelhos, escolheria trs e os colocaria na cabea deles. Cada um deles
22 Lgica de Programao - Everton imbra de Arajo Co
estava proibido de ver a cor do chapu em sua prpria cabea.
Reunindo-os, o carcereiro ofereceu a liberdade ao prisioneiro com viso
normal se ele fosse capaz de dizer a cor do chapu que tinha na cabea.
O prisioneiro confessou que no podia dizer e se retirou.
A seguir, o carcereiro ofereceu a liberdade ao prisioneiro que s tinha um olho
na condio de que ele dissesse a cor de seu chapu.
O prisioneiro confessou que tambm no sabia diz-lo e tambm se retirou.
O carcereiro no se deu o trabalho de fazer a idntica proposta ao prisioneiro
cego, mas insistncia deste, concordou em dar-lhe a mesma oportunidade.
O prisioneiro cego abriu um amplo sorriso e disse: No necessito da minha viso.
Pelo que meus amigos disseram, vejo claramente que meu chapu branco.
O Problema
Soluo
esperada
Dados de
entrada
Dados de
sada
Etapas
encontradas
De trs prisioneiros, verificar qual ou quais identificam a cor do
chapu posto em sua cabea, sem olh-lo.
Cada preso deve identificar a cor do
chapu que tem em sua cabea.
Existem cinco chapus: trs brancos e dois vermelhos.
Observaes complementares
Detalhamento dos Dados de Entrada
Chapus
Existem duas cores possveis entre os cinco existentes
Neste problema em particular, no se obtm dados ou
informaes ao seu trmino, apenas a resoluo do
problema, que a identificao da cor do chapu sobre a
cabea do prisioneiro.
- Colocar na cabea de cada preso um chapu;
- Escolher um dentre os trs prisioneiros para perguntar a cor do
chapu sobre sua cabea;
- Efetuar a pergunta para todos.
1. Ponha os chapus na cabea dos presos;
2. Pergunte ao primeiro preso a cor de seu chapu;
3. Pergunte ao segundo preso a cor de seu chapu;
4. Pergunte ao terceiro preso a cor de seu chapu;
Descrio
Narrativa da
soluo
encontrada
Tabela I: Interpretao do problema I
23Lgica de Programao - Everton imbra de Arajo Co
A tabela apresentada no regra, nem pr-requisito para resoluo de
algoritmos, porm pode ser vista como uma tima ferramenta para apoio ao incio
de um aprendizado to exigente como Programao.
Atente bem a cada um de seus itens, tente identificar a real importncia de eles
existirem. Caso identifique novos itens relevantes, inclua-os. Caso acredite que
nem todos so necessrios para a resoluo de seus algoritmos, retire-os. Lembre-
se de que uma ferramenta deve ter o propsito de auxiliar, e no dificultar. No
entanto, ela s poder auxiliar se voc souber como utiliz-la.
Observe, no problema anterior, que a escolha de quem ser interrogado antes faz
parte do problema, at de forma racional, pois primeiro se pergunta para quem
tem mais condies visuais, assumindo-se que talvez, por ter viso total, ter
condies de identificao.
Poder ser notado que a resoluo deste algoritmo no est diretamente ligada
aos passos que devem ser percorridos, mas sim ao raciocnio lgico do terceiro
preso.
Sendo assim, vejamos o raciocnio utilizado por ele para saber seguramente a cor
do chapu em sua cabea.
a) O primeiro prisioneiro s poderia ter visto na cabea dos outros dois as seguintes
combinaes de chapus:
A primeira possibilidade est descartada, pois ele teria acertado, uma vez que s
existiam dois chapus vermelhos. Sendo assim, restaram as trs ltimas.
Voc percebeu que o preenchimento desta tabela facilita a
compreenso dos elementos que compem o problema? E voc
j identificou que dados levaram o prisioneiro cego a identificar
qual a cor do chapu lhe foi colocado sobre a cabea?
24 Lgica de Programao - Everton imbra de Arajo Co
b) O segundo prisioneiro, tendo em vista as possibilidades que restaram, s poderia
ter visto:
Como a primeira e a terceira so iguais, ele s pode ter visto vermelho ou branco.
Se ele tivesse visto vermelho, teria certeza de que seu chapu era branco, pois se
fosse vermelho, o primeiro teria acertado. Logo, ele s poderia ter visto chapu
branco no terceiro prisioneiro; da sua dvida: o dele seria branco ou vermelho?
c) Foram essas as concluses que o terceiro tirou para dizer que o chapu dele
era branco.
Voc deve ter percebido que o terceiro prisioneiro usou a lgica, conceito j
estudado nesta unidade, para responder acertadamente sobre a cor de seu
chapu, ou seja, baseando-se nos dados que tinha, ordenou o raciocnio e
chegou resposta.
A situao exposta neste exemplo reflete o que voc precisar sempre ter em
mente:
necessrio saber resolver o problema antes de usar ferramentas para
faz-lo.
O programador tem que ter total domnio do problema e do ambiente,
pois s desta maneira ele poder aplicar linguagens de programao e
outras ferramentas que o auxiliem a resolv-los.
Nos problemas resolvidos, h grande possibilidade de maior detalhamento.
Para isso, necessrio sempre um estudo pormenorizado do ambiente em que se
deseja promover a automao. Os exerccios descritos e resolvidos tratam os
problemas de uma forma generalizada, porm, se durante a leitura e aplicao
voc encontrar particularidades que devam ser tratadas em decorrncia de novo
ambiente, faa-o como exerccio de abstrao.
O exemplo anterior apresentou um pequeno problema, com
uma nica possibilidade de soluo, no havendo condies
ou pr-requisitos para tomar um caminho ou outro, ou ainda
encontrar uma situao em que inviabializaria a resoluo do
problema. A este tipo de resoluo, d-se a caracterstica de
sequencial, pois cada passo ocorre um aps o outro, sem
desvio.
25
2.2. RESOLUES CONDICIONAIS
No difcil imaginar o que so resolues condicionais, sim?
O prprio nome nos remete ao conceito. Resolues condicionais so necessrias
quando, diante de uma nova situao, temos que lidar com condies para
que determinada tarefa seja desempenhada.
A identificao destas condies faz parte da identificao do problema e, por isso,
muitas vezes deparamos com a dificuldade de encontr-las e de como resolv-las.
O exemplo a seguir tem a caracterstica de uma estrutura condicional, veja:
PROBLEMA II
O governo federal implantou um plano de apoio s famlias de baixa renda,
que consiste na entrega de cesta bsica. Foi determinado um local para
distribuio destas cestas, onde se encontra uma pessoa que solicita algumas
informaes para cada cidado que para l se dirige. Sendo identificada a
veracidade das informaes, entregue uma cesta bsica a cada cidado.
Tabela II: Interpretao do problema II
O Problema
Soluo
esperada
Dados de
entrada
Dados de
sada
Etapas
encontradas
Entregar cestas bsicas populao com baixa renda.
Observaes complementares
Detalhamento dos Dados de Entrada
- No so todos que tm direito cesta bsica;
- Deve-se, atravs de perguntas, identificar se o cidado tem
direito, ou no, cesta bsica.
Entrega de cesta bsica apenas para quem realmente necessite.
Questionrio
Conjunto de perguntas que permitiro a identificao da
necessidade, ou no, de cesta bsica
Se for identificada a necessidade de cesta bsica, deve
ser entregue ao cidado, caso contrrio, deve ser dito a
ele que no possui direito.
Lgica de Programao - Everton imbra de Arajo Co
- Solicitar ao cidado o preenchimento do questionrio;
- Avaliar o questionrio e identificar a necessidade;
- Proceder com o cidado de acordo a avaliao obtida
pelo questionrio.
26 Lgica de Programao - Everton imbra de Arajo Co
Descrio
Narrativa da
soluo
encontrada
1. Entregar questionrio para cidado preencher;
2. Avaliar o questionrio preenchido;
3. Se o cidado necessitar de cesta bsica, ento proceda
entrega;
4. Se o cidado no necessitar de cesta bsica, ento
informe que no tem direito.
No problema exposto acima, o enunciado praticamente esclarece todas as
dvidas e expe todos os passos a serem cumpridos para chegarmos soluo,
bastando apenas uma especial ateno ao texto, para, assim, a interpretao ser
perfeita.
O objetivo entregar cesta bsica s famlias de baixa renda. Mas qual famlia
de baixa renda? Como saber disso?
Neste caso, no interessa as particularidades, pois o texto diz que as informaes
sero solicitadas por um responsvel e a ele compete esta identificao, cabendo
a seu programa apenas trabalhar com a informao passada pelo responsvel.
Uma vez identificado que a famlia de baixa renda, entrega-se a cesta. Caso
contrrio, apenas informa quais famlias no tm direito cesta bsica.
2.3. RESOLUES COM PONTOS DE REPETIO
a) Repetio contada
Sem dvida, pudemos perceber situaes condicionais no exemplo anterior, mas
ainda existem ocasies em que determinado problema, para ser resolvido,
necessita de um processo que pode se repetir por vrias vezes, podendo esta
quantidade ser predeterminada ou condicional, e isso tambm deve ser
trabalhado. A esta caracterstica dado o nome de repetio.
Veja o exemplo:
PROBLEMA III
Em um instituto de pesquisa voltado criao de pinguins, foi levantada a
temperatura de todos os dias do ms de novembro. Encontre a quantidade de
dias com temperatura positiva, a quantidade de dias com temperaturas
negativa, alm da mdia da temperatura nos dias quentes.
Tabela III: Interpretao do problema III
O ProblemaObservaes complementares
Encontrar a quantidade de dias de novembro com
temperatura positiva e negativa, alm da mdia de
temperatura nos dias em que esta foi positiva.
- O ms de novembro tem 30 dias;
- Nem todas as temperaturas obrigatoriamente so positivas
ou negativas.
27Lgica de Programao - Everton imbra de Arajo Co
Soluo
esperada
Dados de
entrada
Dados de
sada
Etapas
encontradas
Detalhamento dos Dados de Entrada
Temperatura
- Quantidade de dias com temperatura positiva;
- Quantidade de dias com temperatura negativa;
- Mdia da temperatura nos dias positivos.
- Solicitar temperatura para cada dia;
- Identificar se a temperatura positiva ou negativa;
- Somar as mdias positivas e efetuar o clculo da mdia.
Apresentao da quantidade de dias do ms de novembro
com temperatura positiva e negativa, alm da mdia de
temperatura nos dias em que a mesma foi positiva.
Deve ser verificado se positiva ou negativa.
Descrio
Narrativa da
soluo
encontrada
1. Solicitar temperatura para cada dia do ms de novembro;
2. Se a temperatura informada for positiva, deve-se som-la
acumulando esta soma, e tambm somar, acumulando, a
quantidade de dias com temperatura positiva;
3. Se a temperatura informada for negativa, deve-se somar e
acumular a quantidade de dias com temperatura
negativa;
4. Obtidas todas as temperaturas, deve-se informar a mdia
delas em dias de temperatura positiva.
Este problema interessante, pois trata uma situao que se repete um nmero
de vezes conhecido, o que chamamos de repetio contada.
Nem sempre o problema traz a quantidade de vezes que um processo se repetir.
Normalmente essa informao vem de forma implcita, como neste texto.
Voc observou que no foi dito quantas vezes preciso solicitar a temperatura?
Mas voc viu que foi dito que a situao se passa em novembro, ficando mais
fcil definir a quantidade de repeties, no ?
Um outro detalhe que no pode passar despercebido que a mdia desejada
no de todas as temperaturas, apenas das positivas. Logo, necessrio saber
quando a temperatura positiva e, quando o for, somar estes valores.
Observe que no podemos, alm disso, dividir este valor pela quantidade de
temperatura, apenas pela quantidade identificada como positiva.
Outra solicitao a quantidade de dias negativos. Esta a mais fcil, pois j
identificamos a quantidade de dias positivos para chegar mdia e temos o total
28 Lgica de Programao - Everton imbra de Arajo Co
dos dias. Basta deduzirmos que os negativos so o resultado de uma subtrao
entre o total de dias e os dias com temperatura positiva.
b) Repetio contada e condicional - aninhadas
Para voc verificar como ocorre uma repetio contada e condicional
aninhada, acompanhe o problema a seguir:
PROBLEMA IV
Uma vincola deseja saber o percentual de vinho branco seco vendido durante
determinado ms. So vrios os tipos de vinho comercializados, assim como so
vrios os clientes da empresa. A quantidade desejada se refere venda total
da vincola no ms em referncia.
Por questes da estrutura de como os dados so utilizados neste algoritmo,
deve-se, para cada dia, verificar cliente por cliente, os tipos de vinho e
respectiva quantidade comprada.
Tabela IV: Interpretao do problema IV
O Problema Observaes complementares
Identificar o percentual de vinho branco seco vendido em
determinado ms.
- No se sabe qual o ms se deseja fazer a verificao;
- Cada cliente pode comprar vrios tipos de vinho.
Soluo
esperada
Dados de
entrada
Detalhamento dos Dados de Entrada
Apresentao do percentual que representa a venda de vinho
branco seco, perante toda a venda de determinado ms.
- Ms
- Cliente
- Tipo do vinho e quantidade comprada por cada cliente
Deve ser solicitado antes do cliente, o tipo de
vinho e a quantidade comprada por cliente, pois
o ms que identifica a quantidade de vezes que
deve ser verificada a venda.
Dados de
sada- Percentual de vinho branco seco vendido no ms
29Lgica de Programao - Everton imbra de Arajo Co
Etapas
encontradas
- Identificar o ms em que se deseja fazer esta pesquisa;
- Identificar para cada dia os clientes que compraram vinhos;
- Identificar a quantidade e tipo de vinho comprados por
cliente;
- Saber que, para cada tipo de vinho comprado, se deve
verificar se o desejado para a pesquisa: Vinho Branco
Seco. Caso seja, deve-se somar a quantidade informada,
para, ao final, fazer verificao do percentual;
- Devem-se somar todos os vinhos comprados por todos os
clientes, pois o percentual dever ser encontrado sobre o
total comercializado;
- Calcular e informar o percentual desejado.
Descrio
Narrativa da
soluo
encontrada
1. Solicitar o ms em que se deseja fazer a pesquisa
2. Solicitar, para cada dia do ms, os clientes que compraram
vinhos na vincola.
3. Solicitar, para cada cliente, o tipo de vinho e a quantidade
comprada.
4. Se o tipo de vinho for Branco e Seco, deve-se acumular a
quantidade informada.
5. Para cada tipo de vinho informado, independentemente de
ele ser do tipo desejado para pesquisa ou no, deve-se
acumular a quantidade.
6. Aps a informao do tipo e quantidade comprada pelo
cliente, deve-se verificar se o cliente comprou mais vinho.
7. Caso a resposta seja positiva, deve-se retornar ao item 3
Caso contrrio, deve-se verificar se h mais clientes que
compraram vinho neste dia.
8. Caso a resposta seja positiva, deve-se retornar ao item 2.
Caso contrrio, deve-se prosseguir.
9. Uma vez encontrado todos os valores, deve-se efetuar o
clculo do percentual referente s vendas de Vinho Branco
Seco e inform-lo ao usurio.
interessante observamos que, neste caso, o nico lao repetitivo que se pode
chamar de repetio contada o mais externo, o que se referencia aos dias do
ms utilizado para a pesquisa.
Aos laos internos denominamos de laos condicionais, pois sua continuidade
depende de uma situao que nem sempre se conhece, mas se pode prever. H
casos em que esta condio alcanada por meio de processos do prprio
algoritmo (como em uma repetio contada).
SABER M
Este exerccio nos mostra uma situao um pouco mais
curiosa que os anteriores: h processos repetitivos
dentro de um processo repetitivo. A esta caracterstica
damos o ttulo de repetio aninhada.
30 Lgica de Programao - Everton imbra de Arajo Co
H casos em que esta condio alcanada em decorrncia de uma interao
com o usurio, como ocorre no exemplo, em que se pergunta se o cliente comprou
ou no mais vinho. Isso aps a avaliao total da primeira interao do lao.
Chegamos ao final dessa unidade, em que voc teve a
oportunidade, na seo de Conceitos Bsicos, de identificar o
que Lgica e a importncia desse conceito para aprender
algoritmo. Voc estudou o conceito de algoritmo e
automao. Pde verificar o que dado e informao e a
relao entre esses dois conceitos.
Voc estudou sobre dado de entrada e de sada e verificou como
importante no observar o problema em si, mas os componentes, as
probabilidades e as condies para sua resoluo. No item Processamento
de Dados, voc observou a relao entre comunicao e informao. Em
Lgica de Programao voc viu o que instruo e como a execuo da
sequncia de instrues permite chegar resoluo do problema.
Na seo 2 - Descrio Narrativa - voc pde conhecer um pouco sobre
linguagem e a importncia da leitura para identificar um problema. No item
Resolues Sequenciais, por meio de exemplos, voc pde verificar os
processos para chegar soluo de um problema.
No item Resolues Condicionais, voc observou que a identificao das
condies faz parte da identificao do problema e que a resoluo deste
depende de verificar quais so essas condies.
No item Resolues com Pontos de Repetio, voc verificou que, alm das
situaes condicionais, um processo pode se repetir vrias vezes e esta
quantidade pode ser predeterminada ou condicional.
No item Repetio Aninhada, voc teve oportunidade de verificar que
processos repetitivos podem ocorrer dentro de um processo repetitivo.
Voc deve ter percebido, pelo estudo dessa unidade, que falamos um
pouco sobre os conceitos bsicos que envolvem as tcnicas de
programao. So noes que precisam ser compreendidas de modo
significativo para uma futura compreenso de toda a lgica envolvida nos
processos de programao na rea da Informtica.
Espero que voc tenha tido condies de observar que, por exemplo, a
descrio narrativa uma maneira simples de se programar, por isso voc
deve ter identificado que, se voc faz descries narrativas todos os dias,
voc capaz de programar, sim?
Bem, agora que voc j teve contato com as primeiras conceituaes,
podemos dar um passo adiante!
Realmente, espero que nossa conversa nesta unidade tenha fornecido a
voc os subsdios mnimos para continuidade do trabalho! Mas, se ainda
restam dvidas, leia esta unidade quantas vezes julgar necessrio.
Lembre-se sempre que voc capaz!
At a Unidade II!
UNIDADE IITIPOS DE
DADOS, VARIVEIS,
EXPRESSES, SINTAXE
E SEMNTICA
33Lgica de Programao - Everton imbra de Arajo Co
Na unidade anterior, buscamos introduzir voc no campo do raciocnio lgico e
de algumas ferramentas para resoluo de problemas.
Nesta segunda etapa, voc ter contato com alguns conceitos que deve
conhecer antes de iniciar a programao com uso de pseudocdigos: tipos de
dados, variveis e expresses. Depois disso, passaremos a estudar conceitos,
exemplos e a prtica de programar, usando pseudocdigo para resoluo de
algoritmos.
Assim, por meio do estudo desta unidade esperamos que voc seja capaz de:
- Compreender o que so e quais so os tipos de dados bsicos;
- Definir e compreender o uso de variveis;
- Conhecer a definio e o correto uso de expresses e operadores;
- Compreender, identificar e aplicar sintaxe e semntica.
Salvetti & Barbosa (1998) ressaltam que um programa de computador descrito
em uma linguagem de programao. Geralmente, cada linguagem de
programao tem seus prprios tipos de dados, isto , conjunto de valores,
operaes e relaes j implementadas (disponveis para uso). Na
implementao surge o conceito de domnio, isto , da limitao do conjunto de
valores dos elementos representados.
Os tipos de dados que sero tratados nesta sesso so classificados de acordo
com o tipo de informao contida neles. Lembramos que a classificao
apresentada aqui no se aplica a nenhuma linguagem de programao
especfica, pois a idia mostrar, de forma sintetizada, os padres utilizados na
maioria das linguagens.
2.1.1. DADOS NUMRICOS
Os dados numricos so divididos, basicamente, em dois grandes conjuntos:
inteiros e reais. Veremos nas definies que tudo que foi aprendido nas aulas
bsicas de matemtica, totalmente utilizado no conceito destas duas classes de
tipos de dados numricos.
Nmeros inteiros so aqueles que no possuem componentes decimais ou
fracionrios, podendo ser positivos ou negativos.
Esse fcil! Quer ver alguns exemplos?
Vamos l!
36 um nmero inteiro positivo
0 um nmero inteiro
- 8 um nmero inteiro negativo
2.1. TIPOS DE DADOS
34 Lgica de Programao - Everton imbra de Arajo Co
Os dados de tipo Real so aqueles que podem possuir componentes decimais ou
fracionrios, podendo tambm ser positivos ou negativos.
Bem, agora vejamos...
Podemos citar como exemplos de dados de tipo real:
36.01 um nmero real positivo com duas casas decimais
166. um nmero real positivo com zero (nenhuma) casa decimal
- 18.8 um nmero real negativo com uma casa decimal
0.0 um nmero real com uma casa decimal
0. um nmero real com zero (nenhuma) casa decimal.
importante observar que h uma diferena entre 0, que um dado do tipo inteiro,
e 0. ou 0.0, que so dados do tipo real. Portanto, a simples existncia do ponto
decimal serve para diferenciar um dado numrico do tipo inteiro de um tipo real.
2.1.2. DADOS LITERAIS
O que um dado literal? Voc saberia dizer?
O tipo de dados literal, conforme Saliba (1993), pode ser definido como
constitudo por uma sequncia de caracteres com letras, dgitos e/ou smbolos
especiais. Este tipo de dado tambm muitas vezes chamado de
alfanumrico, cadeia de caracteres ou, ainda, String.
Usualmente, os dados literais so representados nos algoritmos pela coleo de
caracteres, delimitada em seu incio e trmino com o caractere aspas ().
comum, em algumas linguagens, a diferenciao entre a representao de um
nico dado literal, que chamado de caractere (por exemplo: 'A') e um conjunto
de caracteres, chamado de String (por exemplo: Ol, Mundo). Note que, no
exemplo de caractere, foram utilizadas aspas simples (apstrofo). J no exemplo
de string, aspas duplas. interessante esta diferenciao, pois, para algumas
linguagens, ela necessria (por exemplo C e Java).
O dado do tipo literal possui um comprimento dado pelo nmero de caracteres
nele contido. Veja os exemplos:
"QUEM ?" - Literal de comprimento 5
" " - Literal de comprimento 1
"cOmO !?#" - - Literal de comprimento 8
"AbcDEFghi" - - Literal de comprimento 9
"4+5-1=" - Literal de comprimento 6
"1" - Literal de comprimento 1
Ateno aos detalhes!
Perceba que 1.2 representa um dado do tipo LITERAL de comprimento 3,
constitudo pelos caracteres 1, . e 2, diferente de 1.2 que um dado do tipo
REAL.
35Lgica de Programao - Everton imbra de Arajo Co
2.1.3. DADOS LGICOS
So caracterizados, como tipos lgicos, os dados com valor verdadeiro e falso,
ressaltando que este tipo de dado poder representar apenas um dos dois
valores. Ele chamado por alguns de tipo booleano, devido contribuio do
filsofo e matemtico ingls George Boole na rea da lgica matemtica.
Para facilitar a citao de um dado do tipo lgico e diferenciao entre nomes
de variveis, alguns autores/professores apresentam estes valores delimitados pelo
caractere ponto (.).
Como exemplo deste tipo de dados, temos os valores: .Falso. (para o valor lgico:
falso) e .Verdadeiro. (para o valor lgico: verdadeiro). Observe que isso no
regra, apenas conveno para alguns.
2.2. VARIVEIS
Para Lopes & Garcia (2002), uma varivel um local na memria principal, isto ,
um endereo que armazena um contedo.
Para facilitar a programao, permitido que demos nome a esse endereo. O
contedo de uma varivel pode ser de um dos vrios tipos apresentados em
passo anterior.
Para Forbellone & Eberspacher (2000), um dado classificado como varivel
quando tem a possibilidade de ser alterado em algum instante no decorrer do
tempo, ou seja, durante a execuo do algoritmo, em que utilizado, o valor do
dado sofre alterao ou o dado dependente da execuo em certo momento
ou circunstncia.
Uma vez definidos o nome e o tipo de uma varivel, no podemos alter-los no
decorrer de um algoritmo. Por outro lado, o contedo da varivel um objeto de
constante modificao no decorrer do programa, de acordo com o fluxo de
execuo deste.
Quando formos dar nome s variveis, faz-se necessrio seguirmos algumas regras.
bom ressaltar que estas regras iro variar de acordo com a linguagem escolhida
como ferramenta, mas a grande maioria adota as seguintes regras genricas:
- O primeiro caractere uma letra;
- Se houver mais de um caractere, s poderemos usar: letra ou algarismo;
- Nomes de variveis escritas com letras maisculas sero diferentes de
letras minsculas;
- Nenhuma palavra reservada ferramenta (linguagem de
programao) poder ser usada como nome de uma varivel;
- Procure dar nomes representativos para a varivel. Lembre-se de que ao
ler seu nome, importante saber o que ela contm.
36 Lgica de Programao - Everton imbra de Arajo Co
As variveis so definidas no incio, pois isso permite a alocao (reserva) de uma
rea na memria (endereo) para a varivel. Outro objetivo da declarao de
variveis que, aps a declarao, o algoritmo sabe os tipos de operao que
cada varivel pode realizar. Algumas operaes s podem ser realizadas com
variveis do tipo inteiro. Outras s podem ser realizadas com variveis dos tipos
inteiro ou real, e outras s com variveis de caractere, entre outras que sero vistas
neste livro.
2.2.1. DECLARAO DE VARIVEIS
Para ilustrar uma declarao de variveis, necessrio que sejam nominados os
tipos de dados que encontramos nos problemas. Vejamos alguns tipos j vistos:
Inteiro int ou integer
Real real, float ou double
Literal char (um caractere) ou string (cadeia de caracteres).
Lgico boolean ou lgico.
Neste caso, para nomear os tipos de dados de modo vlido, precisamos retomar a
premissa de que interpret-los de modo correto fundamental.
Que tal observarmos alguns exemplos para tornar ainda mais clara essa ideia?
Vamos l...
Sendo dada uma lista de compras com o cdigo, quantidade e preo de
oito produtos, faa um algoritmo que escreva o valor total da compra.
Ao serem fornecidos um valor a ser pago e uma taxa para multa, pois o
pagamento est sendo feito aps o vencimento, calcule o valor da multa
e o valor total a ser pago.
solicitada a um motorista, recm-chegado de uma viagem, a quantidade de
quilmetros por ele percorrida. O motorista informa o solicitado, e voc dever
informar a ele a quantos metros se refere a quantidade de quilmetros.
string CODIGO
int QUANTIDADE
float PRECO, VALOR TOTAL
float VLRCONTA, TAXAMULTA, VLRMULTA, VLRTOTAL
int QUILOMETROS, METROS
Observe que o trabalho de identificao de variveis e de seus tipos , na maioria
das vezes, muito fcil, pois basta identific-los no enunciado. O que ocorre
tambm com grande frequncia a identificao de algumas variveis
37Lgica de Programao - Everton imbra de Arajo Co
necessrias apenas durante a resoluo do algoritmo, mas isso no problema.
Basta relacionarmos estas variveis lista j existente.
O conceito de expresso em termos computacionais, segundo nos informa Lopes
& Garcia (2002), est intimamente ligado ao conceito de expresso (ou frmula)
matemtica, no qual um conjunto de variveis e constantes numricas se
relaciona por meio de operadores, compondo uma frmula que, uma vez
avaliada, resulta em um valor.
Para Saliba (1993), o conceito de expresso aplicado computao assume uma
conotao mais ampla: uma expresso uma combinao de variveis,
constantes e operadores, que, uma vez avaliada, resulta em um valor.
Aqui constam algumas definies. importante que voc leia com ateno esses
conceitos e busque outras fontes de informao sobre isso. Tambm se faz
necessrio que voc procure o significado das palavras que no conhece.
2.3. EXPRESSES E OPERADORES
No conceito de Saliba (1993), descrito acima, por exemplo, voc
saberia conceituar operadores?
Operadores, ainda segundo esse mesmo autor, so elementos funcionais que
atuam sobre operandos e produzem determinado resultado.
Ah! Essa esta bem simples...
Vejamos o exemplo abaixo:
A expresso 5 2 relaciona dois operandos (os nmeros 5 e 2) por meio do
operador (-) que representa a operao de subtrao.
Os operadores podem ser classificados em binrios, unrios e ternrios. Esta
classificao atribuda de acordo com o nmero de operandos sobre os quais o
operador atua. Neste momento, sero abordados somente os operadores binrios
e unrios, mas importante destacar que os ternrios esto presentes em vrias
linguagens de programao e que sua forma de uso depende exclusivamente da
linguagem que est sendo utilizada. Observe, a seguir, exemplos de operadores
binrios e unrios.
- binrios: operaes matemticas simples nas quais o operador envolve
dois algarismos.
1+3
4-1
- unrios: o operador somente se encarrega de informar se o nmero
positivo ou negativo.
+2
38 Lgica de Programao - Everton imbra de Arajo Co
Outra classificao feita aos operadores em considerao ao tipo de dado de
seus operandos e do valor resultante de sua avaliao. Esta classificao de
operadores aritmticos, lgicos, relacionais e literais. Vejamos de que se trata.
2.3.1. EXPRESSES ARITMTICAS
So aquelas cujo resultado da avaliao do tipo numrico, seja ele inteiro seja
real. Somente o uso de operadores aritmticos e de variveis numricas
permitido em expresses deste tipo.
A prioridade entre operadores define a ordem em que eles devem ser avaliados
dentro de uma mesma expresso.
Quando h dois ou mais operadores de mesma prioridade em uma expresso, a
execuo se d da esquerda para a direita.
bvio que, se utilizarmos o conceito de agrupamento de operaes atravs de
parnteses, isso poderia ser facilmente visto.
O caractere * adotado na maioria das linguagens de programao para
representar a operao de multiplicao, ao invs do caractere x, por fora da
possibilidade de ocorrncia do mesmo nome de varivel. Pela mesma razo, o
smbolo ** adotado para representar a operao de exponenciao. Algumas
linguagens de programao adotam o smbolo ^, e outras adotam funo para
resoluo deste problema.
Por exemplo: em Java, utiliza-se Math.pow(3, 2) para elevar o nmero 3 ao
quadrado.
2.3.2. EXPRESSES LGICAS
So aquelas cujo resultado da avaliao um valor lgico (.Verdadeiro. ou
.Falso.). Veja, a seguir, operadores lgicos para expresses lgicas.
Para tratar expresses lgicas, vamos recorrer lgica matemtica, na qual Filho
(2000) define proposio como todo o conjunto de palavras ou smbolos que
exprimem um pensamento de sentido completo.
39Lgica de Programao - Everton imbra de Arajo Co
As proposies transmitem pensamentos, isto , afirmam fatos ou exprimem juzos
que formamos a respeito de determinados entes.
Podemos citar como exemplo de proposio:
a) A Lua um satlite da terra.
b) Recife a capital de Pernambuco.3
c) 2 8.
A lgica matemtica (assim como a que veremos para algoritmos) adota como
regras fundamentais do pensamento os dois seguintes princpios:
a) Princpio da no contradio
Uma proposio no pode ser verdadeira e falsa ao mesmo tempo.
b) Princpio do terceiro excludo
Toda a proposio ou verdadeira ou falsa, isto , verifica-se sempre
um destes casos, e nunca um terceiro.
As proposies vistas no exemplo anterior so ditas simples ou atmicas, pois
no contm nenhuma outra proposio como parte integrante de si
mesma. H somente a ocorrncia de uma informao sendo repassada.
Chama-se proposio composta ou proposio molecular aquela formada pela
combinao de duas ou mais proposies, como nos exemplos:
a) Carlos careca e Pedro estudante.
b) Carlos careca ou Pedro estudante.
c) Se Carlos careca, ento infeliz.
Quando pensamos, efetuamos, muitas vezes, certas operaes sobre proposies,
chamadas operaes lgicas.
a) Negao
Chamamos negao de uma proposio p a proposio representada
por no p, cujo valor lgico a verdade quando p falsa, e a
falsidade quando p verdadeira. Assim no p tem o valor lgico
oposto daquele de p.
b) Conjuno
Chamamos conjuno de duas proposies p e q a proposio
representada por p E q, cujo valor lgico verdade quando as
proposies p e q so ambas verdadeiras, e falsa nos demais casos.
c) Disjuno
Chama-se disjuno de duas proposies p e q a proposio
representada por p OU q cujo valor lgico a verdade quando ao
menos uma das proposies p e q verdadeira, e a falsidade quando
as proposies p e q so ambas falsas.
Os operadores lgicos tambm so chamados de operadores booleanos.
40 Lgica de Programao - Everton imbra de Arajo Co
Suponha duas perguntas feitas a quatro pessoas que se candidataram a uma
entrevista de emprego de programador. As respostas s perguntas sero Sim ou
No. Suponha tambm que s ser chamado para a entrevista o candidato que
responder Sim s duas perguntas.
Neste caso, apenas a candidata Neusa seria chamado para a entrevista, pois o
operador .E. s considera a expresso como verdadeira se todas as expresses
testadas forem verdadeiras.
Vejamos, a seguir, operadores relacionais para expresses lgicas.
Estes operadores so somente usados quando se deseja efetuar comparaes.
Vale destacar que as comparaes s podem ser feitas entre objetos de
mesma natureza, isto , variveis do mesmo tipo de dado. O resultado de uma
comparao sempre um valor lgico.
Toda expresso respeita uma ordem de execuo de seus operadores, sempre da
esquerda para a direita, assim como na matemtica. Para isso, segue uma tabela
com as prioridades.
41Lgica de Programao - Everton imbra de Arajo Co
2.4. SINTAXE E SEMNTICA
O conceito de linguagem est associado a um objeto de comunicao:
indivduos que partilham uma mesma linguagem so capazes de se comunicar. As
lnguas naturais so utilizadas como meio formal de se estabelecer uma linguagem
de comunicao. Para tanto, so necessrios um vocabulrio, ou lxico
(dicionrio/glossrio), e um conjunto de regras gramaticais ou sintaxe: para
construir um objeto de comunicao nessa lngua, a sintaxe permite associar e
manipular os itens do lxico. A esse objeto, construdo segundo as normas da
lngua, d-se o nome de assero vlida, ou gramatical. Asseres vlidas com
diversos graus de complexidade podem ser construdas: em grau crescente de
complexidade, podemos ter oraes, sentenas, conjunto de sentenas (ou
pargrafos) e conjuntos de pargrafos (ou textos). A essas asseres, possvel
tambm associar um significado e, assim, estaremos trabalhando no campo da
semntica.
Bem, de acordo com o que foi exposto acima, podemos, de modo conciso,
dizer:
SINTAXE : So regras gramaticais de formao de
sentenas/asseres vlidas ou gramaticalmente
corretas;
SEMNTICA : a associao das asseres ao significado, permitindo
sua interpretao.
Tendo estas definies sido trazidas do idioma humano, pode-se afirmar que no
h diferena ao encontrado na rea tecnolgica, pois podemos dizer que a
sintaxe de uma linguagem expressa as regras que devem ser obedecidas para
atingir determinado resultado, fazendo uso dela. E a semntica representa o
contedo das palavras da linguagem, permitindo assim uma interpretao
correta do escrito com determinada linguagem.
42 Lgica de Programao - Everton imbra de Arajo Co
Esta unidade tem grande importncia no aprendizado de
programao. Foram aqui apresentados conceitos e
exemplos de tipos de dados possveis de uso em nossos
pseudocdigos, conceitos e regras para uso de variveis,
alm de uma introduo sobre expresses e operaes. Na
parte de expresses lgicas, trouxemos uma pequena
demonstrao sobre suas operaes, as quais sero
fortemente tratadas mais adiante. J nos conceitos de sintaxe e semntica,
que foram tratados tambm de forma breve, foi comentada a grande
importncia delas, principalmente da sintaxe. Todos estes conceitos sero
utilizados nas prximas unidades. Da a relevncia de uma releitura, caso
ainda restem dvidas.
Encerramos esta unidade por aqui, esperando, claro, que esses conceitos e
exemplos tenham ajudado voc a compreender ainda mais as etapas da
programao.
Mas ainda temos um longo caminho. Vamos em frente!
UNIDADE IIIINTRODUO AOS
PSEUDOCDIGOS
45Lgica de Programao - Everton imbra de Arajo Co
Nesta unidade, iremos introduzir voc na linguagem de programao hipottica,
muito usada em todo o mundo. chamada de pseudocdigo. Utiliza o idioma
nativo e algumas regras sintticas, mas a facilidade de passar para algoritmos
regras verbais, por ns conhecida e usada, mais simples e facilita depois a
introduo a uma linguagem de programao.
Por meio de exemplos voc ter contato com a representao de algoritmos
recorrendo a pseudocdigos. Abordaremos tambm os pseudocdigos com
estruturas condicionais e faremos breve comentrio sobre funes.
Assim, esperamos que, ao final da leitura desta unidade, voc possa:
- Conhecer e entender pseudocdigos;
- Compreender a importncia da endentao;
- Conhecer estruturas de deciso;
- Resolver problemas com estrutura sequencial e condicional por meio de
pseudocdigos;
- Reconhecer e utilizar algumas funes predefinidas para auxlio na
resoluo dos problemas.
O que pseudocdigo?
3.1. PSEUDOCDIGOS
Para Saliba (1993), pseudocdigo uma forma para representao de
algoritmos rica em detalhes, como a definio dos tipos das variveis usadas
no algoritmo. Por assemelhar-se bastante forma em que programas so
escritos, encontra muita aceitao.
Para ns, a aplicao de pseudocdigos aos algoritmos, a partir deste ponto, ser
mera traduo. Como um texto em portugus passado para outro idioma.
Necessitamos saber apenas a ortografia (palavras) e regras gramaticais (sintaxe).
Mas, qual a vantagem do uso de pseudocdigos?
3.1.1 VANTAGENS
O pseudocdigo a escrita, por meio de regra predefinida, dos passos a serem
seguidos para a resoluo de um problema. o resultado da anlise e resoluo
de um problema exposto em um enunciado.
A passagem de um algoritmo para uma linguagem de programao tem um
trnsito fcil, bastando, para isso, o conhecimento do vocabulrio e regras
sintticas da linguagem/idioma desejado.
3.1.2 ESTRUTURA BSICA PARA UM PSEUDOCDIGO
A ferramenta para representao de algoritmos utilizada at agora (Descrio
46 Lgica de Programao - Everton imbra de Arajo Co
Narrativa), possui suas regras, embora sejam bem flexveis.
No caso do pseudocdigo, as regras so mais arbitrrias, pois trazemos de nosso
idioma palavras que representaro comportamentos e aes que devero ser
tomadas pelo algoritmo.
A estas palavras, d-se o nome de Palavras Reservadas Linguagem, ou seja,
voc NO pode utilizar tais palavras para outros fins seno quele que ela
representa. Comearemos agora, pouco a pouco, a conhecer estas palavras.
Veja a estrutura bsica que um pseudocdigo deve ter e seu comparativo para
as linguagens de implementao propostas.
E ateno! As palavras reservadas esto em negrito e o texto em itlico dever
ser preenchido pelo programador, desconsiderando os sinais < > . No se
assuste, muito simples. Para cada uma das estruturas existem consideraes
logo aps aquelas.
A seguir, um exemplo clssico encontrado em todos os livros de iniciao
programao, o famoso Ol, Mundo!
47Lgica de Programao - Everton imbra de Arajo Co
3.2. ENDENTAO
A endentao est diretamente ligada formatao de programas, tendo como
finalidades principais:
- melhorar a legibilidade deles;
- facilitar a manutenibilidade posterior;
- facilitar a identificao do erro lgico durante a execuo.
Endentao deve ser utilizada para indicar que as instrues endentadas
esto sob controle da instruo anterior no endentada. O uso consistente de
endentao essencial para a legibilidade do programa.
Use sempre endentao para instrues dentro de blocos ou para instrues que
fazem parte de alguma estrutura de controle ou seguindo um rtulo.
Observe, no pseudocdigo anterior, que a instruo Escreva est endentada e,
visivelmente, nota-se que ela est sob o controle de Incio e Fim.
A declarao das variveis a serem manipuladas no algoritmo devem estar entre
as palavras reservadas Variveis e Incio. Toda varivel utilizada deve ter um nome
e um tipo. Na unidade anterior, foram tratados os tipos de dados possveis para
uma varivel e as regras para atribuir um nome a ela.
3.3. DECLARAO DE VARIVEIS
48 Lgica de Programao - Everton imbra de Arajo Co
3.4. ATRIBUIO DE VARIVEIS
A atribuio de varivel se d quando precisamos armazenar algum valor para
ser usado posteriormente em nosso algoritmo, seja este uso em operaes ou na
simples informao para o usurio. Quando utilizamos pseudocdigo para
representar algoritmos, devemos convencionar um smbolo para representar esta
operao. Normalmente utilizamos := (dois pontos seguido de um igual sem
espao), um simples sinal de = (igual) ou ainda os smbolos grficos ou para
representar que a parte que est direita do operador atribida varivel a
seu lado esquerdo. Como na matemtica, sem segredos.
3.5. ENTRADA DE DADOS
Uma operao de entrada de dados se refere a qualquer valor que seja
informado (digitado) pelo usurio. Este valor pode ser numrico ou literal, e ser
armazenado, obrigatoriamente, em uma varivel de seu respectivo tipo. Ou seja,
um valor literal no pode ser armazenado em uma varivel numrica, porm um
valor numrico pode ser armazenado em uma varivel literal, mas este ser
tratado como literal. Quando representamos um algoritmo por meio de
pseudocdigos, vrias palavras de nosso idioma podem ser utilizadas, tais como
Leia, Entre, Pegue ou Receba.
Perceba que, como so vrias as opes, faz-se necessrio que seja
estabelecida uma conveno. Aqui ser definida como Leia.
interessante saber que o valor informado pelo usurio ser guardado
(armazenado) na varivel imediatamente aps a instruo Leia. Apesar de
algumas literaturas trazerem vrias variveis em uma nica instruo Leia,
separadas apenas por vrgulas (,), recomendado que cada instruo Leia tenha
apenas uma varivel ligada a ela.
49Lgica de Programao - Everton imbra de Arajo Co
3.6. SADA DE DADOS
Uma operao de sada de dados se refere a qualquer valor exibido ou retornado
ao usurio. Este valor pode ser uma mensagem de orientao, o resultado de uma
expresso, um valor constante ou uma varivel ( lgico que ser exibido o valor
contido na varivel). Quando representamos um algoritmo por meio de
pseudocdigos, vrias palavras de nosso idioma podem ser utilizadas, tais como
Escreva, Informe, Mostre ou Exiba. Novamente, h a ocorrncia de vrias
possibilidades, o que sugere a escolha de um dos termos. No caso desta unidade
optamos por Escreva.
interessante saber que, quando desejarmos exibir ao usurio uma frase, esta
deve estar entre aspas (estas aspas, podem ser a simples ou as duplas, mas
usaremos as duplas). Se quisermos exibir um valor numrico constante, basta
inform-lo aps a instruo. Se o que desejarmos exibir ao usurio for o contedo
de uma varivel, basta informarmos tal varivel aps a instruo Escreva.
3.7. ALGUMAS SITUAES
3.7.1. ESTRUTURA SEQUENCIAL
Com os conceitos e as instrues primitivas passadas, podemos iniciar o
desenvolvimento e o aprendizado necessrio para a resoluo e representao
50 Lgica de Programao - Everton imbra de Arajo Co
de algoritmos em sua forma de pseudocdigos.
O primeiro passo na codificao de um pseudocdigo a identificao das
variveis que se faro necessrias para a resoluo. Como fazer isso? Bom, o
comeo deve ser com o enunciado. Devemos trabalhar o texto e nele identificar
o que deve ser recebido pelo pseudocdigo para que solucione o problema
proposto e tambm aquilo que ser informado ao usurio, normalmente a
resoluo.
Sobre o salrio bruto de um funcionrio, so descontados 8% de
INSS, 10% de IR (imposto de renda) e sobre o restante 0,5%
referente filiao sindical. Para cada dependente (filhos), o
funcionrio ganha R$ 50,00. Ao ser fornecido o valor do salrio
bruto do funcionrio e a quantidade de dependentes, calcule :
a) O total dos descontos
b) Total de acrscimo
c) Salrio lquido.
Algoritmo CalculoDeFolha
Variveis
SalarioBruto, INSS, IR, FS, TotalDeDescontos, TotalDeAcrescimos,
SalarioLiquido : Real
Dependentes : Inteiro
Incio
Escreva Informe o Salrio Bruto
Leia SalarioBruto
Escreva Informe a Quantidade de Dependentes
Leia Dependentes
INSS SalarioBruto*0.08
IR SalarioBruto * 0.10
FS (SalarioBruto (INSS+IR)) * 0.005
TotalDeDescontos INSS + IR + FS
TotalDeAcrescimos (Dependentes * 50)
SalarioLiquido SalarioBruto TotalDeDescontos + TotalDeAcrescimos
Escreva O Total de Descontos : , TotalDeDescontos
Escreva O Total de Acrscimos : , TotalDeAcrescimos
Escreva O Salrio Lquido : , SalarioLiquido
Fim
Mas isso no tudo! Podem surgir alguns problemas
durante a resoluo, e a emerge a necessidade de outras
variveis. Ateno a esta prxima etapa.
51Lgica de Programao - Everton imbra de Arajo Co
Observe, no quadro a seguir, o que ser fornecido ao algoritmo para que
processe o desejado.
Sobre o salrio bruto de um funcionrio, so descontados 8% de INSS, 10% de IR
(imposto de renda) e sobre o restante 0,5% referente filiao sindical. Para
cada dependente (filhos) o funcionrio ganha R$ 50,00. Ao ser fornecido o
valor do salrio bruto do funcionrio e a quantidade de dependentes, calcule:
...
Algoritmo CalculoDeFolha
Variveis
SalarioBruto, INSS, IR, FS, TotalDeDescontos, TotalDeAcrescimos,
SalarioLiquido : Real
Dependentes : Inteiro
Incio
Escreva Informe o Salrio Bruto
Leia SalarioBruto
Escreva Informe a Quantidade de Dependentes
Leia Dependentes
...
Fim
Veja a ligao entre as declaraes destas variveis e seu real uso dentro do
pseudocdigo. Realmente so dados de entrada.
Agora, identificada na figura a declarao do que informado ao usurio, ou
seja, aquilo que deve ser resolvido pelo algoritmo: o problema.
..., calcule :
a) O Total dos Descontos
b) Total de Acrscimo
c) Salrio Lquido
Algoritmo CalculoDeFolha
Variveis
SalarioBruto, INSS, IR, FS, TotalDeDescontos, TotalDeAcrescimos,
SalarioLiquido : Real
Dependentes : Inteiro
Incio
...
Escreva O Total de Descontos : , TotalDeDescontos
Escreva O Total de Acrscimos : , TotalDeAcrescimos
Escreva O Salrio Lquido : , SalarioLiquido
Fim
52 Lgica de Programao - Everton imbra de Arajo Co
Note agora a existncia de variveis que no so nem de entrada, nem de sada.
Podemos caracteriz-las como variveis auxiliares, pois elas realmente auxiliam a
resoluo do problema.
Algoritmo CalculoDeFolha
Variveis
SalarioBruto, INSS, IR, FS, TotalDeDescontos, TotalDeAcrescimos,
SalarioLiquido : Real
Dependentes : Inteiro
Incio
...
INSS SalarioBruto*0.08
IR SalarioBruto * 0.10
FS (SalarioBruto (INSS+IR)) * 0.005
TotalDeDescontos INSS + IR + FS
TotalDeAcrescimos (Dependentes * 50)
SalarioLiquido SalarioBruto TotalDeDescontos + TotalDeAcrescimos
...
Fim
...
No caso especfico deste problema, estas variveis so desnecessrias, pois o
resultado pode ser obtido diretamente, mediante operaes matemticas.
Vejamos como poderia ficar esta resoluo.
Algoritmo CalculoDeFolha
Variveis
SalarioBruto, TotalDeDescontos, TotalDeAcrescimos, SalarioLiquido : Real
Dependentes : Inteiro
Incio
...
TotalDeDescontos (SalarioBruto * 0.08) + (SalarioBruto * 0.10)
TotalDeDescontos (SalarioBruto TotalDeDescontos) * 0.005
...
Fim
...
Observe que, para a implementao, optou-se por duas linhas para o clculo do
desconto, pois a Filiao Sindical sobre o Salrio Bruto j descontado o INSS e IR.
bvio que, matematicamente, daria para incluir tudo isso em uma nica linha,
porm poderia ficar poluda, dificultando a compreenso da referida linha de
operao.
Outra situao seria a resoluo, inclusive sem o uso das variveis de sada,
porm, no incio do aprendizado, este uso excessivo de variveis benfico, mas
com o decorrer deve ser evitado, otimizando o desempenho e os recursos
utilizados.
53Lgica de Programao - Everton imbra de Arajo Co
Algoritmo CalculoDeFolha
Variveis
SalarioBruto : Real
Dependentes : Inteiro
Incio
...
Escreva O Total de Descontos : , (SalarioBruto * 0.08) + (SalarioBruto *
0.10) + ((SalarioBruto ((SalarioBruto * 0.08) + (SalarioBruto * 0.10))) *
0.05
Escreva O Total de Acrscimos : , (Dependentes * 50)
Escreva O Salrio Lquido : , SalarioBruto ((SalarioBruto * 0.08) +
(SalarioBruto * 0.10) + ((SalarioBruto ((SalarioBruto * 0.08) +
(SalarioBruto * 0.10))) * 0.05) + (Dependentes * 50)
Fim
...
Note a expresso acima. H casos em que isso no recomendado, tampouco
dever ser feito, pois, em uma necessidade de alterao, dificultar a
compreenso.
O problema a ser solucionado neste enunciado relativamente simples. Ser
informado pelo usurio um valor qualquer (SalarioBase) e sobre este valor devero
ser aplicados dois percentuais: um como crdito (gratificao) ao valor
informado, e outro como dbito (imposto). Ou seja, o primeiro valor aumentar o
valor inicial, e o segundo diminuir. Os valores a serem aplicados esto explcitos
no enunciado, devendo apenas ser aplicados em uma frmula/expresso.
Perceba que, neste pseudocdigo, foram utilizadas apenas as variveis
necessrias: a de entrada (SalarioBase) e a de sada (SalarioLiquido). Poderia
optar-se por um desenvolvimento mais detalhado e fazer uso de variveis
Desenvolva um programa que receba o salrio-base de um
funcionrio, calcule e mostre o salrio a receber, sabendo-se
que esse funcionrio tem gratificao de 5% sobre o salrio-
base e paga imposto de 7% sobre o salrio-base.
Algoritmo CalculoDeFolha
Variveis
SalarioBase, SalarioLiquido : Real
Incio
Escreva Informe o Salrio Base
Leia SalarioBase
SalarioLiquido SalarioBase + (SalarioBase * 0.05)
(SalarioBase * 0.07)
Escreva O Salrio Lquido : ,SalarioLiquido
Fim
54 Lgica de Programao - Everton imbra de Arajo Co
auxiliares, mas no seria nada otimizado e muito menos til neste caso. Caso se
opte por este uso, a resoluo seria semelhana do mostrado a seguir.
Algoritmo CalculoDeFolha
Variveis
SalarioBase, SalarioLiquido, Credito, Debito : Real
Incio
...
Credito (SalarioBase * 0.05)
Debito (SalarioBase * 0.07)
SalarioLiquido SalarioBase + Credito Debito
...
Fim
...
Observe que, como foram informados os valores em percentual a serem
descontados, estes puderam ser aplicados diretamente na frmula, sem
necessidade de aplicar a regra de trs.
3.8.1. ESTRUTURA CONDICIONAL
Se ... Ento
Seno Se ... Ento
Seno ...
Fim se
3.8. PSEUDOCDIGOS ESTRUTURA CONDICIONAL
Leia dois valores numricos e inteiros, e efetue a soma destes
valores. Caso o valor