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

Documentos relacionados
Estruturas de Repetição e String

Estruturas de Repe,ção e String

Estruturas de Repetição e String. Vanessa Braganholo

Estruturas de Repetição. Vanessa Braganholo

Estruturas de Repetição. Leonardo Murta

Estruturas de Repetição. Vanessa Braganholo

Linguagem Computacional. Estruturas de Controle: Estruturas de Repetição. Prof. Dr. Adriano Cansian Prof. Dr. Leandro Alves Neves

Fluxogramas. Leonardo Gresta Paulino Murta.

Sumário. Ciência da Computação. Prof. Dr. Leandro Alves Neves. Aula 10. Algoritmos e Programação. Enquanto (Teste no início) Repeat (Teste no final)

Fluxogramas. Vanessa Braganholo

Estrutura de decisão

Teoria da Computação e Algoritmos. Introdução à Linguagem Pascal. ALGORITMO <Nome do algoritmo>; <definições>; INÍCIO <Comandos>; FIM.

UNISINOS - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) Curso: Informática

Linguagem Pascal. Prof. Antonio Almeida de Barros Junior

Organização de programas em Pascal

I1, I2 e In são instruções simples ou estruturadas da linguagem Pascal.

Sequencial Estrutura de controlo mais simples. As instruções são executadas sequencialmente.

Universidade Federal de Uberlândia Faculdade de Computação. Estruturas de repetição

O AMBIENTE DE PROGRAMAÇÃO VISUAL -PLANO DE ENSINO. Prof. Angelo Augusto Frozza, M.Sc.

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

VARIÁVEIS NUMÉRICAS : integer - Números inteiros entre e real - Números reais de 11 algarismos significativos.

UNISINOS - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) Curso: Informática

Programação II. Victor Amorim dos Santos

Linguagem C estruturas de repetição

Computação Eletrônica

Resumindo As estruturas de repetição são utilizadas quando necessitamos realizar comandos diversas vezes

Estruturas de Repetição

Exercícios. Resposta: a) var valor: real; i: integer. b)

Algoritmos - 5. Alexandre Diehl. Departamento de Física - UFPel

Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Programação de Computadores I - BCC701

Linguagem de programação: Pascal

Lógica e Linguagem de Programação Aula 04 - Estruturas de Repetição Repetição com Teste no Final - Repita Até - GABARITO Professor: Danilo Giacobo

Sintaxe do Pascal Simplificado Estendido de 12 novas construções em Notação EBNF (BNF estendida)

Programação de Computadores II

Computação 1 - Python Aula 7 - Teórica: Estrutura de Repetição com teste de parada: while 1/ 23

PROCEDURES E FUNÇÕES PRÉ DEFINIDAS Linguagem de programação PASCAL prof. Vera Alves FUNÇÕES ARITMÉTICAS

Noções de algoritmos - Aula 1

Programação em C. Victor Amorim dos Santos

Introdução à Ciência da Computação

UNISINOS - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) Curso: Informática

Python - Comandos de Repetição

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

Disciplina Programação Prof. Esp. Armando Hage. Programação em Turbo Pascal

LISTA 14 Gabarito. 1) Preparar um algoritmo para calcular a soma de 100 termos da seguinte série:

Linguagem e Técnicas em Programação. Gilson de Souza Carvalho

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

Para começar... Algoritmos e Lógica de Programação 80 horas // 4 h/semana. Para começar... Comando REPITA (repeat) Comando REPITA (repeat)

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

Tutorial de Turbo Pascal

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

Linguagem de Programação Pascal - Introdução

MANIPULAÇÃO DE STRINGS

Linguagem Pascal. Prof. Sérgio Rodrigues. É a descrição, de forma lógica, dos passos a serem executados no cumprimento de determinada tarefa;

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

Resumo 2 - Mapeamento Portugol-Pascal

Lógica de Programação

Exercícios Repetição

Computação 1 - Python Aula 7 - Teórica Estrutura de Repetição com Teste de Parada: while. João Carlos, Carla Delgado, Ana Luisa Duboc 1/ 18

Estruturas de Controlo Repetitivo. APROG (Civil) Aula 8

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

A resposta apresentada em aula, no quadro, (em Chapin e/ou Português Estruturado) está correta?

