Vous êtes sur la page 1sur 66

LIVRO

UNIDADE 1

Clculo
Algoritmos
Diferencial
e Lgicae
Integral
de Programao

Algoritmos e Lgica

ALGORITMOS E
PROGRAMAO:
CONTEXTOS E PRTICAS

Juliana Schiavetto Dauricio

2015 por Editora e Distribuidora Educacional S.A


Todos os direitos reservados. Nenhuma parte desta publicao poder ser reproduzida
ou transmitida de qualquer modo ou por qualquer outro meio, eletrnico ou mecnico,
incluindo fotocpia, gravao ou qualquer outro tipo de sistema de armazenamento e
transmisso de informao, sem prvia autorizao, por escrito, da Editora e
Distribuidora Educacional S.A.

2015
Editora e Distribuidora Educacional S. A.
Avenida Paris, 675 Parque Residencial Joo Piza
CEP: 86041 -100 Londrina PR
e-mail: editora.educacional@kroton.com.br
Homepage: http://www.kroton.com.br/

Sumrio
Unidade 1 | Algoritmos e programao contextos e prticas

Seo 1.1 - Histrico e definio de algoritmos: perspectivas de


linguagem

11

Seo 1.2 - Tipos de dados e expresses: literais, lgicas e aritmticas

25

Seo 1.3 - Representao de algoritmos e o ambiente de programao

39

Seo 1.4 - Declarao de variveis e constantes

51

Palavras do autor
Ol, aluno, seja bem-vindo.
Nesta unidade de ensino voc conhecer o que algoritmo e a sua relao
com as linguagens de programao, assim como o modo como esses auxiliam
no desenvolvimento do raciocnio lgico. A partir de agora, voc ser apresentado
aos conceitos e contedos componentes deste tema. Iniciamos com uma breve
definio e, em seguida, apresentado um levantamento dos principais algoritmos
que deram origem a esse estudo e compreender o ambiente de programao, bem
como conhecer as formas de apresentao e desenvolvimento de um algoritmo.
Saber distinguir as expresses literais, lgicas e aritmticas tambm importante
no mbito computacional. Alm desses, conhecer os tipos de dados, variveis e
constantes, compem a unidade 1 do seu material de estudos.
Para a unidade 2, o foco est nas operaes e comandos que permitem a entrada
e sada de dados, o ponto de partida para aprender a manipular as informaes.
Associadas a esse conceito, esto tambm a atribuio de valores e a forma de
realizar os procedimentos para a declarao das variveis ou das constantes e,
finalmente, iniciam-se os estudos em estruturas de seleo como if/else (se/
ento/seno e CASE). Com ela, voc pode compreender a lgica envolvida nas
estruturas de programao condicionais simples, compostas e/ou encadeadas.
A Unidade 3 responsvel por promover a imerso em situaes reais para
aplicar os conhecimentos mais especficos, tais como: Switch-CASE, que permite
ao usurio escolher dentre as opes predeterminadas e, ainda, estruturas de
repetio como for (para), do (fazer) e do/while (faa enquanto). Na Unidade
4, a ateno est sobre o entendimento dos vetores e matrizes, sua estrutura,
eficincia e aplicaes.
Aps todos os conceitos, o material de estudos ainda contribui para que voc
possa treinar os conhecimentos adquiridos, realizando exerccios orientados,
que visam aproximar a situao real e os problemas enfrentados no dia a dia
do desenvolvimento de software. Desejamos a voc, desde j, bons estudos e
dedicao para a concluso desta etapa.

Unidade 1

ALGORITMOS E
PROGRAMAO: CONTEXTOS
E PRTICAS

Convite ao estudo
Para iniciar os estudos em algoritmos e programao, interessante refletir
sobre o que so e quais algoritmos influenciam diretamente nas transaes
comerciais que se estabelecem na atualidade e que detm uma relevncia no
desenvolvimento de solues prticas e inovadoras. Esses trazem possibilidades
de empreendimentos entre os mais diversos segmentos do mercado. A partir
de tais informaes e compreendendo a relevncia do tema, conhea a
competncia de fundamento de rea que se pretende desenvolver com este
estudo e os objetivos especficos desta unidade.
Competncia de fundamento de rea
Conhecer os princpios e conceitos que envolvem o aprendizado em
construo de algoritmos e programao e a sua importncia para o universo
do desenvolvimento de sistemas.
Objetivos especficos
Conhecer o que so, como se aplicam e a quem se destina a elaborao
dos algoritmos;
Conhecer como se desenvolve estruturas computacionais com expresses
literais, lgicas e aritmticas, alm dos tipos de dados;
Conhecer o ambiente de programao e como se d o raciocnio lgico
computacional, bem como os tipos e formas de representao de algoritmos
atravs da elaborao do fluxograma e do pseudocdigo;

U1

Conhecer e saber identificar o que so variveis e constantes e como se faz


a declarao de variveis.
Importante trazer as definies pertinentes ao tema: algoritmo pode
ser definido como um conjunto de processos ou aes, que seguem uma
sequncia lgica, para executar uma tarefa. Por exemplo, baixar um aplicativo
em seu celular requer que voc execute um passo-a-passo para realizar aquela
instalao e o configure para poder utilizar. A esse passo-a-passo d-se o nome
de algoritmo.
Para desenvolver algumas das atividades aqui apresentadas, voc poder
considerar, entre outros, o cenrio que envolve os comerciantes do Litoral Sul
do pas. Suponha que eles estejam se organizando em cooperativa para angariar
recursos e melhorar as transaes comerciais deste mercado. Contrataram uma
consultoria para desenvolver um aplicativo, e suponha que voc faz parte dessa
equipe. O grande desafio dos comerciantes e da empresa contratada para o
desenvolvimento desse aplicativo achar uma soluo que atenda necessidade
de divulgao, organizao das informaes, facilidade de uso e acesso para
os seus clientes o encontrarem, agendarem ou mesmo tomar conhecimento
daquele determinado estabelecimento de hotelaria ou gastronomia. Um ponto
de ateno que precisam realizar todos os processos, desde a determinao
das aes do sistema e tarefas, at a escolha das ferramentas de anlise e
desenvolvimento do aplicativo.
Uma das propostas da empresa disponibilizar um prottipo do aplicativo
para celular que informe aos usurios quais so os servios de hotelaria e
gastronomia disponveis naquela regio. A partir desta situao, os comerciantes
esperam obter solues que apresentem uma forma de contabilizar o ndice de
satisfao do usurio quanto facilidade de navegao e uso do aplicativo. Para
tal, aps realizar a consulta, o usurio direcionado a um painel com os cones
que representam o seu ndice de satisfao: insatisfeito, satisfeito ou plenamente
satisfeito. O prazo para desenvolvimento deste de seis meses.
O primeiro passo compreender o que realmente ser possvel fazer e
estipular as aes do sistema. Para tal, voc precisa entender que necessrio
identificar quais so as suas variveis, bem como as estruturas que precisaro
ser desenvolvidas para trabalhar com os dados, armazen-los, atribuir, excluir e
alterar valores, verificar se h variveis ou se sero declaradas como constantes,
entre outros conceitos que precisam ser aplicados. Com o estudo de algoritmos
e programao, a identificao desses passos ser facilitada e, ainda, voc
poder compreender as formas de representao, alm de sua definio.

Algoritmos e programao: contextos e prticas

U1

Atente-se tambm aos tipos de dados, s expresses literais, aritmticas


e lgicas que sero necessrias para realizar um clculo especfico, como a
mdia dos acessos, por exemplo, ou ainda, se dever executar algum teste para
verificar e informar aos comerciantes os resultados. Estabelea um processo
de verificao e controle de como possibilitar que o sistema contabilize os
acessos, realize o clculo da mdia atravs da indicao de sua expresso
aritmtica, indique uma forma de registrar essas informaes e envi-las aos
interessados.
Muito importante, nesta primeira entrega, que seja especificado o
fluxograma dos processos que o sistema dever executar e os passos a
seguir para o seu desenvolvimento. Essa uma tarefa que requer a leitura
dos materiais e indicaes componentes dessas referncias. Fica a sugesto
do desenvolvimento das estruturas do algoritmo em pseudocdigo, o que
permite que voc identifique os processos e a necessidade de alteraes,
antes do desenvolvimento efetivo do sistema. Encontre a lgica necessria
para otimizar o processamento e uso dos recursos. Ento, bons estudos e
prticas a voc.

Algoritmos e programao: contextos e prticas

U1

10

Algoritmos e programao: contextos e prticas

U1

Seo 1.1
Histrico e Definio de Algoritmos: perspectivas
de linguagem
Dilogo aberto
Voc j deve ter observado que todas as aes que realizamos seguem uma
sequncia, e que essa precisa ser executada para que se consiga atingir o objetivo
predeterminado. Por exemplo, quando necessrio trocar o pneu do carro, o que
voc observa que existem passos a cumprir. Para resolver uma situao simples ou
complexa, uma sequncia lgica sempre ter de ser realizada, portanto.

Reflita
Para programarmos em um computador, devemos conhecer e entender
o que so os algoritmos, e como utiliz-los para determinar a sequncia
de passos necessrios para resolvermos determinados problemas ou,
em outras palavras, encontrarmos a soluo, ou a melhor soluo, para
a implementao em uma linguagem de programao. (PIVA JR. et al.,
2012, p. 3)

Voc sabe o que uma linguagem de programao?


As linguagens de programao visam possibilitar a insero dos passos ou aes
que o software dever executar, atravs de uma plataforma que permita, desde que
respeite a sintaxe de cada uma, expressar a sequncia lgica determinada no algoritmo,
ou a sua construo propriamente dita.
Por exemplo, para passar um algoritmo de linguagem natural, que a forma como
falamos como precisa ser executada uma tarefa, para uma linguagem de programao
estruturada como C, ou mesmo, orientada a objetos como Java ou C#, preciso,
alm de estabelecer o passo-a-passo, seguir a forma como esta interpretar essas
instrues, de forma que sejam compreendidas pelo computador.
Esse, por sua vez, utilizar os processos de compilao (traduo e interpretao
para a linguagem de mquina), ou seja, codifica e decodifica para permitir que o

Algoritmos e programao: contextos e prticas

11

U1
resultado seja visualizado em sua tela com o respectivo processamento da informao
que foi solicitada.
Em algoritmos comum utilizar os softwares VisualG (pseudocdigo) ou o Scilab
(resoluo principalmente de problemas matemticos) para a execuo dessas tarefas.
Sendo assim, a partir de agora preciso definir, seja em linguagem natural, em
pseudocdigo ou fluxograma, um algoritmo que deixe clara a sequncia lgica que
ter de ser cumprida para a soluo do problema que os comerciantes do Litoral Sul
tm que resolver.
Siga em frente.

No pode faltar
A fim de compreender esse processo de descoberta e desenvolvimento dos
algoritmos, vamos recapitular algumas informaes, tais como: qual a organizao
bsica do computador; o que linguagem de mquina; como ocorre a comunicao
entre elas; o cdigo ASCII; o que so os programas de computadores; como a
lgica de programao e a forma como acontece a resoluo de problemas pelo
computador, ou seja, como se d o processamento da informao. Aps compreender
esses conceitos, voc j poder avanar em seus estudos sobre algoritmos e
programao. Voc se recorda de como a organizao dos computadores?
Esses so divididos em quatro unidades bsicas: unidade de entrada, unidade de
sada, unidade de processamento central e memria.
Assimile
Unidade de entrada: em que ocorre a entrada de dados. Ex.: teclado,
mouse.
Unidade de sada: h a sada de informaes. Ex.: monitor, impressora.
Unidade de Processamento Central: responsvel pelo processamento
das informaes e alocao de recursos.
Memria: armazenamento de dados (RAM, HD, ROM, Cache).

