• Nenhum resultado encontrado

Estruturas de Repetição

N/A
N/A
Protected

Academic year: 2021

Share "Estruturas de Repetição"

Copied!
10
0
0

Texto

(1)

Estruturas de Repetição

Bem vamos pensar um pouco, lembra do nosso programa media? Veja o código abaixo para relembrarmos.

Joao

Vamos imaginar que precisamos fazer isso para 3 alunos com suas notas e suas médias, na forma que estamos programando, vamos ter que criar 3 variáveis para nomes, 9 variáveis para notas, mais 3 variáveis para média, sem contar a quantidade imensa de linhas de programação, que precisaremos escrever. Então quando precisamos repetir operações, vamos usar as Estruturas de Repetição, em Pascal nos temos 3 principais For, While e o Repeat.

A primeira estrutura que vamos ver e a For que conhecemos pôr Para- Faça

ESTRUTURA DE REPETIÇÃO FOR

Essa estrutura de repetição é utilizada quando se sabe o número de vezes em que um trecho do programa deve ser repetido.

Este comando usa uma variável de controle e depois faz uma INCREMENTAÇÃO (Palavra Nova)até que o valor seja alcançado.

INCREMENTAR é:

1. desenvolvimento 2. aumento

3. ato de crescer 4. ato de aumentar

Em programação o significado é o mesmo, iremos aumentar algo já existente. E também existe a opção de decrementar algo já existente, ou seja, diminuir/retirar.

Incrementar é um termo comum na programação, que se refere a adicionar 1 a uma variável, e armazenar o valor na própria variável.

(2)

FOR variável de controle:=valor inicial TO valor final DO begin

Seqüência A de comandos end;

Exemplos vamos fazer um programa que irá imprimir de 1 até 10 usando o FOR. Program numeros_1_a_10; var i:integer; Begin For i:=1 to 10 do begin Writeln(i); End; End.

2 – Vamos criar um programa que vamos imprimir somente os números impares de 1 até 50 (SOMENTE OS IMPARES).

Program Imprime_Impares; var i:integer; Begin For i:=1 to 50 do begin IF i mod 2 = 1 then begin Writeln(i); end; End; End.

Mas podemos definir por uma variável a quantidade de vezes que o laço de repetição deve executar?

SIM!!!

Vamos criar um programa onde vamos digitar a quantidade de números que queremos que nosso programa imprima na tela. Program Quant_numeros;

var

nome:string; i,qtde:integer; Begin

