Buscar

ALGORITIMOS E ESTRUTURA DE DADOS

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 45 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 45 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 45 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Introdução a Algoritmos e 
Estruturas de Dados 
Sandro Carvalho Izidoro 
sandroizidoro@unifei.edu.br 
CURSO DE VERÃO EM BIOINFORMÁTICA ESTRUTURAL 
Apresentação 
  Definição 
  Variáveis 
  Estrutura sequencial 
  Estrutura condicional 
  Estrutura de repetição 
  Procedimentos e funções 
  Vetor e Matriz 
Sandro Carvalho Izidoro 
Definição 
Para resolver um problema através de um computador é 
necessário encontrar uma maneira de descrevê-lo de uma 
forma clara e precisa. 
Assim se faz necessário estabelecer uma sequência de passos 
que conduzam à sua resolução. Esta sequência de passos é 
designada por algoritmo. 
O conceito central de programação e da ciência da computação 
é o de algoritmo. Programar é basicamente construir 
algoritmos. 
Algoritmo é a descrição de um conjunto de comandos 
que, obedecidos, resultam numa sucessão finita de 
ações. 
Sandro Carvalho Izidoro 
Definição 
Pseudocódigo é uma forma genérica de escrever um 
algoritmo, utilizando uma linguagem simples sem necessidade 
de conhecer a sintaxe de nenhuma linguagem de programação. 
Os programas de computadores nada mais são do que 
algoritmos escritos em uma linguagem de programação 
(Perl, Pascal, C/C++, Fortran, Java, etc.) e que são 
interpretados e executados por um computador. 
Sandro Carvalho Izidoro 
Definição 
Exemplo 
A seguir um exemplo de um algoritmo para somar 2 números. 
O que esse algoritmo faz é: 
  Obter o primeiro número; 
  Obter o segundo número; 
  Somar os 2 números; 
  Escrever o resultado. 
Sandro Carvalho Izidoro 
Algoritmo 
declare a,b,c numerico 
inicio 
 leia a 
 leia b 
 c ← a + b 
 escreva c 
Fim algoritmo 
Definição 
Algoritmo 
declare a,b,c numerico 
inicio 
 leia a 
 leia b 
 c ← a + b 
 escreva c 
Fim algoritmo 
Sandro Carvalho Izidoro 
{Programa que soma 2 numeros } 
Program Soma; 
 var A, B, C : integer; 
begin 
 Readln( A ); 
 Readln( B ); 
 C := A + B; 
 Writeln( C ); 
end. 
/*Programa que soma 2 números 
*/ 
#include <stdio.h> 
int main(void){ 
 int A, B, C; 
 scanf("%d", &A); 
 scanf("%d", &B); 
 C = A + B; 
 printf("%d", C ); 
} 
Definição 
Algoritmo 
declare a,b,c numerico 
inicio 
 leia a 
 leia b 
 c ← a + b 
 escreva c 
Fim algoritmo 
Sandro Carvalho Izidoro 
#!/usr/bin/perl 
# Somando dois numeros. 
my ($a, $b, $c); 
print "Digite o valor de A: "; 
$a = <STDIN>; 
print "Digite o valor de B: "; 
$b = <STDIN>; 
$c = $a + $b; 
print "Soma: $c\n"; 
Variáveis 
Sabe-se da matemática que uma variável é a representação 
simbólica dos elementos de um certo conjunto. Nos 
algoritmos, destinados a resolver um problema no computador, 
cada variável corresponde uma posição de memória cujo 
conteúdo pode variar ao longo do tempo durante a execução 
do programa. 
Embora uma variável possa assumir diferentes valores, ela só 
pode armazenar um único valor a cada instante. 
Toda variável é identificada por um nome ou identificador. 
Assim, por exemplo, em um algoritmo para cálculo das raízes 
de uma equação de 2º grau (ax2+bx+c = 0), os identificadores 
A, B, C podem representar as posições de memória que 
armazenam os coeficientes da equação. 
Sandro Carvalho Izidoro 
Variáveis 
Declaração de Variáveis 
As variáveis só podem armazenar valores de um mesmo tipo e 
são classificadas como numéricas, lógicas e literais. 
A declaração de variáveis tem a seguinte forma: 
declare lista-de-identificadores nome-do-tipo 
Exemplo: 
 declare MASSA, CODIGO, X_5 numérico 
 TESTE, SIM lógico 
 NOME_PROTEINA literal 
