32
Linguagem de Programação Aula 5 Elementos Fundamentais de Controle Universidade Federal de Santa Maria Colégio Agrícola de Frederico Westphalen Curso Técnico em Informática Prof. Bruno B. Boniati www.cafw.ufsm.br/~bruno

Linguagem de Programação - cafw.ufsm.br · Linguagem de Programação Aula 5 –Elementos Fundamentais de Controle ... expressões e chamadas de função são executadas ou avaliadas

Embed Size (px)

Citation preview

Page 1: Linguagem de Programação - cafw.ufsm.br · Linguagem de Programação Aula 5 –Elementos Fundamentais de Controle ... expressões e chamadas de função são executadas ou avaliadas

Linguagem de ProgramaçãoAula 5 – Elementos Fundamentais de Controle

Universidade Federal de Santa Maria

Colégio Agrícola de Frederico Westphalen

Curso Técnico em Informática

Prof. Bruno B. Boniati – www.cafw.ufsm.br/~bruno

Page 2: Linguagem de Programação - cafw.ufsm.br · Linguagem de Programação Aula 5 –Elementos Fundamentais de Controle ... expressões e chamadas de função são executadas ou avaliadas

Sequência, Seleção e Repetição

Page 3: Linguagem de Programação - cafw.ufsm.br · Linguagem de Programação Aula 5 –Elementos Fundamentais de Controle ... expressões e chamadas de função são executadas ou avaliadas

Estruturas de Controle

• Tratam da ordem em que instruções,

expressões e chamadas de função são

executadas ou avaliadas em programas de

computador.

• As principais são:

▫ Sequência;

▫ Seleção;

▫ Repetição.

Page 4: Linguagem de Programação - cafw.ufsm.br · Linguagem de Programação Aula 5 –Elementos Fundamentais de Controle ... expressões e chamadas de função são executadas ou avaliadas

goto ... uma estrutura primitivaprogram testgoto;

var

n : integer;

opc : char;

label 1, 2, 3, 4;

begin

4 :

writeln('Digite um número qualquer');

readln(n);

if ( n mod 2 = 0) then goto 1 else goto 2;

1:

writeln('O numero digitado é par');

goto 3;

2:

writeln('O numero digitado é impar');

goto 3;

3: writeln('Deseja testar novamente (S|N)?');

readln(opc);

if (opc = 'S') then

goto 4;

end.

A ordem das instruções é dada

por movimentos rotulados

(etiquetas – labels)

Programar dessa

forma é totalmente

desaconselhado!

Para compilar este código utilizando o compilador FreePascal utilize a opção –Sg. Ex: fpc arquivo.pas -Sg

Page 5: Linguagem de Programação - cafw.ufsm.br · Linguagem de Programação Aula 5 –Elementos Fundamentais de Controle ... expressões e chamadas de função são executadas ou avaliadas

Execução na ordem da declaração

Page 6: Linguagem de Programação - cafw.ufsm.br · Linguagem de Programação Aula 5 –Elementos Fundamentais de Controle ... expressões e chamadas de função são executadas ou avaliadas

Estruturas Sequenciais

• É a estrutura mais básica ... bloco de comandos

• Consiste em realizar um conjunto predeterminado

de comandos de forma sequencial, de cima para

baixo, na ordem em que foram declarados.

• Em outras palavras, o programa executará os

comandos na mesma sequencia em que eles estão

declarados no bloco de código.

Page 7: Linguagem de Programação - cafw.ufsm.br · Linguagem de Programação Aula 5 –Elementos Fundamentais de Controle ... expressões e chamadas de função são executadas ou avaliadas

Estruturas Sequenciais (cont.)

• Em linguagem Pascal para caracterizar uma

estrutura de sequência, o bloco de comandos é

delimitado pelas palavras reservadas

begin

end

• Cada comando do bloco pode ser uma instrução

primitiva ou uma estrutura de controle (sequencial,

de seleção ou de repetição);

Bloco de comandos (em Pascal)

Page 8: Linguagem de Programação - cafw.ufsm.br · Linguagem de Programação Aula 5 –Elementos Fundamentais de Controle ... expressões e chamadas de função são executadas ou avaliadas

Estrutura Sequencial (exemplo)

Page 9: Linguagem de Programação - cafw.ufsm.br · Linguagem de Programação Aula 5 –Elementos Fundamentais de Controle ... expressões e chamadas de função são executadas ou avaliadas

Decide pela execução ou não de um código

Page 10: Linguagem de Programação - cafw.ufsm.br · Linguagem de Programação Aula 5 –Elementos Fundamentais de Controle ... expressões e chamadas de função são executadas ou avaliadas

Estruturas de Seleção

• Desvia o fluxo de execução sequencial em função

de uma determinada condição;

• Os comandos de uma estrutura de seleção tem a

função de selecionar, através de alguns critérios,

qual a instrução mais adequada para ser executada

a partir de um dado ponto do programa;

