Anda di halaman 1dari 13

08/08/2010

Aula 3

Introduo a I/O Operadores Estruturas de Controle

Prof. Rafael Garcia Barbosa

Introduo a I/O
Escrita

Os programas normalmente precisam interagir de alguma forma com o usurio Essa interao pode ser do usurio para o computador (entrada de dados) ou vice-versa (sada de informaes) parte do computador responsvel por tais tarefas d-se o nome de Entrada/Sada, tambm conhecida como E/S ou I/O (do ingls In/Out)

08/08/2010

Introduo a I/O
Escrita

As linguagens C e Java, por exemplo, no definem nenhuma palavra-chave para realizar operaes de E/S

Toda tarefa desse tipo deve ser efetuada atravs de funes externas includas em conjuntos de rotinas chamados bibliotecas

Em C, para utilizar rotinas de bibliotecas temos que incluir chamadas a essas bibliotecas no programa

O comando #include inclui no programa o contedo do arquivo de cabealho de fluxo de entrada/sada

Em Java, existem objetos para efetuar a leitura e a escrita

Introduo a I/O
Escrita

A forma bsica para exibio de informaes para o usurio atravs do comando:


System.out.println(Ol ); System.out.print(Boa ); System.out.print(noite ); Ol Boa noite

A verso 5 do Java trs outra forma de escrita similar utilizada na linguagem C:


System.out.printf(%s\n,Ol ); System.out.printf(A soma de 2+2 : %d, 4); Ol A soma de 2+2 : 4

08/08/2010

Introduo a I/O
Escrita Caracteres Especiais
Caractere %d %<largura>d %<flag>d %X %f %.<preciso>f %e %s %b %tc %tT Valor Passado Inteiro Inteiro Inteiro Inteiro Ponto-flutuante Ponto-flutuante Ponto-flutuante String Booleano Data Data Exemplo printf(%d, 2) printf(%6d, 2) printf(%06d, 2) printf(%X, 10) printf(%f, 2.5) printf(%.2f, 2.5) printf(%6.2f, 2.5) printf(%e, 2534.9) printf(%s, Unifor) printf(%b, true) printf("%tc", Calendar.getInstance()) printf("%tT", ...) 2 2 000002 A 2,500000 2,50 2,50 2.534900e+03 Unifor true 2008-02-13 14:51:56 Resultado

Introduo a I/O
Escrita - Exemplo

