Buscar

unidade1

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 19 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 19 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 19 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

0 
 Construção de Algorítmos 
1 
 
Autor(a): Simone de Abreu 
Curso Superior de Tecnologia em Análise e Desenvolvimento 
de Sistemas 
Coordenador: Emerson dos Santos Paduan 
 
São Paulo - 2016 
2 
Sumário 
Introdução à lógica de programação, tipos de dados, variáveis e comandos 
de entrada e saída 3 
Introdução 3 
Introdução à lógica de programação 4 
Fases de um algoritmo 6 
Tipos de Dados 7 
Operadores 8 
Variáveis 11 
Atribuição 12 
Comandos de Entrada e Saída 12 
Bibliografia básica 18 
Bibliografia complementar 18 
3 
Introdução à lógica de programação, tipos de 
dados, variáveis e comandos de entrada e saída 
Introdução 
O conteúdo apresentado nesta unidade tem como objetivo principal apontar os 
conceitos que serão abordados, direcionando-o para a consulta do material 
completo a ser estudado, por meio de acessos às Bibliotecas Virtuais disponí-
veis na página da Universidade Anhembi Morumbi. 
Cada tópico aqui abordado deverá ser estudado conforme as indicações desta-
cadas nos links. 
Siga os passos abaixo para acessar a Biblioteca da Universidade: 
 Entre na página da Biblioteca da Universidade; 
 Clique no ícone da Biblioteca Virtual 3.0/Ebrary/VTC, conforme figura 1; 
 Faça o login, se necessário. 
 
Figura 1- Página da Biblioteca da Universidade 
4 
Introdução à lógica de programação 
Geralmente, ao se pensar em programação, tem-se uma ideia inicial de ser algo 
difícil, complicado e até mesmo chato. Mas programar é uma arte! E está dire-
tamente relacionado a explorar a criatividade, a ter concentração, a aperfeiçoar 
uma habilidade com o passar do tempo e com a prática. 
Desde os tempos primitivos, o homem se utiliza do raciocínio lógico para a rea-
lização de suas atividades. Isso é comprovado pelo fato de ele ter estabelecido 
sequências adequadas para a realização de suas tarefas com sucesso (PUGA & 
RISSETTI, 2009). 
Um algoritmo é uma sequência finita de ações (instruções) encadeadas se-
gundo uma determinada lógica, com o objetivo de solucionar um problema es-
pecífico. Ou seja, um algoritmo deve ter uma sequência de passos logicamente 
estabelecidas e com um início e um fim bem definidos. 
Já uma instrução é a informação que indica a um computador uma ação ele-
mentar a ser executada. A instrução deve ser bem precisa para que o compu-
tador consiga processá-la. 
 Analise o seguinte cenário: 
 
Um robô está no início de um labirinto e precisa ser guiado até o 
fim dele. Ao formular algumas instruções para o robô começar a 
sua jornada, pode-se ter: 
Guia: vire à direita! 
Robô: virando para a direita, virando para a direita, virando 
para a direita... 
A instrução inicial que o guia deu ao robô não é precisa! Portanto, 
o robô ficará infinitamente girando para a direita. Uma instrução 
mais adequada do guia para o robô seria: vire 90o à direita. 
Perceba o quanto é importante ter clareza na definição das instruções 
de um algoritmo! 
5 
Agora, analise um exemplo clássico de algoritmo: como fazer um bolo de cho-
colate? 
Para resolver esse problema, primeiro tem-se de saber o que é preciso para 
fazer um bolo de chocolate – quais ingredientes? Depois é preciso saber como 
preparar o bolo de chocolate – modo de fazer. 
Geralmente os ingredientes de um bolo de chocolate são: farinha, ovos, leite, 
açúcar, chocolate, manteiga, maisena e fermento. Mas quais passos devem ser 
seguidos para preparar o bolo? Essa ordem é o modo de preparo, ou o algo-
ritmo para fazer um bolo de chocolate. Por exemplo: 
 Bater os ovos com a manteiga 
 Adicionar o açúcar e a farinha aos poucos 
 Adicionar o leite e bater 
 Adicionar o chocolate 
 Misturar o fermento 
 Despejar a mistura em uma forma untada 
 Levar ao forno para assar por 30 minutos 
 Retirar do forno e comer 
 
Os passos devem seguir uma sequência lógica! Se os passos forem invertidos, 
provavelmente, ao final, não haverá um bolo de chocolate. 
 
 
 