Sandro Carvalho Izidoro 
Variáveis 
Declaração de Variáveis 
Um identificador é formado por 1 ou mais caracteres, sendo 
que o 1º caractere deve, obrigatoriamente, ser uma letra e os 
caracteres seguintes, letras ou dígitos, não sendo permitido o 
uso de símbolos especiais. 
Identificadores permitidos 
A X_5 NOTA A3_2B MATRICULA 1G3H5 
Identificadores NÃO permitidos 
 
5B X-Y E(13) NOTA[1] A:B B*D 
Sandro Carvalho Izidoro 
Variáveis 
Comentários 
Com a finalidade de simplificar o compreensão de um algoritmo 
é utilizado um instrumento denominado comentário. 
Os comentários podem ser colocados em qualquer ponto do 
algoritmo onde se façam necessários. 
Exemplo 
declare MAT, {Nº de matrícula do aluno} 
 NOTA, {Total de pontos no semestre} 
 COD {Código do curso} numérico 
Sandro Carvalho Izidoro 
Variáveis 
Variável Simples 
declare x, y, n numerico 
… 
x ← 100 / n 
escreva x 
Variável Composta Homogênea 
Variáveis compostas homogêneas correspondem a posições de 
memória, identificadas por um mesmo nome, individualizadas 
por índices e cujo conteúdo é de mesmo tipo. 
declare medias[1:50] numerico 
... 
leia medias[13] 
Sandro Carvalho Izidoro 
Variáveis 
Variável Composta Heterogênea 
Variáveis compostas heterogêneas são conjuntos de dados 
logicamente relacionados, mas de tipos diferentes (numérico, 
literal, lógico). São também conhecidos como registros ou 
estruturas. 
Cada componente é individualizado pela explicitação de seu 
identificador. 
declare Funcionario registro (Nome, Rua, Sexo literal, 
 Numero, CEP, CPF, Salario numerico, 
 Nascimento literal) 
... 
leia Funcionario.Nome, Funcionario.CPF 
Funcionario.Salario ← Funcionario.Salario + Aumento 
Sandro Carvalho Izidoro 
Estrutura Sequencial 
Estrutura sequencial em algoritmos 
 Comando de atribuição 
 Comandos de entrada e saída 
 Operadores relacionais e lógicos 
Sandro Carvalho Izidoro 
Estrutura Sequencial 
Comando de atribuição 
Este comando permite que se forneça um valor a uma certa 
variável, onde a natureza deste valor tem de ser compatível 
com o tipo da variável na qual está sendo armazenado. O 
comando de atribuição tem a seguinte forma geral: 
identificador ← expressão 
Exemplos 
a) K ← 1 
b) MEDIA ←SOMA / N 
c) COR ←"VERDE" 
d) TESTE ← F 
e) A ← B 
Sandro Carvalho Izidoro 
Estrutura Sequencial 
Comandos de Entrada e Saída 
As unidades de entrada e saída são dispositivos que 
possibilitam a comunicação entre o usuário e o computador. 
Através do teclado o usuário consegue dar entrada ao 
programa e aos dados na memória do computador. Por sua 
vez, o computador pode emitir os resultados e outras 
mensagens para o usuário através do vídeo ou de uma 
impressora. 
Um comando de entrada e saída é construído de acordo com a 
forma geral: 
 leia lista de identificadores 
 escreva lista de identificadores e/ou constantes 
Sandro Carvalho Izidoro 
Estrutura Sequencial 
Expressões Lógicas 
É comum nos algoritmos surgirem situações em que a 
execução de uma ação, ou sequência de ações, esteja 
sujeita a uma certa condição. Esta condição é representada 
no texto do algoritmo por meio de uma expressão lógica. 
Denomina-se expressão lógica à expressão cujos operadores 
são lógicos e cujos operandos são relações e/ou variáveis 
do tipo lógico. 
Sandro Carvalho Izidoro 
Estrutura Sequêncial 
Operadores Relacionais 
Relações: Uma expressão relacional, ou relação, é uma 
comparação realizada entre dois valores de mesmo tipo básico. 
Estes valores são representados na relação através de 
constantes, variáveis ou expressões aritméticas. 
O resultado obtido de uma relação, é sempre um valor lógico. 
Sandro Carvalho Izidoro 
Estrutura Sequêncial 
Operadores Lógicos 
Sandro Carvalho Izidoro 
Dadas as variáveis numéricas X,Y e Z, contendo os valores 2, 5 
e 9 respectivamente, a variável literal NOME, contendo a 
sequência "MARIA" e a variável lógicaSIM, contendo o valor 
lógico F, obter os resultados das expressões lógicas a seguir: 
a)( ) X + Y > Z e NOME = "MARIA" 
b)( ) SIM ou Y > X 
c)( ) NOME = "JORGE" e SIM ou X2 < Z + 10 
Estrutura Condicional 
Estrutura Condicional 
A estrutura condicional permite a escolha do grupo de ações e 
estruturas a ser executado quando determinadas condições são ou não 
satisfeitas. A estrutura condicional pode ser apresentada através de 
uma estrutura simples ou de uma estrutura composta. 
Formato de uma Estrutura Condicional Simples 
 se condição 
 então sequência de comandos 
