Baixe o app para aproveitar ainda mais
Prévia do material em texto
ALGORITMOS E PROGRAMAÇÃO Métodos de Representação de Algoritmos Prof. Victoria Souto E-mail : victoria.souto@gmail.com Métodos de Representação de Algoritmos Fluxograma Representação gráfica de um algoritmo, este tipo de representação é mais concisa que a representação textual. Pseudocódigo Representação textual de um algoritmo, este tipo de representação permite a transcrição do algoritmo para qualquer linguagem de programação. Fluxograma Simbologia Básica: Início / Fim Entrada Saída Decisão Cálculo Fluxograma Início A Soma Soma = A + B B Fim Início do Algoritmo Entra com o primeiro número Entra com o segundo número Realiza a soma dos números Apresenta o resultado Fim do Algoritmo EXEMPLO: Realizar a soma de dois números. 4 Pseudocódigo/Português Estruturado Através da utilização de pseudocódigo a transcrição para qualquer linguagem de programação é quase direta. A técnica textual de representação de um algoritmo denominada Pseudocódigo também é conhecida como Português Estruturado. O Português Estruturado é baseada em uma PDL (Program Design Language), que é uma linguagem genérica na qual é possível representar um algoritmo de forma semelhante à das linguagens de programação. Regras do Português Estruturado As palavras reservadas pela linguagem são escritas em negrito e não podem ser utilizadas como identificadores de variáveis. Dentre as palavras reservadas pode-se citar: INTEIRO, CARACTERE, REAL, VAR, LOGICO, INICIO, LEIA, ESCREVA... Para tornar um algoritmo claro é importante que cada linha apresente um comentário (utilizado para indicar comentário “//”) com a descrição do código. Utilizar tabulação para escrever um código, para torná-lo mais claro e de fácil visualização. Regras do Português Estruturado TIPOS DE DADOS: Inteiro: Define dados numéricos, as quais podem ser positivos ou negativos pertencentes ao conjunto de números inteiros, ou seja, sem cada decimais. Real: Define dados numéricos, as quais podem ser positivos ou negativos pertencentes ao conjunto de números reais, ou seja, incluindo valores fracionários. Lógico: Define dados do tipo booleano, ou seja, verdadeiro ou falso. Caractere: Define dados representados por sequências de valores delimitadas por aspas, formadas por letras, números e símbolos. Dados do Tipo Inteiro: Dados do Tipo Real: Dados do Tipo Caractere: Dados do Tipo Lógico: 35 0 -56 0 234 -10 35 0 -56 35.5 0.2 -9.90 “Teste” “-90” “50.8” “CINCO” “100” “50.8” .Verdadeiro. .Falso. 0 1 Exemplos Regras do Português Estruturado VARIÁVEIS Elemento de dado cujo valor pode ser modificado ao longo de sua execução. Uma variável representa uma posição na memória de um computador previamente identificado, ou seja, primeiro é necessário saber o seu tipo para depois fazer o seu armazenamento adequado. Uma variável pode ser declarada da seguinte forma: Tipo: Inteiro Caractere Real Lógico tipo nome_variável O primeiro caractere de identificação do nome da variável dever ser, obrigatoriamente, alfabético e os demais podem ser alfanuméricos; Não podem existir espaços em branco no nome de variáveis, para nomes compostos se utiliza o caractere de separação “_” UNDERLINE; Um variável não pode ser definida com o mesmo nome de uma palavra que represente os comandos de uma linguagem de programação de computadores. Regras para Criar Nomes de Variáveis EXEMPLOS: Nomes Válidos: Nomes Inválidos: ENDEREÇO N_USUARIO CIDADE3 21BRASIL N$USUARIO END*A-6 Regras do Português Estruturado Regras do Português Estruturado CONSTANTES Uma constante é uma grandeza numérica usada normalmente numa expressão aritmética ou matemática, que define um valor de equilíbrio que se mantém inalterado, independentemente das variáveis envolvidas na operação a ser realizada. Valores fixos, tais como números. Estes valores não podem ser alterados pelas instruções do algoritmo, ou seja, é um espaço de memória cujo valor não deve ser alterado durante a execução do programa. Regras do Português Estruturado OPERADORES ARITMÉTICOS Apresentam-se como as ferramentas responsáveis pelo estabelecimento das operações matemáticas a serem realizadas em um computador. Os Operadores Aritméticos podem ser classificados como: UNÁRIOS: Atuam na inversão do estado de um valor numérico. (positivo negativo e negativo positivo). BINÁRIOS: São utilizados em operações matemáticas. (exponenciação, divisão, subtração, adição e multiplicação). OPERADORES ARITMÉTICOS A tabela abaixo apresenta os operadores aritméticos segundo a ordem padrão de prioridade matemática em que as operações aritméticas são realizadas. Para alterar a ordem de prioridade apresentada na tabela acima utilize PARÊNTESES. Regras do Português Estruturado OPERADORES RELACIONAIS A tabela abaixo apresenta os Operadores Relacionais, os quais representam as relações que os valores podem ter um com os outros. Regras do Português Estruturado Regras do Português Estruturado OPERADORES LÓGICOS Os operadores lógicos, referem-se às maneiras como as relações podem ser conectadas. A tabela abaixo apresenta três operadores lógicos, através dos quais é possível obter outros operadores lógicos existentes. A tabela abaixo apresenta a tabela verdade dos três operadores lógicos apresentados acima. Regras do Português Estruturado ENTRADA DE DADOS: leia (<lista de variáveis>) Para a operação de entrada de dados é respeitada a ordem da lista de variáveis, da esquerda para direita. SAÍDA DE DADOS: escreva (<lista de variáveis>) escreval (<lista de variáveis>) escreval imprime a variável na tela e o cursor vai para uma nova linha. OPERADOR DE ATRIBUIÇÃO: nome_variável 3 Exemplo: Leia 3 valores inteiros do teclado e escreva na tela a soma dos dois primeiros e a multiplicação entre os dois últimos números. Exemplo: Leia 2 valores inteiros (X,Y) do teclado e escreva na tela o resultado da divisão destes dois valores (D = X/Y). E se Y fosse 0 ??? Exemplo: Leia 2 valores inteiros (X,Y) do teclado e se Y for diferente de 0 faça a divisão destes dois valores (D = X/Y) e escreva na tela. PARA RESOLVER ESTE PROBLEMA TORNA-SE NECESSÁRIO UTILIZAR OS RECURSOS DE TOMADA DE DECISÃO. Algoritmo: Ler dois valores incógnitos (estabelecer as variáveis X e Y); Testa se o valor de Y é diferente de 0, caso sim efetua a divisão de X e Y e escreve o resultado D na tela; Estruturas de Controle DESVIO CONDICIONAL SIMPLES: Utiliza a instrução se...então...fimse, a qual apresenta a seguinte sintaxe em português estruturado. se (<condição>) então <instruções para condição verdadeira> fimse <instruções para condição falsa ou após ser verdadeira> Leia 2 valores inteiros (X,Y) do teclado e se Y for diferente de 0 faça a divisão destes dois valores (D = X/Y) e escreva na tela. EXEMPLO: var X,Y: inteiro D: real inicio leia(X,Y) se (Y <> 0) então D X/Y escreve(“Divisão”, D) fimse fim_algoritmo 20 Leia 2 valores inteiros (X,Y) do teclado e se Y for diferente de 0 faça a divisão destes dois valores (D = X/Y) e escreva na tela. EXEMPLO: Y = 0 Y = 4 Estruturas de Controle DESVIO CONDICIONAL COMPOSO: Utiliza a instrução se...então...senão...fimse, a qual apresenta a seguinte sintaxe em português estruturado. se (<condição>) então <instruções para condição verdadeira> senão <instruções para condição falsa> fimse Somente após a execução de uma das possibilidades anteriores é que o programa executará as instruções existentes após fimse EXEMPLO: Leia 2 valores inteiros (X,Y) do teclado e se Y for diferente de 0 faça a divisão destes dois valores (D = X/Y) e escreva na tela, caso contrário escreva na tela a seguinte mensagem, “Valor de Y=0”. Estruturas de Controle DESVIOS CONDICIONAIS ENCADEADOS: Utiliza instruções do tipo se...então...senão...fimse encadeadas, a idéia desta estrutura de controle sugere a possibilidade de usaruma condição dentro de outra condição, levando a uma estrutura encadeada. se (<condição1>) então se (<condição2>) então <instruções para condição2 verdadeira, porém condição1 falsa> senão <instruções para condição1 e condição2 falsa> fimse senão se (<condição3>) então <instruções para condição3 verdadeira, porém condição1 falsa> senão <instruções para condição1 e condição3 falsa> fimse fimse Elaborar um programa que efetue o cálculo do reajuste de salário de um funcionário. Considere que o funcionário deve receber um reajuste de 15% caso seu salário seja menor que 500. Se o salário for maior ou igual a 500, mas menor ou igual a 1000, seu reajuste será de 10%; caso seja ainda maior que 1000, o reajuste deverá ser de 5%. EXEMPLO: programa REAJUSTAR_SALARIO var NOVO_SALARIO, SALARIO: real inicio leia (SALARIO) se (SALARIO < 500) então NOVO_SALARIO SALARIO * 1.15 senão se (SALARIO <= 1000) então NOVO_SALARIO SALARIO * 1.10 senão NOVO_SALARIO SALARIO * 1.05 fimse escreva (“Valor Calculado,” NOVO_SALARIO) fim SALARIO < 500 Reajuste de 15% SALARIO >= 500 SALARIO <= 1000 Reajuste de 10% SALARIO > 1000 Reajuste de 5% Operadores Lógicos Necessidade de trabalhar com mais de uma condição dentro de uma única decisão; Testes lógicos múltiplos; Necessidade de utilizar mais de uma condição para uma mesma tomada de decisão. OPERADOR LÓGICO: .e. OPERADOR LÓGICO: .ou. OPERADOR LÓGICO: .não. se (<condição1>) .e. (<condição2>) então <instruções executas se condição1 e condição2 verdadeiras> fimse se (<condição1>) .ou. (<condição2>) então <instruções executas se condição1 e condição2 verdadeiras> fimse se (<condição1>) .não. (<condição2>) então <instruções executas se condição1 e condição2 verdadeiras> fimse EXEMPLO: Ler três valores para os lados de um triangulo, considerando lados como: A, B e C. Verificar se os lados fornecidos formam realmente um triângulo, e se for esta condição verdadeira, deve ser indicado qual tipo de triângulo foi formado: isósceles, escaleno ou equilátero. Condição para a existência de um triângulo: Para que se possa construir um triângulo é necessário que a medida de qualquer um dos lados seja menor que a soma das medidas dos outros dois Tipos de Triângulos: TRIÂNGULO EQUILÁTERO TRIÂNGULO ISÓCELES TRIÂNGULO ESCALENO 29 Malhas de Repetição Utilizadas quando é necessário repetir um trecho de programa um determinado número de vezes. Os laços também são chamados loppings ou malhas de repetição. Tipos de Estruturas de Malhas de Repetição: Estrutura Enquanto; Estrutura Repita; Estrutura Para. Exemplo: Leia um valor A, multiplique esse valor por 2 e coloque o valor calculado na variável B e escreva o valor obtido, repetindo a sequência por três vezes. programa LE_VALOR var A, B : inteiro inicio leia A B A * 2 escreva B leia A B A * 2 escreva B leia A B A * 2 escreva B fim Estrutura ENQUANTO Realiza um teste lógico no início do laço, verificando se é permitido executar o trecho de instruções subordinado a esse laço. Conjunto de instruções: enquanto...faça...fim_enquanto Executa um determinado conjunto de instruções enquanto a condição verificada for verdadeira. No momento em que a condição se torna, falsa, o processamento da rotina é desviado para fora do laço. Se a condição for falsa logo no início, as instruções contidas no laço são ignoradas. Estrutura ENQUANTO Sintaxe: enquanto (condição1) faça <instruções para condição1 verdadeira> fimenquanto <instruções para condição1 falsa> Exemplo: Leia um valor A, multiplique esse valor por 2 e coloque o valor calculado na variável B e escreva o valor obtido, repetindo a sequência por três vezes. Realiza um teste lógico no final do laço. O laço será executado pelo menos uma vez. Utiliza o conjunto de instruções: repita...até...que A estrutura REPITA tem seu funcionamento em sentido contrário a ENQUANTO, pois sempre processa um conjunto de instruções no mínimo uma vez até que a condição seja verdadeira. Se a condição for falsa, o laço continua. Se a condição for verdadeira, o laço será encerrado. Estrutura REPITA Estrutura REPITA Sintaxe: repita <instruções caso seja a primeira execução ou condição1 falsa> até_que (condição1) <instruções para condição1 verdadeira> Exemplo: Leia um valor A, multiplique esse valor por 2 e coloque o valor calculado na variável B e escreva o valor obtido, repetindo a sequência por três vezes. Exemplo: Leia dois valores, cont e A, se cont menor que 3, multiplique A por 2 e coloque o valor calculado na variável B e escreva o valor obtido, repetindo a sequência até que seja digitado uma valor para cont maior que 3. Utilizada para laços que possuem um número finito de execuções. Conjunto de Instruções: para...de...até...passo...faça...fim_para Esta estrutura tem seu funcionamento controlado por uma variável denominada contador. Sendo assim, pode executar um determinado conjunto de instruções um certo número de vezes. Estrutura PARA Estrutura PARA Sintaxe: para <variável> de <inicio> até <fim> passo <incremento> faça <instruções> fim_para Exemplo: Pedir a leitura de um valor para a variável X, multiplicar esse valor por 3, colocá-lo na variável de resposta R e apresentar o valor obtido, repetindo esta sequência por cinco vezes. Exercícios: Elaborar um programa que apresente no final o somatório dos valores pares existentes na fixa de 1 até 500. Elaborar um programa que apresente os resultados da soma e da média aritmética dos valores pares situados na faixa numérica de 50 a 70. Elaborar um programa que apresente no final o somatório dos valores pares existentes na fixa de 1 até 500. Elaborar um programa que apresente os resultados da soma e da média aritmética dos valores pares situados na faixa numérica de 50 a 70. Estrutura de Controle com Múltipla Escolha Quando houver a necessidade de construir um programa no qual seja necessário utilizar uma sequência grande de instruções do tipo se, sejam estas uma após a outra ou mesmo encadeadas, pode ser simplificada com a utilização da instrução caso...fim_caso, que possui a seguinte sintaxe: caso <variável> seja <valor1> faça <operação1> seja <valor2> faça <operação2> seja <valorN> faça <operaçãoN> senão <operação> fim_caso Em que variável seja a variável a ser controlada, valor será o conteúdo de uma variável sendo verificado e operação pode ser chamada de uma sub-rotina. Vetores Também recebe o nome de matriz unidimensional. Utilizada normalmente para a criação de tabelas. Caracteriza-se por ser definida uma única variável dimensionada com um determinado tamanho. Sintaxe (Declaração) VARIÁVEL: conjunto [<dimensão>] de <tipo de dado> <dimensão> é a indicação dos valores inicial e final do tamanho do vetor. <tipo de dado> determina se o vetor em questão irá utilizar valores reais, inteiros, lógicos ou caracteres. Vetores Leitura dos Dados de uma Matriz para i de 1 até 8 passo 1 faça leia MD[i] fim_para Escrita dos Dados de uma Matriz para i de 1 até 8 passo 1 faça escreva MD[i] fim_para Matrizes O tipo mais comum de matrizes são as bidimensionais, porém existem matrizes com mais de duas dimensões, as quais são utilizadas com menos frequências. Para manipular um vetor se utiliza uma única instrução de laço (enquanto, para ou repita). No caso de matrizes com mais dimensões deve ser usado o número de laços relativo ao tamanho de sua dimensão. Matriz Bidimensional utiliza dois laços. Em matrizes de mais de uma dimensão os seus elementos são também manipulados de forma individualizada, sendo a referência feita sempre por meio de dois índices: o primeiro para indicar a linha e o segundo para indicar a coluna. Ex: M[2,3] indica que está sendo feita uma referência ao elemento armazenado na linha 2 coluna 3. Matrizes Sintaxe (Declaração)VARIÁVEL: conjunto [<dimensão1>, <dimensão2>] de <tipo de dado> <dimensão1> e <dimensão2> são a indicação do tamanho da matriz. <tipo de dado> determina o tipo da matriz, a qual pode ser formada por valores reais, inteiros, lógicos ou caracteres. EXEMPLO DE DECLARAÇÃO: M: conjunto [1...8,1...4] de real Matrizes Leitura dos Dados de uma Matriz var NOTAS: conjunto [1..8, 1..4] de real i, j: inteiro inicio para i de 1 até 8 passo 1 faça para j de 1 até 4 passo 1 faça leia NOTAS [i, j] fim_para fim_para fim Matrizes Escrita dos Dados de uma Matriz var NOTAS: conjunto [1..8, 1..4] de real i, j: inteiro inicio para i de 1 até 8 passo 1 faça para j de 1 até 4 passo 1 faça escreva NOTAS [i, j] fim_para fim_para fim Exemplo: Ler uma matriz A de duas dimensões com 6 linhas e 5 colunas. Construir uma matriz B de mesma dimensão, que deve ser formada do seguinte modo: para cada elemento par da matriz A deve ser somado 5 e de cada elemento ímpar da matriz A deve ser subtraído 4. Apresentar ao final as matrizes A e B. Estrutura de um Registro Também chamadas Estruturas de Dados Heterogêneas ou apenas Estruturas. Permite trabalhar com vários dados de tipos diferentes em uma mesma estrutura. Layout do formato de um registrocom seus campos Cadastro de Notas Escolares Nome ...........................: _______________ Primeira Nota .............: _______________ Segunda Nota .............:. _______________ Exemplo do layout de um registro com seus campos Estrutura de um Registro Atribuição de Registros Os tipos registro devem ser declarados ou atribuídos antes das variáveis, pois pode ocorrer a necessidade de declarar uma variável com o tipo registro anteriormente atribuído. Para que seja declarado um tipo registro em português estruturado, deve ser utilizada a instrução tipo em conjunto com a instrução registro...fim_registro, conforme a sintaxe abaixo. tipo <identificador> = registro <lista dos campos e seus tipos> fim_registro var <variáveis> : <identificador> 57 tipo <identificador> = registro <lista dos campos e seus tipos> fim_registro var <variáveis> : <identificador> Identificador é o nome do tipo registro em caracteres maiúsculos, em itálico. As variáveis, e listas dos campos e seus tipos é a relação de variáveis que serão usadas como campos, bem como seu tipo de estrutura de dados. Após a instrução var, deve ser indicada a variável tipo registro e a declaração do seu tipo de acordo com um identificador definido anteriormente. A instrução tipo deve ser utilizada antes da instrução var, pois ao definir um tipo de variável pode-se utilizar esse tipo definido. Exemplo: Criar um registro denominado ALUNO, cujos campos são NOME, NOTA1, NOTA2, NOTA3, NOTA4. tipo CAD_ALUNO = registro NOME : caractere NOTA1 : real NOTA2 : real NOTA3 : real NOTA4 : real fim_registro var ALUNIO : cad_aluno Exemplo: Leitura de Registros. programa LEITURA tipo CAD_ALUNO = registro NOME : caractere NOTA1 : real NOTA2 : real NOTA3 : real NOTA4 : real fim_registro var ALUNO : cad_aluno inicio leia ALUNO . NOME leia ALUNO . NOTA1 leia ALUNO . NOTA2 leia ALUNO . NOTA3 leia ALUNO . NOTA4 fim Exemplo: Escrita de Registros. programa ESCRITA tipo CAD_ALUNO = registro NOME : caractere NOTA1 : real NOTA2 : real NOTA3 : real NOTA4 : real fim_registro var ALUNO : cad_aluno inicio escreva ALUNO . NOME escreva ALUNO . NOTA1 escreva ALUNO . NOTA2 escreva ALUNO . NOTA3 escreva ALUNO . NOTA4 fim Estruturas com Matrizes tipo BIMESTRE = conjunto [1..4] de real CAD_ALUNO = registro NOME : caractere NOTA : bimestre fim_ registro Bimestre é a especificação de um tipo de conjunto matricial de uma única dimensão com capacidade para quatro elementos. O tipo bimestre foi anteriormente definido, pois se caracteriza por um tipo criado. Leitura de Registros. programa LEITURA Tipo BIMESTRE = conjunto [1..4] de real CAD_ALUNO = registro NOME : caractere NOTA1 : real NOTA2 : real NOTA3 : real NOTA4 : real fim_registro var ALUNO : cad_aluno I : inteiro inicio leia ALUNO . NOME para I de 1 até 4 passo 1 faça leia ALUNO.NOTA[I] fim_para fim Exemplos: Escrita de Registros. programa LEITURA Tipo BIMESTRE = conjunto [1..4] de real CAD_ALUNO = registro NOME : caractere NOTA1 : real NOTA2 : real NOTA3 : real NOTA4 : real fim_registro var ALUNO : cad_aluno I : inteiro inicio leia ALUNO . NOME para I de 1 até 4 passo 1 faça escreva ALUNO.NOTA[I] fim_para fim Exemplos: Matrizes de Estruturas Considere que você deve fazer um programa que leia o nome e as quatro notas escolares de 8 alunos. tipo BIMESTRE = conjunto [1..4] de real CAD_ALUNO = registro NOME : caractere NOTA : bimestre fim_registro var ALUNO : conjunto [1..8] de cad_aluno Variável de registro ALUNO, sendo esta um conjunto de oito registros do tipo cad_aluno que, por sua vez, é formado de dois tipo de dados: o nome como caractere e a nota como bimestre. Bimestre é um conjunto de quatro valores reais. Exemplos: Leitura de Registros. programa LEITURA Tipo BIMESTRE = conjunto [1..4] de real CAD_ALUNO = registro NOME : caractere NOTA1 : real NOTA2 : real NOTA3 : real NOTA4 : real fim_registro var ALUNO : conjunto[1..8] de cad_aluno I, J : inteiro inicio para I de 1 até 8 passo 1 faça leia ALUNO[I] . NOME para J de 1 até 4 passo 1 faça leia ALUNO[I] . NOTA[J] fim_para fim_para fim Exemplos: Escrita de Registros. programa LEITURA Tipo BIMESTRE = conjunto [1..4] de real CAD_ALUNO = registro NOME : caractere NOTA1 : real NOTA2 : real NOTA3 : real NOTA4 : real fim_registro var ALUNO : conjunto[1..8] de cad_aluno I, J : inteiro inicio para I de 1 até 8 passo 1 faça escreva ALUNO[I] . NOME para J de 1 até 4 passo 1 faça escreva ALUNO[I] . NOTA[J] fim_para fim_para fim Sub-Rotinas Procedimentos x Funções Um procedimento é um bloco de programa contendo início e fim e será identificado por um nome, por meio do qual será referenciado em qualquer parte do programa principal ou do programa chamador da rotina. Uma função também é um bloco de programa, como são os procedimentos, contendo início e fim e identificada por um nome, pelo qual também será referenciada em qualquer parte do programa principal. A sua principal diferença está no fato de uma função retornar um determinado valor, no próprio nome da função. Procedimentos Sintaxe: procedimento <nome do procedimento> var <variáveis> início <instruções> fim Procedimentos Utilização de Parâmetros Formais e Reais: Os parâmetros são um ponto de comunicação bidirecional entre uma sub-rotina e o programa principal. É possível passar valores de uma sub-rotina ou rotina chamadora a outra sub-rotina e vice-versa, utilizando parâmetros que podem ser formais ou reais. Serão considerados parâmetros formais quando forem declarados por meio de variáveis juntamente com a identificação do nome da sub-rotina. Exemplo: procedimento CALCSOMA (A, B : inteiro) var Z : inteiro inicio Z A + B escreva Z fim Procedimentos Utilização de Parâmetros Formais e Reais: Serão considerados parâmetros reais quando substituírem os parâmetros formais, quando da utilização da sub-rotina por um programa principal ou por uma rotina chamadora. Exemplo: inicio leia X leia Y calcsoma (X, Y) leia W leia T calcsoma (W, T) calcsoma (8, 2) fimToda vez que a sub-rotina CALCSOMA é chamada, utilizam-se parâmetros reais. Procedimentos Passagem de Parâmetros: A passagem de parâmetro ocorre quando é feita uma substituição dos parâmetros formais pelos reais no momento da execução da sub-rotina. Esses parâmetros são passados por variáveis de duas formas: por valor e por referência. Por Valor: A passagem de parâmetro por valor caracteriza-se pela não-alteração do valor do parâmetro real quando o parâmetro formal é manipulado dentro da sub-rotina. 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 não afeta o valor do parâmetro real correspondente, ou seja, o processamento é executado somente dentro da sub-rotina, ficando o resultado obtido “preso” na sub-rotina. Exemplo: Cálculo do Fatorial: programa FATORIAL_CALC procedimento FATORIAL (N : inteiro) var I, FAT : inteiro inicio FAT 1 para I de 1 até N passo 1 faça FAT FAT * I fim_para escreva FAT fim var LIMITE : inteiro início escreva “Qual fatorial: ” leia LIMITE fatorial (LIMITE) fim Passagem de Parâmetros por Referência: A passagem de parâmetro por referência ocorre quando o parâmetro real recebe o conteúdo do parâmetro formal e após um certo processamento dentro da sub-rotina o parâmetro formal reflete no parâmetro formal implica em alteração no parâmetro real correspondente. A alteração efetuada é devolvida para a rotina chamadora. A passagem de parâmetro por referência é utilizada para que se tenha a saída de um determinado valor de dentro de uma sub-rotina. Procedimentos Exemplo: Cálculo do Fatorial: programa FATORIAL_CALC procedimento FATORIAL (N : inteiro, var FAT: inteiro) var I : inteiro inicio FAT 1 para I de 1 até N passo 1 faça FAT FAT * I fim_para escreva FAT fim var LIMITE, RETORNO : inteiro início escreva “Qual fatorial: ” leia LIMITE fatorial (LIMITE, RETORNO) escreva RETORNO fim PASSAGEM DE PARÂMETRO POR REFERÊNCIA Imprime o valor de FAT Funções Sintaxe: função <nome da função> (parâmetros) : <tipo da função> var <variáveis> início <instruções> fim <tipo da função> determina o tipo (real, inteiro, lógico ou caractere) de retorno da função. Exemplo: Cálculo do Fatorial: função FATORIAL (N : inteiro) : inteiro var I, FAT : inteiro inicio FAT 1 se (N = 0) então FATORIAL 1 senão para I de 1 até N passo 1 faça FAT FAT * I fim_para FATORIAL FAT fim_se fim Exercícios: Calcular a área de um triângulo dada a fórmula A = (b*h)/2. Calcular a média do peso de uma família de 5 pessoas. No final da execução do fragmento de código abaixo, qual é o valor de n1, n2 e n3? var n1,n2: inteiro n110 n2 30 n3 n1 n1 n2 n2 n3 Exercícios: Elabore um algoritmo que leia um número inteiro e imprima seus sucessor e seu antecessor. Por exemplo, suponha que o usuário digite o número 7, o algoritmo deverá imprimir (escrever) na tela o seu antecessor (número 6) e o seu sucessor (o número 8). Elabore um algoritmo que leia uma temperatura em graus centígrados e apresente a convertida em graus Fahrenheit. A fórmula de conversão é: F = 9/5 *C + 32 onde F é a temperatura em Fahrenheit e C é a temperatura em Centígrados. Exercícios: Elabore um algoritmo que leia um número e imprima uma das mensagens: é múltiplo de 3, ou, não é múltiplo de 3. Elabore um algoritmo que leia dois números e imprima qual é maior, qual é menor, ou se são iguais. Elabore um algoritmo que leia um número inteiro entre 1 e 12 e imprima o mês correspondente. Caso seja digitado um valor fora desse intervalo, deverá ser exibida uma mensagem informando que não existe mês com esse número. Elabore um algoritmo que imprima todos os números de 1 até 100. Elabore um algoritmo que imprima todos os números pares de 1 até 100.
Compartilhar