Вы находитесь на странице: 1из 100

FORMAO INICIAL E CONTINUADA

PROGRAMADOR DE SISTEMAS

Programador de Sistemas

verso 1 ano 2012

IFPR - INSTITUTO FEDERAL DO PARAN


Reitor Prof. Irineu Mario Colombo Chefe de Gabinete Joelson Juk Pr-Reitor de Ensino Ezequiel Westphal Pr-Reitor de Planejamento e Desenvolvimento Institucional Bruno Pereira Faraco Pr-Reitor de Administrao Gilmar Jos Ferreira dos Santos Pr-Reitora de Gesto de Pessoas e Assuntos Estudantis Neide Alves Pr-Reitor de Extenso, Pesquisa e Inovao Silvestre Labiak Junior Organizao Marcos Jos Barros Cristiane Ribeiro da Silva Diagramao a layout Marcos Jos Barros

FICHA DO ALUNO

Nome: Endereo:

Telefone:

e-mail: Anotaes:

O que eu quero para meu futuro?

Sumrio
APRESENTAO 9 Aula 01 11 1 APRESENTAO: 11 2 DESENVOLVIMENTO: 11 21 Conceitos Bsicos sobre Lgica 11 3 INTEGRAO: 14 Aula 02 16 1 APRESENTAO: 16 2 DESENVOLVIMENTO: 16 21 Estrutura de deciso16 22 Desvio Condicional Simples 16 23 Desvio Condicional Composto 17 24 Glossrio: 19 3 INTEGRAO: 19 Aula 03 21 1 APRESENTAO: 21 2 GLOSSRIO: 21 21 Programao estruturada e programao orientada a objetos: 21 3 INTEGRAO: 23 Aula 04 28 1 APRESENTAO: 28 2 DESENVOLVIMENTO: 28 21OPERADORES ARITMTICOS 28

22 OPERADORES RELACIONAIS 29 23 LINEARIZAO DE EXPRESSES 30 24 ORDEM DE PRECEDNCIA MATEMTICA30 25 MEMRIA 31 26 VARIVEIS 31 27 CONSTANTES31 28 TIPO DE DADOS 32 29 OPERADORES LGICOS 32 210 TABELA VERDADE 33 212 COMPOSIO DE UM ALGORITMO 34 213 DECLARAO DE VARIVEIS 34 214 REGRAS BSICAS PARA CONSTRUO DE ALGORITMOS 34 215 COMANDO DE ENTRADA E SAIDA 35 3 INTEGRAO: 36 Aula 05 39 1 APRESENTAO: 39 2 DESENVOLVIMENTO: 39 21 Mais estruturas de deciso 39 22 Desvio Condicional Encadeado ou Aninhado 39 3 INTEGRAO: 42 Aula 06 44 1 APRESENTAO: 44 2 DESENVOLVIMENTO: 44 3 INTEGRAO: 47

Aula 07 50 1 APRESENTAO: 50 2 DESENVOLVIMENTO: 50 21 Estrutura de Repetio 50 22 Repetio utilizando estrutura Para / Fim para 51 23 Repetio utilizando estrutura Faa Enquanto / Fim enquanto 53 3 INTEGRAO: 56 Aula 08 61 1 APRESENTAO: 61 2 DESENVOLVIMENTO: 61 3 INTEGRAO: 63 Aula 09 65 1 APRESENTAO: 65 2 DESENVOLVIMENTO: 65 21 Operadores Lgicos65 22 Tipos de Dados primitivos 65 23 Inteiros66 24 Nmeros de Ponto Flutuante 66 25 Operadores 70 26 Sada de dados em um programa 71 27 Entrada de dados em um programa72 28 Funo 74 3 INTEGRAO: 81

Aula 10 83 1 APRESENTAO: 83 2 DESENVOLVIMENTO: 83 21 Estrutura de Dados Homogneas 83 22 Matrizes de uma Dimenso ou Vetores 84 23 Operaes Bsicas com Matrizes do Tipo Vetor 84 24 Atribuio de uma Matriz 84 25 Leitura dos Dados de uma Matriz 85 26 Escrita dos Dados de uma Matriz85 3 INTEGRAO: 88 Aula 11 90 1 APRESENTAO: 90 2 DESENVOLVIMENTO: 90 3 INTEGRAO: 92

APRESENTAO
O Programa Nacional de Acesso ao Ensino Tcnico e ao Emprego PRONATEC, tem como um dos objetivos a oferta de cursos de qualificao profissional e cursos tcnicos para trabalhadores/as e pessoas expostas excluso social. E vale lembrar tambm, que muitas dessas pessoas (jovens e/ou adultas) esto h tempos fora de escola e que preciso uma srie de incentivos para que se motivem e finalizem o curso escolhido. No IFPR o PRONATEC entendido como uma ao educativa de muita importncia. Por isso, necessrio que essas pessoas possam tambm participar de outras atividades, especialmente como alunos regulares em suas diversas formas de ensino: mdio, tcnico, tecnlogo, superior e outros. Essa instituio tambm oferece a possibilidade de participao em projetos de pesquisa e extenso alm de contribuir com a permanncia dos alunos com o Programa de Assistncia Estudantil. Alm disso, o PRONATEC-IFPR pode ser visto como um instrumento de incluso social pblico e gratuito e que tem como sua poltica de educao a formao de qualidade. Para isso, os alunos do PRONATEC-IFPR podem fazer uso da estrutura de bibliotecas e laboratrios sendo sua convivncia na instituio de grande valia para os servidores (professores e tcnicosadministrativos) bem como para os demais estudantes. O PRONATEC-IFPR tambm, conta com diversos parceiros que contribuem com a realizao dos cursos. Essas parcerias so importantes tanto para o apoio de selo de qualidade quanto possibilita estrutura fsica para que os cursos possam acontecer. Porm, mesmo os cursos ocorrendo em outros espaos (que no o do IFPR) no invalida a qualidade dos profissionais que ministram as aulas, pois esses forma especialmente selecionados para essa atividade.

Aula 01 1 APRESENTAO:
Hoje iremos ver o funcionamento interno de um computador do visto de um programa de computador, como funciona e como ocorre a comunicao entre os diversos perifricos. Vamos entender o conceito de lgica e como se aplica a um algoritmo, o que so condies e como utilizamos isso em um algoritmo simples.
13

2 DESENVOLVIMENTO:
O funcionamento do computador visto como um algoritmo/programa de computador. Quando um programa de computador pede as suas informaes pessoais (uma livraria virtual, por exemplo), as informaes que voc digitou impressa (visualizada) no monitor. Agora o que acontece por trs deste processo? As informaes digitadas so transferidas para a memria do computador (um espao da memria reservado para guardar estas informaes). Aps esta etapa, as informaes so impressas no monitor para sua visualizao. Pode haver outras etapas, como a consistncia do CPF ou confirmao dos dados digitados.
PROGRAMADOR DE SISTEMAS

21 Conceitos Bsicos sobre Lgica


Para que estudar Lgica? O aprendizado da Lgica essencial para formao de um bom programador, servindo como base para o aprendizado de todas as linguagens de programao, estruturadas ou no.

Afinal, o que Lgica?


14

Lgica a tcnica de encadear pensamentos, numa determinada seqncia lgica, para chegar a um determinado objetivo. E o que Seqncia Lgica? Seqncia Lgica so os passos executados at atingir um objetivo ou soluo de um problema. Esses passos podem ser definidos como uma seqncia de instrues, que devem ser seguidas para cumprir a determinada tarefa. O que so Instrues?

PROGRAMADOR DE SISTEMAS

Na linguagem comum, entende-se por instrues um conjunto de regras ou normas definidas para a realizao ou emprego de algo. Em Informtica, instruo nada mais que uma informao que indica a ao que o computador deve tomar. Porm, apenas uma instruo no capaz de chegar ao fim do processo, para isso necessrio um conjunto de instrues colocadas em uma ordem seqencial lgica. Por exemplo: O processo de comprar um sapato. Voc vai at a loja, escolhe o sapato, experimenta-o e etc... at efetuar a compra. No ser possvel comprar o sapato sem antes escolhe-lo. Por isso evidente que essas instrues devem estar na seqncia lgica de acontecimento ou Operaes Lgicas. O que so Operaes Lgicas? Operaes Lgicas so utilizadas quando se torna necessrio tomar decises, as quais tero sempre como resposta o resultado VERDADEIRO ou FALSO. Como no exemplo do algoritmo CHUPAR UMA BALA. Imaginemos que algumas pessoas no gostem de chupar bala de Morango, neste caso teremos que modificar o algoritmo para:

1. Pegar a bala. 2. A bala de morango ? 3. Se sim, no chupe a bala. 4. Se no, continue com o algoritmo. 5. Retirar o papel. 6. Chupar a bala. 7. Jogar o papel da bala no lixo. O que Algoritmo? Um Algoritmo uma seqncia de instrues ordenadas de forma lgica para a resoluo de uma determinada tarefa ou problema. Incio SEQUNCIAL 2. Ouvir o sinal de linha; 3. Introduzir o carto; DESVIO 5. Se der o sinal de chamar 5.1 Conversar; 5.2 Desligar; 5.3 Retirar o carto; 6. Seno 6.1 Repetir; Fim. Como pudemos observar, podemos pensar em algoritmos como sendo receitas, para execuo da tarefa proposta.
PROGRAMADOR DE SISTEMAS