Sandro Carvalho Izidoro 
Estrutura Condicional 
Exemplo 01 
Sandro Carvalho Izidoro 
#!/usr/bin/perl 
# Selecao Simples. 
my ($sequencia01, $sequencia02); 
$sequencia01 = "GTGGGATC"; 
print "Digite a sequencia: "; 
chomp($sequencia02 = <STDIN>); 
if($sequencia01 eq $sequencia02){ 
 print "Sequencia encontrada\n"; 
 } 
Algoritmo 
 declare sequencia01, sequencia02 literal 
 sequencia01 ← “GTGGGATC” 
 leia sequencia02 
 se sequencia01 = sequencia02 
 então escreva “Sequencia encontrada” 
Fim_Algoritmo 
Estrutura Condicional 
Sandro Carvalho Izidoro 
Estrutura Condicional Composta 
se condição 
 então sequência 1 de comandos 
 senão sequência 2 de comandos 
Neste caso, a sequência 1 só será executada se a condição for 
verdadeira e a sequência 2 de comandos só será executada 
se a condição for falsa. 
Estrutura Condicional 
Sandro Carvalho Izidoro 
Exemplo 02 
Algoritmo 
 declare sequencia01 literal 
 leia sequencia01 
 se sequencia01 = “GGTCAG” 
 então escreva “Sequencia encontrada” 
 senão escreva “Sequencia não 
encontrada” 
Fim_Algoritmo 
#!/usr/bin/perl 
# Selecao Composta. 
my ($sequencia); 
print "Digite a sequencia: "; 
chomp($sequencia = <STDIN>); 
if ($sequencia eq "GGTCAG"){ 
 print "Sequencia encontrada\n"; 
 } 
 else { 
 print "Sequencia não encontrada\n"; 
 } 
Estrutura Condicional 
Sandro Carvalho Izidoro 
Exemplo 03 
Algoritmo 
 declare seq01, seq02, seq03 literal 
 seq01 ← “GGTACGTA” 
 seq02 ← “GGTACGAT” 
 leia seq03 
 se seq03 = seq01 
 então escreva “Encontrou” 
 senão se seq03 = seq02 
 então escreva “Encontrou” 
 senão escreva “Não achou!” 
Fim_Algoritmo 
#!/usr/bin/perl 
# Selecao Composta. 
my ($seq01, $seq02, $seq03); 
$seq01 = "GGTACGTA"; 
$seq02 = "GGTACGAT"; 
print "Digite a sequencia: "; 
chomp($seq03 = <STDIN>); 
if ($seq03 eq $seq01){ 
 print "Encontrou\n"; 
 } elsif ($seq03 eq $seq02){ 
 print "Encontrou\n"; 
 } 
 else {print "Não achou\n"; 
 } 
Estrutura Condicional 
Sandro Carvalho Izidoro 
Exemplo 04 
Algoritmo 
 declare nota1, nota2, media numerico 
 escreva “digite nota 1:” 
 leia nota1 
 escreva “digite nota 2:” 
 leia nota2 
 media ← (nota1+nota2)/2 
 se media >= 7 
 então escreva “Media: ”, media, “ - Aprovado” 
 senão se media >= 5 
 então escreva “Media: ”, media, “ - Exame Final” 
 senão escreva “Media: ”, media, “ - Reprovado” 
Fim_Algoritmo 
Estrutura Condicional 
Sandro Carvalho Izidoro 
Exemplo 04 
#!/usr/bin/perl 
# Selecao Composta. 
my ($nota1, $nota2, $media); 
print "Digite nota 1: "; 
$nota1 = <STDIN>; 
print "Digite nota 2: "; 
$nota2 = <STDIN>; 
$media = ($nota1 + $nota2)/2; 
if ($media >= 7){ 
 print "Media: $media - Aprovado\n"; 
 } 
 elsif ($media >= 5){ 
 print "Media: $media - Exame final\n"; 
 } 
 else { 
 print "Media: $media - Reprovado\n"; 
 } 