Bibliografia a ser acessada 
http://anhembi.bv3.digitalpages.com.br/users/publica-
tions/9788576052074/pages/1 
(Capítulo 1 do livro Lógica de programação e estruturas de dados 
com aplicações em Java, de Puga e Rissetti). 
 
http://anhembi.bv3.digitalpages.com.br/users/publica-
tions/9788564574168/pages/1 
(Capítulo 1 do livro Fundamentos da programação de computado-
res, de Ascencio e Campus). 
http://anhembi.bv3.digitalpages.com.br/users/publications/9788576052074/pages/1
http://anhembi.bv3.digitalpages.com.br/users/publications/9788576052074/pages/1
http://anhembi.bv3.digitalpages.com.br/users/publications/9788564574168/pages/1
http://anhembi.bv3.digitalpages.com.br/users/publications/9788564574168/pages/1
6 
Fases de um algoritmo 
A sequência de fatos que fundamentam a lógica computacional é: a entrada dos 
dados que serão processados para obter a saída. Os dados que entram em 
processamento sofrem transformações resultantes do processo e uma saída é 
produzida, representando a solução de um problema (PUGA & RISSETTI, 2009). 
Todo algoritmo atua em um princípio básico de três fases (figura 2). São elas: 
 
Figura 2 – Fases de um algoritmo 
Dado o seguinte problema: Calcular a média aritmética de duas notas. O que 
corresponde às fases do algoritmo? 
1. Quais são as entradas? As entradas são as duas notas: nota1 e nota2. 
2. Quais são as saídas, ou seja, aonde se quer chegar? O que o problema 
pede é o resultado do cálculo da média de duas notas. 
3. Qual é o processamento? O próprio cálculo da média, onde média = 
(nota1 + nota2) / 2. 
Mas por que identificar primeiro a entrada e a saída? É simples: esses dados 
estarão bem explícitos no enunciado do algoritmo. Sabendo o ponto de partida 
e aonde se quer chegar, é só traçar o caminho mais adequado. 
 
 
Bibliografia a ser acessada 
http://anhembi.bv3.digitalpages.com.br/users/publica-
tions/9788576052074/pages/49 
(Capítulo 5 do livro Lógica de programação e estruturas de dados 
com aplicações em Java, de Puga e Rissetti). 
http://anhembi.bv3.digitalpages.com.br/users/publications/9788576052074/pages/49
http://anhembi.bv3.digitalpages.com.br/users/publications/9788576052074/pages/49
7 
Tipos de Dados 
Para representar qualquer dado em um algoritmo, utilizam-se as constantes e 
os tipos de dados. Os dados são os valores que serão utilizados para a resolu-
ção do problema, podendo ser: fornecidos pelo usuário do programa, origina-
dos de processamentos (cálculos), entradas de outros programas, entre outros. 
Constantes são valores que não sofrem alterações ao longo do desenvolvi-
mento do algoritmo ou da execução de um programa. Por exemplo, o valor 
3,1415 representa a constante PI e permanecerá fixo até o final da execução do 
algoritmo (PUGA & RISSETTI, 2009). Outro exemplo seria o divisor 2 para calcular 
a média aritmética entre duas notas. Independentemente dos valores das no-
tas, a divisão sempre será por dois. 
Os tipos de dados representam qualquer dado/informação em um algoritmo. 
São classificados como: literal, inteiro, real e lógico. 
A linguagem de programação Java será utilizada como ferramenta para a cons-
trução de algoritmos. Sendo assim, é importante saber os tipos de dados mais 
utilizados da linguagem. São eles: char, String, int, float, double e boolean. 
 
A Tabela 1 apresenta exemplos de dados de um algoritmo e os tipos de dados 
relacionados. 
 
 
 
Bibliografia a ser acessada 
http://anhembi.bv3.digitalpages.com.br/users/publica-
tions/9788576052074/pages/37 
(Capítulo 4 do livro Lógica de programação e estruturas de dados 
com aplicações em Java, de Puga e Rissetti). 
Observe neste capítulo a tabela 4.1 – Tabela de tipos de dados que 
apresenta os tipos de dados primitivos e sua equivalência na lin-
guagem Java. 
http://anhembi.bv3.digitalpages.com.br/users/publications/9788576052074/pages/37
http://anhembi.bv3.digitalpages.com.br/users/publications/9788576052074/pages/37
8 
Tabela 1 – Representação de dados 
Dado/InformaçãoTipo de dado apropriado 
Nomes de empresas, nomes de pessoas 
e textos 
String - Uma cadeia de caracteres 
representada por aspas (“ ”) 
Sexo de pessoa, alternativas de uma 
questão 
char – único caractere represen-
tado por apóstrofo (‘ ’) 
 Idade de uma pessoa, número de uma 