J o cdigo ASCII (American Standard Code for Information Interchange ou Cdigo


Padro Americano para Intercmbio de Informaes) o responsvel por converter os
caracteres para a sua respectiva combinao binria. Cada caractere composto por

12

Algoritmos e programao: contextos e prticas

U1
oito bits (8 bits correspondem a 1 byte). Esta se chama linguagem de mquina (binria).
Ela possui apenas dois smbolos: 0 e 1, conhecidos por bit (binary digit).

Pesquise mais
A tabela ASCII completa est disponvel no site: http://www.ascii-code.
com/. Acesso em: 25 fev. 2015.
Alm destes elementos a considerar, os computadores precisam de softwares
que auxiliem no desenvolvimento de atividades, sejam elas pessoais ou profissionais.
Existem softwares para realizar as mais variadas tarefas. O desenvolvimento de um
software contempla algumas fases, como anlise, onde se entende qual o produto de
software que ser gerado; o projeto, em que h as especificaes de cada uma das
tarefas que ele executar; a implementao, que ser realizada com uma linguagem
de programao, e os testes, que so realizados a fim de conferir se o software atende
aos processos solicitados. Para que sejam passveis de implementao, essas tarefas
seguem a sequncia lgica, chamada algoritmo.
Tal sequncia facilita a transposio das aes que o software precisar executar,
mas desenvolvidas de acordo com a sintaxe da linguagem de programao que se
escolheu, seja orientada a objetos ou estruturada.

Reflita
Como a comunicao entre as unidades do computador teria que
ser obtida atravs de fenmenos fsicos, os cientistas que conceberam
os computadores atuais estabeleceram dois smbolos bsicos para a
linguagem. Esta quantidade de smbolos foi escolhida pelo fato de que
atravs de fenmenos fsicos muito fcil obter dois estados distintos
e no confundveis, como passar corrente eltrica/no passar corrente
eltrica, estar magnetizado/no estar magnetizado, etc., podendo cada
um destes estados ser um dos smbolos. (EVARISTO, 2002, p. 6)

Os algoritmos possuem cinco propriedades que os caracterizam. So elas (KNUTH,


1973 apud PIVA JR., 2012):
Finitude: indica que o algoritmo deve encerrar aps um nmero finito de execuo.
Definio: evita definies que gerem ambiguidade.
Entrada: atribui valores ao algoritmo, a partir de especificaes de variveis e
funes antes de sua iniciao.

Algoritmos e programao: contextos e prticas

13

U1
Sada: representa os valores aps o processamento, ou seja, a execuo das
aes.
Eficcia: todas as aes que o algoritmo realiza precisam ser executveis em um
limite de tempo predeterminado, finito, mesmo que seja sem o auxlio do computador.

Processamento

Sada

Dados

Algoritmo

Entrada

O esquema a seguir representa o mecanismo de funcionamento de um algoritmo.


Informao

Fonte: Adaptado de Piva Jr, 2012, p. 7.

Pesquise mais
Para auxili-lo, sugerimos um link em que poder conhecer os mais
diversos tipos de algoritmos e testar a sua eficincia. Disponvel em:
<http://nicholasandre.com.br/sorting/>. Acesso em: 02 mar. 2015.
Antes de aprender a utilizar uma linguagem de programao especfica,
importante que voc compreenda que programar, de acordo com Ziviane (2007,
p. 1), basicamente estruturar dados e construir algoritmos. A partir da anlise de
um determinado problema, voc precisa, ento, implementar o algoritmo que foi
desenvolvido. H dois tipos de problemas que envolvem os algoritmos: o primeiro trata
da anlise de um algoritmo nico, parte a parte, e investiga a quantidade de execues
de um determinado processo, buscando o seu aprimoramento para poupar recursos
da mquina; o outro a anlise de uma classe de algoritmos, esse estudo implica na
anlise de vrios algoritmos a fim de identificar um que seja vivel e compatvel para
apresentar como sendo a soluo de um determinado problema.
O custo de um algoritmo tambm pode ser mensurado, a partir do princpio da
anlise de sua complexidade, chamada de f, com relao a um algoritmo n, ou seja,
f(n) representa a funo que mede o tempo gasto por um algoritmo para executar um
dado problema de tamanho n. A esta funo f d-se o nome de complexidade de
tempo do algoritmo. J f(n), que mede a quantidade de recursos de memria utilizados
para a sua execuo, chamada de funo de complexidade de espao (ZIVIANE,
2007), ou seja, fatores como tempo e espao devem ser levados em considerao
quando se trata da eficincia de um algoritmo.
Agora veja um exemplo de como se d a lgica referente construo de
algoritmos. Ele representa a realizao das atividades seguindo passos, etapas. O
algoritmo a seguir trabalha com o problema das Torres de Hani.

14

Algoritmos e programao: contextos e prticas

U1
Observe que h as trs hastes, sero aqui chamadas respectivamente de A, B e C.
A primeira haste (A) tem anis com dimetros diferentes e que esto organizadas em
ordem decrescente. O desafio est em transferir os anis da haste A para a B. Para
resolver essa questo, voc precisa respeitar algumas regras:
a. No pode mover o disco por mais de uma haste por vez, por jogada;
b. preciso respeitar a ordem decrescente dos dimetros, ou seja, do menor para
o maior.
Figura 1 | Torres de Hani

Fonte: Criado pelo autor, adaptado de Ziviane, 2007, p. 6.

Confira abaixo uma das possveis formas de se resolver esse problema, repetindo
quantas vezes for necessrio a sequncia, de acordo com a quantidade de anis
existentes na torre.
Exemplo 1: Algoritmo Torres de Hani
Incio
1.

Mover o primeiro anel de A para B.

2.

Mover o segundo anel de A para C;

3.

Mover o anel de B para C;

4.

Mover o terceiro anel de A para B;

5.

Mover o anel de C para A;

6.

Mover o anel de C para B;

7.

Mover oanel de A para B.

Fim

Algoritmos e programao: contextos e prticas

15

U1
Note que o algoritmo est escrito em linguagem natural, porm, necessrio
que esse seja formalizado de acordo com um conjunto de regras que chamamos de
sintaxe. Alm desta, h as regras semnticas, ou seja, de lgica. Atravs de comandos,
ser possvel cumprir o conjunto de regras que o computador interpretar.
A partir do uso dos comandos, ser possvel escrever as expresses de forma
que o computador consiga interpretar essas informaes. Essas expresses, que
podem ser literais, aritmticas ou lgicas, realizam operaes com os dados que
so atribudos. Os comandos recebem o nome de estruturas de programao e
podem ser sequenciais, de deciso ou de repetio. Quando voc for desenvolver
um algoritmo, lembre-se de que, alm das estruturas determinadas, tambm
devem ser considerados os tipos de dados, que so as categorias que permitem
a aplicao de um conjunto de comando que a mquina ir interpretar e traduzir
para valores binrios.
Para manipular os dados, preciso usar as variveis e os valores constantes.
H tambm a atribuio de valores para essas variveis, que determinam quais
so os operadores, as funes e os procedimentos necessrios para a soluo do
problema.
Abaixo um outro exemplo de algoritmo, porm, em linguagem no
computacional que representa uma tarefa do cotidiano: realizar a troca de uma
lmpada:
Incio

16

a.

Verifica se o interruptor est desligado.;

b.

Pega uma escada;

c.

Posiciona a escada no local;

d.

Sobe a escada;

e.

Retira a lmpada queimada;

f.

Coloca a lmpada nova;

g.

Desce da escada;

h.

Acende a lmpada no interruptor;

i.

Se a lmpada no acender, ento;

j.

Retira novamente a lmpada queimada;

k.

Troca por uma lmpada nova.

Algoritmos e programao: contextos e prticas

U1
l.

Seno

m.

Descarta a lmpada queimada;

n.

Guarda a escada;

o.

Encerra a tarefa.

Fim

Reflita
Lgica uma rea da Matemtica cujo objetivo investigar a veracidade
de suas proposies. (SOUZA et al., 2011, p. 19)

Exemplificando
Exemplo em linguagem natural
Incio
1.Solicitar ao usurio que digite os
valores da base (b) e da altura (h).
2.Calcular a rea (A) com a frmula: A= (b. h)/2.
3.Exibir o valor
da rea (A).
Fim
Pseudocdigo
(Portugol)
Incio
1. Leia (b, h).
2. A (b* h)/2.
3. Escreva (A).
Fim

Algoritmos e programao: contextos e prticas

17

U1
b. Fluxograma

Incio

b, h

A < - (b*h)/2

Saiba mais

Terminador
Processo
Entrada manual

Fim

Exibio

Agora, observe o exemplo abaixo que busca resolver uma situao real no
ambiente computacional. Suponha que voc precise desenvolver um algoritmo,
representado pelo seu pseudocdigo e tambm por um fluxograma. Ao invs de
utilizar a linguagem natural, ser preciso iniciar o aprendizado de acordo com uma
sintaxe e a lgica computacional. O problema em questo : algoritmo para calcular
a rea de um tringulo.

Saiba mais
A funo Se representa a insero de uma condio a ser testada
para que haja o prximo passo, que o clculo realizado. Leia o artigo
disponvel em: http://www.ufpa.br/sampaio/curso_de_icc/icc/aula%20
10/comando_se_entao_senao.htm. Acesso em: 24 mar. 2015.

18

Algoritmos e programao: contextos e prticas

U1
Faa voc mesmo
Para especificar um algoritmo, voc deve ter em mente que primeiro
preciso conhecer o problema a ser resolvido. Depois, voc ter de
modelar o problema, isso , detalhar os processos. Essa modelagem s
possvel com o exerccio de abstrao que realizado para identificar
o passo-a-passo para resolv-lo. Essa sequncia lgica permitir chegar
a uma soluo que atenda s convenes para a sua elaborao. Vamos
a mais um exemplo.
No bairro So Joo da Barra, na cidade de Mirandpolis, a companhia
telefnica lanou uma promoo em que a cada 30 moradores que
fizessem a adeso do seu plano de TV, internet e telefone, pagariam
apenas o valor de R$ 100,00 pelas assinaturas e, alm disso, ganhariam
um bnus de R$ 67,00 no primeiro ms da assinatura. Descubra qual o
valor de cada assinatura.
Algoritmo em linguagem natural

Algoritmo em lgica computacional

Incio
1. Inserir valores 30, 67 e 100.
2. Subtrair de 67 de 100.
3. Dividir o resultado da subtrao por 30.
4. 4. Exibir o resultado.
Fim

Incio
1. Leia os valores A, B e C.
2. s B - C.
3. Escreva o resultado.
Fim

A resoluo matemtica ser uma equao do primeiro grau em que


x o custo de cada assinatura, ento temos:
30x + 67= 100
30x= 100 67
x= 33/30
x= 1.1
Porm, as regras matemticas precisam ser consideradas, e como
no h diviso por zero, preciso inserir essa condio operao
agregando uma estrutura de deciso ou seleo que determine o
teste que dever ser realizado. Vamos l. Veja o algoritmo correto:
Incio
1. Leia A, B e C.
2. Se C >B e A >0 e B >=0 e C >0 ento.