Estrutura Condicional 
Sandro Carvalho Izidoro 
Exemplo 05 
Algoritmo 
 declare media, faltas numerico 
 escreva “digite a media:” 
 leia media 
 escreva “digite o numero de faltas:” 
 leia faltas 
 se media < 5 ou faltas > 25 
 então escreva “Reprovado” 
 senão se media >= 5 e media < 7 
 então escreva “Exame Final” 
 senão escreva “Aprovado” 
Fim_Algoritmo 
Estrutura Condicional 
Sandro Carvalho Izidoro 
Exemplo 05 
#!/usr/bin/perl 
# Selecao Composta. 
my ($media, $faltas); 
print "Digite a media: "; 
$media = <STDIN>; 
print "Digite o numero de faltas: "; 
$faltas = <STDIN>; 
if ($media < 5 || $faltas > 25){ 
 print "Reprovado\n"; 
 } 
 elsif ($media >= 5 && $media < 7){ 
 print "Exame Final\n"; 
 } 
 else { 
 print "Aprovado\n"; 
 } 
Estrutura de Repetição 
Sandro Carvalho Izidoro 
Estrutura de repetição 
A estrutura de repetição permite que uma sequência de comandos seja 
executada repetidamente até que uma determinada condição de 
interrupção seja satisfeita. A condição de interrupção que deve ser 
satisfeita é representada por uma expressão lógica. As estruturas de 
repetição são: 
•  Comando Enquanto 
•  Comando Repita 
•  Comando Para 
Estrutura de Repetição 
Sandro Carvalho Izidoro 
Estrutura Enquanto 
Enquanto o valor da condição for verdadeiro, as ações dos comandos 
são executadas. Quando for falso, o comando é abandonado. Se já da 
primeira vez o resultado é falso, os comandos não são executados 
nenhuma vez. 
Formato do comando Enquanto 
enquanto condição faça 
inicio 
 comandos 
fim 
Estrutura de repetição 
Sandro Carvalho Izidoro 
Exemplo 
#!/usr/bin/perl	
  
#	
  Repe/cao:	
  Enquanto.	
  
my	
  ($x,	
  $y,	
  $l);	
  
$l	
  =	
  0;	
  
while	
  ($l	
  <=	
  3){	
  
	
   print	
  "digite	
  x:	
  ";	
  
	
   $x	
  =	
  <STDIN>;	
  
	
   print	
  "digite	
  y:	
  ";	
  
	
   $y	
  =	
  <STDIN>;	
  
	
   if	
  ($x	
  >	
  $y){	
  
	
   	
  	
  	
  	
  	
  	
  print	
  "$x	
  \n";	
  
	
   }	
  else	
  {	
  	
  
	
   	
  	
  	
  	
  	
  	
  print	
  "$y	
  \n";	
  
	
   }	
   	
  
	
   $l	
  =	
  $l	
  +	
  1;	
  
}	
  	
  
Algoritmo 
 declare X,Y, L numérico 
 L ← 0 
 enquanto L <= 3 faça 
 início 
 leia X,Y 
 se X > Y 
 então escreva X 
 senão escreva Y 
 L ← L + 1 
 fim 
Fim_Algoritmo. 
Estrutura de Repetição 
Sandro Carvalho Izidoro 
Estrutura Repita 
Os comandos são executados pelo menos uma vez. Quando a condição 
é encontrada, ela é testada. Se for verdadeira o comando seguinte será 
executado. Se for falsa, os comandos voltam a ser executados. Em 
outras palavras os comandos são executados até que a condição se 
torne verdadeira. 
Formato do comando Repita 
repita 
 comandos 
até condição 
Estrutura de Repetição 
Sandro Carvalho Izidoro 
Exemplo 
#!/usr/bin/perl	
  
#	
  Repe/cao:	
  Repita.	
  
my	
  ($x,	
  $y,	
  $l);	
  
$l	
  =	
  0;	
  