Programação II. Victor Amorim dos Santos

Linguagem Pascal. Definição e Tipos de Dados. Professora Lara Popov Zambiasi Bazzi Oberderder. Linguagem PASCAL 1

Introdução à Computação - aulas 01 e 02 -

Procedimento. Função. Selecção Condicional - a instrução if-then-else. expressão if lógica then instrução else instrução

Operadores e Estruturas de Decisão

Notas de Aula de Algoritmos e Programação de Computadores

Minicurso de JavaScript PET Sistemas de Informação Segundo Dia Anthony Tailer. Clecio dos Santos. Rhauani Fazul.

Linguagem e Técnicas em Programação. Gilson de Souza Carvalho

Desenvolvimento Web. JavaScript aula II variáveis (cont.) e diálogos. Professor: Bruno Gomes

MC102 Algoritmos e Programação de Computadores

Exercícios de Fixação Conteúdo das aulas 03 a 06

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

Aula 11: Desvios e Laços

Transcrição:

Estruturas de Repe,ção e Manipulação de Texto Leonardo Gresta Paulino Murta leomurta@ic.uff.br

Estruturas de repe<ção while repeatun-l for Aula de hoje String Manipulação de textos 2

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

Repe<ção condicional do <po while 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

Repe<ção condicional do <po while Pascal while CONDIÇÃO do INSTRUÇÃO; OU while CONDIÇÃO do begin INSTRUÇÃO 1; INSTRUÇÃO 2; INSTRUÇÃO N; end; 5

Repe<ção condicional do <po while 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 Parece com o if, mas repete diversas vezes enquanto a condição for verdadeira 6

Exemplo de while Programa para calcular fatorial de um número: program fatorial; var n, fat : integer; begin write('entre com um número inteiro positivo: '); readln(n); fat := 1; while n > 0 do begin fat := fat * n; n := n - 1; end; writeln('o fatorial desse número é ', fat); end. 7

Exemplo de while Qual a saída do programa abaixo? program fatorial; var i : integer; Begin i := 0; while true do begin writeln(i); i := i + 1; end; end. Evitem loops infinitos! 8

Repe<ção condicional do <po repeatun-l Fluxograma Bloco do loop V Condição? F Pseudocódigo Repita INSTRUÇÃO 1 INSTRUÇÃO 2 INSTRUÇÃO N até CONDIÇÃO 9

Repe<ção condicional do <po repeatun-l Pascal repeat INSTRUÇÃO 1; INSTRUÇÃO 2; INSTRUÇÃO N; until CONDIÇÃO; 10

Repe<ção condicional do <po repeatun-l Executa o bloco de instruções até que a condição seja verdadeira CUIDADO: a semân<ca de parada é oposta à do while!!! Garante que ocorrerá ao menos uma execução A verificação da condição é feita depois do bloco de instruções 11

Exemplo de repeatun-l Programa para calcular fatorial de um número: program fatorial; var n, fat : integer; begin write('entre com um número inteiro positivo: '); readln(n); fat := 1; repeat fat := fat * n; n := n - 1; until n < 1; writeln('o fatorial desse número é ', fat); end. 12

Mas então dá no mesmo? Naaaaaaaaaaaaaão!!! Reparem que pedimos para o usuário "Entre com um número inteiro posi,vo: " 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 nega,vo: " 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! 13

Repe<ção contável do <po for Fluxograma Valor inicial Valor final cursor Bloco do loop Pseudocódigo Para CURSOR variando de VALOR INICIAL a VALOR FINAL INSTRUÇÃO 1 INSTRUÇÃO 2 INSTRUÇÃO N 14

Repe<ção contável do <po for Pascal for CURSOR := VALOR INICIAL to/downto VALOR FINAL do INSTRUÇÃO 1; for CURSOR := VALOR INICIAL to/downto VALOR FINAL do begin INSTRUÇÃO 1; INSTRUÇÃO 2; INSTRUÇÃO N; end; OU 15

Repe<ção contável do <po for Executa o bloco de instruções por um número predeterminado de vezes Cursor Pode ser do <po integer ou char Tem seu valor acessado durante a execução Valor inicial e final Pode ser uma variável Pode ser uma expressão Pode ter valores inteiros ou char, em função do <po do cursor Pode ser crescente (to) ou decrescente (downto) 16