Algoritmos e programao: contextos e prticas

19

U1
1. s C B.
2. valor_ass s/A.
3. Escreva o valor da assinatura, valor_ass.
3. Seno
1. Escreva que os valores no permitem a diviso.
Fim

Vocabulrio
Sintaxe: ordem e disposio de apresentar as palavras para que sejam
interpretadas. Programao estruturada: paradigma de programao que
segue a premissa de que contempla estruturas de seleo de informaes,
deciso e repetio.
Programao orientada a objetos: paradigma de programao que
aproxima o mundo real do virtual atravs da abstrao dos dados, vinculao
das informaes atravs de herana, encapsulamento e polimorfismo.

Assimile
[...] o papel da lgica na programao: provar que um algoritmo que foi
elaborado est correto. Juntamente com a simulao do algoritmo, que
consiste em execut-lo com dados reais, possvel saber se est correto
e se leva a valores consistentes (SOUZA et al., 2011, p. 21).

Sem medo de errar


Agora, vamos iniciar o desenvolvimento da soluo ao caso dos comerciantes do
Litoral Sul. Considere que voc realizou uma entrevista com os stakeholders desse
projeto, ou seja, com os comerciantes e demais envolvidos neste trabalho.
Assim, voc precisa identificar os processos e escrever em estrutura de algoritmo,
mas em linguagem natural, os passos que anotou. Siga em frente. Verifique se
o algoritmo a seguir cabe como sugesto de resoluo do problema e proponha,
tambm, outras formas de resolver, de maneira que seja otimizado o processamento
da informao.
A princpio, estabelea tambm quais sero os passos necessrios para a sua
concluso. Veja abaixo a proposta.

20

Algoritmos e programao: contextos e prticas

U1
Algoritmo de execuo do projeto
1.

Incio

2.

Levantar requisitos do aplicativo junto aos comerciantes.

3.

Escrever o plano de ao do projeto.

4.

Obter a aprovao junto aos clientes.

5. Elaborar o algoritmo do software em questo em linguagem natural e em


pseudocdigo.
6.

Desenvolver o fluxograma das aes do aplicativo.

7.

Direcionar equipe de desenvolvimento do projeto para a implantao.

8.

Desenvolver a soluo utilizando uma linguagem de programao.

9.

Realizar os testes.

10. Disponibilizar o aplicativo.


Encerrar o projeto.

Ateno!
Busque a compreenso das aes que o sistema executar e que sero
entregues nesta primeira fase.

Lembre-se
Voc precisa identificar o passo-a-passo de todas as aes que o software
dever executar. Isto, vlido tanto para a elaborao de um algoritmo
simples como trocar um pneu, como para a resoluo de um problema
complexo.

Avanando na prtica
Pratique mais
Instruo
Desafiamos voc a praticar o que aprendeu transferindo seus conhecimentos para novas situaes
que pode encontrar no ambiente de trabalho. Realize as atividades e depois as compare com a de
seus colegas e com o gabarito disponibilizado no apndice do livro.

Algoritmos e programao: contextos e prticas

21

U1
Histrico e Definio de Algoritmos: perspectivas de linguagem
1. Competncia de fundamento de
rea

Conhecer os princpios e conceitos que envolvem o


aprendizado em construo de algoritmos e programao
e a sua importncia para o universo do desenvolvimento de
sistemas.

2. Objetivos de aprendizagem

Conhecer o que so, como se aplicam e a quem se destina


a elaborao dos algoritmos;
Conhecer como ocorre o raciocnio lgico computacional.

3. Contedos relacionados

Definio de algoritmos;
Histrico e perspectivas para a linguagem;
Linguagem natural;
Pseudocdigo (Portugus Estruturado)

4. Descrio da SP

Em uma gincana escolar, o desafio era fazer com que dois


grupos de trs integrantes cada conseguissem atravessar
uma ponte em que s possvel passar dois alunos por vez.
No entanto, como so grupos diferentes, no permitido
que em qualquer dos lados da ponte fiquem mais alunos do
grupo 2 (G2) que do grupo 3 (G3). Ento, elabore o algoritmo
que respeite essas regras e demonstre em linguagem natural
e faa o teste conforme a indicao que segue.

5. Resoluo da SP

1. Atravessem o aluno1 do G1 e aluno1 do G2.


2. Volte o aluno1 do G1.
3. Atravessem o aluno2 do G2 e aluno3 do G2.
4. Volte o aluno1 do G2.
5. Atravessem o aluno1 do G1 e aluno2 do G1.
6. Volte aluno1 do G1 e aluno2 do G2.
7. Atravessem o aluno1 do G1 e aluno3 do G1.
8. Volte o aluno3 do G2.
9. Atravessem o aluno1 do G2 e o aluno2 do G2.
10. Volte aluno2 do G2.
11. Atravessem aluno2 do G2 2 aluno3 do G2.

Lembre-se
Acesse o link e repita a sequncia com o problema original entre os
missionrios e os canibais. Boa sorte! http://rachacuca.com.br/jogos/
missionarios-e-canibais/. Acesso em: 02 abr. 2015.

Faa voc mesmo


Experimente
fazer
manualmente
este passoa-passo:
Travessia
1

22

ida

1G1 e 1G2

Algoritmos e programao: contextos e prticas

volta

1G1

Ficam do lado
A da ponte

Ficam do lado
B da ponte

1G2

1G1, 2G1, 3G1/


2G2, 3G2

U1
2

2G2, 3G2

1G2

2G2, 3G2

1G1, 2G1,
3G1/1G2

1G1, 2G1

1G1/2G2

2G1/3G2

1G1, 3G1/ 1G2,


2G2

1G1, 3G1

3G2

1G1, 2G1, 3G1

1G2, 2G2, 3G2

1G2, 2G2

2G2

1G1, 2G1, 3G1/


1G2

2G2, 3G2

2G2, 3G2

1G1, 2G1, 3G1/


1G2, 2G2, 3G2

Faa valer a pena


1. De acordo com o material de estudos, complete as lacunas com as
palavras correspondentes assinalando a alternativa correta.
i.
_________: ordem e forma de apresentar as palavras para que
sejam interpretadas.
ii.
_________: paradigma de programao que segue a premissa de
que contempla estruturas de seleo de informaes, deciso e repetio.
iii.
_________: paradigma de programao que aproxima o mundo
real do virtual atravs da abstrao dos dados, vinculao das informaes
atravs de herana, encapsulamento e polimorfismo.
a. programao estruturada, programao estruturada e algoritmos.
b. sintaxe, programao estruturada e programao orientada a objetos.
c. algoritmos, sintaxe e programao orientada a objetos.
d. sintaxe, algoritmos e programao estruturada.
e. variveis, sintaxe e algoritmos.
2. Cite e explique os dois tipos de problemas relacionados aos algoritmos
e a forma como esses podem ser analisados.
3. Assinale V para verdadeiro e F para falso. So caractersticas dos
algoritmos:
a. ( ) Finitude: indica que o algoritmo deve encerrar aps um nmero
finito de execuo.
b. ( ) Longitude: que indica a capacidade de processamento do algoritmo
desenvolvido.
c. ( ) Definio: evita definies que gerem ambiguidade.
d. ( ) Entrada: atribui valores ao algoritmo, a partir de especificaes de
variveis e funes antes de sua iniciao.
e. ( ) Sada: representa os valores aps o processamento, ou seja, a

Algoritmos e programao: contextos e prticas

23

U1
execuo das aes.
f. ( ) Eficcia: todas as aes que o algoritmo realiza precisam ser
executveis em um limite de tempo predeterminado, finito, mesmo que
seja sem o auxlio do computador.
4. A frase abaixo referente a uma caracterstica do desenvolvimento de
qual conceito? Assinale a alternativa correta.
No princpio designava a forma de resolver problemas matemticos,
depois princpios e teorias matemticas, migrando finalmente para
a rea computacional, depois da inveno e consolidao dos
computadores. (PIVA Jr. et al., 2012)
a. declarao de variveis
b. entrada de dados
c. sistemas de informao
d. algoritmos
e. programao orientada a objetos
5. Quando e por quem os algoritmos foram introduzidos? Cite a lgica do
algoritmo de Euclides.
6. Assinale a alternativa que representa o mecanismo de funcionamento
de um algoritmo.
a. dados, processamento e informao.
b. dados, entrada e sada.
c. entrada, sada e banco de dados.
d. declarao, comandos e encerramento.
e. informao, processamento e sada.
7. Desenvolva o algoritmo para calcular a rea de uma mesa, solicitando
ao usurio que insira os valores da base e da altura. Com base nessas
informaes e no desenvolvimento do algoritmo, assinale a alternativa
correta que representa a lgica que dever ser implantada.
a. A b * h
b. escreva b*h.
c. leia (b,h)
d. digite altura (h)
e. leia (b)

24

Algoritmos e programao: contextos e prticas

U1

Seo 1.2
Tipos de dados e expresses: literais, lgicas e
aritmticas
Dilogo aberto
Antes de aprender como desenvolver programas de computador utilizando uma
linguagem de programao, voc ser levado a conhecer as formas de apresentao
dos elementos que devem ser considerados para efetuar as operaes. Nessa rea
muito comum que qualquer algoritmo elaborado apresente um contexto lgicomatemtico, ou seja, necessite retornar o resultado de um clculo, por exemplo.
Porm, as expresses matemticas no podem ser representadas nas linguagens
computacionais com os mesmos smbolos a todo tempo e com a mesma forma.
Precisam ser linearizadas e utilizar os operadores, que voc provavelmente j conhece,
mas que seguem uma padronizao de acordo com a linguagem escolhida para o
desenvolvimento.
Veja abaixo a tabela com os operadores matemticos.
Tabela 1 | Principais operadores matemticos em linguagem algortmica
Operaes

Operador

Adio

Subtrao

Multiplicao

Diviso

Fonte: Piva Jr. (2012, p. 59).

Diante deste contexto, veja um exemplo de expresso matemtica que precisa ser
linearizada para que o computador possa interpretar essa informao: y= 2x + 4x.
5x+7

De acordo com a linearizao da frmula acima, obtemos: y ((2*x)/(5*x+7))+(4*x).


Observe como a representao dessa expresso foi modificada.

Algoritmos e programao: contextos e prticas

25

U1
A fim de apresentar uma soluo em algoritmos, para os comerciantes do Litoral
Sul, a sua misso nesta fase definir as expresses matemticas, lgicas e literais que
sero utilizadas. Ao conjunto de operaes dado o nome de funo. Defina, de
acordo com o algoritmo apresentado anteriormente, quais sero e como devem ser
implementadas. Alm das expresses, identifique tambm quais so os tipos de dados
e as respectivas variveis ou constantes que devem ser declaradas para a realizao
das operaes: assim como os nmeros, que em algum momento da histria tiveram
sua forma e utilizao padronizadas, aconteceu a mesma coisa com as expresses
matemticas quando utilizadas em algoritmos ou linguagens de programao
computacionais. (PIVA Jr., 2012, p. 58).
Voc pode utilizar, para os clculos mais complexos, operadores e funes em
linguagem algortmica para as mais diversas operaes que o aplicativo dever executar.
As expresses, os tipos de dados e variveis aqui apresentados servem como referncia
para o desenvolvimento de software independente da linguagem ou paradigma de
programao, no entanto, precisa se atentar a sintaxe de cada uma delas.