System.out.printf("%1$td/%1$tm/%1$tY, Calendar.getInstance()); String data = String.format("%1$td/%1$tm/%1$tY", Calendar.getInstance()); System.out.println(data);

13/02/2008 13/02/2008

08/08/2010

Introduo a I/O
Leitura

Para ler informaes, a linguagem Java utiliza a classe Scanner:

Scanner in = new Scanner( System.in ); int x = in.nextInt( ); String s = in.next( ); System.out.println( x + s );

1 Unifor 1Unifor

Introduo a I/O
Escrita

Em C++, a forma bsica de exibio de informaes para o usurio atravs do comando cout:
#include <iostream> //para o cout #include <stdio.h> //para o printf cout << "Ol "; cout << "Boa\n"; cout << "Noite"; Ol Boa Noite

08/08/2010

Introduo a I/O
Leitura

A leitura pode ser efetuada atravs do comando cin:


int x; cin >> x; string y; cin >> y; cout << x << " " << y; 1 Teste 1 Teste

Operadores
Lgicos

Operadores booleanos
Operao NOT OR* AND* XOR
* Em java

Operador ! | & ^

Operadores curto circuito


Operao AND OR Operador && ||
String s = null; if ( ( s != null ) && ( s.length() > 10 ) ) //faa alguma coisa

08/08/2010

Operadores
Relacionais e de Igualdade

Operao Igualdade Diferena Relacionais

Operador == != > >= < <=

Operadores
Aritmticos

Operao Soma Subtrao Multiplicao Diviso Resto da Diviso

Operador + * / %

08/08/2010

Operadores
Incremento e Decremento

Existem 4 operadores especiais que incrementam/decrementam uma varivel em 1


Nome Pr-incremento Ps-incremento Pr-decremento Ps-decremento ++x x++ x x Operador

int x = 1; int y = ++x; int z = x++;

int a = 10; int b = 5; int c = a b + b;

Operadores
De Atribuio Compostos

Operador += = *= /= %=

Exemplo x += 1 x = 1 x *= 2 x /= 2 x %= 2

08/08/2010

Operadores
A Nvel de Bit

Lgicos
Operao Complemento OR AND XOR Operador ~ | & ^

Deslocamento
Operao Right Shift (com sinal) Right Shift (sem sinal)* Left Shift
* Em java

Operador >> >>> <<

Exerccios

Implemente um algoritmo que exibe os 10 primeiros termos da srie Fibonacci

1, 1, 2, 3, 5, 8, 13,

Implemente um algoritmo para calcular o fatorial de um nmero digitado pelo usurio

5! = 5x4x3x2x1 = 120 Implemente um algoritmo para exibir a representao binria de um inteiro digitado pelo usurio (pelo menos 8 bits) Implemente um algoritmo para imprimir a data atual do sistema no seguinte formato:

Desafios:

15 de Fevereiro de 2008 - Sexta-feira (17 horas, 51 minutos e 14 segundos)

08/08/2010

Estruturas de Controle
Comandos de Controle de Fluxo
17

Os comandos de controle de fluxo se dividem em trs categorias:


Seleo
if,

if-else, switch do-while, for continue, return, try-catch, finally

Iterao
while,

Transferncia
break,

Estruturas de Controle
Comandos de Seleo IF
18

if ( expresso booleana ) faaAlgumaCoisa(); if ( expresso booleana ) faaAlgumaCoisa(); else facaOutraCoisa(); if ( expresso booleana ) { faaAlgumaCoisa(); } else { facaOutraCoisa(); }

int x = 8; if ( x > 12 ) System.out.println( Boa Tarde ); else System.out.println( Bom Dia );

Bom Dia

08/08/2010

Estruturas de Controle
Comandos de Seleo SWITCH
19

expresso s pode ser: byte, short, int, char

char c = t; switch ( c ) { case d: System.out.println( Bom Dia ); case t: System.out.println( Boa Tarde ); }

switch ( expresso ) { case <valor1>: faaAlgumaCoisa(); break; case <valor2>: faaOutraCoisa(); break; default: faaQualquerCoisa(); break; }

Boa tarde

Estruturas de Controle
Comandos de Iterao WHILE
20

while ( expresso booleana ) faaAlgumaCoisa(); while ( expresso booleana ) { faaAlgumaCoisa(); }

int i = 0; while ( i < 10 ) { System.out.print( i + , ); i++; }

0,1,2,3,4,5,6,7,8,9,

10

08/08/2010

Estruturas de Controle
Comandos de Iterao DOWHILE
21

do faaAlgumaCoisa(); while ( expresso booleana ); do { faaAlgumaCoisa(); } while ( expresso booleana );

int i = 0; do { System.out.print( i + , ); i++; } while ( i < 10 );

0,1,2,3,4,5,6,7,8,9,

Estruturas de Controle
Comandos de Iterao FOR
22

for ( inicializao; teste; incremento ) faaAlgumaCoisa();

for ( int i = 0; i < 10; i++ ) { System.out.print( i + , ); }

for ( inicializao; teste; incremento ) { faaAlgumaCoisa(); }

0,1,2,3,4,5,6,7,8,9,

11

08/08/2010

Estruturas de Controle
Comandos de Transferncia BREAK
23

for ( inicializao; teste; incremento ) { faaAlgumaCoisa(); break; } <rtulo>: for ( inicializao; teste; incremento ) { faaAlgumaCoisa(); break <rotulo>; }

laco: for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { System.out.print("A "); if (j == 2) break laco; System.out.print("B "); } }

ABABA

Estruturas de Controle
Comandos de Transferncia CONTINUE
24

for ( inicializao; teste; incremento ) { faaAlgumaCoisa(); continue; } <rtulo>: for ( inicializao; teste; incremento ) { faaAlgumaCoisa(); continue <rotulo>; }

laco: for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { System.out.print("A "); if (j == 2) continue laco; System.out.print("B "); } }

AB ABAAB ABAAB ABA

12

08/08/2010

Exerccios
25

Escreva um algoritmo para imprimir os nmeros pares de 1 a 50 Escreva um algoritmo para imprimir os nmeros primos de 2 at um valor digitado pelo usurio Desafio:

Escreva um algoritmo para imprimir em outro formato uma data digitada pelo usurio (utilize o comando switch)

Valor digitado: 12/10/1998 Valor impresso: 12 de Outubro de 1998

13