Exemplo de for Programa para calcular fatorial de um número: program fatorial; var i, n, fat : integer; begin write('entre com um número inteiro positivo: '); readln(n); fat := 1; for i := 1 to n do fat := fat * i; writeln('o fatorial desse número é ', fat); end. 17

Qual a diferença de for i := 1 to n do fat := fat * i; Para for i := n downto 1 do fat := fat * i;? Exemplo de for 18

Manipulação de texto Existe uma variedade de funções para manipulação de texto Veremos aqui funções padrões, mas há outras funções no módulo módulo stru,ls Necessita uses stru<ls; logo após o program ; hdp://www.freepascal.org/docs- html/rtl/stru<ls/ index- 5.html 19

Manipulação de texto texto1 = texto2 Informa se duas strings são iguais Ex.: Flamengo = flamengo à false Ex.: Flamengo = Flamengo à true length(texto : string) Retorna o tamanho da string Ex.: length( Flamengo ) à 8 texto1 + texto2 Concatena duas strings Ex.: Fla + mengo à Flamengo texto[posicao : integer] Retorna o caractere na posição informada Ex.: s := Flamengo ; s[2] à l 20

Manipulação de texto texto1 < texto2 (valem os demais operadores relacionais) Retorna true se texto1 for lexicamente menor que texto2 Fla < Flu à true pos(subtexto : string, texto : string) Busca pela primeira ocorrência de subtexto em texto Retorna zero caso não encontre nenhuma ocorrência Ex.: pos( Flu, Fla x Flu ) à 7 Ex.: pos( Bota, Fla x Flu ) à 0 21

Manipulação de texto copy(texto : string, inicio: integer, tamanho : integer) Retorna a substring do texto com início e tamanho indicados Ex.: copy( Flamengo, 4, 3) à men delete(texto : string, inicio: integer, tamanho : integer) Remove a substring do texto com início e tamanho indicados Ex.: s := Flamengo ; delete(s, 1, 3) à s = mengo insert(subtexto : string, texto : string, posicao: integer) Insere a substring no texto em uma determinada posição Ex.: s := Flago ; insert( men, s, 4) à s = Flamengo 22

Manipulação de texto lowercase(texto : string) Retorna a string em minúsculas Ex.: lowercase( Flamengo ) à flamengo upcase(texto : string) Retorna a string em maiúsculas Ex.: upcase( Flamengo ) à FLAMENGO str(numero : integer, texto : string) Converte um número em texto str(123, s) à s = 123 val(texto : string, numero : integer/real, erro : integer) Converte um texto em número Caso algum caractere impeça a conversão, a posição do caractere é indicada como código do erro val( 123, n, c) à n = 123, c = 0 val( 12x3, n, c) à n = 0, c = 3 23

Exemplo Programa para gerar a citação a par<r de um nome Ex.: Leonardo Gresta Paulino Murta à MURTA, L. G. P. program teste; var nome, iniciais : string; posicao : integer; begin iniciais := ''; write('entre com um nome completo: '); readln(nome); 24

Exemplo posicao := pos(' ', nome); while posicao <> 0 do end. begin end; iniciais := iniciais + copy(nome, 1, 1) + '. '; delete(nome, 1, posicao); posicao := pos(' ', nome); writeln(upcase(nome) + ', ' + upcase(iniciais)); 25

Exercício Faça um programa para montar a tabela de mul<plicaçã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 26

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 27

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 28

Exercício Faça um programa que calcule o retorno de um inves<mento financeiro fazendo as contas mês a mês, sem usar a fórmula de juros compostos O usuário deve informar quanto será inves<do por mês e qual será a taxa de juros mensal O programa deve informar o saldo do inves<mento 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 inves<r 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) 29

Exercício Faça um programa para jus<ficar um texto com um número de colunas informado pelo usuário Por exemplo, para o texto Este é um exemplo de texto que vamos jus<ficar usando o nosso programa. quando jus<ficado em 18 colunas, teríamos: Este é um exemplo de texto que vamos justificar usando o nosso programa. Dica: veja as funções posex, rpos e rposex do módulo stru<ls 30

Estruturas de Repe,ção e Manipulação de Texto Leonardo Gresta Paulino Murta leomurta@ic.uff.br