Estruturas de Repetição e String. Vanessa Braganholo

Documentos relacionados
Estruturas de Repetição e String

Estruturas de Repe,ção e String

Estruturas de Repe,ção e Manipulação de Texto

Estruturas de Repetição. Vanessa Braganholo

Estruturas de Repetição. Leonardo Murta

Estruturas de Repetição. Vanessa Braganholo

LÓGICA DE PROGRAMAÇÃO (JAVA) ESTRUTURAS REPETIÇÃO. Professor Carlos Muniz

Seleção Múltipla Laços (while, do-while, for) AULA 05

Fluxogramas. Vanessa Braganholo

Operadores e Estruturas de Decisão. Vanessa Braganholo

Variáveis Compostas. Vanessa Braganholo

Fluxogramas. Leonardo Gresta Paulino Murta.

Aula 2 POO 1 Prática. Profa. Elaine Faria UFU

Aula 08 Estruturas de Condição. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

Operadores e Estruturas de Decisão

Programação Orientada a Objetos II Java Segunda aula. Prof. Rogério Albuquerque de Almeida

Unidade 3: Estruturas de Controle Parte 2 - Lógica, SWITCH, FOR, WHILE e DO WHILE Prof. Daniel Caetano

Exercícios Repetição

Sintaxe Básica do Java. João Paulo Q. dos Santos

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: estruturas de repetição While / Do While / For

RESULUÇÃO DOS EXERCÍCIOS E INSTRUÇÕES DE DECISÃO (if{} e else{}) Profº André Aparecido da Silva Disponível em:

Algoritmos II prof. Daniel Oliveira

Sintaxe Básica de Java Parte 2

Linguagem de Programação Java Terceira aula. Prof. Rogério Albuquerque de Almeida

Algoritmos I Aula 13 Linguagem de Programação Java

Aula 4 Estruturas de Controle

Introdução a JAVA. Variáveis, tipos, expressões, comandos e blocos

Vetores Unimensionais

Programação em C. Victor Amorim dos Santos

Aula 03 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

Introdução a JAVA. Variaveis, tipos, expressões, comandos e blocos

Linguagem de programação Java

Prof. Rogério Albuquerque de Almeida. Programação Orientada a Objetos II Java Sexta aula

PROGRAMAÇÃO I A LINGUAGEM DE PROGRAMAÇÃO JAVA II

Arrays em Java. Introdução à Programação. Bruno Cartaxo

Manual de conversão de Pseudo-algoritmo para Java

Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Condicionais e de Repetição

INSTRUÇÕES DE REPETIÇÃO

Organização de programas em Java

Sistemas Operacionais e Introdução à Programação. Introdução à Lógica de Programação: estruturas de repetição

Universidade de Mogi das Cruzes Implementação Orientada a Objetos - Profª. Danielle Martin. Guia da Sintaxe do Java

Lógica e Linguagem de Programação Aula 04 - Estruturas de Repetição Repetição com Teste no Início Enquanto - GABARITO Professor: Danilo Giacobo

Introdução a programação Comandos de repetição

Vetores Unimensionais

Estruturas de Repetição. for() while() do-while() break; continue;

Estrutura de Condição, Escolha e Repetição

Aula de PG Novembro de 2013, LT14D e LT11D - Sobre o Tipo String do Java

Lista de Exercícios de Programação Orientada a Objetos

CADERNO DE EXERCÍCIOS ALGORITMOS

Vetores Unimensionais

Arquivos. Vanessa Braganholo

Programação II. Victor Amorim dos Santos

Programação II. Victor Amorim dos Santos

Linguagem C Estruturas de Repetição