No pode faltar
Alguns operadores matemticos so utilizados para clculos considerados simples
mas, e se voc precisar calcular, por exemplo, uma equao de segundo grau ou
ainda uma integral, derivadas, logaritmos? Enfim, h uma infinidade de funes e suas
aplicaes so importantes! Vamos conhecer outros operadores matemticos que
auxiliam na elaborao de funes e clculos mais complexos. Veja as tabelas abaixo
e as respectivas descries:", tal como no original.

Tabela 2 | Operaes complexas com operador


Operaes

Operador

Exponenciao

a^b

Diviso inteira

a\b retorna o valor inteiro


da diviso

Mdulo

a % b resto de diviso

Inverso de sinal

-a (-(-a) resulta em a)

Fonte: Piva Jr. (2012, p. 61).

26

Algoritmos e programao: contextos e prticas

Exemplo

U1
Tabela 3 | Operaes complexas com funes
Operaes

Funes

Explicao

Raiz Quadrada

Raizq(x)

Raiz quadrada

Exponenciao

Exp(x,y)

x elevado a y

Valor absoluto

Abs(x)

Valor absoluto de x.

Arco Cosseno

ArcCos(x)

ngulo em radianos cujo


cosseno representado por x.

Arco Seno

ArcSen(x)

ngulo em radianos cujo seno


representado por x.

Arco Tangente

ArcTan(x)

ngulo em radianos.

Cosseno

Cos(x)

Cosseno em radianos do
ngulo x.

Cotangente

CoTan(x)

Retorna o ngulo x em
radianos.

Parte inteira do nmero

Int(x)

Retorna a parte inteira do


nmero x.

Logaritmo

Log(x)

Retorna o logaritmo de x na
base 10.

Logaritmo Neperiano

LogN(x)

Retorna o logaritmo neperiano


de x (base e).

Valor Pi()

Pi

Retorna o valor 3.141592.

Quadrado

Quad(x)

Retorna o quadrado de x.

Valor aleatrio

Rand

Randmico entre 0 e 1.

Seno

Sen(x)

Retorna o seno do ngulo x em


radianos.

Tangente

Tan(x)

Retorna a tangente do ngulo x


em radianos.

Fonte: Piva Jr. (2012, p. 61- 62).

Assimile
Um bom exemplo a citar de linearizao de funes pode ser representado
pela equao de 2 grau. Observe: x =

-b+ b2-4ac
2a

Aps a linearizao, a funo ficar da seguinte forma: x (- b + raizq(b^


2 (4 * a * c)))/ (2* a).

Alm dos operadores matemticos, conhea tambm os operadores relacionais.


Veja a tabela a seguir.

Algoritmos e programao: contextos e prticas

27

U1
Tabela 4 | Operadores relacionais
Operaes

Operador

Exemplo

Igual

Diferente

<>

Maior que

>

a > b (a maior que b?)

a = b (a igual a b?)
a < > b ( a diferente de b?)

Menor que

<

a < b (a menor que b?)

Maior ou igual

>=

a >= b (a maior ou igual a b?)

Menor ou igual

<=

a <= (a menor ou igual a b?)

Fonte: Piva Jr. (2012, p. 62-63).

Os operadores lgicos so muito importantes para a composio das expresses


necessrias execuo dos programas. Observe na tabela abaixo quais so eles.
Tabela 5 | Operadores lgicos
Operaes

Significado

No

unrio na negao. Tem a maior precedncia entre os


operadores lgicos.
no (VERDADEIRO)= FALSO, e no (FALSO)= VERDADEIRO

Ou

Resulta em verdadeiro quando um dos seus operandos


lgicos for verdadeiro.

Operador que resulta VERDADEIRO apenas se seus dois


operandos lgicos forem verdadeiros.

Xou

Operador que resulta VERDADEIRO se seus dois operandos


lgicos forem diferentes, e FALSO se forem iguais.

Fonte: Piva Jr. (2012, p.63).

Para verificar se as proposies so verdadeiras ou falsas de acordo com o operador


lgico que utilizado, aconselhvel que voc saiba como realizar o teste. Para tal, a
sugesto o uso da tabela verdade. Ento, a considerar os operadores lgicos, confira
a seguir os testes que podem ser realizados. Para a expresso: A= B e D, observe:
B

A= B e D

Falso

Falso

Falso

Falso

Verdadeiro

Falso

Verdadeiro

Falso

Falso

Verdadeiro

Verdadeiro

Verdadeiro

Exemplo: para que a condio seja verdadeira e atenda solicitao do operador


lgico, ento, suponha que uma concessionria tenha uma meta por vendedor de 18
carros por ms e o mnimo de R$ 58.000,00 de valor bruto de vendas. Se esse vendedor
atingir a meta, ento, ele receber 10% de comisso. Se no, o vendedor recebe

28

Algoritmos e programao: contextos e prticas

U1
apenas 0,08% do total como participao nas vendas. Seja A o valor da comisso, B o
total de carros vendidos e D o valor mnimo de vendas, elabore a expresso lgica que
atenda essa operao. Resposta: a expresso que representa essa operao : A= ((B
>=18) e (D>= 58.000)).
Agora, vamos fazer a tabela verdade para a expresso com o operador lgico ou.
B

A= B ou D

Falso

Falso

Falso

Falso

Verdadeiro

Verdadeiro

Verdadeiro

Falso

Verdadeiro

Verdadeiro

Verdadeiro

Verdadeiro

Exemplo 2: para o mesmo problema apresentado acima, considere que o vendedor,


para ganhar a comisso total, precisa atingir ou o valor da meta de vendas que de
18 carros por ms, ou o valor mnimo em reais que de R$ 58.000,00. Elabore a
expresso que representa essa condio. Resposta: a expresso que representa essa
operao : A= ((B>=18) ou (D>=58.000)).
Observe a ao do operador lgico XOU ou, operador lgico exclusivo, derivado
das conjunes, disjunes inclusivas e negao. preciso que ao menos uma das
condies seja verdadeira para que resulte em verdadeiro. Veja a sua tabela verdade.
B

A= B xou D

Falso

Falso

Falso

Falso

Verdadeiro

Verdadeiro

Verdadeiro

Falso

Verdadeiro

Verdadeiro

Verdadeiro

Falso

Exemplo 3: Considere ainda o problema sugerido no exemplo 1 e elabore a


expresso que a representa. A diferena desse operador est em aceitar ao menos
uma das condies para que resulte em verdadeiro. Resposta: A= ((B>=18) xou
(D>=58.000)).
Abaixo a tabela verdade do operador lgico no.
B

A= no B

A= B xou D

Falso

Verdadeiro

Falso

Verdadeiro

Falso

Verdadeiro

Exemplo 4: ainda considerando a situao-problema do exemplo 1, elabore a


