Você está na página 1de 16

Prticas computacionais

Imagine a seguinte situao: queremos um programa que mostre a mdia de um aluno. At a muito simples, mas alm de calcular a mdia, queremos

simplesmente que o programa apresente uma mensagem dizendo se o aluno


est aprovado, no caso da sua nota ter sido maior do que 5.

Para isto, usamos a seguinte instruo: se (<condio>) entao <comandos para condio verdadeira somente> fimse ... comandos

Nos testes condicionais dos algoritmos, so utilizados os seguintes operadores: >, <, =, >=, <= e <>.

Desvio condicional composto


comandos
se (<condio>) entao <comandos para condio verdadeira> senao <comandos para condio falsa> fimse comandos Exemplo: considerando o caso anterior onde um algoritmo deve calcular a mdia de um aluno e mostrar uma mensagem dizendo se esse aluno est aprovado (no caso da nota ter sido igual ou superior a Cinco), uma clusula seno deve ser includa no algoritmo no caso do aluno ser reprovado (nota inferior a cinco).

Exerccio: Ler dois valores (A e B), efetuar a soma dos valores A e B e implicar o valor da soma em X. Verificar se X maior ou igual a 10, caso sim mostre X+5, seno mostre X-7.

Desvio condicional encadeado (ou aninhado)


Existem casos em que necessrio se estabelecerem verificaes de condies sucessivas.

O segundo encadeamento pode ser tanto para uma condio verdadeira quanto uma condio falsa.
comandos se (<condio1>) entao <comandos para condio1 verdadeira> senao se (<condio2>) entao <comandos para condio2 verdadeira, porm condio1 Falsa> senao <condio1 e condio2 falsas> fimse fimse comandos

Operador Lgico: e
Tambm chamado de conjuno. Nesse caso, todas as expresses condicionais componentes de uma conjuno devem ser verdadeiras para que a expresso resultante tenha valor verdadeiro. Abaixo apresentada a tabela de deciso para o operador e:

Operador Lgico: ou
Tambm chamado de disjuno. Nesse caso quando qualquer uma das expresses componentes da disjuno for verdadeira, a expresso resultante ter valor verdadeiro. Abaixo apresentada a tabela de deciso para o operador ou:

Operador Lgico: no
Tambm chamado de negao. Nesse caso, a negao apenas inverte o valor verdade da expresso. Se x for falso, no x verdade. Abaixo apresentada a tabela de deciso para o operador no:

Em vrios momentos, na programao, se torna necessrio repetir um trecho de um programa um determinado nmero de vezes. Nesse caso, pode ser criado um lao de repetio que efetue o processamento de um determinado trecho, tantas vezes quantas forem necessrias. Os laos de repetio tambm so conhecidos por loopings.

Supondo que se queira executar um determinado trecho de um programa trs vezes (3x). Por exemplo, suponha que um programa deva ler dois valores e mostrar a mdia entre esses valores. Certamente a melhor tcnica no seria repetir simplesmente um mesmo trecho trs vezes, como mostrado abaixo:

variaveis media,n1,n2 :numerico inicio Leia (n1) Leia (n2) media := (n1+n2)/2 escreva (Mdia:, media) Leia (n1) Leia (n2) media := (n1+n2)/2 escrever (Mdia:, media) Leia (n1) Leia (n2) media := (n1+n2)/2 escreva ( Mdia:, media ) fim

Existem 2 tipos de repeties:


-definidas e garantidas, ou seja, um mesmo trecho de programa ser executado um nmero pr-determinado de vezes e; - indefinida e sem garantia, ou seja, um trecho de programa poder ser executado indefinidamente, no havendo garantia do trmino da execuo do algoritmo.

A estrutura do Para/fimpara garantida, e sua sintaxe em portugus estruturado apresentada no seguinte formato:

para <var> de <incio> ate <fim> passo <incremento> <comandos> Fimpara


Veja o exemplo anterior, aplicando-se nele o lao de repetio Para / fimpara. variaveis media,n1,n2,i :numerico inicio para i de 1 ate 3 passo 1 faca// (nesse caso passo 1 opcional) Leia (n1) Leia (n2) media := (n1+n2)/2 escreva (Mdia:, media) fimpara fim

Embora tambm possa ser utilizada quando se tem um nmero prdeterminado de repeties a executar, como no exemplo acima, essa estrutura mais indicada quando necessrio repetir um determinado trecho de programa indefinidamente. Para ilustrar, suponha que um determinado valor deva ser lido indefinidamente, at que seja digitado zero (condio de parada). Nesse caso devemos usar a estrutura Enquanto : variaveis val :numerico inicio val:= 1 enquanto val <> 0 faca escreva (Valor:) leia (val) <comandos1> fimenquanto <comandos2> fim

Nesse caso, quando for digitado 0 (zero) para val, o fluxo do programa segue at chegar no comando fimenquanto. Ao retornar na linha faa enquanto, verificado que o valor no diferente de zero e o controle do programa passa para a linha comandos2. A partir da o fluxo do programa segue normalmente. Veja abaixo como ficaria a utilizao do lao enquanto para o exerccio das 4 repeties: variaveis media,n1,n2,i :numerico inicio i:= 1 faa enquanto i <= 3 Leia (n1) Leia (n2) media := (n1+n2)/2 escrever (Mdia:, media) i:= i+1 fimenquanto fim

Usando o comando repita ... at <condio), neste caso o comando verifica a condio desejada no fim do mesmo. Veja o exemplo:

variaveis media,n1,n2,i :numerico inicio i:= 1 repita Leia (n1) Leia (n2) media := (n1+n2)/2 escreva (Mdia:, media) i:= i+1 ate i > 3 fim

Contador uma varivel de controle, inteira, que serve para controlar quantas vezes um determinado trecho de programa foi executado. Considere, por exemplo, um programa que leia 10 valores, podendo eles serem somente negativos ou positivos (desconsidere os valores nulos). A seguir, considere que o programa deva mostrar a quantidade de valores positivos digitados. Nesse caso, devemos fazer um teste a cada leitura, e, no caso do valor lido ser positivo, adicionar +1 para uma varivel tipo contador (contp=contp+1). Exerccio.: faa o algoritmo acima (ler 100 valores), mostrando no final a quantidade de nmeros negativos e positivos digitados. Acumulador uma varivel de controle, inteira, que serve para acumular valores. Considere que um programa, alm de ler 100 valores e mostrar a quantidade de nmeros positivos, deva mostrar a mdia dos valores positivos digitados. Resolva este problema.

Você também pode gostar