15

Assim, qualquer tarefa que siga determinada seqncia para ser resolvido
16

pode ser descrita por um algoritmo, como por exemplo: Como fazer um bolo ou Como calcular o estoque de uma empresa. Entretanto para montar um algoritmo precisamos dividir o problema em trs fases fundamentais: ENTRADA PROCESSAMENTO SAIDA Onde temos: ENTRADA: So os dados de entrada/interao do algoritmo. PROCESSAMENTO: So os passos utilizados para chegar ao resultado final. SAIDA: So os dados j processados. Verifique e identifique as fases do exemplo acima.

PROGRAMADOR DE SISTEMAS

3 INTEGRAO:
1. Crie uma seqncia lgica para tomar banho. 2. Descreva a seqncia lgica para trocar um pneu de um carro. 3. Crie uma seqncia lgica para abastecer um carro.

Anotaes

Aula 02
18

1 APRESENTAO:
Hoje iremos ver o que so condies e como utilizamos isso em um algoritmo simples.

2 DESENVOLVIMENTO:
21 Estrutura de deciso
Como j foi visto, verificamos que muitas vezes precisamos tomar decises no andamento de uma seqncia lgica ou algoritmo. Estas decises alteram o comportamento e o resultado de um programa. Os comandos de deciso ou desvio fazem parte das tcnicas de programao que conduzem a estruturas de programas que no so totalmente seqenciais. Com as instrues de SALTO ou DESVIO pode-se fazer com que o programa proceda de uma ou outra maneira, de acordo com as decises lgicas tomadas em funo dos dados ou resultados anteriores. As principais estruturas de deciso so: Se Ento, Se ento Seno e Caso, a estrutura Caso ser visto na prxima aula. Veremos a sintaxe destas condies em forma de algoritmo e j utilizando a notao da linguagem JAVA.
PROGRAMADOR DE SISTEMAS

22 Desvio Condicional Simples


SE ... ENTO ... FIM SE / IF { } A estrutura de deciso SE/IF normalmente vem acompanhada de um comando, ou seja, se determinada condio for satisfeita pelo comando SE/IF ento execute determinado comando.

Notao de Algoritmo Notao da linguagem JAVA ... se (<condio>) ento <comandos para condio verdadeira somente> fim se ... comandos ... if (<condio>) <comandos para condio verdadeira somente> } ... comandos Exemplo de um algoritmo verificando se um aluno foi aprovado por mdia. Notao de Algoritmo Notao da linguagem JAVA se ( mdia >= 7 ) ento imprima Aluno Aprovado fim se If ( mdia >= 7 ) { System.out.println(Aluno Aprovado); }
PROGRAMADOR DE SISTEMAS

19

23 Desvio Condicional Composto


SE ... ENTO ... SENO ... FIM SE / IF {} ELSE {} A diferena da estrutura condicional simples que agora existe a possibilidade de executar uma seqncia de instrues diferentes caso uma condio no seja verdadeira. Para isso utilizamos a estrutura SENO/ELSE.

Notao de Algoritmo
20

Notao da linguagem JAVA ... se (<condio>) ento <comandos para condio verdadeira somente> seno <comandos para condio falsa somente> fim se ... comandos ... if (<condio>){ <comandos para condio verdadeira somente> } else{ <comandos para condio verdadeira somente> } ... comandos Utilizando o exemplo do algoritmo que verificava se um aluno estava aprovado por mdia, neste exemplo se o aluno no tiver sido aprovado, mostrado uma mensagem dizendo que ele est reprovado. Notao de Algoritmo Notao da linguagem JAVA se ( mdia >= 7 ) ento imprima Aluno Aprovado seno imprima Aluno Reprovado fim se if ( mdia >= 7 ){

PROGRAMADOR DE SISTEMAS

System.out.println(Aluno Aprovado); } else{ System.out.println(Aluno Reprovado); }


21

24 Glossrio:
PROGRAMA: Um Programa um algoritmo escrito em uma determinada linguagem de programao (Pascal, C, Cobol, Fortran, Visual Basic, entre outras). Essa linguagem compreendida pelo computador, o qual executar esse algoritmo, realizando assim a tarefa proposta inicialmente. PROBLEMA: Podemos dizer que problema uma proposta duvidosa, que pode ter inmeras solues, ou questo no solvida e que o objeto de discusso, segundo a definio encontrada no Dicionrio Aurlio. Preferimos dizer que problema uma questo que foge a uma determinada regra, ou melhor, o desvio de um percurso, o qual impede de atingir com sucesso um determinado objetivo com eficincia e eficcia.
PROGRAMADOR DE SISTEMAS

3 INTEGRAO:
1. Faa um algoritmo para trocar uma lmpada. Descreva com detalhes. 2. Faa um algoritmo para somar dois nmeros e multiplicar o resultado pelo primeiro numero.

Anotaes

Aula 03 1 APRESENTAO:
Hoje iremos desenvolver mais trabalhos e exerccios em sala de aula de forma a fixar os conhecimentos adquiridos at o momento. Aproveitando os exerccios, vamos conhecer outras formas de apresentar um algoritmo atravs de fluxogramas.
23

2 GLOSSRIO:
PROGRAMADOR DE SISTEMAS

21 Programao estruturada e programao orientada a objetos:


A primeira grande onda a favor da modularizao no desenvolvimento de software foi chamada programao estruturada. No incio dos anos 70, essa expresso estava to na moda quanto programao orientada a objetos de hoje. A pea-chave da programao estruturada o conceito de subprograma, um fragmento com comeo, meio e fim, que desempenha um papel bem definido dentro de um programa maior. O conceito de programao orientada por objetos no novo. No final da dcada de 60, a linguagem Simula67, desenvolvida na Noruega, introduzia conceitos hoje encontrados nas linguagens orientadas a objetos. Em meados de 1970, o Centro de Pesquisa da Xerox (PARC) desenvolveu a linguagem Smalltalk, a primeira totalmente orientada a objetos. No incio da dcada de 80, a AT&T lanaria a Linguagem C++, uma evoluo da linguagem C em direo orientao a objetos. Atualmente, a grande maioria das linguagens incorpora caractersticas de OO, como Java e Object Pascal. Alm das linguagens de programao, possvel encontrar o conceito de OO em sistemas operacionais, como no caso do Windows 2000, e em banco de dados, como no Oracle8 e, principalmente, Jasmine da CA.

A programao orientada a objetos tem como principais objetivos


24

reduzir a complexidade no desenvolvimento de software e aumentar sua produtividade. A anlise, projeto e programao orientadas a objetos so as respostas para o aumento da complexidade dos ambientes computacionais que se caracterizam por sistemas heterogneos, distribudos em redes, em camadas e baseados em interfaces grficas. A programao orientada a objetos no tem a inteno de substituir a programao estruturada tradicional. Podemos considerar que a programao OO uma evoluo de prticas que so recomendadas na programao estruturada, mas no formalizadas, como o uso de variveis locais, visibilidade e escopo. O modelo de objetos permite a criao de bibliotecas que tornam efetivos o compartilhamento e a reutilizao de cdigo, reduzindo o tempo de desenvolvimento e, principalmente, simplificando o processo de manuteno das aplicaes. A grande dificuldade para compreender a programao OO a diferena de abordagem do problema. Enquanto a programao estruturada tem como principal foco as aes (procedimentos e funes), a programao OO se preocupa com os objetos e seus relacionamentos. Alm do conceito de objeto, a programao OO tem como alicerces os conceitos de encapsulamento, classe, herana e polimorfismo. Programao Orientada a Objetos Programao Estruturada Mtodos Procedimentos e funes Instncias de variveis Variveis Mensagens Chamadas a procedimentos e funes Classes Tipos de dados definidos pelo usurio Herana

PROGRAMADOR DE SISTEMAS

Polimorfismo 25

3 INTEGRAO:
1. Para os valores (a=5) (b=7) e (c=9), assinale com X a seqncia de execuo dos algoritmos abaixo: a) se a=5 e b=7 ento ( ) c := c+1 ( ) seno ( ) c := c-1 ( ) fim se b) se ( a = 5 ) ento ( a := 1 ( fim se ( ) ) ) )
PROGRAMADOR DE SISTEMAS

se ( c > 0 ) ento ( c := -10 ( seno ( b=8 ( ) ) ) )

fim se (

2. Indique o valor atribudo varivel X nos trechos de programas em


26

portugus estruturado, mostrados abaixo. Para as sadas, considere os seguintes valores: A=2, B=3, C=5 e D=9. a) Resposta: ____ se no (D > 5) ento X := (A + B) * D seno X := (A - B) / C

PROGRAMADOR DE SISTEMAS

fim se b) Resposta: ____ se (A > 2) e (B < 7) ento X := (A + 2) * (B - 2) seno X := (A + B) / D * (C + D) fim se c) Resposta: ____ se (A = 2) ou ( B < 7) ento X := (A + 2) * (B - 2) seno X := (A + B) / D * (C + D) fim se

d) Resposta: ____ se (A >= 2) ou (C <=1) ento X := (A + D)/2 seno X := D * C fim se e) Resposta: ____
PROGRAMADOR DE SISTEMAS