expresso que representa essa operao. Resposta: A= (nao(B>=18) e (nao(D>=58.000)).
Os materiais de referncia podem trazer o sinal ~ como indicao da notao para no.

Algoritmos e programao: contextos e prticas

29

U1

Pesquise mais
O link abaixo contm informaes sobre algoritmos e aplicaes. Acesse
e teste os exemplos disponveis. Disponvel em: http://pichiliani.com.
br/2013/04/visualizando-algoritmos/. Acesso em: 25 mar. 2015.

Os operadores lgicos auxiliam a execuo das operaes, porm, estas afetam


diretamente o valor contido no que se chama de varivel. Por exemplo, nas expresses
acima ns temos as variveis A, B e D. Os operadores relacionais > maior e = igual
e, os valores referentes a cada uma das variveis. Note tambm que os valores das
variveis B e D no so alterados durante a execuo, por esse motivo so chamadas
de constantes. importante que o valor da varivel seja atribudo logo no momento
de sua declarao.
Alm desse aspecto, voc precisa considerar a forma de como se faz para
determinar o nome da varivel, pois este ser o seu identificador. So permitidos
identificadores com letras maisculas, exemplo COMISSAO_INTEGRAL, no entanto,
recomendado que seja objetivo e transmita a informao que ser ali armazenada
ou manipulada, ento, a sugesto : comissaoIntegral.

Reflita
O espao reservado previamente em memria, e devidamente rotulado
com um nome (identificador), chamamos de varivel. Caso o valor no
venha a se alterar durante o programa, chamamos esse espao de
constante. (PIVA JR., 2012, p. 85).
O espao em branco tambm um caractere especial.

As variveis armazenam valores que so classificados quanto ao seu tipo e


caractersticas. Veja na tabela abaixo os tipos de dados existentes.

30

Tipos de dados

Caractersticas

Exemplos

Inteiro

Contempla todos os
nmeros inteiros relativos
(positivos, negativos e
nulos).

12, -56, 852, 146698

Real

Conjunto dos nmeros


reais nulos, negativos e
positivos.

23.5, 85.4, -354.8, -74,


3.141618

Algoritmos e programao: contextos e prticas

U1

Caracter

Composta por todos os


caracteres alfanumricos e
especiais.

0 9, A-Z, a-z, #,$%,&,*@

Lgico ou booleanos

Assumem apenas a
situao de verdadeiro ou
falso.

0 ou 1, verdadeiro ou falso,
sim ou no.

Fonte: Adaptado de Piva Jr. (2012, p. 86).

A seguir, h um exemplo para voc praticar. Siga em frente.

Exemplificando
Observe o exemplo abaixo e as respectivas explicaes.
Teste a transposio do algoritmo de soma de dois nmeros (Scilab ou no
Visualg-pseudocdigo) e observe como aparecem as entradas e sadas de
dados e informao:
algoritmo "soma dois nmeros"
// Funo: algoritmo que exibe o resultado da soma entre dois nmeros.
// Autor : JJJ
As variveis x e y so do
tipo de dado inteiro.

// Data : 05/03/2015
// Seo de Declaraes
var
x, y: inteiro
inicio

Dados de entrada: o comando


escreval indica que o dado
solicitado ou exibido ao usurio, e o
l que h a quebra de linha.

// Seo de Comandos
escreval("Digite o primeiro nmero: ")
leia(x)

O comando leia indica


que o dado verificado na
varivel indicada.

escreval("Digite o segundo nmero: ")


leia(y)
escreva("A soma dos nmeros : ",x+y)
fimalgoritmo

Sada: soma (informao)

Algoritmos e programao: contextos e prticas

31

U1
Faa voc mesmo
Agora, observe o mesmo exemplo na transposio para uma linguagem
de programao (C, implementada no Dev C++):
/* Programa dever apresentar a soma entre dois nmeros*/
#include <stdio.h>

Primeiramente preciso estabelecer quais so as


bibliotecas utilizadas por este programa em C.

#include <stdlib.h>
main()

Em seguida, h a declarao das variveis,


especificando o tipo de dado e a solicitao da
entrada de dados.

{ int a, b, soma;

printf("Informe o primeiro numero:\n");


scanf("%d", &a);
printf("Informe o segundo numero:\n");
scanf("%d", &b);

A varivel soma recebe o


valor da adio das variveis a
com b.

soma = a + b;
printf("A soma dos numeros e: %d, soma);
fflush (stdin);

fflush: limpa o
buffer

% sucedido da letra d
representa a exibio do valor
do dado do tipo inteiro contido
na varivel soma.

Os comandos printf e scanf so, respectivamente, o escreva e leia do


exemplo anterior, porm, escritos em pseudocdigo.

Sem medo de errar


Aplicao dos procedimentos de atuao convenientes SP
1.
Observe que no caso apresentado para resolver a solicitao de
desenvolvimento do aplicativo para os comerciantes do Litoral Sul, ser proposto o
algoritmo ao lado. O pseudocdigo apresenta inicialmente o nome do algoritmo:

32

Algoritmos e programao: contextos e prticas

U1
Litoral Sul.
2. Em seguida, traz a especificao da fase do projeto e o que o algoritmo
apresenta.
3. Indicar o autor do algoritmo tambm recomendvel, bem como, a sua
data de elaborao. Fatores que atribuem maior controle das alteraes desse projeto
inclusive.
4. Observe que antes de iniciar efetivamente o bloco de declarao de
variveis, h a indicao desse com a palavra var, sintaxe vlida para o VisualG. que
visa demonstrar a sequncia em que as operaes precisam ser apresentadas nos
algoritmos e consequentemente nos programas.
5. So declaradas trs variveis do tipo caracter, que corresponde ao tipo de
dado char em outras linguagens. A varivel mdia foi declarada com o tipo de dado
real, o que em linguagem de programao significa float. As demais variveis recebero
valores do tipo inteiro, equivalente ao tipo de dado integer nas demais linguagens.
6. Observe que em seguida declarao das variveis h efetivamente o incio
das operaes que o algoritmo dever executar para atender a demanda solicitada.
7. Os comandos leia e escreva representam, respectivamente, entrada e sada
de dados. Neste caso, houve a necessidade de uso de uma estrutura de seleo, que
ser melhor descrita a seguir. Nesse caso, ela serve para inserir o teste da condio
que foi imposta e que, a partir desta escolha do usurio, ser possvel verificar e seguir
adiante com as execues previstas.

Pseudocdigo
algoritmo "Litoral Sul"
// Funo : representao do algoritmo de aes do aplicativo- Fase 1.
// Autor : JJJ
// Data : 12/03/2015
// Seo de Declaraes
var
login, agenda, email: caractere
mdia: real
satisfao, satisfeito, insatisfeito, categoria, g, h: inteiro

Algoritmos e programao: contextos e prticas

33

U1
inicio
// Seo de Comandos
escreva("Clique no cone login para acessar o sistema.")
leia(login)
escreval("Digite 1 para escolher servios de gastronomia ou 2 para hotelaria.")
leia(categoria)
se categoria = 1 ento
g g+1
seno
h h+1
fimse
mdia

(g +h)/2

escreval("A quantidade mdia de acessos de:", mdia)


escreval("A quantidade de acessos para gastronomia de:", g)
escreval("A quantidade de acessos para hotelaria de:", h)
fimalgoritmo

Ateno!
Outro ponto de ateno, aqui, para a atribuio de valores nas variveis,
que no tm caracterstica de constante justamente porque podem sofrer
alteraes durante a execuo do programa, de acordo com a opo
escolhida.

Lembre-se
Voc tem total autonomia para melhorar os processos e incrementar
as funcionalidades, ento, fique de olho no cronograma desse projeto e
pratique!

34

Algoritmos e programao: contextos e prticas

U1
Avanando na prtica
Pratique mais
Instruo
Desafiamos voc a praticar o que aprendeu transferindo seus conhecimentos para novas situaes
que pode encontrar no ambiente de trabalho. Realize as atividades e depois as compare com a de
seus colegas e com o gabarito disponibilizado no apndice do livro.
Tipos de dados e expresses: literais, lgicas e aritmticas
1. Competncia de fundamento de
rea

Conhecer os princpios e conceitos que envolvem o


aprendizado em construo de algoritmos e programao
e a sua importncia para o universo do desenvolvimento de
sistemas.

2. Objetivos de aprendizagem

Conhecer o que so, como se aplicam e a quem se destina


a elaborao dos algoritmos;
Conhecer como ocorre o raciocnio lgico computacional.

3. Contedos relacionados

Expresses literais, lgicas e aritmticas;


Tipos de dados, variveis e constantes.

4. Descrio da SP

Nas turmas da 6 srie da escola Estudar Faz Bem, a


professora estava reforando com os alunos as operaes
matemticas. Para integrar as tecnologias de informao
e comunicao nas aulas para essa turma, a professora
solicitou o desenvolvimento de um aplicativo simples que
permitisse aos alunos testar em uma calculadora amigvel
e interativa tais operaes. O intuito fazer com que os
alunos, desde as primeiras etapas de seu ensino,

4. Descrio da SP

compreendam a lgica computacional e, dessa forma,


realizem a prova real manuscrita e tambm visualizem outras
possibilidades de se realizar essas operaes. Sua misso
desenvolver o algoritmo que apresente as operaes adio,
subtrao, multiplicao e diviso, e de forma que a interface
apresentada seja fcil para esse pblico compreender.

5. Resoluo da SP

Faa voc mesmo:


algoritmo Operaes matemticas
// Funo : Elabore um algoritmo que receba dois nmeros
e a partir desses, exiba os respectivos resultados com as
operaes matemticas adio, subtrao, multiplicao e
diviso.
// Seo de Declaraes
var
x, y: real
incio
// Seo de Comandos
escreva(Digite o primeiro nmero: )
leia(x)
escreva(Digite o segundo nmero: )
leia(y)
escreval(A soma e: ,x+y)
escreval(A subtracao e: ,x-y)
escreval(A multiplicacao e: ,x*y)
escreval(A divisao e: ,x/y)
fimalgoritmo

Algoritmos e programao: contextos e prticas

35

U1
Lembre-se
A definio de um tipo de dado para uma determinada varivel indica a
reserva de um determinado espao em memria. Caso esse espao seja
insuficiente, ocorrer um erro de time mismatch ou overflow, levando
interrupo da execuo do programa. (PIVA JR., 2012, p. 101)

Faa valer a pena


1. Elabore um algoritmo que permita ao lojista inserir o valor do produto
e o valor do desconto. Em seguida, apresente o valor do produto e o seu
valor com o desconto. Assinale a alternativa que indica corretamente a
expresso para este clculo.
a. desconto <- v_produto*pdesconto/100
b. desconto <- desc/100 - valor_prod
c. v_produto<- desconto * desconto/100
d. desconto <- v_produto* desconto/0,1
e. desconto <- v_produto* desconto/1,0

2. Desenvolva um algoritmo que receba o valor de um ngulo em


graus e exiba o seu valor em radianos: apresente o pseudocdigo e,
em linguagem C.

3. Elabore um algoritmo para calcular o consumo de combustvel de um carro.


Assinale a alternativa correta, aps a anlise da linha de comando abaixo.
Escreval ("O consumo de combustvel do seu veculo : ",distancia/
combustivel)
a. no possvel realizar esta operao.
b. a sintaxe est incorreta.
c. a sintaxe est correta, pois apresenta o valor mdio de combustvel que
o tanque do carro comporta.
d. o comando est correto, pois possvel efetuar uma operao
matemtica seguida da exibio da mensagem.
e. est incorreta, pois no existe o comando escreval.

36

Algoritmos e programao: contextos e prticas

U1
4. Elabore um algoritmo que realize a cotao do dlar.
5. Em um processo de precificao, o empreendedor precisa de uma
ferramenta que o auxilie a estabelecer a sua margem de lucro e a calculla de forma mais rpida e facilitada. Para tal, desenvolva um algoritmo
que receba o valor do produto, o valor da margem de lucro desejada em
percentual, e exiba o valor final. Assinale a alternativa que representa as
variveis que so necessrias para a realizao desse algoritmo e o seu
respectivo tipo de dado.
a. preo1, preoTotal e preoLquido: caractere.
b. valorProduto, margemLucro, valorFinal: real.
c. valorProduto, margemLucro, valorFinal: inteiro.
d. valorProduto, margemLucro, valorFinal: caractere.
e. preo1, preoTotal e preoLquido: inteiro.
6. Dadas as sequncias de tipos de dados abaixo, assinale a alternativa
correta.
a. inteiro, real e caractere.
b. real, strong e integer.
c. char, ntegro e real.
d. strong, ntegro e short.

7. Assinale a alternativa que contm apenas os operadores relacionais.


a. and, or, xor
b. >, <, >=, <=
c. e, ou, xou
d. *, /, -, +
e. >, /, <=, *

Algoritmos e programao: contextos e prticas

37

U1

38

Algoritmos e programao: contextos e prticas

U1

Seo 1.3
Representao de algoritmos e o ambiente de
programao
Dilogo aberto
No cenrio descrito no Convite ao Estudo, a empresa de desenvolvimento Think
Now precisa considerar inicialmente:
a. Os processos que o aplicativo dever executar e como o seu algoritmo. Alm
de buscar informaes de solues e algoritmos existentes que possam servir de
parmetro para esse desenvolvimento.
b. O ambiente de programao e como se d a interpretao das aes para a
linguagem de computador;
c. A lgica existente entre os processos que o aplicativo dever executar e a sua
respectiva ilustrao com a elaborao do fluxograma;
d. A competncia tcnica da equipe de desenvolvimento para a identificao das
expresses literais, lgicas e aritmticas, alm de saber quando deve ser utilizada uma
ou outra;
e. Alm disso, ser necessrio que a equipe j identifique os tipos de dados que
sero utilizados, o que ser varivel ou constante e inicie o seu processo de declarao,
em ambiente computacional.
preciso estabelecer qual ser o passo-a-passo para realizar as consultas e reservas,
e de forma que seja simples, rpido e fcil ao usurio final. A empresa tambm precisa
identificar quais so os riscos que o projeto pode enfrentar para que seja concludo,
ou seja, entregue.
Sendo assim, possvel inferir que devem ser apresentados:
Para o passo-a-passo, alm da observao do processo inicialmente informado,
ser preciso interpretar e identificar se todos os envolvidos compreendem e aprovam
as etapas definidas;

Algoritmos e programao: contextos e prticas

39

U1
Elaborar o fluxograma de aes do software, ou seja, a representao do seu
algoritmo componente fundamental desse processo;
A equipe responsvel pelo desenvolvimento do projeto dever alinhar as
solicitaes de funcionalidades do aplicativo que realmente so passveis de realizao
dentro do prazo estipulado.
Alm desses, voc, que faz parte do quadro de colaboradores da empresa dedicados
a esse projeto, dever considerar, para o desenvolvimento de suas atividades, todos os
tpicos de a a e, descritos na situao acima, e auxiliar a sua equipe na resoluo
desta tarefa. Bom trabalho!

No pode faltar
Considere que os algoritmos, de forma geral, visam estabelecer a sequncia lgica
existente entre as aes que devem ser executadas. Para tal, smbolos podem ser
utilizados de forma que representem a informao desejada. Veja um exemplo de
como pode ser representado um processo a partir do uso de operadores lgicos
(conjuno e, disjuno ou condicional ou), nesse caso, descrito como exemplo
o operador e (PIVA JR., 2012, p. 9):
p: 1 + 1 = 2
r: 2 + 1 = 3
q: p e r
Na representao acima, o q uma proposio verdadeira resultante de p e r,
que tambm o so. Essa lgica nada mais do que uma representao lgica formal
ou simblica.
Observe o exemplo de um algoritmo que define o clculo da mdia dos alunos, a
considerar duas notas a obter um status de aprovao ou reprovao, caso a mdia
seja inferior a 6,0:
Inserir nota 1.
Inserir nota 2.
Calcular a mdia sendo que: (nota 1 + nota 2)/2.
Exibir a mdia.
Verificar se a mdia menor do que 6,0.

40

Algoritmos e programao: contextos e prticas

U1
Se sim, indicar aluno reprovado.
Se no, indicar aluno aprovado.
Outro exemplo, um algoritmo de um programa que calcule a soma de dois
nmeros (mesma lgica do primeiro exemplo):
a 1
b 2
c a+b
c=3

Reflita
Saber as fases e as estratgias de resoluo de um problema auxilia a
construir novas ferramentas mentais para compreender e resolver novos
problemas. Quanto mais praticar, mais ferramentas ter e mais problemas
conseguir resolver. (PIVA JR., 2012, p. 33)

A seguir, o exemplo de clculo da mdia em C (Dev C++):


/* Programa dever apresentar a mdia de duas notas*/
#include <stdio.h>
#include <stdlib.h>
main()
{
float a, b, media;
printf("Informe duas notas:\n");
scanf("%f%f%f", &a, &b, &c);

As prioridades de execuo respeitam as


propriedades matemticas.

media = (a + b + c)/3;
printf("A media e: %f, %f e %f igual a %f", a, b, c, media);
fflush (stdin);
getch();
return 0;}

Algoritmos e programao: contextos e prticas

41

U1
Pesquise mais
No site C Programming, voc encontrar mais informaes sobre a
linguagem C. Disponvel em: <http://www.cprogramming.com/>. Acesso
em: 15 mai. 2015.
possvel a utilizao de smbolos e tambm de uma linguagem no computacional,
como no caso do algoritmo de clculo da mdia. Nesse ltimo caso, as entradas de
dados so as nota 1 e nota 2. Processamento o clculo efetivamente; e a mdia
a sada que se obtm do processamento.
Outra forma de representar um algoritmo atravs do seu fluxograma. O exemplo
ser do algoritmo elaborado para realizar a soma de dois nmeros. Veja abaixo como
fazer e o que significa cada smbolo utilizado.

Incio

Terminal: indica o incio ou


o fim de um algoritmo.

Fluxo: indica o sentido dos


passos de um algoritmo.

a, b

Entrada ou sada: indica a


entrada ou sada de dados.

Processo: indica a operao


realizada no algoritmo.

media (a + b)/2

mdia

Fim

42

Algoritmos e programao: contextos e prticas

U1
Analise o fluxograma e identifique que h a necessidade da declarao das variveis,
seguido da indicao da operao que ser realizada, ou seja, o processamento e,
logo aps, h a apresentao do resultado desse processamento, uma sada, portanto,
e o encerramento do processo do algoritmo, que representou, nesse caso, a soma de
dois nmeros.
Assimile
Representao do algoritmo pode ser:
Algoritmo no computacional: escrito em linguagem natural.
Algoritmo computacional: escrito em pseudocdigo ou portugus
estruturado ou em uma linguagem de programao, ou seja,
implementado.
Fluxograma.
Para facilitar a sua compreenso acerca do que algoritmo, e como ele pode
auxiliar na resoluo de problemas, tenha em mente os passos:
1. Identifique o problema;
2. Imagine como pode resolver;
3. Analise as solues e escolha a que for mais vivel;
4. Reavalie se necessrio.
Vamos exercitar mais um pouco o contedo. Suponha que em uma partida de
vlei, o sistema registra os pontos a partir do lanamento manual, ou seja, realizado
pelo juiz ou assistente da partida, que atualiza os valores ponto a ponto. Nesse caso,
para estabelecer qual o ganhador, o sistema faz a contagem dos pontos do jogador
A e do jogador B, o que tiver a maior quantidade de pontos o vencedor. Faa o
algoritmo em linguagem natural, em pseudocdigo e o seu fluxograma.

Exemplificando
Algoritmo em linguagem natural:
1. Identifique os jogadores;
2. Lance os pontos do jogador A;

Algoritmos e programao: contextos e prticas

43

U1
3. Lance os pontos do jogador B;
4. Verifique a maior quantidade de pontos;
5. Se jogador A com maior quantidade de pontos, ento, Jogador A o
campeo, seno, Jogador B;
6. Encerra a partida.
Algoritmo em pseudocdigo (Visualg):
algoritmo "Verificar valor maior ou menor"
// Funo:

Clculo de pontos: maior ou menor

// Autor: "Ns"
// Data: 06/01/2015
// Seo de Declaraes
var
A, B: inteiro
inicio
// Seo de Comandos
escreval("Informe os pontos do jogador A: ")
leia (A)
escreval ("Informe os pontos do jogador B: ")
leia (B)
se A > B entao
escreva ("O campeo o jogador A:", A )
senao
escreva ("O campeo o jogador B:", B)
fimse
fimalgoritmo

44

Algoritmos e programao: contextos e prticas

U1
Faa voc mesmo
Agora tente voc mesmo fazer o diagrama de bloco ou fluxograma do
algoritmo acima.
Fluxograma

Incio

A, B

Sim

No
A>B?

Fim

Sem medo de errar

Agora o momento de iniciar a resoluo do projeto que a Think Now assumiu, e


voc est responsvel por mapear os processos que o aplicativo dever contemplar.
Voc e sua equipe, ao se reunirem com os comerciantes, identificaram que a maior
preocupao deles estava em identificar de forma contnua, ou seja, desde a primeira
fase da implantao, qual a percepo do cliente em relao ao aplicativo, sua
aceitao e usabilidade. Sugeriram um processo inicialmente mais simples, porm, que
j retornasse a mdia de pessoas que acessaram. Ento, a sua tarefa agora mapear
os processos para o desenvolvimento e apresentar o algoritmo desse aplicativo em
linguagem natural, fluxograma e pseudocdigo. Ento, mos obra.

Algoritmos e programao: contextos e prticas

45

U1
Ateno!
Para compreender os processos, importante interpretar a solicitao
e, com isso, escrever o passo-a-passo para a execuo sem deixar de
contemplar os processos-chave dessa operao.
A seguir, uma sugesto de transposio dos dados levantados, em linguagem
natural.
1.

Incio

2. O aplicativo dever permitir o login por cadastro ou por rede social.


3. Aps logar, o usurio ser direcionado a um processo para escolher a categoria:
gastronomia ou hotel.
4. Aplicativo contabiliza acessos de gastronomia e hotelaria e gera a mdia.
5. Fim.
A definio dos processos inicialmente identificados, representados em fluxograma:

Incio

Login

Sim

No
Categoria

Mdia

Fim

46

Algoritmos e programao: contextos e prticas

U1
Lembre-se
Os fluxogramas precisam apresentar as aes do sistema, os processos,
as entradas e sadas de dados. Voc pode, inclusive, inserir as estruturas
de seleo, repetio e deciso na representao do algoritmo. Pesquise
mais na bibliografia bsica e resolva os exerccios para praticar todas as
formas de representao dos processos. Norma ISO 5807/1985.

Avanando na prtica
Pratique mais
Instruo
Desafiamos voc a praticar o que aprendeu transferindo seus conhecimentos para novas situaes
que pode encontrar no ambiente de trabalho. Realize as atividades e depois as compare com a de
seus colegas e com o gabarito disponibilizado no apndice do livro.
Representao de algoritmos e o ambiente de programao
1. Competncia de fundamento de
rea

Conhecer os princpios e conceitos que envolvem o


aprendizado em construo de algoritmos e programao,
e a sua importncia para o universo do desenvolvimento de
sistemas.

2. Objetivos de aprendizagem

Conhecer o que so, como se aplicam e a quem se destina


a elaborao dos algoritmos;
Conhecer o ambiente de programao e como se d o
raciocnio lgico computacional.

3. Contedos relacionados

O ambiente de programao;
Formas de representao de algoritmos;

4. Descrio da SP

Suponha que no restaurante francs JacquesBistr, alm


do valor do salrio, os garons no podem receber gorjetas
dos clientes. Ento, h uma calculadora especial que est
programada para executar essa operao. Assim que o
garom encerra a conta no sistema, a calculadora solicita
que ele digite dois nmeros inteiros menores que 20. A
comisso ser calculada pela soma dos dois nmeros e de
duas formas distintas. Veja a frmula c1= v1 + v2/100 e a
outra frmula : c2= (v1+v2)/100. Para encerrar, o sistema
calcula a soma das duas operaes e exibe o valor que ser
pago ao garom como comisso. Faa o algoritmo dessa
calculadora em pseudocdigo e em linguagem C.

5. Resoluo da SP

algoritmo JacquesBistr
var
n1,n2: inteiro
c1,c2,comissaoFinal: real
inicio
// Seo de Comandos
escreva(1 Nmero= )
leia(n1)
escreva(2 Nmero= = )
leia(n2)
c1 <- n1 + n2 / 100

Algoritmos e programao: contextos e prticas

47

U1

5. Resoluo da SP

c2 <- (n1 + n2)/100


comissaoFinal<- c1 +c2
escreval(Comisso final= , comissaoFinal:7:2)
fimalgoritmo

Lembre-se
O ttulo do algoritmo deve ser o mais objetivo possvel, expressando
exatamente a funo realizada. O espao reservado para declarao de
variveis vem antes do incio dos processos de execuo em VisuAlg.

Faa voc mesmo


#include <stdio.h>
#include <conio.h>
void main()
{ int n1, n2;
float c1,c2, cf;
printf("n1 = "); scanf ("%d", &n1);
printf("n2 = "); scanf ("%d", &n2);
c1 = n1 + n2 / 100;
c2 = (n1 + n2)/100;cf= c1 + c2; printf("\n cf = %7.2f", cf);getch();}

Faa valer a pena


1. Uma loja de artes e decorao, de porte pequeno, est precisando de
um mdulo de clculo que indique, a partir do valor total da compra, o
valor das prestaes e parcela em at cinco vezes. Assinale a alternativa
que representa o clculo correto a ser inserido.
a. prestao <- compra/5
b. leia (compra)
c. compra = prestao/5
d. escreva( compra <- prestao)
e. leia (prestao = compra/5)

48

Algoritmos e programao: contextos e prticas

U1
2. Seguindo o raciocnio lgico requerido, analise o algoritmo abaixo e
assinale a alternativa que melhor representa o seu processamento.
var
distancia, combustivel: real
inicio
// Seo de Comandos
escreval("* Clculo de consumo de combustvel *")
escreva("Informe a distncia a percorrer: ")
leia(distancia)
escreva("Informe a quantidade (em litros) de combustvel gasto: ")
leia(combustivel)
escreval("O consumo de combustvel ser de: ",distancia/combustivel)
fimalgoritmo
a. o algoritmo acima calcula o valor que se pagar ao completar o tanque
de combustvel.
b. o algoritmo acima calcula a quantidade de consumo de combustvel
do automvel.
c. o algoritmo representa a seo de comandos para calcular o valor do
combustvel.
d. o algoritmo representa a situao real usada para estabelecer os preos
de mercado do combustvel.
e. o algoritmo informa simplesmente quais so as variveis utilizadas para
o clculo do combustvel.
3. Em uma empresa de automveis, os vendedores, alm do seu salrio
fixo, recebem uma comisso de 15% a cada venda realizada. A empresa
precisa de um programa que, a partir da entrada do nome do vendedor,
mostre o seu salrio fixo e o valor total de vendas que ele fez no perodo.
O valor da comisso se aplica ao valor total de vendas. Elabore o algoritmo
equivalente a esta operao.
4. Considere duas variveis, X e Y. Desenvolva um algoritmo que realize
a troca dos valores das variveis, ou seja, a varivel X recebe o valor da
varivel Y e vice-versa e, ao final, o algoritmo deve apresentar tambm os
valores trocados.

Algoritmos e programao: contextos e prticas

49

U1
5. Analise a expresso: v_real <- v_dolar/cotao e assinale a alternativa
que substituiria sem perdas o resultado se estivesse escrito na linguagem
de programao C.
a. v_rs

v_us/cot;

b. v_real == v_dolar/cotao
c. v_real = v_dolar/cotao;
d. real = dlar/5.

6. Assinale a alternativa que indica o comando de entrada em C.


a. var
b. get
c. printf
d. scanf
e. fflush
7. Assinale a alternativa que indica o comando de sada em C.
a. main()
b. stdin.h
c. set
d. scanf
e. printf

50

Algoritmos e programao: contextos e prticas

U1

Seo 1.4
Declarao de variveis e constantes
Dilogo aberto
A fim de sistematizar o contedo visto at o momento, nesta seo voc pode
identificar todos os pontos de ateno que precisam ser trabalhados para que seja
possvel a elaborao de algoritmos, ou seja, ampliar o seu contato com as informaes
dos tpicos anteriores e reforar com os exerccios. Ento, veja abaixo um quadro
esquemtico da abordagem conceitual realizada at o momento. Vamos l.
Quadro 1 | Esquema de contedos estudados

Fonte: O autor (2015).

Leve em considerao que a primeira fase do projeto que os comerciantes do


Litoral Sul solicitaram j est com as diretrizes e funcionalidades esclarecidas. A partir
de agora, cabe equipe da Think Now elaborar o algoritmo final que contemple a
identificao dos processos e de todas as variveis, constantes e os seus respectivos
tipos de dados bem definidos e mapeados. Essa representao tambm dever
contemplar a elaborao do seu fluxograma.
Lembre-se de que a sequncia a seguir retoma a importncia da sua compreenso

Algoritmos e programao: contextos e prticas

51

U1
acerca dos processos que o aplicativo executar para a elaborao do prottipo em
algoritmos:
1. Entenda o processo atravs do levantamento de requisitos. Pergunte-se: o que
os comerciantes precisam e o que solicitaram? Em que tempo?
2. Elabore prottipo do aplicativo e apresente o seu algoritmo em linguagem
natural; se preciso for, revise o material e utilize as dicas!
3. Identifique quais so as variveis necessrias e o seu respectivo tipo de dado e
elabore uma tabela com as especificaes. Boas prticas.

No pode faltar

Caro aluno, vamos em frente com a apresentao de situaes que podem auxiliar
no desenvolvimento da soluo para a entrega do aplicativo. Vamos rever alguns
contedos e ver o quanto conseguimos progredir com as prticas.
Primeiramente, vimos como se deu a concepo de algoritmos e citamos o de
Euclides, como uma forma de manter as propriedades matemticas da operao
envolvida e, ainda, estabelecer a sequncia de execuo. Veja abaixo o exemplo em
pseudocdigo.

Exemplificando
//seo de declaraes
var
a, b, mdc, resto: inteiro;
//seo de comandos, lembre-se de que voc pode solicitar ao usurio
para inserir os dados de a e b (escreva e leia)
incio
resto
a mod b; //esta operao indica que o comando mod far a
diviso de a por b e apresentar o resto de diviso, que ser atribudo
varivel resto.
enquanto resto 0 faa //o comando de repetio enquanto, representado
por while em linguagem c, indica que o programa far uma sequncia de

52

Algoritmos e programao: contextos e prticas

U1
repeties enquanto a condio determinada for atendida.
a

b;

resto;

resto

a mod b;

fimenquanto //toda estrutura iniciada, seja de seleo, repetio ou


mesmo de deciso, dever ser finalizada
mdc

b;

fimalgoritmo.
Note que no algoritmo apresentado acima, h uma estrutura de repetio sobre a
qual voc poder aprofundar os estudos nas prximas unidades, porm, esta faz uma
verificao do resto de diviso, e enquanto este for diferente de 0 (zero), implica na
sequncia de divises imposta pelo algoritmo. Observe e tente voc mesmo fazer a
implementao do algoritmo em linguagem C.

Faa voc mesmo


#include <stdio.h>
int main( void )
{int a,b,resto,mdc, dividendo, divisor;
printf( "Numero a: "); scanf( "%d", &a);
printf( "Numero b: "); scanf( "%d", &b);
dividendo = a;
divisor = b;
while ( resto !=0 ){
resto = dividendo % divisor;
dividendo = divisor;
divisor = resto; };
mdc = dividendo;
printf ("mdc [%d, %d] = %d ", a, b, mdc); return 0;}

Algoritmos e programao: contextos e prticas

53

U1
Observe o uso dos operadores relacionais e sua importncia na execuo
dos algoritmos, bem como, dos operadores lgicos. As expresses matemticas
representadas pelas variveis indicam claramente como acontece a alocao
de valores e como o computador interpreta essas informaes para que se possa
imprimir, ou exibir, o resultado da operao.
Voc tambm pode notar que, de acordo com o ambiente de programao em
que se encontra, h uma forma especfica de representao das variveis necessrias
ao programa. Por exemplo, em Visualg, os tipos de dados comuns so: caractere,
lgico, inteiro e real. Veja a tabela a seguir com as caractersticas de cada um deles.
Tabela 1 | Tipos de dados em VisuAlg
Tipos de dados em VisuAlg

Descrio

Tamanho

Caractere

Corresponde a um caractere
qualquer.

1 byte

Lgico

Apresenta apenas valores para


verdadeiro ou falso, sim ou no.

1 byte

Inteiro

Compreende os nmeros
inteiros do intervalo, inclusive:
-32768 a +32767.

2 bytes

Real

Compreende todos os nmeros


de 2.9 x10-39 a 1.7 x1038.

6 bytes

Fonte: Adaptado de Piva Jr. (2012, p. 90).

Uma caracterstica interessante que em VisuAlg a declarao das variveis


precede a seo de comandos e indicada pela palavra var. Abaixo so apresentados
os tipos de dados em linguagem C. A diferena, nesse sentido, que na linguagem de
programao C, as variveis podem ser declaradas em qualquer ponto do programa,
e tambm possvel atribuir um valor a ela. No entanto, h duas recomendaes que,
por conveno, so sugeridas quanto declarao das variveis: antes das declaraes
de funes, ou seja, como variveis globais; ou, logo no incio do cdigo da prpria
funo, o que faz com que a varivel seja local.
Tabela 2 | Tipos de dados em C
Tipos de dados em C

Descrio

Char

Compreende de -127 a 126


caracteres.

1 byte

int

Compreende de -32768 a
+32767.

2 bytes

Float

Compreende de 3.4E-38 a
3.4E+38

4 bytes

Double

Compreende de 1.7E-308 a
1.7E308

8 bytes

Fonte: Adaptado de Piva Jr. (2012, p. 93).


Fonte: Adaptado de Piva Jr. (2012, p. 90).

54

Tamanho

Algoritmos e programao: contextos e prticas

U1
O equivalente ao tipo de dado real em linguagem C so os tipos de dados float e
tambm double. O seu uso depende do tamanho do dado e de que forma dever ser
manipulado pelo programa. Outros tipos de dados em C tambm podem ser usados,
tais como os que seguem na Tabela 3.
Tabela 3 | Tipos de dados em C e em linguagens comerciais
Tipos de dados em C

Descrio

Tamanho

signed char

-128 a 127

1 byte

unsigned char

0 a 255

1 byte

signed int

-32768 a 32767

2 bytes

unsigned int

0 a 65535

2 bytes

short int

-32768 a 32767

2 bytes

long int

-2.147.483.648 a 2.147.483.647

4 bytes

long double

3.4xE-4932 a 1.1xE4932

10 bytes

Fonte: Adaptado de Piva Jr. (2012, p. 93).

Retomando os conceitos, temos ento a sequncia apresentada para o


desenvolvimento de algoritmos em que h, alm da descrio do nome, seguido da
declarao das variveis, o incio do algoritmo efetivamente. Veja mais um exemplo.
Em uma empresa de desenvolvimento de software h um mdulo que realiza
a cotao e autoriza a compra. O algoritmo dessa operao, que realizada
manualmente a partir do lanamento pelo usurio, considera dois oramentos para a
tomada de decises. A regra adotar o menor valor. Acompanhe a resoluo abaixo:
//algoritmo: autorizao para compra de software
//seo de declarao
var
software1, software2 : real
//seo de declarao
inicio
escreval(Informe o valor do software 1:)
leia (software1)
escreval(Informe o valor do software 2:)
leia (software2)
se (software 1 > software 2) entao

Algoritmos e programao: contextos e prticas

55

U1
escreval(Autorizao de compra para o software 2 liberada!)
senao
escreval(Autorizao de compra para o software 1 liberada!)
fimse
fimalgoritmo

Reflita
Uma varivel em um fluxograma representa uma rea na memria onde
se pode armazenar um valor. (SOUZA et al., 2011, p. 75).
Por enquanto, a abordagem focou na apresentao das formas de representao
dos algoritmos, a linearizao de expresses matemticas, a importncia dos
operadores aritmticos, relacionais e lgicos. Porm, alm desses, voc tambm
precisa utilizar as cadeias de caracteres, ou seja, aprender algumas funes de como
realizar as atribuies de texto s variveis e visualizar esse resultado.
A seguir, esto especificadas algumas funes utilizadas para que seja facilitada
a manipulao de informaes textuais, tambm chamadas de expresses literais.
Tambm ser comum ouvir a palavra de referncia string para identificar o tipo de
dado de que trata uma cadeia de caracteres.

Tabela 4 | Funes e procedimentos para as cadeias de caracteres


Operao

56

Significado

Exemplos

length(s)

Fornece como resultado o


nmero de caracteres que
compem uma cadeia S.

N
length(Ol)
O valor N 3.

concat(S1,S2)

Une duas cadeias, a 2 (S2) no


final da 1 (S1), formando uma
nova cadeia.

S
concat(Bom, Dia)
O valor de S BomDia.

copy(S, ini, num)

Retorna (copia) a uma nova


cadeia de caracteres com os
num elementos da cadeia S a
partir da posio ini.

S
copy(Turbo Pascal, 7.6)
O valor de S Pascal.

insert(S1, S2, ini)

Insere uma nova cadeia (S1) na


posio ini da S2, deslocando
para a esquerda o resto da
cadeia original (S2).

S
Turbo 7.0
insert(Pascal, S, 7)
O valor de S Turbo Pascal 7.0

Algoritmos e programao: contextos e prticas

U1
Fornece como resultado a
posio, na qual a cadeia S1
comea dentro da cadeia S2. Se
a cadeia S1 no existir em S2, o
resultado ser zero.

pos(S1, S2)

I
pos(Pascal, Turbo Pascal)
Aqui o valor de I 7, mas
I
pos(pascal, Turbo Pascal)
O valor de I 0. Existe diferena
entre maisculas e minsculas
nessa funo.

Fonte: Souza et al. (2011, p. 104).

Note que os caracteres em algoritmos, por conveno, so acompanhados de


apstrofes. Cada caractere corresponde a uma nica letra ou smbolo. Essa forma de
representao (x) evita que um caractere seja confundido com o nome da varivel x,
por exemplo. Encontra-se nessa categoria de representao tambm o espao em
branco ( ). Por conveno, o tamanho da cadeia de caracteres limitado a 255.
Voc sabia que um nome de varivel pode ter no mximo 63 caracteres? Pois bem,
identifique as variveis e constantes com nomes objetivos que realmente representem
ou remetam informao que ser atribuda.

Assimile
Observe a representao no fluxograma de uma sequncia lgica para a
manipulao de uma cadeia de caracteres que informe um Nome e exiba
o Status: "Valter confirmou presena no evento".
Incio

Nome

Status

confirmou sua presena no evento!

Insert(Nome, Status, 1)

Status

Fim

Alm da funo insert, voc pode testar os resultados obtidos com o


uso das demais funes. Utilize a tabela acima e este fluxograma como

Algoritmos e programao: contextos e prticas

57

U1
exemplos, e inicie os testes com outras variveis, cenrios e objetivos.
Tais funes podem ser muito teis no desenvolvimento do prottipo da
aplicao que voc apresentar junto Think Now.

Pesquise mais
Leia o artigo do site Tecmundo, e veja os sete principais algoritmos
que foram selecionados e cabem no contexto descrito. Disponvel em:
http://www.tecmundo.com.br/tecnologia/56148-forca-invisivel-7-tiposalgoritmos-dominam-nosso-mundo.htm. Acesso em: 04/03/2015.

Sem medo de errar


A proposta abaixo oferecida pela Think Now, com a especificao das aes iniciais
que o aplicativo dever executar, est descrita no algoritmo em linguagem natural.
Algoritmo de aes iniciais do aplicativo
1. Incio
2. Cadastrar estabelecimentos comerciais.
3. Logar usurio por cadastro em formulrio prprio ou por redes sociais.
4. Solicitar que o usurio selecione: categoria (gastronomia ou hotelaria), cidade.
5. Exibir de acordo com a seleo, os estabelecimentos cadastrados.
6. Disponibilizar a opo ao usurio para conhecer ou agendar.
7. Se o usurio simplesmente optar por conhecer, ento,
7a. Direcionar para o website do estabelecimento.
8. Seno
8a. Exibir calendrio e horrios disponveis.
8b. Solicitar o preenchimento dos campos pelo usurio: local, data e hora.
8c. Exibir a mensagem de confirmao: Aguarde o contato de confirmao de
reserva.
8d. Abrir a pesquisa de satisfao.

58

Algoritmos e programao: contextos e prticas

U1
8e. Solicitar a resposta do usurio.
8f. Calcular a mdia de acessos e respostas pesquisa por estabelecimento
cadastrado.
8g. Enviar mensagem para o e-mail do estabelecimento com cpia ao usurio
final com a solicitao de reserva e a resposta da pesquisa.
9. Encerra estrutura de seleo.
10. Retornar pgina inicial.

Ateno!
A partir dessas definies, possvel identificar quais sero as variveis
necessrias para a sua implementao. Faamos o exerccio de
identificao das variveis que devero ser declaradas, para que os
processos abaixo identificados sejam realizados.

Lembre-se

Variveis

Tipo de dado em VisuAlg

Descrio

local, data, hora, G,


H, msg_confirmacao
(constante)

caractere

G gastronomia
H- hotelaria

satisfacao, conhecer,
agenda

lgico

Variveis aceitam 1 para


sim e 0 para no

cont_satisfacao, qtd_sim,
qtd_nao

inteiro

A cada indicao de
satisfeito (1) ou insatisfeito
(0) contar e armazenar

Media

real

Efetua o clculo da mdia


de acessos

Avanando na prtica
Pratique mais
Instruo
Desafiamos voc a praticar o que aprendeu transferindo seus conhecimentos para novas situaes
que pode encontrar no ambiente de trabalho. Realize as atividades e depois as compare com a de
seus colegas e com o gabarito disponibilizado no apndice do livro.

Algoritmos e programao: contextos e prticas

59

U1
Declarao de variveis e constantes
1. Competncia de fundamento de
rea

Conhecer os princpios e conceitos que envolvem o


aprendizado em construo de algoritmos e programao,
e a sua importncia para o universo do desenvolvimento de
sistemas.

2. Objetivos de aprendizagem

Conhecer o que so, como se aplicam e a quem se destina


a elaborao dos algoritmos;
Conhecer como ocorre o raciocnio lgico computacional.

3. Contedos relacionados

Tipos de dados, variveis e constantes;


Declarao de variveis e constantes;

4. Descrio da SP

Um triatleta, em fase de readaptao, est treinando para


competir nas Olimpadas. Sabendo que a prova pode ter no
mximo 51,5 km, ele precisa atingir bom desempenho para
realizar os 1,5 km de natao, 40
km de ciclismo e 10 km de corrida. O atleta busca um
dispositivo que indique os tempos ideais para superar cada
fase com tranquilidade e melhorar os seus tempos. Faa um
algoritmo que receba um nmero, que indica a quantidade
de minutos mnima para cumprir a prova e, tambm,
considere o intervalo, que seria a indicao do tempo ideal.
O algoritmo deve verificar se esse nmero est no intervalo
entre 1 e 20 min.

5. Resoluo da SP

Pseudocdigo
algoritmo Clculo deTempo
// Funo : Faa um algoritmo que receba um nmero que
indica a quantidade de minutos mnima para cumprir a prova
e, tambm, considere o intervalo, que seria a indicao do
tempo ideal. O algoritmo deve verificar se esse nmero est
no intervalo entre 1 e 20 min.// Autor :xxx
// Data : xxx
// Seo de Declaraes
var
numero: inteiro
inicio
// Seo de Comandos
escreva(Digite um nmero: )
leia(numero)
se numero >= 1 entao
se numero <= 20 entao
escreval(O nmero est no intervalo entre 1 e 20)
senao
escreval(O nmero no est no intervalo entre 1 e 20)
fimse
senao
escreval(O nmero no est no intervalo entre 1 e 20)
fimse
fimalgoritmo

Lembre-se
Todo algoritmo precisa ser definido como exemplificado no exerccio ao
lado. Note que h as sees de: declarao de variveis; de insero dos

60

Algoritmos e programao: contextos e prticas

U1
comandos e funes. preciso indicar o incio e o fim do algoritmo.
A palavra descrita como var indica as variveis que sero utilizadas
para realizar as operaes e essas necessariamente so declaradas. Os
comandos leia e escreva representam, respectivamente, as entradas e
sadas de dados no algoritmo.

Faa voc mesmo


em linguagem C
#include<stdio.h>
main(){
int num;
printf("Informe um numero: ");
scanf("%d",&num);
if ((num > 1) && ( num < 20)){
printf("O valor: %d, est no intervalo compreendido entre 1 e 20.", num);
}
else{
printf("Informe valor que esteja no intervalo de 1 a 20.");

fflush(stdin);getch(); }

Observe, no cdigo-fonte acima, o uso do operador lgico &&, que indica que
a condio inclusiva (e), ou seja, precisa atender s duas condies impostas na
operao.
Voc tambm j pode se familiarizar com os operadores relacionais: (>) maior, (<)
menor, (>=) maior ou igual, (<=) menor ou igual.

Faa valer a pena


1. Elabore o fluxograma do algoritmo do prottipo a ser desenvolvido do
aplicativo para os comerciantes do Litoral Sul.

Algoritmos e programao: contextos e prticas

61

U1
2. Complete a tabela com os respectivos tipos de dados que precisam ser
associados aos conceitos. Assinale a alternativa correta.
Tipos de dados em VisuAlg

Descrio
Corresponde a um caractere
qualquer.
Apresenta apenas valores para verdadeiro ou falso, sim ou no.
Compreende os nmeros inteiros do
intervalo, inclusive:
-32768 a +32767.
Compreende todos os nmeros de
2.9 x10-39 a 1.7 x1038.

a. real, lgico, inteiro e caractere.


b. Lgico, real, integer, e char.
c. real, char, int, integer.
d. string, booleano, inteiro e real.
e. caractere, lgico, inteiro e real.
3. Escreva um algoritmo que armazene o valor informado pelo usurio
em uma varivel A e um outro valor em uma varivel B. O algoritmo
precisa apresentar a lgica necessria para realizar a inverso dos valores
da varivel A para B e de B para A. Por fim, exiba o valor final das variveis.
4. Para a expresso correcao <- 1.2 * deposito, identifique qual o melhor
tipo de dado a ser relacionado a estas variveis. Assinale a alternativa
correta.
a. inteiro
b. real
c. long
d. lgico
e. caractere
5. Com base no exerccio 3 desta lista, elabore o fluxograma do algoritmo
proposto e assinale a alternativa que melhor representa as variveis
utilizadas nesse algoritmo.
a. menos, mais e altera.
b. qtd1, qtd2 e qtd3.

62

Algoritmos e programao: contextos e prticas

U1
c. a, b e aux
d. raiz1, raiz2 e delta
e. num1, num2 e num3.
6. A considerar ano com 365 dias e ms com 30 dias, elabore um algoritmo
que leia a idade de uma pessoa e escreva a sua idade em dias e em meses.
A expresso escreval("A sua idade em dias de:", dias, " dias"), apresenta
qual identificao direta de varivel?
a. real
b. dias
c. dia
d. inteiro
e. idade

7. Elabore um algoritmo que exiba as unidades, dezenas e centenas de um


nmero qualquer fornecido pelo usurio. Analise o algoritmo e assinale a
alternativa correta.
a. no possvel extrair o resto de diviso do nmero quando o tipo de
dado for inteiro.
b. mod um comando que exibe o resto de diviso.
c. div exibe resto de diviso.
d. mod e div no so utilizados em operaes com tipos de dados inteiros.
e. no possvel exibir unidades, dezenas e centenas de um nmero

Algoritmos e programao: contextos e prticas

63

U1

64

Algoritmos e programao: contextos e prticas

U1

Referncias
EVARISTO, Jaime. Aprendendo a programar programando na linguagem C: para
iniciantes. 3. ed. Macei: Instituto de Computao Universidade Federal de Alagoas,
2002.
PIVA JUNIOR, Dilermando et al. Algoritmos e programao de computadores. Rio de
Janeiro: Campus, 2012.
ZIVIANI, Nivio. Projeto de Algoritmos: com implementaes em Java e C++. So Paulo:
Cengage Learning, 2011.
SOUZA, Marco Antonio Furlan de et al. Algoritmos e lgica de programao. 2. ed.
Cengage, 2011.

Referncia(s) bibliogrfica(s) complementare(s):


1. EVARISTO, Jaime. Aprendendo a Programar: programando na linguagem C para
iniciantes. Rio de Janeiro: Ed. Book Express, 2001.
2. SOUZA, Marco. Algoritmos e lgica de programao. 2 ed. So Paulo: Cengage
Learning, 2011.
3. MANZANO, Jos A. N. G. Algoritmos: Lgica para Desenvolvimento de Programao
de Computadores. 24 ed. So Paulo: rica, 2010.
4. AGUILAR, Luis J. Programao em C++. 2. ed. Porto Alegre. McGraw Hill, 2008.
5. SZWARCFITER, Jayme Luiz; MARKEZON, Lilian. Estruturas de dados e seus algoritmos.
3 ed. Rio de Janeiro: LTC Livros Tcnicos e Cientficos, 2010.

Algoritmos e programao: contextos e prticas

65