Write(Qtde2 de vezes para o laço executar: '); read(qtde);

For i:=1 to qtde do begin

writeln(i); End;

(3)

Antes de continuarmos vamos mexer no nosso programa “Media_Aluno”, vamos fazer o programa rodar para 3 alunos no princípio. Program Media_Aluno ; var nome:string; nota1,nota2,nota3,media:real; i:integer; Begin FOR i:=1 to 3 DO BEGIN

Write('Digite nome do aluno: '); Read(nome); Write('Digite nota 01: '); Read(nota1); Write('Digite nota 02: '); Read(nota2); Write('Digite nota 03: '); Read(nota3);

media := (nota1 + nota2 + nota3)/3; IF media >=6 then Writeln(media:2:2,' Aprovado'); else Writeln(media:2:2,' Reprovado'); END; End.

Vamos conhecer agora a ideia de

variável acumuladora

, mas que coisa é essa?? Vamos usar uma variável para acumular valores que são passados dentro da Estrutura de Repetição, no caso agora o FOR.

Exemplo vamos fazer o usuário digitar 5 números qualquer dentro de um FOR e depois vamos apresentar a soma destes números. Program Soma_Numeros; var i, acumula,num:integer; Begin For i:=1 to 5 do begin write('Digite um número: '); read(num);

acumula := acumula + num; End;

Writeln(' Soma total deu: ', acumula) End.

(4)

Vamos a mais um exercício com uso de variável acumuladora, vamos criar um programa onde será digitado 6 números, o programa deverá retornar no final, a quantidade de números pares digitados. Program Conta_Par; var i,num,conta_par:integer; Begin For i:=1 to 6 Do begin Write('Digite um número: '); read(num);

if num mod 2 = 0 then

conta_par:= conta_par + 1; end;

Writeln('Qtde de pares digitados: ',conta_par); End.

Vamos a novidades!!!

Vamos agora criar um programa onde vamos digitar 5 números de no final mostrar qual o menor número digitado e mostrar a soma total dos números digitados. Vamos ver de duas

formas esta e a primeira forma. PRIMEIRA FORMA Program Ver_menor_1 ; var i,menor,num,soma:integer; Begin menor:=99999999; soma:=0; For i:=1 to 5 do begin write('Digite um número: '); read(num); soma:=soma + num; if menor > num then begin

menor :=num; end;

End;

Writeln('Menor número ', menor); Writeln('Soma Total ',soma); End.

(5)

SEGUNDA FORMA Program Ver_menor_2; var i,menor,num:integer; Begin For i:=1 to 5 do begin write('Digite um número: '); read(num); soma:=soma + num; if i = 1 then begin menor := num; end else

if menor > num then begin

menor :=num; end;

End;

Writeln(' menor número ', menor) Writeln('Soma Total ',soma); End.

EXERCÍCIO SALA DE AULA

1 – Crie um programa onde será digitado 10 números, o programa deverá retornar no final a soma total dos números, a quantidade de números pares digitados e também a quantidade de números impares digitados.

10 minutos para tarefa.

2- Crie um programa onde será digitado 10 números o programa deverá retornar o menor número par digitado.

(6)

Olhe que legal o que a linguagem Pascal pode fazer (Claro outras linguagens também)!!!

Aqui não vamos digitar o valor para a variável nome, vamos atribuir diretamente como você notará.

Program letras; var nome:string; i:integer; Begin nome:='ANA MARIA';

{Espaço em branco também é gente, tem contar no total de letras do nome}

For i:=1 to 9 do begin

writeln(nome[i]);

{Notou como estamos tratando a variável nome??? Vamos aprender mais para a frente}

End; End.

Só pra termos uma visão de como a variável nome está se comportando.

nome

1 2 3 4 5 6 7 8 9 A N A M A R I A

Mas antes que pergunte tem como saber de forma, digamos “automática” a quantidade de letras de uma variável de tipo string(caracter)? SIMMMM...

Vamos aprender mais uma coisinha nova? Que chamamos de funções.

Mas afinal o que são funções?????

Funções são sub-rotinas criadas em nosso programa para executar tarefas pré-determinadas e retornar o resultado da execução para que foram criadas.

Para executar estas rotinas elas recebem valores, que vamos chamar de parâmetros e depois retornam o resultado no mesmo tipo de parâmetros que receberam ou em outro, vamos ver isso na prática.

Temos vários tipos de funções, para manipular string, cálculos matemáticos, manipulação de arquivos, etc...

(7)

LENGTH

sintaxe: LENGTH(Stri);

Em livros apostilas podem (vão encontrar assim)

Length(var:string):inteiro  Significa que a função recebe uma string e retorna um valor inteiro.

Descrição: Esta função retorna a quantidade de caracteres em Stri,

Nome:= ‘Ana Maria’;

k:= LENGTH(Nome); o valor da variável k será 9  Espaço em branco conta.

Vamos criar um programa onde será atribuída uma frase a uma variável, o programa deverá retornar a quantidade da vogal “A” dentro desta frase.

Vamos considerar que a frase esteja toda em maiúsculo.

'O MAL QUE OS HOMENS FAZEM SOBREVIVE A ELES; O BEM GERALMENTE É SEPULTADO COM SEUS OSSOS – W. SHAKESPEARE';

Program Conta_Letra_A ; Var

frase:string;

i,tam,conta_A:integer; Begin

Frase:='O MAL QUE OS HOMENS FAZEM SOBREVIVE A ELES; O BEM GERALMENTE É SEPULTADO COM SEUS OSSOS – W. SHAKESPEARE'; tam:=length(frase);

For i:= 1 to tam do begin

if frase[i] = 'A' then begin

conta_A:= conta_A+1; end;

end;

Writeln('quantidade de letras A ',conta_A); End.

E vamos aprender mais uma novidade, CONCATENAÇÃO !!, mas o que é concatenar?

Em programação é uma palavra chique para juntar strings, isso para palavras inteiras ou letras à letra.

Vamos ver isso na prática.

Veja o exemplo abaixo, vamos criar um programa que irá juntar duas palavras em uma palavra nova palavra.

(8)

Program Concatenar; var palavra1,palavra2,novapalavra:string; Begin Write('Digite palavra 01: '); read(palavra1); Write('Digite palavra 02: '); read(palavra2);

novapalavra:= palavra1 + palavra2; writeln(novapalavra);

End.

E vamos fazer mais uma concatenação, mas esta vai ser MUITO LEGAL!!! Diria eu...

Vamos criar um programa que irá receber uma frase e vamos criar uma nova palavra, mas somente com as VOGAIS...

Program Concatenar_Vogais; var

frase,novapalavra:string; i,tam:integer;

Begin

frase:='PRATICAND E A MELHOR FORMA DE APRENDER'; tam:= Length(frase);

For i:=1 to tam do begin

if (frase[i]='A') OR (frase[i]='E') OR (frase[i]='I') OR (frase[i]='O') OR (frase[i]='U') then

novapalavra:= novapalavra + frase[i]; end;

writeln(frase);

writeln(novapalavra); readkey;

End.

EXERCÍCIO SALA DE AULA

1-Crie um programa que uma variável string vai receber a seguinte frase (use ela literalmente como está sendo apresentada)

‘ EU ESTOU MELHORANDO A CADA DIA’, O programa deverá mostrar a quantidade de espaços em branco ‘ ‘ nesta frase.

(9)

Antes de seguirmos com funções vamos aprender mais uma novidade, e seu eu quiser escrever os números em ordem decrescente digamos de 100 a 1 podemos, claro se perguntei e que deve ter um jeito, observe o código abaixo

Program Numeros_Ordem_Descrente; var

i:integer; Begin

for i:=10 downto 1 do begin

Writeln(i); end;

End.

Como podemos notar quanto partimos de um número maior para o menor usamos o Downto para DECREMENTAR (palavra nova) e vamos concatenar as letras, criando uma palavra nova.

Vamos ver mais um código muito SHOW !!! Vamos pegar uma frase/palavra e reescrever de trás para frente.

Vamos usar o que aprendemos até aqui, variável acumuladora e comando DOWNTO. Program Frase_de_tras_para_Frente; var frase,novafrase:string; tam,i:integer; Begin

frase:='NUNCA DEIXE NINGUEM DIZER QUE VOCE NÃO É CAPAZ, VOCÊ JÁ SABE DISSO - VANDINHO COACH’;

tam:= length(frase); for i:=tam downto 1 do begin

{Observe aqui a cada passagem pelo laço de repetição nova frase vai recebendo uma letra e como começamos de trás para frente, a variável novafrase é a nossa frase ao contrário} novafrase:=novafrase + frase[i];

end;

writeln(novafrase); End.

(10)

Referências

Documentos relacionados

Nessa situação temos claramente a relação de tecnovívio apresentado por Dubatti (2012) operando, visto que nessa experiência ambos os atores tra- çam um diálogo que não se dá

O score de Framingham que estima o risco absoluto de um indivíduo desenvolver em dez anos DAC primária, clinicamente manifesta, utiliza variáveis clínicas e laboratoriais

O destaque é dado às palavras que abrem signi- ficados e assim são chaves para conceitos que fluem entre prática poética na obra de arte e sua reflexão em texto científico..

2) Para fins de entrega da documentação referente à Prova de Títulos, o candidato ou seu respectivo Procurador, deverá preencher o Formulário de Entrega dos Documentos

Feitiço do Segredo: deposita um segredo numa pessoa de confiança, essa pessoa fica deposita um segredo numa pessoa de confiança, essa pessoa fica sendo o "Fiel do sendo o

Durante as nictemerais, os valores do fósforo total e do fosfato total nos dois viveiros apresentaram também valores acima do recomendado pela GAA, exceto para o fosfato total na

Distribuição espectral dos sistemas de iluminação LED e do controle Observa-se na Figura 12A, a análise de componentes principais, relacionado à biometria das mudas pré-brotadas

A respeito das propostas de desregulamentação nas relações de trabalho e da seguridade social no Brasil, percebidas tanto nas defesas do Banco Mundial quanto nas