27

se no (A > 2) ou no (B < 7) ento X := A + D seno X := A / B fim se f) Resposta: ____ se no (A > 3) e no (B < 5) ento X := A + D seno X := D / B fim se g) Resposta: ____ se (C >=2) e (B <= 7) ento X := (A + D)/2

seno
28

X := D * C fim se h) Resposta: ____ se (A > 2) ou no (B < 7) ento X := A + B - 2 seno

PROGRAMADOR DE SISTEMAS

X := A B fim se 3. Identifique os dados de entrada, processamento e sada no algoritmo abaixo: a. Receba o cdigo da pea b. Receba o valor da pea c. Receba a quantidade de peas d. Calcule o valor total da pea (Quantidade * valor da pea) e. Mostre o cdigo da pea e seu valor total 4. Faa um algoritmo para somar dois nmeros quaisquer.

Anotaes

Aula 04
30

1 APRESENTAO:
Hoje iremos ver os operadores lgicos, relacionais e matemticos. Vamos descobrir como linearizar algumas expresses matemticas, e conhecer algumas funes e regras teis em algoritmos. Descobrir a diferenas de variveis e constantes, e como declarar em algoritmos. A partir desta aula, vamos utilizar estas regras para escrevermos nossos algoritmos.

2 DESENVOLVIMENTO:
PROGRAMADOR DE SISTEMAS

21OPERADORES ARITMTICOS
OPERADOR EQUIVALENCIA () Parnteses de agrupamentos + Adio Subtrao * Multiplicao / Diviso MOD Resto da Diviso de inteiros(mdulo) DIV Resultada Diviso de inteiros. ** Exponenciao

SQRT Raiz Quadrada ++ Incrementa em 1 -Decrementa em 1 INT Retorna a parte inteira FRAC Retorna a parte fracionria
PROGRAMADOR DE SISTEMAS

31

22 OPERADORES RELACIONAIS
OPERADOR EQUIVALENCIA > Maior que < Menor que >= Maior ou Igual <= Menor ou igual == Igual <> Diferente = Atribuio

23 LINEARIZAO DE EXPRESSES
32

Para a construo de Algoritmos todas as expresses aritmticas devem ser linearizadas, ou seja, colocadas em linhas. importante tambm ressalvar o uso dos operadores correspondentes da aritmtica tradicional para a computacional. Alm disso devemos tomar cuidado com a ordem de precedncia matemtica de cada operador. frmula (2/3+(5-3))+1=

24 ORDEM DE PRECEDNCIA MATEMTICA


Numa equao ou representao simblica, existe uma ordem de avaliao ou processamento. O computador passa analisando e resolvendo a representao simblica obedecendo a ordem de precedncia. Exemplos de prioridades: (2+2)/2=2 2+2/2=3

PROGRAMADOR DE SISTEMAS

PRIORIDADE OPERADOR OPERAO 1 ** Exponenciao 2 * Multiplicao 2 / Diviso 3 +

Adio 3 Subtrao Devemos tomar cuidado com algumas expresses, pois algumas linguagens de programao consideram que a multiplicao prioritria em relao a diviso, outras j consideram que sejam iguais e executam a primeira que encontrar na expresso.
33

25 MEMRIA
Para efeito de estudo de algoritmos, a memria o local mais importante do computador, pois nela que ficam gravados os programas que esto em execuo pelo computador e os dados que esto sendo processados por ele. Memria o local do computador no qual os dados e instrues de um programa a ser executado so armazenados, posteriormente recuperados para processamento e para onde os resultados desses processamentos so enviados. Cada posio ou localizao da memria principal identificada por um endereo.
PROGRAMADOR DE SISTEMAS

26 VARIVEIS
Variveis so espaos de memria que pode ter seu contedo alterado durante a execuo do programa onde ela foi definida. So declaradas no incio dos algoritmos.

27 CONSTANTES
Constantes so espaos de memria que tem seu contedo fixo durante a execuo do programa onde ela foi definida.

28 TIPO DE DADOS
34

A memria do computador um espao no qual se pode colocar qualquer coisa, mas para isso deve-se fazer uma reserva. A reserva que garantir que os bytes necessrios para armazenar programas e dados estaro disponveis quando forem necessrios. TIPO TAM INTERVALO DE VALORES INTEIRO 2 Admite somente nmeros inteiros. REAL 4 Admite nmeros decimais. CARACTER 1 Admite caracteres. LGICO 1 Verdadeiro ou Falso. Exemplo: Inteiro: A -> quer dizer que a varivel A poder conter apenas valores inteiros.

PROGRAMADOR DE SISTEMAS

29 OPERADORES LGICOS
OPERADOR EQUIVALENCIA SIGNIFICADO NO No lgico Inverte o estado, de verdadeiro passa para falso e vice-versa

E E lgico Basta que uma parte seja verdadeira para retornar verdadeiro OU OU lgico Retorna verdadeiro caso ambas as partes sejam verdadeiras
35

210 TABELA VERDADE


A B AEB NO (A) V V V V F V F F V F F V F V V F F F F V
PROGRAMADOR DE SISTEMAS

A OU B

PRECEDNCIA GERAL
36

Operadores Aritmticos Operadores Relacionais Operadores Lgicos (1- No , 2- E , 3 OU)

212 COMPOSIO DE UM ALGORITMO


Inicio <declarao de variveis> <comandos> Fim
PROGRAMADOR DE SISTEMAS

213 DECLARAO DE VARIVEIS


A sintaxe de declarao de variveis a seguinte: <tipo> : <NOME VARIVEL> Para o nome da varivel deveremos seguir algumas regras bsicas: Devem comear por um caractere alfabtico; Podem conter caracteres numricos; No permitido o uso de caracteres especiais; Pode-se usar ( _ ) sublinhado ou underline ou underscore. No deve existir espao em branco.

214 REGRAS BSICAS PARA CONSTRUO DE ALGORITMOS


1) Escrever as variveis em letras maisculas e os demais comandos em letras minsculas;

2) Usar e abusar de parnteses nas expresses; 3) Utilizar expresses curtas, se possvel dividi-las em expresses menores; 4) Utilizar um comando em cada linha; 5) Utilize ponto e virgula no final de cada comando.
37

215 COMANDO DE ENTRADA E SAIDA


ENTRADA: colocar informaes dentro de uma varivel atravs de um dispositivo de entrada de dados. Leia(<var1>,<var2>,<var3>,...); SAIDA: toda a informao que deve retornar do processo executado por meio de um dispositivo de sada de dados. Imprima(<var1>,<var2>,<var3>,...); Exemplo: Um algoritmo que leia dois nmeros e imprima a soma deles. Inicio Inteiro: A, B, SOMA; imprima(Digite o primeiro numero: ); leia (A); imprima(Digite o segundo numero: ); leia (B); SOMA = A + B ; imprima(A soma : , A); Fim
PROGRAMADOR DE SISTEMAS

3 INTEGRAO:
38

1. Transforme as expresses matemticas abaixo, para expresses lineares: a) 5 . 4 4 b) E = M x C2 c) 4,2 + 4,6 4,7 x+y+z+w d) 4,6_ 4 + 3 2. Faa um algoritmo que receba a hora e transforme em segundos. 3. Faa um algoritmo que leia o raio de uma circunferncia e calcula sua rea. ( R2) 4. Escreva um algoritmo que pea dois nmeros e a soma deles. Confirme se a soma est correta. Caso esteja, mostre a seguinte mensagem: Parabns, voc muito inteligente., caso contrrio mostre: Essa foi demais para voc, continue tentando.. 5. Escreva um algoritmo que leia trs nmeros e mostre qual o maior deles. 6. Sr. Salim deseja saber se obtm lucro em suas vendas. Elabore um algoritmo que mostre ao Sr. Salim se o produto deu lucro menor que 10%, entre 10% E 20% ou mais que 20%. Para tanto deve ser lido em cada venda efetuada os dados NOME DO PRODUTO, PREO COMPRA, PREO VENDA. 7. Resolva a tabela verdade abaixo:

PROGRAMADOR DE SISTEMAS

A B C A e (B ou C) A e no C B ou C ou A AeBeC C e (B ou A) no B e C V F V F V V V V F F V V V F F F V V V V F
PROGRAMADOR DE SISTEMAS

39

Anotaes

Aula 05 1 APRESENTAO:
At o momento vimos o que uma seqncia lgica, como ordenamos o nosso cotidiano em seqncias lgicas (exemplo da receita do bolo e de tomar banho) e o que um algoritmo. Hoje iremos conhecer mais algumas estruturas de deciso e como utilizar numa seqncia lgica que a partir deste momento chamaremos de algoritmo.
41

2 DESENVOLVIMENTO:
21 Mais estruturas de deciso
Hoje iremos ver mais uma estrutura de condio chamada de Desvio condicional encadeado ou aninhada e outra estrutura de mltipla escolha. Veremos a sintaxe destas condies em forma de algoritmo e j utilizando a notao da linguagem JAVA.
PROGRAMADOR DE SISTEMAS

22 Desvio Condicional Encadeado ou Aninhado