do	
  {	
  
	
  	
  	
  print	
  "digite	
  x:	
  ";	
  
	
  	
  	
  $x	
  =	
  <STDIN>;	
  
	
  	
  	
  print	
  "digite	
  y:	
  ";	
  
	
  	
  	
  $y	
  =	
  <STDIN>;	
  
	
  	
  	
  if	
  ($x	
  >	
  $y){	
  
	
  	
  	
  	
  	
  	
  print	
  "$x	
  \n";	
  
	
  	
  	
  }	
  else	
  {	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  print	
  "$y	
  \n";	
  
	
  	
  	
  }	
   	
  
	
  	
  	
  $l	
  =	
  $l	
  +	
  1;	
  
}	
  un/l	
  $l	
  >=	
  3	
  	
  
Algoritmo 
 declare X,Y, L numérico 
 L ← 0 
 repita 
 leia X,Y 
 se X > Y 
 então escreva X 
 senão escreva Y 
 L ← L + 1 
 até L > 3 
Fim_Algoritmo. 
Estrutura de Repetição 
Sandro Carvalho Izidoro 
Estrutura Para 
O comando para é, na verdade, o comando enquanto utilizando uma 
variável de controle, escrito numa notação compactada. Neste caso 
existirá sempre uma inicialização davariável de controle, um teste para 
verificar se a variável atingiu o limite e um acréscimo na variável de 
controle. 
Formato do comando Para 
para var de val_num_1 até val_num_2 [ passo val_num_3] faça 
início 
 comandos 
fim 
Estrutura de repetição 
Sandro Carvalho Izidoro 
Exemplo 
#!/usr/bin/perl	
  
#	
  Repe/cao:	
  Para.	
  
my	
  ($x,	
  $y,	
  $l);	
  
for	
  ($l=0;$l<=3;$l++){	
  
	
  	
  	
  print	
  "digite	
  x:	
  ";	
  
	
  	
  	
  $x	
  =	
  <STDIN>;	
  
	
  	
  	
  print	
  "digite	
  y:	
  ";	
  
	
  	
  	
  $y	
  =	
  <STDIN>;	
  
	
  	
  	
  if	
  ($x	
  >	
  $y){	
  
	
  	
  	
  	
  	
  	
  print	
  "$x	
  \n";	
  
	
  	
  	
  }	
  else	
  {	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  print	
  "$y	
  \n";	
  
	
  	
  	
  }	
   	
  
}	
  	
  
Algoritmo 
 declare X,Y, L numérico 
 para L de 1 até 3 passo 1 faça 
 início 
 leia X,Y 
 se X > Y 
 então escreva X 
 senão escreva Y 
 fim 
Fim_Algoritmo. 
Procedimentos e Funções 
Sandro Carvalho Izidoro 
Um módulo é um grupo de comandos, constituindo um trecho de 
algoritmo, com uma função bem definida e o mais independente 
possível em relação ao resto do algoritmo. 
Todo módulo é constituído por uma sequência de comandos que 
operam sobre um conjunto de objetos, que podem ser globais ou locais. 
Objetos globais são entidades que podem ser usadas em módulos 
internos a outro módulo do algoritmo onde foram declaradas. 
Objetos locais são entidades que só podem ser usadas no módulo do 
algoritmo onde foram declaradas. 
A comunicação entre módulos deverá ser feita através de vínculos, 
utilizando-se objetos globais ou transferência de parâmetros. 
Procedimentos e Funções 
Sandro Carvalho Izidoro 
A divisão do algoritmo em módulos traz os seguintes benefícios: 
  Manutenção simples (módulos independentes); 
  Elaboração e testes em separado; 
  Reutilização do módulo em outros programas. 
Ferramentas para modularização 
Como ferramentas de modularização podemos destacar as sub-rotinas 
e as funções. Os módulos de programação servem basicamente a três 
objetivos: 
  Repetição de código; 
  Dividir e estruturar melhor um algoritmo; 
  Aumentar a legibilidade de um algoritmo. 
Procedimentos e Funções 
Sandro Carvalho Izidoro 
Sub-rotinas e funções são módulos hierarquicamente subordinados a 
um algoritmo, comumente chamado de módulo principal. Da mesma 
forma, uma sub-rotina ou uma função pode conter outras sub-rotinas e 
funções aninhadas. 
A sub-rotina e a função são criadas através das suas declarações em 
um algoritmo. Para serem executadas, necessitam de ativação 
provocada por um comando de chamada. 
Procedimentos e Funções 
Sandro Carvalho Izidoro 
Sub-rotinas 
Sintaxe 
Subrotina NOME (lista_de_parâmetros_formais) 
 declarações dos objetos locais à sub-rotina 
 comandos da sub-rotina 
