Documente Academic
Documente Profesional
Documente Cultură
Programao
Material Terico
Conceito de Lgica Aplicada a Programas
Introduo
Nomenclaturas
Resoluo de problemas
Tipos de Dados
Variveis
Comandos de Entrada e Sada (Input/Output)
Caractersticas Gerais de Java
Operadores
Expresses Aritmticas
Nesta unidade o aluno ter uma viso do que vem a ser algoritmos de
programao, bem como suas facetas, para entender o pensamento de
programao computacional.
Para que voc possa obter um bom aproveitamento nesta unidade vamos conferir a estrutura
da mesma:
Atividade de Sistematizao: os exerccios disponibilizados so de autocorreo e visam
permitir a voc praticar o que aprendeu na disciplina e a identificar os pontos em que precisa
prestar mais ateno, ou pedir esclarecimentos a seu tutor. Alm disso, as notas atribudas aos
exerccios faro parte de sua mdia final na disciplina.
Atividade de Aprofundamento: uma atividade dissertativa ou de pesquisa.
Material Complementar e Referncias Bibliogrficas: nestes links voc poder ampliar
seus conhecimentos.
Videoaula: neste link sero apresentadas algumas ferramentas e a utilizao delas na prtica;
tambm se apresenta a resoluo de alguns exerccios de forma prtica.
Lembramos a voc da importncia de realizar todas as atividades propostas dentro do prazo
estabelecido para cada unidade, dessa forma, voc evitar que o contedo se acumule e que voc tenha
problemas ao final do semestre.
Uma ltima recomendao, caso tenha problemas para acessar algum item da disciplina, ou dvidas
com relao ao contedo, no deixe de entrar em contato com seu professor tutor atravs do boto
mensagens ou fruns.
Contextualizao
Pela definio do Dicionrio Aurlio, lgica a sequncia coerente, regular e necessria
de acontecimentos, de coisas ou fatos; ou a maneira de raciocnio particular que cabe a um
indivduo ou a um grupo. Ento, podemos dizer que lgica a cincia que estuda as leis e
critrios de validade que regem o pensamento e a demonstrao, ou seja, cincia dos princpios
formais do raciocnio.
Introduo
Lgica
Para os profissionais da rea de tecnologia, o uso da lgica um fator importante a ser
considerado, porque a todo tempo os programadores e analistas e precisam resolver problemas
do seu cotidiano. Saber lidar com problemas de ordem administrativa, de controle, de
planejamento e de estratgia requer ateno e boa tcnica para representar esses problemas.
Nomenclaturas
Muitos profissionais utilizam a linguagem para denominao de smbolos que representam a
linha de raciocnio lgico de fluxogramas, diagramas de blocos e algoritmos. Vejam a definio
de cada um.
Fluxograma
Diagrama de blocos
Algoritmo
Os algoritmos podem ser representados por meio da escrita ou representados por meio de
formas geomtricas. Em suma, o algoritmo pode ser definido como a resoluo do problema e a
transformao desse problema em um programa que possa ser executado por um programador.
Na cincia da computao, eles podem ser definidos como uma sequncia de instrues ou
operaes bsicas, cuja execuo, em tempo finito resolve um problema computacional.
Eles podem ser representados graficamente, em pseudocdigo ou diretamente na
linguagem escolhida para desenvolvimento do programa.
A forma de representao grfica, segundo ISO 5807:1985 uma forma de representar
os dados e os procedimentos a serem executados por um programa a partir da linha de
raciocnio lgico de um programador para demonstrar o resultado final de um programa.
mdia =
(nota1 + nota 2)/2
mdia > 6
mdia =
(nota1 + nota 2)/2
Aprovado
N
mdia > 6
nota
exame
nota
exame
Resultado =
(mdia + exame)/2
Resultado =
(mdia + exame)/2
Resultado 5
Aprovado
Aprovado
Resultado 5
N
Aprovado
Reprovado
Aprovado
Resoluo de problemas
Para que um diagrama de blocos seja desenvolvido de forma correta, deve-se levar em
considerao como procedimentos prioritrios as seguintes regras:
Diagramas de blocos devem ser feitos e quebrados em vrios nveis;
Para o desenvolvimento correto de um diagrama de bloco, ele deve ser iniciado de
cima para baixo;
No deve ocorrer, em hiptese alguma, cruzamentos de linhas de fluxo de dados entre
os smbolos.
Os diagramas de blocos podem ser representados de vrias formas, o que no impede que
a soluo seja entregue e sem erros. Vejamos alguns exemplos:
Linear
Estruturada
Modular
Representao em
Pseudocdigo
10
Tipos de Dados
Quando especificamos um algoritmo, detalhamos os dados (nmeros binrios, isto ,
sequncias de 0s e 1s armazenadas na memria e que correspondem poro das informaes
a serem processadas) que sero processados e as instrues (ou comandos; que comandam
o funcionamento da mquina e determinam como devem ser manipulados os dados) que vo
operar sobre esses.
O objetivo classificar os dados de acordo com o tipo de informao contida neles.
A classificao apresentada no se aplica a nenhuma linguagem de programao especfica.
Inteiro
Real
Caracter
Lgico
Tipos de dados
Numrico
Inteiro
Caracter
Lgico
Real
11
Variveis
Uma varivel , simplesmente, um espao, reservado e rotulado para armazenar dados.
Toda varivel tem um nome que a identifica univocamente (identificador) e um valor, que
corresponde informao a ela atribuda.
num1
12
num2
Memria
Nomes
Nos algoritmos, cada varivel corresponde a uma posio de memria, cujo contedo pode
ser alterado em algum instante no decorrer do tempo, ou seja, durante a execuo de um
algoritmo. Embora uma varivel possa assumir diferentes valores, ela s pode armazenar um
valor a cada instante.
Uma varivel possui trs atributos: um nome (ou identificador), um tipo de dado e a
informao por ela guardada.
Todo nome de uma varivel tem a funo de diferenci-la das demais. Cada linguagem de
programao estabelece suas prprias regras de formao de nomes de variveis.
O nome de uma varivel deve ser representativo do seu contedo e possui as
seguintes regras:
1. No pode comear com nmeros, apenas com letras, underscore ou $.
2. No pode conter espaos em branco.
3. No pode conter caracteres especiais (#, ?, !, @).
4. No pode ser palavras reservadas.
Declarao de Variveis
Todas as variveis utilizadas nos algoritmos devem ser definidas antes de serem utilizadas. Isto se
faz necessrio para permitir que o compilador reserve um espao na memria para as mesmas.
Para indicar o tipo de uma ou mais variveis feita a declarao de variveis. A partir
do momento da declarao das variveis, feita uma associao do nome escolhido, com a
respectiva posio de memria.
12
Exemplo:
inteiro number1,number2
real arquivo
caracter nome
lgico escolha
Inicializao de Variveis
Existem vrias maneiras de atribuir valores a variveis:
real preo
preo = 12.99
inteiro n1,n2
n1 = 10
n2 = n1
real a,b,c
a = 12.05
b = 5.20
c=a*b
Observaes:
Uma varivel do tipo real s poder assumir valores com ponto flutuante ou inteiro.
Caso sejam valores flutuantes, somente por meio do ([.] ponto) e no da vrgula por
conta de estarmos trabalhando com o padro ingls.
Variveis do tipo char assumem qualquer valor, pois estar convertendo os mesmos em
sequncia de caracteres.
13
leia <varivel>
Comando de sada:
ESCREVA
cuja finalidade exibir uma mensagem. Essa mensagem pode ser um texto
ou o contedo de uma varivel, ou ambos juntos:
escreva Mensagem
escreva Mensagem+<varivel>
escreva <varivel>
Exemplo Algoritmo 01
Algoritmo Quadrado de um Nmero
inteiro q,n
incio
escreva Entre com o nmero
leia n
q = n*n
escreva O quadrado de + n + + q
fim
Exemplo Algoritmo 02
Algoritmo Volume de um Cilindro
real a, r, v, PI
PI = 3.1415
incio
escreva Entre com o raio
leia r
escreva Entre com a altura
leia a
v = PI * r * r * a
escreva O volume do cilindro + v
fim
14
Desenvolvimento e execuo
Java Development Kit (JDK)
Coleo de ferramentas de linha de comando para, entre outras tarefas, compilar,
executar e depurar aplicaes Java.
Para habilitar o ambiente via linha de comando preciso colocar o caminho $JAVA_
HOME/bin no PATH do sistema.
Mecanismo de Trabalho
Programa Java ( .java)
Pacotes
javac
Compilador Java
Classes ( .class)
Bytecodes
Instrues Java Virtual
Machine - JVM
Na fase de execuo
necessrio que haja a
Mquina Virtual Java
(MVJ)
java
Interpretador Java
Execuo do cdigo
15
Classe Java
Uma classe deve comear com a criao do seu nome de arquivo em maisculo e deve ter
o mesmo na digitao da classe.
16
Importao de dados
Na classe JOptionPane h alguns mtodos que possibilitam trabalhar com janelas. Veremos
os mtodos showInputDialog( ) e o showMessageDialog( ).
Para ter acesso a estas classes, deveremos importar o pacote onde ela se encontra. A classe
JOptionPane est no pacote javax.swing. Portanto, como primeira linha do nosso programa
temos que colocar o comando import javax.swing.*;
Entrada de Dados
Para a entrada de dados em Java temos uma particularidade, pois tudo o que o usurio
digitar ser sempre uma String conjunto de caracteres. Mas e se precisarmos atribuir um
valor numrico?
Para isto temos os conversores de String para nmero.
Integer.parseInt(
); Inteiro
Float.parseFloat( ); Float
Double.parseDouble( ); Double
Long.parseLong(
); Long
17
Abaixo um exemplo de uma classe em Java para apenas a entrada de uma nota.
import javax.swing.*;
public class EntradaSaida {
public static void main(String args[ ]) {
float nota;
nota=Float.parseFloat(
JOptionPane.showInputDialog(Entre com a nota));
}
}
Agora que j temos uma base de algoritmo e programao, vamos colocar em prtica.
Programando o Algoritmo 01
Algoritmo Quadrado de um Nmero
inteiro q,n
incio
escreva Entre com o nmero
leia n
q = n*n
escreva O quadrado de + n + + q
fim
O sinal de + tem o papel de concatenar juntar palavras e valores para uma visualizao
interativa. As palavras sempre devero estar entre aspas. J as variveis devem conter antes
e depois o sinal de + para juntar com a String.
Agora vamos passar o algoritmo para linguagem de programao Java.
//Quadrado de um Nmero
import javax.swing.*;
public class Algoritmo01
public static void main(String [] args) {
int q, n;
n = Integer.parseInt(JOptionPane.showInputDialog(Entre com o nmero));
q = n*n;
JOptionPane.showMessageDialog( null, O quadrado de + n + + q);
}
}
Observao
18
Toda quebra de linha s poder ocorrer depois de uma vrgula ou do sinal de + exceto quando
tivermos uma expresso matemtica.
Operadores
So elementos funcionais que atuam sobre operandos e produzem em determinado resultado.
Podem ser classificados em:
Binrios
Unrios
Outra classificao dos operadores feita considerando-se o tipo de dados de seus operandos
e do valor resultante de sua avaliao.
Aritmticos;
Relacionais;
Lgicos.
Aritmticos
Operador
Operao
Prioridade
Soma
Subtrao
Multiplicao
Diviso
% ou mod
Potncia
Manuteno de sinal
Inverso de sinal
19
Exemplos
Faa um algoritmo que leia dois nmeros inteiros e calcule e mostre o resultado das seguintes
operaes aritmticas: soma, subtrao, multiplicao, diviso e resto da diviso.
Algoritmo operaes
int num1, num2
Inicio
escreva Digite um nmero
leia num1
escreva Digite outro nmero
leia num2
escreva Soma: + num1+num2
escreva Subtrao: + num1-num2
escreva Multiplicao: + num1*num2
escreva Diviso: + num1/num2
escreva Resto: + num1%num2
Fim
Agora em Java
20
moedas de R$ 0,25
moedas de R$ 0,10
moedas de R$ 0,05
R$ + total
Fim
Agora em Java
21
Relacionais
Comparaes s podem ser feitas entre objetos de mesma natureza, isto , variveis do
mesmo tipo de dados. O resultado de uma comparao sempre um valor lgico.
Operador
Comparao
==
!= ou <>
<
<=
>
>=
Igual
Diferente
Menor
Menor ou igual
Maior
Maior ou igual
Lgicos
Operador
Tipo
Operao
ou
Binrio
Disjuno
Binrio
Conjuno
no
Unrio
negao
Operador
ou
e
no
||
&&
!
Tabela Verdade
OU
E
A OU B
AEB
no A
F
F
V
V
F
V
F
V
F
V
V
V
F
F
F
V
V
V
F
F
basta que um dos seus operandos seja V para que o resultado seja V.
necessrio que seus dois operandos tenham o valor lgico V para que o
resultado seja V.
22
Operador
Lgicos
Relacionais
Aritmticos
Parnteses
Expresses Aritmticas
As expresses aritmticas so definidas pelo relacionamento existente entre variveis,
constantes numricas e valores, por meio da utilizao dos operadores aritmticos.
Exemplo: Considere a expresso:
2 + 8 % 7 > = 3 * 6 15
Mas como resolv-la?
Exemplo:
Escreva um programa capaz de calcular o valor de x em uma equao do segundo grau
ax + bx + c = 0. Os valores de a, b e c devem ser informados pelo usurio. O programa
no deve tratar as razes complexas. A equao de Bhaskara :
2
23
Vamos fazer o algoritmo lembrando que neste exemplo no iremos tratar dos nmeros complexos.
Algoritmo equao
real a, b, c, x1,x2
Incio
escreva Digite o valor de a
leia a
escreva Digite o valor de b
leia b
escreva Digite o valor de c
leia c
x1=(-b+sqrt(b^2-4*a*c))/(2*a)
x2=(-b-sqrt(b^2-4*a*c))/(2*a)
escreva x1 igual a: + x1 + e x2 igual a: + x2
Fim.
Em Java
24
Material Complementar
Vdeos:
Livros:
25
Referncias
ASCENCIO, A. F. G.; CAMPOS, E. A. V. Fundamentos da programao de computadores:
algoritmos, Pascal, C/C++ e Java. 2 ed. So Paulo: Pearson Education Brasil, 2010. E-BOOK.
CHRISTOS, P.; UMESH, V. Algoritmos. Porto Alegre: Grupo A, 2011. E-BOOK.
DEITEL, H. M. Java: como programar. 6 ed. Porto Alegre: Bookman, 2003. E-BOOK.
EDELWEISS, N.; GALANTE, R. Estruturas de dados. Porto Alegre: Grupo A, 2011. E-BOOK.
FARRER, H. Algoritmos estruturados. 3 ed. Rio de Janeiro: Ltc-Livros Tcnicos e
Cientficos, 1999.
FERREIRA, A. B. H. Dicionrio aurlio da lngua portuguesa. 5 ed. Curitiba: Positivo, 2010.
FORBELLONE, A. L. V.; EBERSPACHER, H. F. Lgica de programao: a construo de
algoritmos e estrutura de dados. 3 ed. So Paulo: Pearson Prentice Hall, 2008.
FURGERI, S. JAVA 6 ensino didtico: desenvolvendo e implementando aplicaes. 2 ed. So
Paulo: rica, 2009.
GOODRICH, M. T.; TAMASSIA, R. Estruturas de dados e algoritmos em Java. Porto
Alegre: Grupo A, 2011. E-BOOK.
HORSTMANN, C. Conceitos de computao com Java. 5 ed. Porto Alegre: Grupo A,
2009. E-BOOK.
MANZANO, J. A. N. G. Algoritmos: lgica para desenvolvimento de programao. 24 ed. So
Paulo: rica, 2010.
OLIVEIRA, J. F.; MANZANO, J. A. N. G. Algoritmos: lgica para desenvolvimento de
programao de computadores. 16 ed. So Paulo: rica, 2004. [Ver o contedo de Parte II
Tcnicas Bsicas de Programao Cap. 3 Tipo de Dados e Instrues Primitivas].
VILARIM, G. O. Algoritmos: programao para iniciantes. Rio de Janeiro: Cincia
Moderna, 2004.
Bibliografia Complementar
WIRTH, N. Algoritmos e estruturas de dados. Rio de Janeiro: Ltc-Livros Tcnicos e
Cientficos, 1999.
26
Anotaes
27