Existem casos em que necessrio se estabelecerem verificaes de condies sucessivas. Quando uma ao executada, ela poder ainda estabelecer novas condies, isso significa condies dentro de condies. Esse tipo de estrutura poder ter diversos nveis de condio, sendo chamados de aninhamentos ou encadeamentos. O segundo encadeamento pode ser tanto para uma condio verdadeira quanto uma condio falsa. Notao de Algoritmo Notao da linguagem JAVA ... se (<condio 1>) ento

<comandos para condio 1 verdadeira somente>


42

seno se (<condio 2>) ento <comandos para condio 2 verdadeira e condio 1 falsa> seno <condio 1 e condio 2 falsas> fim se fim se ... comandos ...

PROGRAMADOR DE SISTEMAS

if (<condio 1>) { <comandos para condio 1 verdadeira somente> } else if ( <condio 2> ) { <comandos para condio 2 verdadeira e condio 1 falsa> } else { <condio 1 e condio 2 falsas> } ... comandos Considere o problema a seguir, onde se estabelecem 3 condies para se calcular o reajuste de salrio de um funcionrio: Para salrio < do que 500, o reajuste ser de 15%. Para salrio >= 500 e <= 1000, o reajuste ser de 10%. Para salrio > 1000, o reajuste ser de 5%.

Notao de Algoritmo Notao da linguagem JAVA se ( salrio < 500 ) ento Reajuste de 15%; seno se ( salrio <= 1000 ) ento Reajuste de 10%; seno Reajuste de 5%; fim se if ( salrio< 500 ) { salrio = salrio * 1.15; } else if( salrio <= 1000 ) { salrio = salrio * 1.10; } seno { salrio = salrio * 1.05; } Abaixo um algoritmo para verificar se o aluno foi aprovado ou no. Objeto OLE
PROGRAMADOR DE SISTEMAS

43

fim se

3 INTEGRAO:
44

1. Para os valores (a=2) (b=7) e (c=10), assinale com X a seqncia de execuo dos algoritmos abaixo: a) se a=5 e b<6 ento ( ) c := 1 ( ) seno ( ) se c = 8 ento ( ) c := 2 ( ) seno ( ) c := 3 ( ) fim se ( ) fim se ( ) 2. Elabore um algoritmo que dada idade de um nadador classifique-o em uma das seguintes categorias: Infantil A = 5 a 7 anos Infantil B = 8 a 11 anos Juvenil A = 12 a 13 anos Juvenil B = 14 a 17 anos Adultos = Maiores de 18 anos

PROGRAMADOR DE SISTEMAS

Anotaes

Aula 06
46

1 APRESENTAO:
At o momento vimos o que uma seqncia lgica, como ordenamos o nosso cotidiano em seqncias lgicas (exemplo da receita do bolo e de tomar banho) e o que um algoritmo. Hoje iremos conhecer mais algumas estruturas de deciso e como utilizar numa seqncia lgica que a partir deste momento chamaremos de algoritmo.

2 DESENVOLVIMENTO:
PROGRAMADOR DE SISTEMAS

Mltiplas opes CASO / SWITCH{} A estrutura de deciso CASO utilizada para testar, na condio, uma nica expresso, que produz um resultado, ou, ento, o valor de uma varivel, em que est armazenado um determinado contedo. Compara-se, ento, o resultado obtido no teste com os valores fornecidos em cada clusula Caso. Notao de Algoritmo Notao da linguagem JAVA ... faa caso caso <condio 1> <comandos para condio 1 verdadeira somente> caso <condio 2> <comandos para condio 2 verdadeira somente> caso <condio 3> <comandos para condio 1 verdadeira somente> ... outro caso

<comandos caso nenhuma das condies anteriores seja verdadeira> fim caso ... comandos ... switch(<expresso>){ case <valor 1>: <comandos para o valor 1 somente> break; case <valor 2>: <comandos para o valor 2 somente> break; case <valor 3>: <comandos para o valor 3 somente> break; ... default: <comandos caso nenhuma das condies anteriores seja verdadeira> } ... comandos Exemplo.: considere um programa que deva mostrar as seguintes opes aps ler 2 variveis: 1. Mostrar Mdia de A e B 2. Mostrar Soma de A e B 3. Mostrar produto de A por B
PROGRAMADOR DE SISTEMAS

47

4. Mostrar diferena entre A e B


48

Opo:? Nesse caso, o algoritmo poderia utilizar a opo Caso: Notao de Algoritmo Notao da linguagem JAVA ... faa caso caso opo = 1 <Comandos> caso opo = 2 <Comandos> caso opo = 3 <Comandos> caso opo = 4 <Comandos> outro caso <Se no entrou em nenhuma das opes anteriores> fim caso ... ... switch( opo ) { case 1: <Comandos> break; case 2: <Comandos> break; case 3: <Comandos>

PROGRAMADOR DE SISTEMAS

break; case 4: <Comandos> break; default: <Se no entrou em nenhuma das opes anteriores> }
49

3 INTEGRAO:
1. Para os valores (a=2) (b=7) e (c=10), assinale com X a seqncia de
PROGRAMADOR DE SISTEMAS

execuo dos algoritmos abaixo: a) faa caso c := 1 ( ) ) ) ) ) ) ( ) )