residência ou qualquer valor pertencente 
ao conjunto dos números inteiros 
int 
Altura de uma pessoa, peso de um pro-
duto e o preço de um carro ou qualquer 
valor pertencente ao conjunto dos núme-
ros reais. 
double – utiliza notação ponto ( . ) 
para separar casas decimais 
Qualquer valor verdadeiro ou falso boolean 
 
Operadores 
Os operadores são utilizados para representar expressões de cálculos, compa-
ração, condição e atribuição em um algoritmo. 
Os operadores aritméticos servem para representar qualquer tipo de cálculo 
matemático em um algoritmo. São muito parecidos com os operadores da ma-
temática em si, mas existem algumas diferenças (PUGA & RISSETTI, 2009). Por 
exemplo, para representar a multiplicação, é utilizado o operador asterisco (*). 
Os operadores matemáticos mais comuns são: adição, subtração, multiplicação, 
divisão e módulo. 
O operador módulo (%) é utilizado para representar o resto de uma divisão en-
tre valores inteiros. Por exemplo, a operação 23 % 4 tem como resultado 3, que 
é o resto da divisão de 23 por 4. 
 
 
9 
 
 
Os operadores relacionais são utilizados para estabelecer uma relação de com-
paração entre valores ou expressões. O resultado dessa comparação é sempre 
um valor lógico (booleano) verdadeiro ou falso (true / false) (PUGA & RISSETTI, 
2009). 
Como operadores relacionais, tem-se: maior, maior ou igual, menor, menor ou 
igual, igual a e diferente de. 
 
 
 
Bibliografia a ser acessada 
http://anhembi.bv3.digitalpages.com.br/users/publica-
tions/9788576052074/pages/41 
http://anhembi.bv3.digitalpages.com.br/users/publica-
tions/9788576052074/pages/43 
(Capítulo 4 do livro Lógica de programação e estruturas de dados 
com aplicações em Java, de Puga e Rissetti). 
Observe neste capítulo o tópico 4.4.2 – Operadores aritméticos. 
Co-nheça também os operadores de incremento e decremento. 
Atente-se às representações em Java. 
Observe também o Tópico 4.4.5 – Precedência dos operadores. 
 
Bibliografia a ser acessada 
http://anhembi.bv3.digitalpages.com.br/users/publica-
tions/9788576052074/pages/41 
(Capítulo 4 do livro Lógica de programação e estruturas de dados 
com aplicações em Java, de Puga e Rissetti). 
Observe neste capítulo o tópico 4.4.3 – Operadores relacionais. 
Ob-serve que a igualdade é representada pelo operador ( == ). 
Atente-se às representações em Java. 
http://anhembi.bv3.digitalpages.com.br/users/publications/9788576052074/pages/41
http://anhembi.bv3.digitalpages.com.br/users/publications/9788576052074/pages/41
http://anhembi.bv3.digitalpages.com.br/users/publications/9788576052074/pages/43
http://anhembi.bv3.digitalpages.com.br/users/publications/9788576052074/pages/43
http://anhembi.bv3.digitalpages.com.br/users/publications/9788576052074/pages/41
http://anhembi.bv3.digitalpages.com.br/users/publications/9788576052074/pages/41
10 
Os operadores lógicos são utilizados para concatenar ou associar expressões 
que estabelecem uma relação de comparação entre valores. O resultado dessas 
expressões é sempre um valor lógico (booleano) verdadeiro ou falso (true / false) 
(PUGA & RISSETTI, 2009). 
A tabela-verdade é utilizada para avaliar uma expressão lógica. Segundo Forbel-
lone e Eberspächer (2005), uma tabela-verdade é o conjunto de todas as possi-
bilidades combinatórias entre os valores de diversas variáveis lógicas, as quais 
se encontram em apenas duas situações (V ou F – true ou false), e um conjunto 
de operadores lógicos. 
Como operadores lógicos tem-se: 
 E – conjunção (representação em Java: && ): Se TODAS as expressões 
condicionais forem verdadeiras, o resultado é VERDADEIRO; 
 OU – disjunção (representação em Java: ||): Se TODAS as expressões 
condicionais forem falsas, o resultado é FALSO; 
 NÃO – negação (representação em Java: !): Se a expressão condicional 
