35
Professora: Flávia Balbino da Costa

Linguagem de Programação I Parte IV

Embed Size (px)

DESCRIPTION

Professora: Flávia Balbino da Costa. Linguagem de Programação I Parte IV. Introdução à Programação Estrutura de um algoritmo Operadores e expressões Estruturas de Decisão Estruturas de Repetição Procedimentos e Funções. Conteúdo Programático:. - PowerPoint PPT Presentation

Citation preview

Page 1: Linguagem de Programação I Parte IV

Professora: Flávia Balbino da Costa

Page 2: Linguagem de Programação I Parte IV

Introdução à Programação Estrutura de um algoritmo Operadores e expressões Estruturas de Decisão Estruturas de Repetição Procedimentos e Funções

Page 3: Linguagem de Programação I Parte IV

Com a utilização de Sub-rotinas é possível dividir um

problema grande em problemas menores. Dessa forma,

podemos ter algoritmos mais simples com sub-rotinas.

A sub-rotina serve para modularizar um programa.

Como exemplo, em Pascal temos algumas sub-rotinas já

existentes: CLRSCR (sub-rotina que “limpa” a tela) e

Readkey (sub-rotina que ler qualquer caracter do

teclado).

Page 4: Linguagem de Programação I Parte IV

Método de Refinamento sucessivo - É o

processo de dividir sub-rotinas em outras.

Método Top-Down- É sabido que a aplicação de

sub-rotinas (módulos de programas) facilita a

programação. Porém, a utilização de sub-rotinas

deverá ser feita com a aplicação do método Top-

Down. Este método se caracteriza por:

Page 5: Linguagem de Programação I Parte IV

1) Antes de iniciar a construção de algoritmo, o

programador deverá ter em mente as principais

tarefas que deverá executar;

2) Conhecidas todas as tarefas a serem executadas,

tem-se em mente como deverá ser o programa

principal, que vai controlar todas as sub-rotinas;

3) Definido o programa principal, é iniciado o

processo de detalhamento de cada sub-rotina.

Page 6: Linguagem de Programação I Parte IV

1) Cada módulo (sub-rotina) é efetuado em separado.

Desta forma, cada um pode ser testado

separadamente, garantindo que o programa

completo esteja sem erro ao seu término.

2) Podemos repetir módulos em outros programas.

Page 7: Linguagem de Programação I Parte IV

1) Procedimento – Um bloco de algoritmo

(Programa), com início e fim, que será identificado

por um nome, por meio do qual será referenciado

em qualquer parte do programa principal ou do

programa chamador da sub-rotina.

Page 8: Linguagem de Programação I Parte IV

Sintaxe:

Procedimento <nome do procedimento>

Var

<variáveis>

Início

<comandos>

Fim

Page 9: Linguagem de Programação I Parte IV

Exemplo: Criar um algoritmo que apresente um

menu de seleções no programa principal. Este

menu dará ao usuário a possibilidade de escolher a

adição, a subtração de duas variáveis ou o fim

do programa. Escolhida a opção, deverá ser

solicitada a entrada de dois números e processada

a operação, deverá ser exibido o resultado.

Page 10: Linguagem de Programação I Parte IV

Solução:Algoritmo Calculo

Var

Opcao: Caracter

Procedimento Rot_Soma

Var

A, B, R: Real

Inicio

Escreva (“Rotina de Soma”)

Escreva (“Entre com o valor de A:”)

Leia (A)

Escreva (“Entre com o valor de B:”)

Leia (B)

R ← A + B

Escreva (“A + B:”, R)

Fim

Page 11: Linguagem de Programação I Parte IV

Solução:Procedimento Rot_Subtracao

Var

A, B, R: Real

Inicio

Escreva (“Rotina de Subtração”)

Escreva (“Entre com o valor de A:”)

Leia (A)

Escreva (“Entre com o valor de B:”)

Leia (B)

R ← A - B

Escreva (“A - B:”, R)

Fim

Page 12: Linguagem de Programação I Parte IV

Solução:Início

Opcao ← “0”

Enquanto (Opcao<> “3”) façaEscreva (“1 – Adição”)Escreva (“2 – Subtração”)Escreva (“3 – Fim do Programa”)Escreva (“Escolha uma opção:”)Leia (Opcao)Se (Opcao=“1”) então Rot_SomaSenão Se (Opcao=“2”) então

Rot_Subtracao FimSeFimSe

FimEnquantoFimAlgoritmo

Page 13: Linguagem de Programação I Parte IV

No algoritmo anterior foram utilizadas variáveis

dentro das sub-rotinas (variáveis A, B e R) e fora (no

caso a variável opcao).