caso a=5 e b=7 ( caso c=8 ( c := 2 ( c := 3 ( fim caso ( c := 1 ( ) seno ( ) se c = 8 ento ( ) c := 2 ( ) seno ( ) c := 3 ( ) fim se ( ) fim se ( ) outro caso (

b) se a=5 e b<6 ento ( )

2. Elabore um algoritmo que dada idade de um nadador classifique-o em uma das

seguintes categorias:
50

Infantil A = 5 a 7 anos Infantil B = 8 a 11 anos Juvenil A = 12 a 13 anos Juvenil B = 14 a 17 anos Adultos = Maiores de 18 anos

PROGRAMADOR DE SISTEMAS

Anotaes

Aula 07
52

1 APRESENTAO:
Hoje iremos ver mais algumas estruturas utilizadas em algoritmos. At o momento somente vimos algoritmos seqenciais que no repetiam certos trechos do programa, a partir deste momento vamos trabalhar com estruturas de repetio.

2 DESENVOLVIMENTO:
21 Estrutura de Repetio
Em vrios momentos, na programao, se torna necessrio repetir um trecho de um programa um determinado nmero de vezes. Nesse caso, pode ser criado um lao de repetio que efetue o processamento de um determinado trecho, tantas vezes quantas forem necesssrias. Os laos de repetio tambm so conhecidos por loopings. Supondo que se queira executar um determinado trecho de um programa trs vezes (3x). Por exemplo, suponha que um programa deva ler dois valores e mostrar a mdia entre esses valores. Certamente a melhor tcnica no seria repetir simplesmente um mesmo trecho trs vezes, como mostrado abaixo: incio reais: media,n1,n2; leia Nota 1:, n1; leia Nota 2:, n2; media = (n1+n2)/2; imprima Mdia:, media; leia Nota 1:, n1; leia Nota 2:, n2; media = (n1+n2)/2; imprima Mdia:, media;
PROGRAMADOR DE SISTEMAS

leia Nota 1:, n1; leia Nota 2:, n2; media = (n1+n2)/2; imprima Mdia:, media; fim Para esse e outros casos similares, existem comandos apropriados para efetuar a repetio de determinados trechos de programa tantas vezes quantas forem necessrias. A principal vantagem que o programa passa a ter um tamanho muito menor, podendo ser ampliada a amplitude de processamento como for necessria.
PROGRAMADOR DE SISTEMAS

53

Existem 2 tipos de repeties: Definidas e garantidas, ou seja, um mesmo trecho de programa ser executado um nmero pr-determinado de vezes; Indefinida e sem garantia, ou seja, um trecho de programa poder ser executado indefinidamente, no havendo garantia do trmino da execuo do algoritmo.

22 Repetio utilizando estrutura Para / Fim para


A estrutura do Para/Prximo garantida, e sua sintaxe em apresentada no seguinte formato: para <var> de <incio> at <fim> passo <incremento> faa <comandos> fim para Onde : Var Incio Fim Incremento = varivel de controle. = valor inicial da varivel. = valor final que a varivel de controle deve atingir. = incremento da varivel de controle, se omitido ser 1.

Veja como fica o exemplo mostrado no incio deste captulo.

incio
54

reais: media,n1,n2,i para i de 1 at 4 passo 1 faa // (nesse caso passo 1 opcional) leia Nota 1:, n1 leia Nota 2:, n2 media = (n1+n2)/2 imprima Mdia:, media fim para fim O algoritmo, que tinha que 15 linhas, passou a ter 09 linhas, com a mesma funcionalidade e ainda com a vantagem de se ampliar o nmero de repeties de 4 para 400, com a maior facilidade. Exemplo: Fazer um algoritmo que l a mdia final de 50 alunos e calcula a mdia aritmtica da turma. Incio Reais: Acumulador, MdiaFinal, MdiaDaTurma; Inteiro: Vezes; Acumulador = 0; para Vezes de 1 at 50 faa imprima(Informe a mdia final do aluno: ); leia (MdiaFinal); Acumulador = Acumulador + MdiaFinal; fim para MdiaDaTurma = Acumulador / 50; Escreva (Mdia da Turma = , MdiaDaTurma); fim

PROGRAMADOR DE SISTEMAS

23 Repetio utilizando estrutura Faa Enquanto / Fim enquanto


Embora tambm possa ser utilizada quando se tem um nmero prdeterminado de repeties a executar, como no exemplo acima, essa estrutura mais indicada quando necessrio repetir um determinado trecho de programa indefinidamente. Para ilustrar, suponha que um determinado valor deva ser lido indefinidamente, at que seja digitado zero (condio de parada). Nesse caso devemos usar a estrutura Faa enquanto: incio real: val; val = 1; faa enquanto val <> 0 leia Valor:, val; ... <comandos 1>; fim enquanto (pode ser usado tambm fim faa) <comandos 2>; fim Nesse caso, quando for digitado 0 (zero) para val, o fluxo do programa segue at chegar no comando fim enquanto. Ao retornar na linha faa enquanto, verificado que o valor no diferente de zero e o controle do programa passa para a linha comandos 2. A partir da o fluxo do programa segue normalmente. Veja abaixo como ficaria a utilizao do lao faa enquanto para o exemplo apresentado no item anterior. incio reais: media,n1,n2; inteiro: i; i = 1; faa enquanto i <= 4; leia Nota 1:, n1;
PROGRAMADOR DE SISTEMAS

55

leia Nota 2:, n2;


56

media = (n1+n2)/2; imprima Mdia:, media; i = i + 1; fim enquanto fim Embora existam outros tipos de laos de repetio, alm do para e faa enquanto, somente trabalharemos com estes nos algoritmos, pois so encontrados em praticamente todas as linguagens de programao e resolvem qualquer problema que necessite repetio.

PROGRAMADOR DE SISTEMAS

Exemplos: 1. Algoritmo para encontrar o resto da diviso entre dois inteiros, com o dividendo maior que o divisor. incio reais: Dividendo, Divisor, Resto; imprima(Informe os valores do dividendo e do divisor:); leia (Dividendo e Divisor); Resto = Dividendo; Faa enquanto (Resto >= Divisor) Resto = Resto - Divisor; fim enquanto imprima(O resto da diviso entre , Dividendo, e , Divisor, , Resto); fim 2. Vamos fazer um algoritmo que calcula as mdias aritmticas de vrios alunos e para quando encontra uma primeira nota negativa (sinal de parada). incio reais: Nota1, Nota2, Nota3, Nota4, Mdia; imprima(Informe a primeira nota do aluno:); leia (Nota1); faa enquanto (Nota1 >= 0)

imprima(Informe as demais notas do aluno:); leia (Nota2, Nota3, Nota4); Mdia = (Nota1 + Nota2 + Nota3 + Nota4 ) / 4; imprima(Mdia Calculada = , Mdia); se (Mdia >= 7.0) ento imprima( Aluno Aprovado); imprima( Parabns ! ); seno imprima( Aluno Reprovado); imprima( Estude Mais ! ); fim se imprima(Informe a primeira nota do aluno:); leia(Nota1); fim enquanto fim 3. Construir um algoritmo para ler a mdia final de vrios alunos, calcular a mdia aritmtica da turma e parar quando encontrar uma mdia final de aluno negativa. incio inteiro: Contador, Acumulador; reais: MdiaFinal, MdiaDaTurma; Contador = 0; Acumulador = 0; imprima(Informe a mdia final do aluno:); leia (MdiaFinal); faa enquanto (MdiaFinal >= 0) Acumulador = Acumulador + MdiaFinal; Contador = Contador + 1; imprima(Informe a mdia final do aluno:); leia (MdiaFinal); fim enquanto
PROGRAMADOR DE SISTEMAS

57

MdiaDaTurma = Acumulador / Contador;


58

imprima(Mdia da Turma = , MdiaDaTurma); fim

3 INTEGRAO:
1. O que e para que serve uma varivel tipo CONTADOR e uma varivel tipo ACUMULADOR. 2. Leia 5 valores para uma varivel A . A seguir mostre quantos valores digitados foram pares, quantos valores digitados foram mpares, quantos foram positivos e quantos foram negativos.
PROGRAMADOR DE SISTEMAS

3. Calcule e mostre a soma dos nmeros pares entre 1 e 100. 4. Calcule e mostre a soma dos nmeros impares entre 1 e 100. 5. Leia 2 valores: X e Y. A seguir, calcule e mostre a soma dos nmeros impares entre eles. 6. Leia 2 valores: X e Y. A seguir, calcule e mostre a soma dos nmeros pares entre eles. 7. Faa um algoritmo que leia um conjunto no determinado de pares de valores M e N (parar quando algum dos valores for menor ou igual a zero). Para cada par lido, mostre a soma dos inteiros consecutivos do menor at o maior, inclusive. 8. Apresente o quadrado de cada um dos nmeros pares entre 1 e 1000. 9. Apresente todos os nmeros divisveis por 5 que sejam maiores do que 0 e menores ou iguais a 200. 10. Leia 1 varivel X inmeras vezes (parar quando o valor digitado for < 0). Para cada valor lido mostre a seqncia de 1 at o valor lido. 11. Faa um algoritmo que mostre a tabuada de 2 (2x1=2, 2x2=4,...)

12. Escreva um algoritmo que leia 10 valores quaisquer. A seguir, mostre quantos deles esto dentro do intervalo [10,20] e quantos esto fora do intervalo, mostrando essas informaes. 13. Faa um algoritmo para identificar se um nmero primo ou no. O nmero primo aquele que somente divisvel por 1 e por ele mesmo. Exemplo: 1,2,3,5,7,11,13... 14. Resolva a tabela verdade abaixo A B D A e (B ou C) e no D A e no C ou D B ou C ou A AeDeC D e (B ou A) no (B ou D )e C V F V F F V V V V V F V F V
PROGRAMADOR DE SISTEMAS

59

V
60

F V F F V F V V V V

PROGRAMADOR DE SISTEMAS

V F V

1. Faa um algoritmo que imprima a seqncia de Fibonacci (0,1,1,2,3,5,8,13,21,....) 2. Faa dois algoritmos utilizando a estrutura para e enquanto para mostrar os nmeros mltiplos de 3 entre entre 0 e 1000. 3. Crie um algoritmo para ler um nmero inteiro e dizer se este unidade, dezena, centena, ou milhar. Caso este nmero seja negativo, o algoritmo deve dar um erro. 4. Construa um algoritmo que ao ser dada a entrada de um nmero ( 1 a 12 ) escreva por extenso o ms referente ao nmero passado. Se for dada a entrada de um nmero fora do lao de 1 a 12 o algoritmo traz um erro 5. Dado um conjunto de 20 valores reais, faa um algoritmo que: a) Imprima os valores que no so negativos. b) Calcule e imprima a mdia dos valores < 0.

6. Uma empresa tem para um determinado funcionrio uma ficha contendo o nome, nmero de horas trabalhadas e o n0 de dependentes de um funcionrio. Considerando que: a. A empresa paga 12 reais por hora e 40 reais por dependentes. b. Sobre o salrio so feito descontos de 8,5% para o INSS e 5% para IR. 7. Faa um algoritmo para ler o Nome, nmero de horas trabalhadas e nmero de dependentes de um funcionrio. Aps a leitura, escreva qual o Nome, salrio bruto, os valores descontados para cada tipo de imposto e finalmente qual o salrio lquido do funcionrio. a.Dado um conjunto de n registros cada registro contendo um valor real, faa um algoritmo que calcule a mdia dos valores maiores que 4. b.O preo de um automvel calculado pela soma do preo de fbrica com o preo dos impostos (45% do preo de fbrica) e a percentagem do revendedor (28% do preo de fbrica). Faa um algoritmo que leia o nome do automvel e o preo de fbrica e imprima o nome do automvel e o preo final.
PROGRAMADOR DE SISTEMAS

61

Anotaes

Aula 08 1 APRESENTAO:
Estamos apresentando o cdigo Java para alguns algoritmos. Vamos analisar este cdigo e entender alguns conceitos do Java. Vamos compilar e executar este cdigo.
63

2 DESENVOLVIMENTO:
Para compilar um programa Java, devemos executar o comando javac
PROGRAMADOR DE SISTEMAS

<nome do arquivo.java>. Aps a compilao, ser gerado um arquivo com a extenso .class, este arquivo contm o cdigo binrio para ser executado pelo Java Virtual Machine (JVM). Para a execuo do cdigo, devemos utilizar o comando java <nome do arquivo>. Vamos analisar os cdigos abaixos: Exemplo do Dado: // nome da classe Java, este nome tem que ser idntico ao nome do arquivo que contm a classe. class Dado { //esta sequncia fixa, como se fosse o comando INICIO em algoritmo public static void main( String args[] ) { int D1,D2,Soma; for( D1=1; D1<=6; D1++) { for( D2=1; D2<=6; D2++)

{
64

Soma = D1 + D2; System.out.println( Dado 1 = + D1 + ,Dado 2 =+ } } } } Exemplo para mostrar nmeros impares: public class Impar D2 + ,Soma = + Soma );

PROGRAMADOR DE SISTEMAS

{ public static void main(String[] args) { int i; for( i=100;i<=200;i++) { if( (i%2) != 0 ) { System.out.println(O numero + i + eh impar!!); } } } } Lembretes: O nome do arquivo deve ser idntico ao nome da classe interno