for falsa, o resultado é VERDADEIRO. Caso contrário é FALSO. 
A figura 3 apresenta a tabela-verdade para os operadores && , || e !. 
 
Figura 3 – Tabela-verdade operadores &&, || e ! 
 
 
Bibliografia a ser acessada 
http://anhembi.bv3.digitalpages.com.br/users/publica-
tions/9788576052074/pages/41 
(Capítulo 4 do livro Lógica de programação e estruturas de dados 
com aplicações em Java, de Puga e Rissetti). 
Observe neste capítulo o tópico 4.4.4 – Operadores lógicos. Atente-
se às representações em Java. 
http://anhembi.bv3.digitalpages.com.br/users/publications/9788576052074/pages/41
http://anhembi.bv3.digitalpages.com.br/users/publications/9788576052074/pages/41
11 
Variáveis 
As variáveis são utilizadas para representar os dados necessários para a reso-
lução de um problema. As variáveis permitem que dados de entrada ou dados 
gerados em um processamento sejam armazenados na memória principal do 
computador temporariamente. 
No decorrer da execução de um algoritmo, o valor de uma variável pode ser 
alterado. Daí o nome variável. Mas uma variável pode assumir apenas um único 
valor a cada instante de tempo. 
 
Uma variável pode ser usada para armazenar dados de entrada, então deve-se 
definir qual tipo de dado ela vai armazenar. Portanto, toda variável em um algo-
ritmo deve corresponder a um tipo de dado. Assim, uma variável do tipo int só 
poderá armazenar valores do tipo inteiro. 
Para declarar uma variável, utilizar a seguinte sintaxe (figura 4): 
 
Figura 4 – Sintaxe de declaração de variáveis 
 
O primeiro exemplo de sintaxe é utilizado para declarar uma única variável. O 
segundo exemplo de sintaxe mostra como declarar várias variáveis de um 
mesmo tipo de dado. 
 
Bibliografia a ser acessada 
http://anhembi.bv3.digitalpages.com.br/users/publica-
tions/9788564574168/pages/7 
http://anhembi.bv3.digitalpages.com.br/users/publica-
tions/9788564574168/pages/9 
(Capítulo 1 do livro Fundamentos da programação de computado-
res, de Ascencio e Campos). 
 
Observe neste capítulo o tópico 1.5 – Conceito de variável 
Observe também o tópico 1.7 – Formação de identificadores, para 
saber as regras de nomeação de variáveis. 
http://anhembi.bv3.digitalpages.com.br/users/publications/9788564574168/pages/7
http://anhembi.bv3.digitalpages.com.br/users/publications/9788564574168/pages/7
http://anhembi.bv3.digitalpages.com.br/users/publications/9788564574168/pages/9
http://anhembi.bv3.digitalpages.com.br/users/publications/9788564574168/pages/9
12 
 
Atribuição 
O operador de atribuição ( = ) é responsável por armazenar um valor em uma 
variável declarada anteriormente. 
Quando um valor é atribuído a uma variável, ela irá guardar esse valor até que 
seja modificada. O valor fornecido para uma variável deve ser compatível com o 
tipo de dado usado na declaração da variável. Portanto, em uma variável do tipo 
int, somente se podem atribuir valores inteiros. 
A figura 5 apresenta alguns exemplos de atribuição. Supor que a variável nome 
é do tipo String, idade é int, preco é float, sexo é char, onibusLotado é boolean e 
soma é float. 
 
Figura 5 – Exemplos de atribuição de valores 
 
Comandos de Entrada e Saída 
Como Java é uma linguagem orientada a objeto, todo o código de um programa 
deve estar definido dentro de uma classe. Especificamente, deve estar definido 
 
 
Bibliografia a ser acessada 
http://anhembi.bv3.digitalpages.com.br/users/publica-
tions/9788564574168/pages/31 (Capítulo 3 do livro Fundamen-
tos da programação de computadores, de Ascencio e Campos). 
Observe neste capítulo o tópico 3.4.1 – Declaração de variáveis em 
Java. 
http://anhembi.bv3.digitalpages.com.br/users/publications/9788564574168/pages/31
http://anhembi.bv3.digitalpages.com.br/users/publications/9788564574168/pages/31
13 
dentro de um método especialda classe chamado main(). Esse método é o 
ponto de partida na execução de um programa em Java. A figura 6 apresenta a 
estrutura básica de um algoritmo. 
 
 
Figura 6 – Estrutura de um algoritmo 
 