public class ExecScanner1 { public static void main(string[] args) { // TODO code application logic here

Bacharelado em Ciência e Tecnologia Processamento da Informação. Equivalência Portugol Java. Linguagem Java

Estruturas de Decisão

Estruturas de Repetição

Estruturas de Repetição

CONTEÚDO 04 VETORES. Disciplina: Algoritmos e POO Professora: Alba Lopes.

Algoritmos I Aula 14 Java: estruturas de seleção e repetição

Bacharelado em Ciência e Tecnologia Processamento da Informação. Equivalência Portugol Java. Linguagem Java

ESTRUTURAS DE CONTROLE - LAÇOS OU MALHAS DE REPETIÇÃO

Programação de Computadores I. Aula - Vetores. Professor Ilaim Costa Junior.

Programação de Computadores para GI

Exercícios sobre repetição. 1. Escreva um método que lê via teclado 8 números e retorna a quantidade de negativos.

Instituto de Computação Programação de Computadores (TCC00326)

Algoritmos e Lógica de Programação. 6ª Lista de Exercícios Comandos de Repetição

ESTRUTURAS DE REPETIÇÃO - PARTE 2

Oficina de Python Prof. Me. José Carlos Perini

Lista de Exercícios 1 Algoritmos, Pseudocódigo e Fluxograma

Linguagem C ESTRUTURA DE CONTROLE

Laços de repetição for, while, do-while

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan

Organização de programas em Java

CONTEÚDO 05 MATRIZES

Algoritmos e Programação

Lógica de Programação. Lógica de Programação com Java

LINGUAGEM C: COMANDOS DE REPETIÇÃO

LINGUAGEM DE PROGRAMAÇÃO ESTRUTURADA CAPÍTULO 5 ESTRUTURAS DE REPETIÇÃO EM C#

Linguagem C. Programação Estruturada. Estruturas de Controle. Prof. Luis Nícolas de Amorim Trigo

Oficina de Introdução de Programação usando Linguagem Python Prof. Ms. Perini

Organização de programas em Python. Vanessa Braganholo

1ª Lista de Exercícios

Estruturas de Repetição

Transcrição:

Estruturas de Repetição e String Vanessa Braganholo vanessa@ic.uff.br

Aula de hoje... Estruturas de repetição while...do do...while for String Manipulação de textos 2

Estruturas de Repetição Permitem que um bloco de comandos seja executado diversas vezes Repetição condicional: executa um bloco de código enquanto uma condição lógica for verdadeira do...while while...do Repetição contável: executa um bloco de código um número predeterminado de vezes for 3

Repetição condicional do tipo while...do Fluxograma F Condição? V Bloco do loop Pseudocódigo... Enquanto CONDIÇÃO faça INSTRUÇÃO 1 INSTRUÇÃO 2... INSTRUÇÃO N... 4

Repetição condicional do tipo while...do Java... while (CONDIÇÃO) { INSTRUÇÃO 1; INSTRUÇÃO 2;... INSTRUÇÃO N; }... 5

Repetição condicional do tipo while...do Executa o bloco de instruções enquanto a condição for verdadeira A condição é uma expressão booleana que pode fazer uso de quaisquer operadores A condição deve sempre estar entre parênteses Pode-se omitir { e } caso execute somente uma instrução 6

Repetição condicional do tipo while...do Executa o bloco de instruções enquanto a condição for verdadeira A condição é uma expressão booleana que pode fazer uso de quaisquer operadores A condição deve sempre estar entre parênteses Pode-se omitir { e } caso execute somente uma instrução 7 Nenhuma novidade: igual ao if!!!

Exemplo de while...do Programa para calcular fatorial de um número: import java.util.scanner; public class Fatorial { public static void main(string[] args) { Scanner teclado = new Scanner(System.in); System.out.print("Entre com um número inteiro positivo: "); int numero = teclado.nextint(); long fatorial = 1; while (numero > 0) { fatorial *= numero--; } System.out.println("O fatorial desse número é " + fatorial); } } 8

Exemplo de while...do Qual a saída do programa abaixo? public class Loop { public static void main(string[] args) { int i = 0; while (true) System.out.println(i++); } } Evitem forçar loops infinitos sempre que possível! 9

Repetição condicional do tipo do...while Fluxograma F Bloco do loop Condição? V Pseudocódigo... Faça INSTRUÇÃO 1 INSTRUÇÃO 2... INSTRUÇÃO N Enquanto CONDIÇÃO... 10

Repetição condicional do tipo do...while Java... do { INSTRUÇÃO 1; INSTRUÇÃO 2;... INSTRUÇÃO N; } while (CONDIÇÃO);... 11

Repetição condicional do tipo do...while Executa o bloco de instruções enquanto a condição for verdadeira Garante que ocorrerá ao menos uma execução A verificação da condição é feita depois do bloco de instruções Valem as mesmas condições do while...do 12

Exemplo de do...while Programa para calcular fatorial de um número: import java.util.scanner; public class Fatorial { public static void main(string[] args) { Scanner teclado = new Scanner(System.in); System.out.print("Entre com um número inteiro positivo: "); int numero = teclado.nextint(); long fatorial = 1; do { fatorial *= numero--; } while (numero > 0); System.out.println("O fatorial desse número é " + fatorial); } } 13

Mas então... dá no mesmo? Naaaaaaaaaaaaaão!!! Reparem que pedimos para o usuário "Entre com um número inteiro positivo: " Para esse cenário, ambas as estruturas funcionaram O que acontece se pedirmos para o usuário "Entre com um número inteiro não negativo: Qual das duas estruturas resolve o problema corretamente se o usuário entrar com zero? Qual o resultado provido pela outra? Lembrem: fatorial de zero é 1! 14

Repetição contável do tipo for Fluxograma Valor inicial Valor final Incremento cursor Bloco do loop Pseudocódigo... Para CURSOR variando de VALOR INICIAL a VALOR FINAL com passo INCREMENTO INSTRUÇÃO 1 INSTRUÇÃO 2... INSTRUÇÃO N... 15

Repetição contável do tipo for Java... for (INICIALIZAÇÃO; TERMINAÇÃO; INCREMENTO) { INSTRUÇÃO 1; INSTRUÇÃO 2;... INSTRUÇÃO N; }... 16

Repetição contável do tipo for Executa o bloco de instruções por um número predeterminado de vezes Expressão de inicialização 17 Utilizada para iniciar a variável de controle do loop (cursor) Executada uma única vez, antes do primeiro loop Expressão de terminação Termina a execução do loop quando tiver o valor false Verificada antes de cada loop Expressão de incremento Pode incrementar ou decrementar a variável de controle (cursor) Executada no final de cada loop As expressões devem sempre estar entre parênteses e separadas por ponto-e-vírgula Pode-se omitir { e } caso execute somente uma instrução

Exemplo de for Programa para calcular fatorial de um número: import java.util.scanner; public class Fatorial { public static void main(string[] args) { Scanner teclado = new Scanner(System.in); System.out.print("Entre com um número inteiro positivo: "); int numero = teclado.nextint(); long fatorial = 1; for (int i = 1; i <= numero; i++) { fatorial *= i; } System.out.println("O fatorial desse número é " + fatorial); } } 18

Exemplo de for Qual a diferença de for (int i = 1; i <= numero; i++) { fatorial *= i; } Para for (int i = numero; i >= 1; i--) { fatorial *= i; }? 19

String Classe em Java para representar variáveis textuais Possui uma variedade de métodos para manipulação de texto Métodos podem ser chamados a partir de uma variável ou do texto em si System.out.println(texto.charAt(2)); System.out.println( Texto.charAt(2)); Para manipulações mais eficientes com strings, veja a classe StringBuffer 20

Alguns métodos de String equals(object) Informa se duas Strings são iguais Ex.: "Flamengo".equals("flamengo") false Ex.: "Flamengo".equals("Flamengo") true length() Retorna o tamanho da String Ex.: "Flamengo".length() 8 concat(string) Concatena duas strings, de forma equivalente ao operador + Ex.: "Fla".concat("mengo") Flamengo charat(int) Retorna o caractere na posição informada A primeira posição é zero Ex.: "Flamengo".charAt(2) a 21

Alguns métodos de String compareto(string) Retorna 0 se as strings forem iguais, <0 se a string for lexicamente menor e >0 se for lexicamente maior que o parâmetro "Fla".compareTo( Flu") -20 comparetoignorecase(string) Idem ao anterior, sem considerar diferenças entre maiúsculas e minúsculas "Fla".compareToIgnoreCase("fla") 0 indexof(string, int) Busca pela primeira ocorrência de uma substring ou caractere a partir de uma posição informada Ex.: "Fla x Flu".indexOf("Fl", 0)) 0 Ex.: "Fla x Flu".indexOf("Fl", 1)) 6 22

Alguns métodos de String substring(int, int) Retorna a substring que vai da posição inicial (inclusive) até a posição final (exclusive), ambas informadas Ex.: "Flamengo".substring(3,6)) men tolowercase() Retorna a string em minúsculas Ex.: "Flamengo".toLowerCase() flamengo touppercase() trim() Retorna a string em maiúsculas Ex.: "Flamengo".toUpperCase() FLAMENGO Remove espaços antes e depois da string Ex.: " Flamengo ".trim() Flamengo 23

Alguns métodos de String Veja os demais métodos em http://docs.oracle.com/javase/7/docs/api/java/lang/string. html Na verdade, todas as classes de apoio do Java podem ser consultadas em http://docs.oracle.com/javase/7/docs/api/ 24

Exemplo Programa para gerar a citação a partir de um nome Ex.: Leonardo Gresta Paulino Murta MURTA, L. G. P. import java.util.scanner; public class Citacao { public static void main(string[] args) { Scanner teclado = new Scanner(System.in); String iniciais = ""; String sobrenome = ""; System.out.print("Entre com um nome completo: "); String nome = teclado.nextline().trim(); 25

Exemplo int inicio = 0; int fim = nome.indexof(" ", inicio); while (fim!= -1) { iniciais += nome.substring(inicio, inicio + 1) + ". "; inicio = fim + 1; fim = nome.indexof(" ", inicio); } sobrenome = nome.substring(inicio).touppercase(); } } System.out.print(sobrenome + ", "); System.out.println(iniciais.toUpperCase().trim()); 26

Exercício Faça um programa para montar a tabela de multiplicação de números de 1 a 10 (ex.: 1 x 1 = 1, 1 x 2 = 2, etc.) Faça um programa para determinar o número de dígitos de um número informado (sem usar String) 27

Exercício Faça um programa para calcular a série de Fibonacci para um número informado pelo usuário, sendo F(0) = 0, F(1) = 1 e F(n)= F(n-1)+F(n-2) Por exemplo, caso o usuário informe o número 9, o resultado seria: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34 28

Exercício Faça um programa para listar todos os divisores de um número ou dizer que o número é primo caso não existam divisores Ao final, verifique se o usuário deseja analisar outro número 29

Exercício Faça um programa que calcule o retorno de um investimento financeiro fazendo as contas mês a mês, sem usar a fórmula de juros compostos O usuário deve informar quanto será investido por mês e qual será a taxa de juros mensal O programa deve informar o saldo do investimento após um ano (soma das aplicações mês a mês considerando os juros compostos), e perguntar ao usuário se ele deseja que seja calculado o ano seguinte, sucessivamente Por exemplo, caso o usuário deseje investir R$ 100,00 por mês, e tenha uma taxa de juros de 1% ao mês, o programa forneceria a seguinte saída: Saldo do investimento após 1 ano: 1280.9328043328942 Deseja processar mais um ano? (S/N) 30

Exercício Escreva um programa em Java que imprime na tela os n primeiros números perfeitos. Um número perfeito é aquele que é igual à soma dos seus divisores. Por exemplo, 6 = 1 + 2 + 3. 31

Exercício Um número inteiro é considerado triangular se este for o produto de 3 números inteiros consecutivos, como, por exemplo, 120 = 4 x 5 x 6 Elabore um programa que, após ler um número n do teclado, verifique se n é triangular 32

Exercício Elabore um programa em Java que leia n valores e mostre a soma de seus quadrados. 33

Exercício Faça um programa que lê dois valores x e y, e calcula o valor de x dividido por y, além do resto da divisão. Não é permitido usar as operações de divisão e resto de divisão do Java (use apenas soma e subtração). 34

Exercício Escreva um programa em Java que permita a entrada de uma String S e então exiba na tela todas as possíveis rotações à esquerda de S. Por exemplo, se o usuário digitar Banana, o programa deve exibir: Banana ananab nanaba anaban nabana abanan Banana 35

Exercício Faça um programa em Java que lê uma String e verifica se essa String contém um número real válido. Considere que o número real pode ser positivo ou negativo, e que o separador decimal será o símbolo., quando houver Exemplo: -1.22 é um número real 10 é um número real 12.A não é um número real 36

Exercício Faça um programa para justificar um texto com um número de colunas informado pelo usuário Por exemplo, para o texto Este é um exemplo de texto que vamos justificar usando o nosso programa quando justificado em 18 colunas, teríamos: Este é um exemplo de texto que vamos justificar usando o nosso programa Dica: o método lastindexof(string, int) pode ser útil 37

Referências Slides de Leonardo Murta 38

Estruturas de Repetição e String Vanessa Braganholo vanessa@ic.uff.br