(inclusive com letras maisculas) e ter a extenso .java; Para compilar: javac <nome do arquivo>.java Para executar: java <nome do arquivo>; Minsculas so diferentes de maisculas;
65

3 INTEGRAO:
1. Digite o cdigo no seu editor preferido, compile e execute.

PROGRAMADOR DE SISTEMAS

Anotaes

Aula 09 1 APRESENTAO:
Vamos rever alguns conceitos de algoritmo,mas agora aplicado em Java. Vamos ver o que funo.
67

2 DESENVOLVIMENTO:
21 Operadores Lgicos
OPERADOR EQUIVALENCIA SIGNIFICADO ! No lgico Inverte o estado, de verdadeiro passa para falso e vice-versa && E lgico Retorna verdadeiro caso ambas as partes sejam verdadeiras || OU lgico Basta que uma parte seja verdadeira para retornar verdadeiro
PROGRAMADOR DE SISTEMAS

22 Tipos de Dados primitivos


Java tem oito tipos simples: byte, short, int, long, char, float, double e boolean. Estes podem ser classificados em quatro grupos: 1. Inteiros: byte, short, int e long, que so para os nmeros de valor inteiro. 2. Os nmeros de ponto flutuante: float e double, que representam os nmeros com preciso de frao.

3. Caracteres: char, que representam smbolos de um conjunto de


68

caracteres, tais como letras e dgitos. 4. Lgicos: boolean, que um tipo especial usado para representar valores lgicos (true e false);

23 Inteiros
Nome Largura (bits) Faixa byte 8 -128 a 127 short 16 -32.768 a 32.767 int 32 -2.147.483.648 a 2.147.483.647 long 64 -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807
PROGRAMADOR DE SISTEMAS

24 Nmeros de Ponto Flutuante


Nome Largura (bits) Faixa float 32 1,7e-38 a 1,7e +38 double 64 3,4e-38 a 3,4e+38

Agora daremos um zoom para abordar todos os aspectos gerais da sintaxe Java. Os programas Java so uma coleo de espaos em branco, comentrios, palavras-chave, identificadores, operadores e separadores. Espao em Branco Java uma linguagem de formato livre. Voc no precisa endentar nada para que ela funcione adequadamente. O recurso de edentao utilizado apenas para uma melhor visualizao do programa como um todo. Comentrios Embora os comentrios no contribuam para o tempo de execuo de um programa, quando adequadamente usados eles so a parte mais valiosa de um cdigo-fonte. Os grandes programas, com o passar do tempo, tornam-se difceis de entender at mesmo pelo autor do original, Mesmo alguns poucos, mas bem colocados comentrios, que expliquem o porqu e o qual de uma classe ou de um mtodo, ajudam bastante. Os comentrios que apenas declaram novamente a natureza de uma linha de cdigo obviamente no acrescentam muito valor, mas aqueles que explicam ou demonstram o algoritmo so a marca de um timo programador. Existem trs tipos de comentrios do cdigo-fonte: de uma linha, de vrias linhas e de documentao. Os comentrios de uma linha comeam com // e terminam no final da linha. Este estilo de comentrio til para explicaes breves de uma nica linha de cdigo. a = 42; // se 42 a resposta, qual a pergunta?
PROGRAMADOR DE SISTEMAS

69