Fim_sub_rotina NOME 
A chamada de uma sub-rotina é feita com uma referência a seu 
nome e a indicação dos parâmetros atuais no local do 
algoritmo onde a sub-rotina deve ser ativada, ou seja, onde a 
sua execução deve ser iniciada. A forma geral para a ativação 
de uma sub-rotina é a seguinte: 
NOME (lista_de_parâmetros_atuais) 
Procedimentos e Funções 
Sandro Carvalho Izidoro 
Funções 
Sintaxe 
Função tipo NOME (lista_de_parâmetros_formais) 
 declarações dos objetos locais à função 
 comandos da função 
 retorne valor 
Fim_função NOME 
A chamada de uma função é feita com uma referência a seu 
nome e a indicação dos parâmetros atuais no local do 
algoritmo onde a função deve ser ativada. Pode-se chamar 
uma função de várias formas: 
valor ← NOME (lista_de_parâmetros_atuais) 
escreva NOME (lista_de_parâmetros_atuais) 
Procedimentos e Funções 
Sandro Carvalho Izidoro 
Exemplo 
Algoritmo 
declare numero numerico 
 função literal ph (valor numerico) 
 escreva “forneça o ph da solução:” 
 leia numero 
 escreva “A solução é “, ph (numero) 
Fim_Algoritmo. 
função literal ph (numero numerico) 
 se numero > 7 
 então retorne “base” 
 senão se numero < 7 
 então retorne “ácida” 
 senão retorne “neutra” 
fim função ph 
Procedimentos e Funções 
Sandro Carvalho Izidoro 
Exemplo 
#!/usr/bin/perl 
# Função exemplo 
my ($ph); 
print "Forneça o ph da solução: "; 
$ph = <STDIN>; 
print "A solução é ", &retorna_ph($ph) , "\n"; 
sub retorna_ph { 
 my $parametro01 = $_[0]; 
 if ($parametro01 > 7) { 
 return "base"; 
 } elsif ($parametro01 < 7) { 
 return "ácida"; 
 }else { return "neutra";} 
 } 
Vetor e Matriz 
Sandro Carvalho Izidoro 
Exemplo Vetor 
Algoritmo 
 declare vetor1[1:3], vetor2[1:3] literal 
 flag, i numérico 
 escreva “Digite o primeiro vetor” 
 para i de 1 até 3 passo 1 faça 
 inicio 
 leia (vetor1[ i ]) 
 fim para 
 escreva “Digite o segundo vetor” 
 para i de 1 até 3 passo 1 faça 
 inicio 
 leia (vetor2[ i ]) 
 fim para 
 flag ← 1 
para i de 1 até 3 passo 1 faça 
inicio 
 se (vetor1[ i ] <> vetor2[ i ] ) 
 então flag ← 0 
fim para 
se (flag = 1) 
 então escreva “Iguais” 
 senão escreva “diferentes” 
fim algoritmo. 
Vetor e Matriz 
Sandro Carvalho Izidoro 
Exemplo Vetor 
#!/usr/bin/perl 
# Vetor 
my (@vetor1, @vetor2, $flag); 
$flag = 1; 
print "Digite o primeiro vetor:\n"; 
for($i=0;$i<3;$i++){ 
 $vetor1[$i] = <STDIN>; 
 } 
print "Digite o segundo vetor:\n"; 
for($i=0;$i<3;$i++){ 
 $vetor2[$i] = <STDIN>; 
 } 
for($i=0;$i<3;$i++){ 
 if($vetor1[$i] ne $vetor2[$i]){ 
 $flag = 0; 
 } 
} 
if($flag == 1){ 
 print "Vetores iguais\n";} 
 else { print "Vetores diferentes\n"; 
 } 
Vetor e Matriz 
Sandro Carvalho Izidoro 
Exemplo Matriz 
Algoritmo 
 declare matriz[1:3,1:2], seq literal 
 i, j numérico 
 escreva “Digite os valores para a matriz” 
 para i de 1 até 3 passo 1 faça 
 inicio 
 para j de 1 até 2 passo 1 faça 
 inicio 
 leia (matriz[ i, j ]) 
 fim para 
 fim para 
 escreva “Digite uma sequência:” 
 leia seq 
para j de 1 até 3 passo 1 faça 
inicio 
 se (matriz[ i, 1 ] = seq) 
 então escreva matriz[i , 2] 
fim para 
 
fim algoritmo.

Outros materiais