• Executa um determinado grupo de comandos se a

condição for verdadeira e, em alguns casos, executa

outro grupo de comandos se a condição for falsa.

Page 11: Linguagem de Programação - cafw.ufsm.br · Linguagem de Programação Aula 5 –Elementos Fundamentais de Controle ... expressões e chamadas de função são executadas ou avaliadas

Estruturas de Seleção (cont.)

• Observe as afirmativas ...

▫ Distribuição gratuita de cestas básicas;

▫ Distribuição gratuita de cestas básicas para famílias

com quatro ou mais componentes;

• No primeiro caso todos recebem gratuitamente

cestas básicas (estrutura sequencial), no segundo

caso há de se decidir segundo critérios, quem irá e

quem não irá receber cestas básicas gratuitamente.

Page 12: Linguagem de Programação - cafw.ufsm.br · Linguagem de Programação Aula 5 –Elementos Fundamentais de Controle ... expressões e chamadas de função são executadas ou avaliadas

Estruturas de Seleção (cont.)

• Observe as afirmativas ...

▫ Se eu não tiver exercícios para fazer, vou passear;

senão vou estudar.

▫ Se minha média for maior ou igual a sete, passo de

ano; senão vou ter que fazer exame;

• Nestes dois casos, existem tarefas a serem

executadas em ambos os estados da condição

(se a condição for verdadeira faça isso senãofaça aquilo).

Page 13: Linguagem de Programação - cafw.ufsm.br · Linguagem de Programação Aula 5 –Elementos Fundamentais de Controle ... expressões e chamadas de função são executadas ou avaliadas

Condicional Simples e Completa(proporciona até dois desvios no código)

• Condição simples:

if <expressão lógica> then

instrução;

• Condição completa:

if <expressão lógica> then

<instrução>

else

<instrução>;

Page 14: Linguagem de Programação - cafw.ufsm.br · Linguagem de Programação Aula 5 –Elementos Fundamentais de Controle ... expressões e chamadas de função são executadas ou avaliadas

Condicional Simples e Completa

• Quando o conjunto de

instruções contiver

mais de uma linha,

então faz-se

necessário a utilização

de blocos de instrução

(begin ... end)

• Instruções

condicionais podem

ser aninhadas

neste

caso

não

vai “;”

Page 15: Linguagem de Programação - cafw.ufsm.br · Linguagem de Programação Aula 5 –Elementos Fundamentais de Controle ... expressões e chamadas de função são executadas ou avaliadas

Condicional Generalizada(proporciona um número indefinido de desvios)

case <variável> of

<valor 1> : <instrução 1>;

<valor 2> : <instrução 2>;

<valor 3> :

begin

<instrução 3.1>;

<instrução 3.2>;

end;

<valor n> : <instrução n>;

else

<instrução>;

end;

Page 16: Linguagem de Programação - cafw.ufsm.br · Linguagem de Programação Aula 5 –Elementos Fundamentais de Controle ... expressões e chamadas de função são executadas ou avaliadas

Quando usar if e quando usar case

• A instrução if..then..else funciona muito

bem para uma pouca quantidade de opções,

mas torna-se inviável se você tiver muitas

opções.

• No caso da instrução case o teste é feito a

partir de valores contidos em uma variável de

controle, o que dificulta a construção de

expressões condicionais;

Page 17: Linguagem de Programação - cafw.ufsm.br · Linguagem de Programação Aula 5 –Elementos Fundamentais de Controle ... expressões e chamadas de função são executadas ou avaliadas

Exercícios para fixação

http://www.cafw.ufsm.br/~bruno/disciplinas/ling_programacao/exercicios/lista4.html

Page 18: Linguagem de Programação - cafw.ufsm.br · Linguagem de Programação Aula 5 –Elementos Fundamentais de Controle ... expressões e chamadas de função são executadas ou avaliadas

Repete um código até que uma condição de saída seja satisfeita

Page 19: Linguagem de Programação - cafw.ufsm.br · Linguagem de Programação Aula 5 –Elementos Fundamentais de Controle ... expressões e chamadas de função são executadas ou avaliadas

Estruturas de Repetição

• Repete um fluxo de execução sequencial enquanto

uma determinada condição for satisfeita;

• Frequentemente as tarefas executadas por um

computador ou um robô são tarefas repetitivas ...

estruturas de repetição são ferramentas que

permitem este tipo de instrução;

• Também são conhecidas por estruturas de looop;

• Em pascal existem três tipos ...

Page 20: Linguagem de Programação - cafw.ufsm.br · Linguagem de Programação Aula 5 –Elementos Fundamentais de Controle ... expressões e chamadas de função são executadas ou avaliadas

Loop com condição pré-fixada

while (teste no início)

• A condição de saída do laço é primeira coisa a ser

analisada;

• Antes de repetir o código a expressão lógica é

avaliada;

• É equivalente a dizer ...

“Enquanto <alguma condição> for