Nos comentrios mais longos, voc pode criar comentrios de vrias linhas, iniciando com /* (barra-asterisco) e terminando com */ (asteriscobarra. Tudo que houver entre /* e */ considerado um comentrio e portanto, ignorado pelo compilador. /* * Este cdigo um pouco complicado... * Vou tentar explic-lo aqui:

*/
70

Palavras-Chave Reservadas As palavras-chave reservadas so identificadores especiais que a linguagem Java reservou para controlar o modo como o programa definido. Elas so usadas para identificar os tipos, modificadores e mecanismos de controle de fluxo incorporados. Existem 59 palavras-chave reservadas, atualmente definidas na linguagem Java (at a verso 1.0), que aparecem na Tabela abaixo. Essas palavras-chave, combinadas sintaxe dos operadores e separadores, formam a definio da linguagem Java. Elas s podem ser usadas para o seu propsito determinado no podendo portanto, ser usadas como um identificador do nome de uma varivel, classe ou mtodo. Palavras-Chave Reservadas de Java abstratct Boolean break byte byvalue case Cast catch char class Const Continue default do double Else Extendes false final

PROGRAMADOR DE SISTEMAS

finally Float For future generic goto if implements import inner instanceof int Interface long native new null operator outer package private protected Public rest return short static Super swicht synchronized this throw
PROGRAMADOR DE SISTEMAS

71

Throws
72

transient true try var Void volatile while Identificadores Os identificadores so usados para nomes de classe, mtodos e variveis. Um identificador pode ser qualquer seqncia descritiva de caracteres de letras minsculas, nmeros, caracteres de sublinhado e smbolo de cifro. Eles no podem comear com um nmero, caso contrrio sero confundidos com um literal numrico descrito a seguir. Java sensvel a maisculas e minsculas, o que significa que VALOR um identificador diferente de Valor, e por sua vez diferente de valor. Alguns exemplos de identificadores vlidos incluem horaDoDia, temp-val, a4, e $- (embora eu no recomendaria $). Os nomes de variveis invlidos incluem 1more, 3$, a:b, #foo e @2. O grupo Java seguiu a conveno de nomes de identificadores, de forma a nomear todos os mtodos e variveis pblicos com letra minscula na frente marcando o incio da palavra descritiva subsequente com uma letra maiscula, tal como poxItem, valorCorrente e obterHoraDoDia. No caso das variveis privadas e locais, os identificadores so todos em letras minsculas com sublinhados mistos, por exemplo: j, prox_val, temp_val. Nos identificadores que representem constantes, usamos tudo em maisculas, por exemplo: VALOR_P1, DIA_SEXTA .

PROGRAMADOR DE SISTEMAS

25 Operadores
Operador operao

+ Adio Subtrao * Multiplicao / Diviso % Mdulo ++ incremento -decremento += Atribuio aditiva -= Atribuio subtrativa *= Atribuio multiplicativa /= Atribuio de diviso %= Atribuio de mdulo
PROGRAMADOR DE SISTEMAS

73

26 Sada de dados em um programa


A sada de dados padro de um programa a tela de um computador, representada pelo objeto System.out. O comando usado para escrever dados e mensagens na tela : System.out.println(); Por exemplo: System.out.println(a);

System.out.println(endereco+telefone);
74

System.out.println(o valor de a :+a); System.out.println(voce pesa +peso+ quilos); Obs: o operador + tambm serve para concatenar (juntar) duas Strings.

27 Entrada de dados em um programa


A entrada de dados padro de um programa o teclado. Esta entrada representada pelo objeto System.in. Para usar este objeto para receber a entrada necessrio usar um outro objeto que um BufferedReader. Para criar este objeto s usar o comando abaixo: BufferedReader teclado = new BufferedReader(new
PROGRAMADOR DE SISTEMAS

InputStreamReader(System.in)); Para receber a entrada e coloca-la em uma varivel s usar o comando abaixo: String valor = teclado.readLine(); Depois necessrio converter este valor para o tipo necessrio, como inteiros (int) ou real (float ou double). Para facilitar, vamos utilizar um programa j pronto que facilita a leitura do teclado. Este programa um conjunto de funes que fazem a leitura do teclado. Mtodo Descrio Exemplo Console.readByte(String pMsg)

L um bytes do teclado. byte n; n = Console.readByte(Entre com valor byte:); Console.readChar(String pMsg) L um char do teclado. char n; n = Console.readChar(Entre com valor char:);
PROGRAMADOR DE SISTEMAS

75

Console.readDouble(String pMsg) L um valor double do teclado. double n; n = Console.readDouble(Entre com valor doubl:); Console.readFloat(String pMsg) L um valor float do teclado. float n; n = Console.readFloat(Entre com valor float:); Console.readInt(String pMsg) L um valor inteiro do teclado. int n; n = Console.readInt(Entre com valor int:); Console.readLong(String pMsg) L um valor long do teclado.

long n;
76

n = Console.readLong(Entre com valor long:); Console.readShort(String pMsg) L um valor short do teclado. short n; n = Console.readShort(Entre com valor short:); Console.readString(String pMsg)

PROGRAMADOR DE SISTEMAS

L um valor String do teclado. String n; n = Console.readString(Entre com uma string:);

28 Funo
Funo um pequeno trecho de cdigo dentro do programa que pode ser chamado vrias vezes como parte do prprio programa. Toda funo tem um retorno (void, int, float, double, char, etc..) e recebe parmetros de entrada para fazer alguma coisa. No JAVA chamamos as funes de mtodos. Funo <nome da funo> (parmetros): <tipo da funo> Incio. declarao de variveis <comandos> Fim. Exemplo de algoritmo para somar 2 nmeros utilizando funo. Funo Soma(inteiro A, inteiro B): inteiro Incio Inteiro: Soma; Soma = A + B;

Retornar Soma; Fim. Inicio Inteiro: A,B; Imprima Entre com valor A e B; Leia A,B; Imprima A soma , Soma(A,B); Fim Exemplo em JAVA. public class Exemplo(){ static int Soma( int A, int B) { int Soma; Soma = A + B; return Soma; } static public void main( String args[] ) { int A,B; System.out.println(Entre com valores:); A = Console.readInt(Entre com o primeiro valor:); B = Console.readInt(Entre com o segundo valor:); System.out.prinln(A soma + Soma(A,B)); } } Algumas Funes do Java da Biblioteca Math(matemtica) e System (sistema). Mtodo Descrio Exemplo Math.abs(x) Valor absoluto de x
PROGRAMADOR DE SISTEMAS

77

Se x > 0 ento abs(x) x


78

Se x = 0 ento abs(x) 0 Se x < 0 ento abs(x) -x Math.ceil(x) Arredonda x para o menor inteiro no menor que x Math.ceil(9.2) 10.0 Math.ceil(-9.8) 9.0 Math.cos(x) Co-seno de x Math.cos(0.0) 1.0 Math.exp(x)

PROGRAMADOR DE SISTEMAS

Mtodo exponecial ex Math.exp(1.0) 2.71828 Math.exp(2.0) 7.38906 Math.floor(x) Arreonda x para o maior inteiro no maior que x Math.floor(9.2) 9.0 Math.floor(-9.8) 10.0 Math.log(x) Logaritmo natural de x (base e) Math.log( 2.71828) 1.0 Math.log(7.38906) 2.0 Math.max(x,y) Maior valor entre x e y Math.max(2.3,12.7) 12.7 Math.max(-2.3,-12.7) 2.3 Math.min(x,y) Menor valor entre x e y Math.min(2.3,12.7) 2.3 Math.min(-2.3,-12.7) 12.7 Math.pow(x,y) x elevado potncia y

Math.pow(2.0,7.0) 128.0 Math.sin(x) Seno de x Math.sin(0.0) 0.0 Math.sqrt(x) Raiz quadrada de x Math.sqrt(900.00) 30.0 Math.tan(x) Tangente de x Math.tan(0.0) 0.0 Vamos ver alguns exemplos em Java com algoritmos j feitos em sala de aula. class Exemplo { static void Bascara(){ double R1, R2, DELTA; double A, B, C; A = Console.readDouble(Informe o nmero A:); B = Console.readDouble(Informe o nmero B:); C = Console.readDouble(Informe o nmero C:); DELTA = Math.sqrt( Math.pow( B,2) - 4 * A * C); R1 = ( -B + DELTA) / (2*A); R2 = ( -B - DELTA) / (2*A); System.out.println(Raiz 1 = + R1 ); System.out.println(Raiz 2 = + R2 ); } static void Fatorial(){ int iFat, iSoma; iFat = Console.readInt(Qual o nmero para o clculo do fatorial ??); iSoma = 1; while( iFat > 0 ) { iSoma = iSoma * iFat;
PROGRAMADOR DE SISTEMAS

79

iFat --;
80

} System.out.println(Fatorial + iSoma ); } static void Fibonacci(){ int a, b, iFim; iFim = Console.readInt(Imprimo a sequncia at ???); a = 0; b = 1; System.out.println(a); System.out.println(b);

PROGRAMADOR DE SISTEMAS

while( (a+b) < iFim ) { a += b; System.out.println(a); b += a; System.out.println(b); } } static void Primo(){ int iPrimo, i; boolean ehPrimo; iPrimo = Console.readInt(Informe o nmero a ser verificado:); if( iPrimo <= 0) { System.out.println(Nmero invlido!!!); return; // a funo termina aqui } if( iPrimo == 1 || iPrimo == 2 || iPrimo == 3) { System.out.println(Nmero primo!!!);

} else { // testar para ver se par if( iPrimo%2 == 0) { System.out.println(Nmero no primo); } else { ehPrimo = true; for( i=3;i<iPrimo;i+=2) { if( iPrimo%i == 0) { ehPrimo = false; break; } } if( ehPrimo ) { System.out.println(Nmero primo!!!); } else { System.out.println(Nmero no primo!!!); } } } } public static void main(java.lang.String[] args) {
PROGRAMADOR DE SISTEMAS

81

int iOpcao;
82

while( true ) // loop infinito { System.out.println(Informe opo de clculo); System.out.println(---------------------------------); System.out.println(1) Sequncia de Fibonacci); System.out.println(2) Nmero Fatorial); System.out.println(3) Nmero Primo); System.out.println(4) Bascara); System.out.println(9) Finalizar); iOpcao = Console.readInt(Entre com o nmero da opo: );

PROGRAMADOR DE SISTEMAS

if( iOpcao == 9) { break; } switch( iOpcao ) { case 1: Fibonacci(); break; case 2: Fatorial(); break; case 3: Primo(); break; case 4: Bascara(); break; default: System.out.println(Opo invlida); }

} System.out.println(Obrigado por ter utilizado o sistema !!!); } }


83

3 INTEGRAO:
1. Digite o cdigo no seu editor preferido, compile e execute. 2. Converta os exerccios do trabalho para Java.

PROGRAMADOR DE SISTEMAS

Anotaes

Aula 10 1 APRESENTAO:
Nesta aula, ser apresentada uma tcnica de programao que permitir trabalhar com o agrupamento de vrias informaes dentro de uma mesma varivel. Vale salientar que este agrupamento ocorrer obedecendo sempre ao mesmo tipo de dado, e por esta razo chamado de estruturas de dados homogneas.
85

2 DESENVOLVIMENTO:
21 Estrutura de Dados Homogneas
Durante os pontos estudados anteriormente, percebemos que o poder de programao se tornou maior. Porm, tendo domnio das tcnicas anteriores, ainda correr-se o risco de no conseguir resolver alguns tipos de problemas, pois foram trabalhadas at aqui apenas variveis simples, variveis que somente armazenam um valor por vez. A utilizao deste tipo de estrutura de dados recebe diversos nomes, com: variveis indexadas, variveis compostas, variveis subscritas, arranjos, vetores, matrizes, tabelas em memria ou arrays (do ingls). So vrios os nomes encontrados na literatura voltada para o estudo de tcnicas de programao que envolve a utilizao das estruturas homogneas de dados. Por ns, sero definidas como matrizes. As matrizes (tabelas em memria) so tipo de dados que podem ser constitudos medida que se fazem necessrios, pois no sempre que os tipos bsicos (real, inteiro, caractere ou lgico) e /ou variveis simples so suficiente para representar a estrutura de dados utilizado em um programa.
PROGRAMADOR DE SISTEMAS

22 Matrizes de uma Dimenso ou Vetores


86

Este tipo de estrutura em particular tambm denominado por alguns profissionais como matrizes unidimensionais. Sua utilizao mais comum est vinculada criao de tabelas. Caracteriza-se por ser definida uma nica varivel dimensionada com um determinado tamanho. A dimenso de uma matriz constituda por constantes inteiras e positivas. Os nomes dados s matrizes seguem as mesmas regras de nomes utilizados para indicar as variveis simples.

23 Operaes Bsicas com Matrizes do Tipo Vetor


PROGRAMADOR DE SISTEMAS

Uma matriz de uma dimenso ou vetor ser, neste trabalho, representada por seu nome e seu tamanho (dimenso) entre colchetes, desta forma seria uma matriz MD [1..n], onde MD o seu nome e possuindo um tamanho de 1 a n. Isto significa que podero ser armazenados em MD at um valor definido pelo programador. Perceba que na utilizao de variveis simples existe uma regra: uma varivel pode conter apenas um valor por vez. No caso das matrizes, estas podero armazenar mais um valor por vez, pois so dimensionadas, exatamente para este fim. De esta forma poder-se manipular uma quantidade maior de informao com pouco trabalho de processamento. Deve-se apenas considerar que com relao manipulao dos elementos de uma matriz, eles ocorrero de forma individualizada, pois no possvel efetuar a manipulao de todos os elementos do conjunto ao mesmo tempo.

24 Atribuio de uma Matriz


Anteriormente, foram utilizadas vrias instrues em algoritmos para poder se definir e montar um programa. No caso da utilizao de matrizes, temos a sintaxe para a correta declarao: <tipo de dado> Varivel [<dimenso>] Onde <dimenso> ser a indicao dos valores inicial e final do tamanho

do vetor e <tipo de dado> se o vetor em questo ir utilizar valores reais, inteiros, lgicos ou caracteres.
87

25 Leitura dos Dados de uma Matriz


A leitura de uma matriz processada passo a passo, um elemento por vez. A instruo de leitura leia seguida da varivel mais o ndice (entre colchetes). Abaixo, apresentado a codificao em algoritmo da leitura de 8 notas de 8 alunos, clculo da mdia e a apresentao da mesma. Inicio Real: Md[1..8] Inteiro: I Soma = 0 faa para I = 1 at 8 passo 1 Leia (Md[I]) Soma = Soma + MD[I] fim para media = Soma / 8 imprima (Media) Fim.
PROGRAMADOR DE SISTEMAS

Real: Soma, media

26 Escrita dos Dados de uma Matriz


O processo de escrita de uma matriz bastante parecido com o processo de leitura de seus elementos. Para esta ocorrncia dever ser utilizada a instruo imprima seguida da indicao da varivel e seu ndice. Supondo que aps a leitura das 8 notas, houvesse a necessidade de apresent-las antes da apresentao do valor da mdia. Abaixo exibido a codificao da escrita dos 8 alunos antes de ser apresentado o clculo da mdia. Inicio Real: Md[1..8] Real: Soma, media

Inteiro: I
88

Soma = 0 faa para I = 1 at 8 passo 1 Leia (Md[I]) Soma = Soma + MD[I] fim para para I=1 ate 8 passo 1 Imprima (Md[I]) fim para media = Soma / 8 imprima (Media)

PROGRAMADOR DE SISTEMAS

Fim. 2.6.1 Utilizao e Java Em determinadas partes de programas torna-se necessrio manipular diversas variveis de um mesmo tipo de dado. Normalmente muitas destas variveis esto relacionadas entre si, por exemplo, os nomes dos 30 alunos de uma turma. Ento, em vez de declararmos 30 variveis vamos usar apenas uma, um array de nomes. Um array uma coleo de variveis de um mesmo tipo ou classe. Os arrays em Java podem ser unidimensionais ou bidimensionais. Nos arrays, as variveis so colocadas em posies contguas. E cada posio do array possui um ndice, que em java comea com zero. Exemplo: array de inteiros chamado nmeros 78 9 17 5 20 ndice 0 1 2 3 4

No array acima o elemento da posio 3, que denotado por numeros[3] tem o valor 5. O tamanho do array acima igual ao nmero de elementos, ou seja 5. Pode-se acessar cada elemento do array atravs do seu ndice, por exemplo: A = numeros[3] numeros[0] = 5 o que altera o elemento Em Java: Para declarar um array podemos fazer desta forma: inteiros double valores[ ] = new double[15]; posies de double String nomes[ ] = new String[10]; Strings ou atribuindo diretamente os valores : int notas[ ] = { 3, 5, 75, 2, 0} cria um array de 5 posies de inteiros j com os valores para cada posio. Exemplo: Um programa em java que l as 4 notas de um aluno, calcula e imprime a mdia, e imprime as notas. public class Notas{ public static void main (String args[ ] ){ int i; float media; float notas[ ] = new float[4]; media = 0; for( i=0; i<4; i++ ){ notas[ i ] = Console.readFloat(Entre com a nota do aluno:); media += notas[ i ]; cria um array de 10 posies de cria um array de 10
PROGRAMADOR DE SISTEMAS

89

A recebe o elemento do array na posio 3 o elemento do array na posio 0 recebe 5,

int notas[ ] = new int[10];

cria um array de 10 posies de

}
90

System.out.println(A mdia da turma + media ); for( i=0; i<4; i++ ){ System.out.println(A nota do aluno + i + + notas[ i ] ); } } }

3 INTEGRAO:
1. Fazer um programa em Java que leia 10 valores de idades de pessoas, calcule e imprima a mdia e a seguir imprima quais idades esto acima e quas esto abaixo da media. Faz parte do trabalho, apresentar algoritmo. 2. Fazer um programa em Java que leia 20 nmeros inteiros e a seguir mais um nmero e verifique se este nmero j havia sido digitado. Faz parte do trabalho, apresentar algoritmo. 3. Faa um programa em Java que leia 25 valores inteiros em qualquer ordem. Depois pergunte imprima na ordem do menor para o maior. Utilize a classificao de bolha (pesquise!!!!). Faz parte do trabalho, apresentar algoritmo.
PROGRAMADOR DE SISTEMAS

Anotaes

Aula 11
92

1 APRESENTAO:
Strings e seus mtodos.

2 DESENVOLVIMENTO:
Como ns j vimos uma String uma sequncia de caracteres. o tipo de dados adequado para manipular palavras, frases, nomes, etc. A grande diferena que uma String um objeto da classe String. Em outras palavras, as Strings possuem mtodos para manipul-las. O mtodo length() retorna um nmero inteiro com o tamanho da String (nmero de caracteres, inclundo os espaos em branco). String frase=Uma String um objeto; int tamanho = frase.length(); Para podermos comparar duas Strings, no podemos usar o operador ==, pois Strings so objetos e no tipos primitivos. Temos que usar o mtodo equals() if (frase.equals(Joo) O mtodo charAt(pos) retorma o caractere que est na posio pos da String (lembrando que o primeiro caractere da String est na posio 0. char letra1 = frase.charAt(0); char letra5 = frase.charAt(4); O mtodo substring() retorna uma parte da String original. No primeiro exemplo ele retorna a parte da String original a partir do terceiro caractere.
PROGRAMADOR DE SISTEMAS

String parte = frase .substring(2); No primeiro exemplo ele retorna a parte da String original do primeiro caractere at o dcimo caractere. String parte2 = frase.substring (0, 10); O mtodo indexOf() retorma a posio da primeira ocerrencia de um caractere na String. int posicao = frase.indexOf(c); O mtodo replace() troca todas as ocorrencias de um caracteres por
PROGRAMADOR DE SISTEMAS

93

outro caractere. frase.replace(a, i). Exemplo: Um programa que imprime uma String invertida. public class Palavras { public static void main(String args[]) { String palavra =engenharia de software; System.out.println(a frase correta +palavra); int i; int tamanho = palavra.length(); System.out.print(a frase invertida :); for(i = tamanho-1; i>=0; i--) {

System.out.print(palavra.charAt(i));
94

} System.out.println( ); } }

3 INTEGRAO:
1. Fazer um programa em Java que leia uma frase e conte e escreva quantas palavras existem . Faz parte do trabalho, apresentar algoritmo. 2. Fazer um programa em Java que leia um nome no formato comum, por exemplo Jos Silva, e o imprima no formato Silva, J.. Faz parte do Trabalho, apresentar algoritmo. 3. Faa um algoritmo que leia do teclado o preo de venda de um determinado produto, o preo de compra. O algoritmo deve calcular o lucro da operao e mostrar as seguintes informaes: a. Lucro inferior a 10.00%; b. Lucro entre 10.01% e 25.00%; c. Lucro entre 25.01% e 35.00%; d. Lucro superior as 35.00%; e. Sem lucro; Alm de informar o lucro, o algoritmo deve: a. Para lucros entre 10% e 25% deve ser calculado um imposto de 7% sobre o lucro; b. Para lucros acima de 25% deve ser calculado um imposto de 11% sobre o lucro;
PROGRAMADOR DE SISTEMAS

c. Para lucros inferiores a 10% deve ser calculado um imposto de 2%; d. Para lucros inferiores a 40% deve ser calculada uma comisso de 15% sobre o lucro; e. Para lucros superiores a 40% deve ser calculada uma comisso de 20% sobre o lucro; Ao final o algoritmo deve mostrar: O preo de compra. O preo de venda. O lucro bruto. O imposto devido. A comisso devida. O lucro lquido. 4. Leia 5 valores para uma varivel A . A seguir mostre quantos valores digitados foram pares, quantos valores digitados foram mpares, quantos foram positivos, quantos foram negativos e quantos so mltiplos de 7 e 3. 5, O Sr. Pacfico Pacato Cordeiro Manso tem um carro pelo qual pagou R$ 10.000,00, na hora de revender, ele pretende ter um lucrinho, mas ter que pagar 20% de imposto sobre o lucro. Faa um algoritmo que calcule para ele o valor do imposto que deve ser pago sobre o lucro a partir do valor de venda que ele informar. 6.) Escreva um algoritmo para criar um programa de ajuda para vendedores. A partir de um valor total recebido do teclado, mostrar: a. o total a pagar com desconto de 10%; b. o valor de cada parcela, no parcelamento de 3 x sem juros;
PROGRAMADOR DE SISTEMAS

95

c. a comisso do vendedor, no caso da venda ser a vista (5% sobre o


96

valor com desconto ) d. a comisso do vendedor, no caso da venda ser parcelada (5% sobre o valor total) 7) Faa um algoritmo que leia 20 nmeros e diga qual o maior e qual o menor nmero lido. 8) Escreva um algoritmo que l um valor n inteiro e positivo e que calcula a seguinte soma: S := 1 + 1/2 1/3 + 1/4 ... + 1/n O algoritmo deve escrever o valor final de S. 9) Uma loja vende bicicletas com um acrscimo de 50% sobre o preo de custo. Ela paga a cada vendedor 2 salrios mnimos mensais, mais uma comisso de 15% sobre o preo de custo de cada bicicleta vendida, dividida igualmente entre eles. Escreva um algoritmo que leia o nmero de empregados da loja, o valor do salrio mnimo, o preo de custo de cada bicicleta, o nmero de bicicletas vendidas, calcule e escreva: o salrio total de cada empregado e o lucro lquido da loja. 10) Um motorista de txi deseja calcular o rendimento de seu carro na praa. Sabendo-se que o preo do combustvel de R$ 2,05, escreva um algoritmo para ler a marcao do odmetro no incio do dia, a marcao no final do dia, o nmero de litros de combustvel gasto e o valor total (R$) recebido dos passageiros. Calcular e escrever a mdia do consumo em Km/l e o lucro lquido do dia.

PROGRAMADOR DE SISTEMAS

11) Monte o algoritmo para calcular o valor de H da equao seguinte: (X e N so valores lidos) frmula 12) Faa um algoritmo que leia 20 nmeros e diga qual o maior e qual o menor nmero lido. Utilize Vetor.
97

PROGRAMADOR DE SISTEMAS

Anotaes

FORMAO INICIAL E CONTINUADA


PROGRAMADOR DE SISTEMAS