Variável Global – quando é declarada no início do

algoritmo principal, podendo ser utilizada em

qualquer sub-rotina do algoritmo principal. Esta

variável é visível a todas as sub-rotinas subordinadas

ao algoritmo principal.

Page 14: Linguagem de Programação I Parte IV

Variável Local – quando é declarada dentro de uma

sub-rotina e é válida somente dentro da sub-rotina à

qual está declarada.

Desta forma, as demais sub-rotinas e o algoritmo

principal não poderão fazer uso destas variáveis como

acontece com as variáveis globais, pois não

visualizam a existência delas.

Page 15: Linguagem de Programação I Parte IV

O escopo de uma variável está vinculado a sua

visibilidade (global e local) em relação às sub-rotinas

de um programa, sendo que a sua visibilidade está

relacionada à sua hierarquia.Variáveis A e B

Variáveis A, B e C Variáveis A, B e D

Variáveis A, B, C e E

Variáveis A, B, C e F

Variáveis A, B, D e G

Page 16: Linguagem de Programação I Parte IV

Pro

Programa Principal

Rotina 1

Rotina 1.1

Rotina 1.2

Rotina 2

Rotina 2.1

Var A, B: Inteiro Var

C: InteiroVarE: Inteiro

VarD: Inteiro

VarF: Inteiro

VarG: Inteiro

Page 17: Linguagem de Programação I Parte IV

Finalidade – Serve como um canal de comunicação

bidirecional entre uma sub-rotina e o programa

principal ou uma sub-rotina hierarquicamente de nível

mais alto.

Desta forma, é possível passar valores entre um

programa principal e uma sub-rotina (ou entre sub-

rotinas) utilizando parâmetros que podem ser:

1) Formais;

2) Reais.

Page 18: Linguagem de Programação I Parte IV

Parâmetros Formais – Quando forem declarados

por meio de variáveis juntamente com a identificação

da sub-rotina.

Parâmetros Reais – São considerados parâmetros

reais, quando estes substituem os parâmetros

formais, quando da utilização da sub-rotina por um

programa principal ou por uma sub-rotina chamadora.

Page 19: Linguagem de Programação I Parte IV

Programa Calculo

Procedimento Soma (A, B: Inteiro)

Var Z: Inteiro

InícioZ ← A + BEscreva (Z)

Fim

Var X,Y: InteiroInício

Leia (X)Leia (Y)Soma (X, Y)

FimAlgoritmo

Parâmetros Formais

Parâmetros Reais

Sub-rotina

Programa Principal

tro

ca

tro

ca

Page 20: Linguagem de Programação I Parte IV

Ocorre quando é feito uma substituição dos

parâmetros formais pelos reais no momento da

execução da sub-rotina. Estes parâmetros serão

passados por variáveis e duas formas:

1) Por Valor

2) Por Referência

Page 21: Linguagem de Programação I Parte IV

Caracteriza-se pela não alteração do valor do

parâmetro real quando o parâmetro formal é

manipulado dentro da sub-rotina.

Em outras palavras, o valor passado pelo parâmetro

real é copiado para o parâmetro formal, que no caso

assume o papel de variável local da sub-rotina. Desta

forma, qualquer modificação que ocorra na variável

local da sub-rotina não afetará o parâmetro real

correspondente.

Page 22: Linguagem de Programação I Parte IV

Dicas:

1) O processamento é executado dentro da sub-

rotina;

2) O resultado fica “preso” na sub-rotina;

3) É somente para entrada de dados da sub-rotina.

Page 23: Linguagem de Programação I Parte IV

Algoritmo Fatorial

Procedimento Fatorial (N:Inteiro)Var

i,fat: InteiroInício

Fat ← 1Para i de 1 até N passo 1 faça Fat ← Fat * iFimParaEscreva (Fat)

Fim

VarA: Inteiro

InícioEscreva (“Fatorial de que número:?”)Leia (A)Fatorial (A)

FimAlgoritmo

Passagem por valor

Parâmetro Real

Parâmetro Formal

Page 24: Linguagem de Programação I Parte IV

Caracteriza-se pela ocorrência da alteração do valor do

parâmetro real quando o parâmetro formal é manipulado

dentro da sub-rotina.

DICAS:

Qualquer modificação no parâmetro formal implica

modificação no parâmetro real correspondente;

A alteração efetuada é desenvolvida para a rotina

chamadora;

Serve para que se tenha saída de um determinado valor

de dentro de uma sub-rotina.

Page 25: Linguagem de Programação I Parte IV

Algoritmo Calc_Fatorial2