verdadeira repita o que está abaixo ...”

Page 21: Linguagem de Programação - cafw.ufsm.br · Linguagem de Programação Aula 5 –Elementos Fundamentais de Controle ... expressões e chamadas de função são executadas ou avaliadas

while (exemplos)

Laço

Infinito

Um laço é infinito se a

condição de saída

nunca será alcançada

Page 22: Linguagem de Programação - cafw.ufsm.br · Linguagem de Programação Aula 5 –Elementos Fundamentais de Controle ... expressões e chamadas de função são executadas ou avaliadas

Loop com condição pós-fixada

repeat..until (teste no final)

• A condição de saída do laço é a última coisa a ser

analisada;

• Depois de repetir o código pelo menos uma vez a

expressão lógica é avaliada;

• É equivalente a dizer ...

“Repita o que está abaixo até que

<alguma condição> seja alcançada”

Page 23: Linguagem de Programação - cafw.ufsm.br · Linguagem de Programação Aula 5 –Elementos Fundamentais de Controle ... expressões e chamadas de função são executadas ou avaliadas

repeat..until (exemplos)

Page 24: Linguagem de Programação - cafw.ufsm.br · Linguagem de Programação Aula 5 –Elementos Fundamentais de Controle ... expressões e chamadas de função são executadas ou avaliadas

Loop com repetição por contagemfor..to..do ou for..downto..do

• É um tipo especial de laço de repetição com teste no

início, utilizado geralmente quando há um número

pré-definido de execuções a serem realizadas ...

• Observe os códigos abaixo, em ambos os casos o

objetivo é o mesmo ... ler 10 valores ...

Page 25: Linguagem de Programação - cafw.ufsm.br · Linguagem de Programação Aula 5 –Elementos Fundamentais de Controle ... expressões e chamadas de função são executadas ou avaliadas

for..to..do ou for..downto..do

(exemplos)

Page 26: Linguagem de Programação - cafw.ufsm.br · Linguagem de Programação Aula 5 –Elementos Fundamentais de Controle ... expressões e chamadas de função são executadas ou avaliadas

Interrompem o fluxo normal de execução

Page 27: Linguagem de Programação - cafw.ufsm.br · Linguagem de Programação Aula 5 –Elementos Fundamentais de Controle ... expressões e chamadas de função são executadas ou avaliadas

Interrupção de fluxo de execução

• break ou exit▫ Interrompem o bloco de execução

▫ Normalmente utilizados para encerrar prematuramente um laço de

repetição;

• continue▫ Interrompe a execução do bloco, retornando para o início do laço de

repetição;

▫ Utilizado para evitar uma execução desnecessária de um trecho de código

visto que determinada condição não será mais alcançada;

• halt▫ Interrompe a execução do programa e retorna o controle para o sistema

operacional (aborta o programa);

Page 28: Linguagem de Programação - cafw.ufsm.br · Linguagem de Programação Aula 5 –Elementos Fundamentais de Controle ... expressões e chamadas de função são executadas ou avaliadas

Uma maquiagem necessária

Page 29: Linguagem de Programação - cafw.ufsm.br · Linguagem de Programação Aula 5 –Elementos Fundamentais de Controle ... expressões e chamadas de função são executadas ou avaliadas

Recuos ... seria o nome correto

• A utilização de estruturas de

controle de fluxo deflagra a

necessidade de hierarquia dentro

do código fonte ... blocos dentro

de blocos.

• Observe os códigos ao lado

(ambos fazem a mesma coisa).

• Qual lhe parece mais

fácil de entender?

Page 30: Linguagem de Programação - cafw.ufsm.br · Linguagem de Programação Aula 5 –Elementos Fundamentais de Controle ... expressões e chamadas de função são executadas ou avaliadas

Indentação

• Recuo, indentation, identação e endentação;

• São espaços ou tabulações que não influenciam no

significado do código para o compilador mas que

fazem toda a diferença na hora de entender um

determinado código-fonte;

• Na maioria das LP desempenham um papel

estético, em outras, dão significado semântico ao

código fonte;

Page 31: Linguagem de Programação - cafw.ufsm.br · Linguagem de Programação Aula 5 –Elementos Fundamentais de Controle ... expressões e chamadas de função são executadas ou avaliadas

Indentação (cont.)

• Sua utilidade é realmente percebida em médios e

grandes projetos de software;

• Cada programador desenvolve seu estilo (dois, três

espaços, tabulações, etc.).

• É um recurso indispensável quando se trabalha em

equipe;

• Favorece a modificação do código, seja para

correção ou aprimoramento.

Page 32: Linguagem de Programação - cafw.ufsm.br · Linguagem de Programação Aula 5 –Elementos Fundamentais de Controle ... expressões e chamadas de função são executadas ou avaliadas

Exercícios para fixação

http://www.cafw.ufsm.br/~bruno/disciplinas/ling_programacao/exercicios/lista5.html