É dentro do bloco ( { } ) do método main() que devem estar as instruções para 
a resolução do algoritmo. 
 
 
O teclado é o dispositivo padrão de entrada de dados. Os dados lidos do teclado 
podem ser armazenados nas variáveis declaradas em um algoritmo. 
Para realizar a entrada de dados é necessário definir um buffer para guardar os 
dados digitados no teclado e depois transferi-los para a memória principal – as 
variáveis do algoritmo. Para usar a classe Scanner é preciso importar o pacote 
import Java.util.Scanner. A figura 7 apresenta a sintaxe para definir um buffer de 
entrada de dados. 
 
Bibliografia a ser acessada 
http://anhembi.bv3.digitalpages.com.br/users/publica-
tions/9788564574168/pages/31 
(Capítulo 3 do livro Fundamentos da programação de computado-
res, de Ascencio e Campos). 
Observe neste capítulo o tópico 3.4 – Estrutura sequencial em Java. 
http://anhembi.bv3.digitalpages.com.br/users/publications/9788564574168/pages/31
http://anhembi.bv3.digitalpages.com.br/users/publications/9788564574168/pages/31
14 
 
Figura 7 – Definição do buffer de teclado 
 
Para cada tipo de dado, existe um método para realizar a entrada de dados, 
conforme apresenta a tabela 2. 
Tabela 2 – Métodos para a entrada de dados 
 
 
 
Para exibir mensagens em um algoritmo, será utilizado o comando Sys-
tem.out.println(“ ”). Esse comando permite imprimir no monitor dados de uma 
variável, frases, resultados de processamentos e também mensagens para soli-
citar dados de entrada. A figura 8 apresenta a classe AloMundo, que exibe na 
tela duas Strings. 
 
Figura 8 – Impressão de Strings 
 
Bibliografia a ser acessada 
http://anhembi.bv3.digitalpages.com.br/users/publica-
tions/9788564574168/pages/33 (Capítulo 3 do livro Funda-
mentos da programação de computadores, de Ascencio e Cam-
pos). 
Observe neste capítulo o tópico 3.4.4 – Comando de entrada em 
Java 
http://anhembi.bv3.digitalpages.com.br/users/publications/9788564574168/pages/33
http://anhembi.bv3.digitalpages.com.br/users/publications/9788564574168/pages/33
15 
 
Após a execução do algoritmo AloMundo, tem-se a seguinte saída (figura 9). 
 
Figura 9 – Saída do algoritmo AloMundo 
 
Na String de impressão do comando println, pode-se utilizar o operador de con-
catenação (+) para imprimir diferentes tipos de dados, conforme apresenta a 
figura 10. 
 
Figura 10 – Exemplo de concatenação na String de impressão 
 
Após a execução do algoritmo DadosCarro, tem-se a seguinte saída (figura 11): 
 
Figura 11 – Saída do algoritmo DadosCarro 
16 
 
 
A figura 12 apresenta um algoritmo completo, com entrada, processamento e 
saída. O algoritmo SomaDasIdades recebe os dados: nome e idade de dois ami-
gos, calcula a soma das duas idades e imprime o resultado no final. 
 
Figura 12 – Exemplo de entrada/processamento/saída 
 
Após a execução do algoritmo SomaDasIdades, tem-se a seguinte saída (figura 
13): 
 
Bibliografia a ser acessada 
http://anhembi.bv3.digitalpages.com.br/users/publica-
tions/9788564574168/pages/33 (Capítulo 3 do livro Fundamen-
tos da programação de computadores, de Ascencio e Campos). 
Observe neste capítulo o tópico 3.4.5 – Comando de saída em Java. 
http://anhembi.bv3.digitalpages.com.br/users/publications/9788564574168/pages/33
http://anhembi.bv3.digitalpages.com.br/users/publications/9788564574168/pages/33
17 
 
Figura 13 – Saída do algoritmo SomaDasIdades 
 
18 
Bibliografia básica 
ASCENCIO, A. F. G.; CAMPOS, E. A. V. Fundamentos de Programação de Compu-
tadores. 2. ed. São Paulo: Pearson Prentice Hall, 2007. 
PUGA, S; RISSETTI, G. Lógica de programação e estruturas de dados com aplica-
ções em Java. 2. ed. São Paulo: Pearson Prentice Hall, 2009. 
 
Bibliografia complementar 
FORBELLONE, A. L. V.; EBERSPÄCHER, H. F. Lógica de Programação: a construção 
de algoritmos e estruturas de dados. 2. ed. São Paulo: Prentice Hall, 2005.

Continue navegando