Procedimento Fatorial (N:Inteiro, Var Fat: Inteiro)Var

i: InteiroInício

Fat ← 1Para i de 1 até N passo 1 faça Fat ← Fat * iFimPara

FimVar

A, B: InteiroInício

Escreva (“Fatorial de que número:?”)Leia (A)Fatorial (A, B)Escreva (B)

FimAlgoritmo

Passagem por valor (Entrada)

Passagem por referência (Saída)

OBS1: Não foi preciso declarar Fat dentro da sub-rotina, pois esta foi declarada no enunciado

dela.

OBS2: No enunciado da sub-rotina, entende-se

que tudo que está depois de Var será a variável de passagem

de parâmetro por referência.

Page 26: Linguagem de Programação I Parte IV

Exemplo:1. Faça um algoritmo que tenha três procedimentos

que façam os seguintes cálculos: Cubo de um número; Fatorial de um número; Verifique se este número é par, ímpar ou zero.

Utilize a técnica de passagem de parâmetros por valor (entrada do número) e por referência (saída: cubo, fatorial e mensagem).

Page 27: Linguagem de Programação I Parte IV

Algoritmo Exemplo

Procedimento Calculo (X:Inteiro, Var Cubo, Fat: Inteiro, Var Mens: Literal)Var

R, I: InteiroInício

Cubo ← X * X * XFat ← 1Para I de 1 até X passo 1 faça Fat ← Fat * IFimParaSe (X = 0) então M ← ‘Número zero’Senão R ← X – 2 * (X / 2) Se (R = 0) então

M ← ‘Número par’ Senão

M ← ‘Número ímpar’ FimSeFimSe

Fim

Page 28: Linguagem de Programação I Parte IV

Continuação do Algoritmo Exemplo

VarNum: InteiroC, F: RealM: Literal

InícioEscreva (“Digite um número:”)Leia (Num)Calculo (Num, C, F, M)Escreva (‘Cubo:’, C)Escreva (‘Fatorial:’, F)Escreva (‘Mensagem:’, M)

FimAlgoritmo

Page 29: Linguagem de Programação I Parte IV

2) Função – Sub-rotinas como os procedimentos,

contendo início e fim e sendo identificado por um

nome, por meio do qual também será referenciada

em qualquer parte do programa.

Page 30: Linguagem de Programação I Parte IV

Sintaxe:

Função <nome da função> (Parâmetros):<tipo de

função>

Var

<variáveis>

Início

<comandos>

Fim

Page 31: Linguagem de Programação I Parte IV

Observação: A função sempre retorna um

determinado valor, que é retornado no próprio nome

da função.

Exemplo: Faça um algoritmo que tenha uma função

que calcule o fatorial de um número.

Page 32: Linguagem de Programação I Parte IV

Algoritmo Calc_Fatorial3

Função Fatorial (N:Inteiro): InteiroVar

i, Fat: InteiroInício

Fat ← 1Para i de 1 até N passo 1 faça Fat ← Fat * iFimParaFatorial ← Fat

FimVar

A: InteiroInício

Escreva (“Fatorial de que número:?”)Leia (A)Escreva (‘O fatorial é:’, Fatorial (A))

FimAlgoritmo

Page 33: Linguagem de Programação I Parte IV

Vamos treinar Procedimentos e Funções?

1. Faça um algoritmo que faça uso de uma sub-rotina de função que retorne o valor da soma de dois números fornecidos como parâmetros.

2. Faça um algoritmo com as funções: par ou ímpar ou zero, cubo e fatorial.

3. Construa um algoritmo que faça a soma entre dois números informados pelo usuário. A soma tem que ser realizada por uma sub-rotina (Procedimento ou Função) e seu valor retornado ao Programa Principal.

Exemplo: números informados: 2 e 5Realizado: 2 + 3 + 4 + 5 = 14

Page 34: Linguagem de Programação I Parte IV

Vamos treinar Procedimentos e Funções?

4. Desenvolva um algoritmo que crie uma sub-rotina para calcular o valor de uma potência de um número qualquer. Por exemplo, se for mencionado no programa principal a função potencia(2,3), deverá ser calculado 23 = 8. Este valor deverá ser retornado ao Programa Principal.

5. Faça um algoritmo que tenha um procedimento que receba três números inteiros e retorne o maior deles.

6. Faça um algoritmo que tenha uma função que verifica se um valor específico está dentro do intervalo entre dois valores digitados pelo usuário. Caso esteja contido no intervalo, a função deverá retornar a mensagem: “Está contido!”, caso contrário, a função retornará: “Não está contido!”.

Page 35: Linguagem de Programação I Parte IV