Lógica de Programação Subalgoritmos

Slides:



Advertisements
Apresentações semelhantes
Universidade Federal de Campina Grande – UFCG Centro de Ciências e Tecnologias – CCT Unidade Acadêmica de Engenharia Química - UAEQ Universidade Federal.
Advertisements

Lógica de Programação Aula 25 Prof. Auler Gomes. Introdução - subrotina Muitos problemas grandes ou nem tão grandes, mas de solução mais complexa podem.
Linguagem de Programação – Aula 03 Prof. Me. Ronnison Reges Vidal.
Princípios de Desenvolvimento de Algoritmos MAC122 Prof. Dr. Paulo Miranda IME-USP Variáveis e Atribuições.
Lógica de Programação Aula 26 Prof. Auler Gomes.
Estruturas de Repetição
Introdução à Computação para Engenharia MAC2166
Tópicos Preliminares Algorítmos I.
RODOLFO SOARES TEIXEIRA OBMEP NA ESCOLA
Algoritmo e Lógica Programação Vetores e Matrizes
Medições – parte I: Precisão.
Algoritmo e Lógica Programação Modularização: Funções e Subalgoritmos
Algoritmos e Estruturas de Dados I
Programação em C Aula 8.
Estruturas de Repetição
Linguagem C Para programadores Python
Prof. Wellington Franco Sub-Rotinas:Funções e Procedimentos
Prof. Wellington Franco Estrutura de um Programa Usando o VisuAlg
Prof. Wellington Franco
IP – Condicionais e controle de fluxo
FUNDAMENTO DE PROGRAMAÇÃO PROF. BRUNO DE CASTRO H. SILVA
Vantagens e desvantagens da recursão
Prof. Wellington Franco Manipulação de Arquivos em C
Estrutura de decisão Neste tipo de estrutura o fluxo de instruções a ser seguido é escolhido em função do resultado da avaliação de uma condição. Uma.
Prof. Wellington Franco
ALGEBRA LINEAR AUTOVALORES E AUTOVETORES Prof. Ademilson
Estruturas de Dados Vetores.
FUNDAMENTO DE PROGRAMAÇÃO PROF. BRUNO DE CASTRO H. SILVA
Arquitetura de Computadores
Lógica de Programação e Algoritmos - LPA Professora: Ecila Alves de Oliveira UNIP – 2.Sem/2015 Décima Primeira Aula - Função.
Lógica de Programação e Algoritmos - LPA Professora: Ecila Alves de Oliveira UNIP – 2.Sem/2015 Décima Primeira Aula - Função.
PIT – PROGRAMA INTERNO DE TREINAMENTO 2015
FUNDAMENTO DE PROGRAMAÇÃO
IP – Repetições Prof. Eduardo Falcão.
Subalgoritmo É um trecho de algoritmo construído para resolver parte de um problema maior. Também chamado de módulo. A técnica que consiste dividir o.
Matrícula Matrícula é a Inscrição que permite ao aluno frequentar um estabelecimento de ensino Incluir Alterar Consultar Excluir Encerrar Reativar Imprimir.
Cadastro de Funcionário
Introdução à Programação
VETORES.
Sistemas de Controle III N8SC3
Programação Orientada a Objetos
Algoritmos e Programação MC102
Funções do Usuário em Matlab
Matrícula Matrícula é a Inscrição que permite ao aluno frequentar um estabelecimento de ensino Incluir Alterar Consultar Excluir Encerrar Reativar Imprimir.
Algoritmos e Programação I
Estrutura de Repetição
Programação.
Algoritmos Prof.: Carlos Alberto _1:
Aula 22 Modularização 22/10/08.
O que você deve saber sobre
Profa. Maria Augusta Constante Puget
Complexidade de Algoritmos
LÓGICA DE PROGRAMAÇÃO Estruturas de Decisão
Vetores: Exercícios Resolvidos
Linguagem PASCAL Tipos Estruturados
EDA - Prof. Paulemir Campos
Prof.: Carlos Alberto Algoritmos Prof.: Carlos Alberto
Algoritmos Prof.: Carlos Alberto
Filas Prof. Kariston Pereira
Algoritmos Prof.: Carlos Alberto
Desenho Aplicado à Automação e Controle
Elaboração da ficha catalográfica para teses e dissertações TUTORIAL
Computação Eletrônica Funções e Escopo de Variáveis
Introdução à lógica de programação utilizando Scratch Aula 3
ALGORITMOS.
Prof. Rafael Mesquita Listas Encadeadas Prof. Rafael Mesquita
Python: Comandos Básicos
Vetores.
Introdução a progrmação Comandos condicionais: if e switch
RESULUÇÃO DOS EXERCÍCIOS E
Transcrição da apresentação:

Lógica de Programação Subalgoritmos

Problema Como resolver um problema bem “cabeludo”? Como as pirâmides do Egito foram construídas?

Solução Dividir para conquistar. Modularização

Subalgoritmos São trechos de algoritmos que efetuam determinada tarefa. Ao invés de escrever um algoritmo grande, escrevem-se vários algoritmos menores, os quais, em conjunto, resolvem o problema proposto. É especialmente indicado usá-los quando uma determinada tarefa é efetuada em diversos lugares no mesmo algoritmo. São declarados no início do algoritmo e podem ser chamados em qualquer ponto após sua declaração. Podem ser de dois tipos: Funções - retornam algum valor. Procedimento (Subrotina) - não retorna nada.

Vantagens Reduzem o tamanho do algoritmo. Melhoram a legibilidade do algoritmo. Evitam a repetição de código. Reaproveitamento no mesmo programa ou em outros Facilitam a manutenção Facilitam a divisão de trabalho Possibilitam a utilização de componentes prontos.

Funções Retornam um valor ou uma informação. A chamada de uma função é feita através da citação do seu nome seguido de seus argumentos entre parênteses. As funções podem ser: predefinidas pela linguagem; criadas pelo programador de acordo com o seu interesse.

Funções Predefinidas do Visualg

Funções Predefinidas do Visualg

Funções Predefinidas do Visualg algoritmo "exemplo" var numero : real nome : caracter inicio escreva("Digite um número: ") leia(numero) escreval("Raiz quad. de ", numero, " é ", raizq(numero)) escreva("Digite um nome: ") leia(nome) escreval("Normal: ", nome) escreval("Maiúsculas: ", maiusc(nome)) escreval("Minúsculas: ", minusc(nome)) escreval("3 primeiras letras: ", copia(nome,1,3)) escreval("tamanho: ", compr(nome)) escreval(maiusc(copia(nome,compr(nome)-2,3))) fimalgoritmo

Criação de Funções Algoritmo "<nome do algoritmo>" var <declaração de variáveis globais> funcao <identificador> ([var]<parâmetros>) <tipo de retorno> <declaração de variáveis locais> inicio <lista de comandos> retorne <variável de retorno> fimfuncao < lista de comandos> fimalgoritmo

Criação de Funções As variáveis globais ficam antes das funções. A função sempre fica dentro do escopo Algoritmo e FimAlgoritmo. Evite declarar variáveis globais com o mesmo nome das variáveis da função.

Exemplo algoritmo "soma" var n1, n2 : real funcao soma(a, b : real) : real retorne a + b fimfuncao inicio escreva("Digite um número: ") leia(n1) escreva("Digite outro número: ") leia(n2) escreva("Soma: ", soma(n1, n2)) fimalgoritmo

Exemplo algoritmo "par_impar" var numero : inteiro funcao par_ou_impar(num : inteiro): caracter inicio se (num % 2 = 0) entao retorne "par" senao retorne "impar" fimse fimfuncao escreva("Digite um número: ") leia(numero) escreva(par_ou_impar(numero)) fimalgoritmo

Procedimento Algoritmo "<nome do algoritmo>" var <declaração de variáveis globais> procedimento <identificador> ([var]<parâmetros>) <declaração de variáveis locais> inicio <lista de comandos> fimprocedimento < lista de comandos> fimalgoritmo

Exemplo algoritmo "repeticao" var palavra : caracter procedimento repete(texto : caracter; n : inteiro) var i : inteiro inicio para i de 1 ate n faca escreval(texto) fimpara fimprocedimento escreva("Digite uma palavra: ") leia(palavra) repete(palavra, 10) fimalgoritmo

Escopo de Variáveis

Passagem de Parâmetros Por valor Por referência Vantagens do uso da passagem de parâmetros por valor: Privacidade dos dados A possibilidade de passar constantes como argumentos de funções x  raizq(25)

Exemplo – Passagem por Referência algoritmo "permuta_valor" var n1, n2, aux : inteiro procedimento troca(var x, y : inteiro) var aux : inteiro inicio aux <- x x <- y y <- aux fimprocedimento Escreva("Digite n1: ") leia(n1) Escreva("Digite n2: ") leia(n2) troca(n1,n2) Escreval("n1 é: ", n1) Escreval("n2 é: ", n2) fimalgoritmo

NO VISUALG

Subprograma é um programa que auxilia o programa principal através da realização de uma determinada sub tarefa. Também costuma receber os nomes de sub-rotina, procedimento, método ou módulo. Os subprogramas são chamados dentro do corpo do programa principal como se fossem comandos. Após seu término, a execução continua a partir do ponto onde foi chamado. É importante compreender que a chamada de um subprograma simplesmente gera um desvio provisório no fluxo de execução.

Há um caso particular de subprograma que recebe o nome de função Há um caso particular de subprograma que recebe o nome de função. Uma função, além de executar uma determinada tarefa, retorna um valor para quem a chamou, que é o resultado da sua execução. Por este motivo, a chamada de uma função aparece no corpo do programa principal como uma expressão, e não como um comando.

Cada subprograma, além de ter acesso às variáveis do programa que o chamou (são as variáveis globais), pode ter suas próprias variáveis (são as variáveis locais), que existem apenas durante sua chamada.

Ao se chamar um subprograma, também é possível passar- lhe determinadas informações que recebem o nome de parâmetros (são valores que, na linha de chamada, ficam entre os parênteses e que estão separados por vírgulas). A quantidade dos parâmetros, sua seqüência e respectivos tipos não podem mudar: devem estar de acordo com o que foi especificado na sua correspondente declaração.

Para se criar subprogramas, é preciso descrevê-los após a declaração das variáveis e antes do corpo do programa principal. O VisuAlg possibilita declaração e chamada de subprogramas nos moldes da linguagem Pascal, ou seja, procedimentos e funções com passagem de parâmetros por valor ou referência. Isso será detalhado a seguir.

Procedimentos

Em VisuAlg, procedimento é um subprograma que não retorna nenhum valor Em VisuAlg, procedimento é um subprograma que não retorna nenhum valor. Sua declaração, que deve estar entre o final da declaração de variáveis e a linha inicio do programa principal, segue a sintaxe abaixo: O <nome-de-procedimento> obedece as mesmas regras de nomenclatura das variáveis. Por outro lado, a <seqüência-de-declarações-de-parâmetros> é uma seqüência de

<seqüência-de-declarações-de-parâmetros> O <nome-de-procedimento> obedece as mesmas regras de nomenclatura das variáveis. Por outro lado, a <seqüência-de-declarações-de-parâmetros> é uma seqüência de [var] <seqüência-de-parâmetros>: <tipo-de-dado> separadas por ponto e vírgula. A presença (opcional) da palavra-chave var indica passagem de parâmetros por referência; caso contrário, a passagem será por valor.

Por sua vez, <seqüência-de-parâmetros> é uma seqüência de nomes de parâmetros (também obedecem a mesma regra de nomenclatura de variáveis) separados por vírgulas. De modo análogo ao programa principal, a seção de declaração internas começa com a palavra- chave var, e continua com a seguinte sintaxe:

<lista-de-variáveis> : <tipo-de-dado> Nos próximos exemplos, através de um subprograma soma, será calculada a soma entre os valores 4 e –9 (ou seja, será obtido o resultado 13) que o programa principal imprimirá em seguida. No primeiro caso, um procedimento sem parâmetros utiliza uma variável local aux para armazenar provisoriamente o resultado deste cálculo (evidentemente, esta variável é desnecessária, mas está aí apenas para ilustrar o exemplo), antes de atribuí-lo à variável global res:

procedimento soma var aux: inteiro inicio // n, m e res são variáveis globais aux <- n + m res <- aux fimprocedimento

No programa principal deve haver os seguintes comandos: n <- 4 m <- -9 soma escreva(res)

A mesma tarefa poderia ser executada através de um procedimento com parâmetros, como descrito abaixo: procedimento soma (x,y: inteiro) inicio // res é variável global res <- x + y fimprocedimento

No programa principal deve haver os seguintes comandos: n <- 4 m <- -9 soma(n,m) escreva(res)

A passagem de parâmetros do exemplo acima chama-se passagem por valor A passagem de parâmetros do exemplo acima chama-se passagem por valor. Neste caso, o subprograma simplesmente recebe um valor que utiliza durante sua execução. Durante essa execução, os parâmetros passados por valor são análogos às suas variáveis locais, mas com uma única diferença: receberam um valor inicial no momento em que o subprograma foi chamado.

Funções Funções

Em VisuAlg, função é um subprograma que retorna um valor (corresponde ao function do Pascal). De modo análogo aos procedimentos, sua declaração deve estar entre o final da declaração de variáveis e a linha inicio do programa principal, e segue a sintaxe abaixo: funcao <nome-de-função> [(<seqüência- de-declarações-de-parâmetros>)]: <tipo- de-dado> // Seção de Declarações Internas inicio // Seção de Comandos fimfuncao

O <nome-de-função> obedece as mesmas regras de nomenclatura das variáveis. Por outro lado, a  <seqüência-de-declarações-de-parâmetros>  é uma seqüência de [var] <seqüência-de-parâmetros>: <tipo-de-dado> separadas por ponto e vírgula. A presença (opcional) da palavra-chave var indica passagem de parâmetros por referência; caso contrário, a passagem será por valor. 

Por sua vez, <seqüência-de-parâmetros> é uma seqüência de nomes de parâmetros (também obedecem a mesma regra de nomenclatura de variáveis) separados por vírgulas. O valor retornado pela função será do tipo especificado na sua declaração (logo após os dois pontos). Em alguma parte da função (de modo geral, no seu final), este valor deve ser retornado através do comando retorne.

De modo análogo ao programa principal, a seção de declaração internas começa com a palavra- chave var, e continua com a seguinte sintaxe: <lista-de-variáveis> : <tipo-de-dado> Voltando ao exemplo anterior, no qual calculamos e imprimimos a soma entre os valores 4 e –9, vamos mostrar como isso poderia ser feito através de uma função sem parâmetros.

Ela também utiliza uma variável local  aux  para armazenar provisoriamente o resultado deste cálculo, antes de atribuí-lo à variável global  res:

funcao soma: inteiro var aux: inteiro inicio // n, m e res são variáveis globais aux <- n + m retorne aux fimfuncao

No programa principal deve haver os seguintes comandos: n <- 4 m <- -9 res <- soma escreva(res)

Se realizássemos essa mesma tarefa com uma função com parâmetros passados por valor, poderia ser do seguinte modo: funcao soma (x,y: inteiro): inteiro inicio retorne x + y fimfuncao

No programa principal deve haver os seguintes comandos: n <- 4 m <- -9 res <- soma(n,m) escreva(res)

Passagem de Parâmetros por Referência Há ainda uma outra forma de passagem de parâmetros para subprogramas: é a passagem por referência. Neste caso, o subprograma não recebe apenas um valor, mas sim o endereço de uma variável global. Portanto, qualquer modificação que for realizada no conteúdo deste parâmetro afetará também a variável global que está associada a ele.

Passagem de Parâmetros por Referência Durante a execução do subprograma, os parâmetros passados por referência são análogos às variáveis globais. No VisuAlg, de forma análoga a Pascal, essa passagem é feita através da palavra var na declaração do parâmetro.

Voltando ao exemplo da soma, o procedimento abaixo realiza a mesma tarefa utilizando passagem de parâmetros por referência: procedimento soma (x,y: inteiro; var result: inteiro) inicio result <- x + y fimprocedimento

No programa principal deve haver os seguintes comandos: n <- 4 m <- -9 soma(n,m,res) escreva(res)

Recursão e Aninhamento

A atual versão do VisuAlg permite recursão, isto é, a possibilidade de que um subprograma possa chamar a si mesmo. A função do exemplo abaixo calcula recursivamente o fatorial do número inteiro que recebe como parâmetro: funcao fatorial (v: inteiro): inteiro inicio se v <= 2 entao retorne v senao retorne v * fatorial(v-1) fimse fimfuncao

Em Pascal, é permitido o aninhamento de subprogramas, isto é, cada subprograma também pode ter seus próprios subprogramas. No entanto, esta característica dificulta a elaboração dos compiladores e, na prática, não é muito importante. Por este motivo, ela não é permitida na maioria das linguagens de programação (como C, por exemplo), e o VisuAlg não a implementa.

PROCEDIMENTOS valor como parâmetro e escreva o dobro desse número.  Exemplo 1: Crie um procedimento que receba um valor como parâmetro e escreva o dobro desse número. Não possui tipo de retorno e não retorna nada. Apenas executa o que está na seção de comandos

PROCEDIMENTOS como parâmetro e escreva o dobro desse número.  Exemplo 1: Crie um procedimento que receba um valor como parâmetro e escreva o dobro desse número. É feita apenas a chamada do procedimento, sem precisar atribuir a nenhuma variável.

PROCEDIMENTOS número. número como parâmetro e escreva a tabuada desse  Exemplo 2: Crie um procedimento que receba um número como parâmetro e escreva a tabuada desse número.

PROCEDIMENTOS ... dos números de 1 a 9:  Exemplo 3: Crie um algoritmo que utilize o procedimento criado anteriormente, e escreva a tabuada dos números de 1 a 9: ...

PROCEDIMENTOS * * * * * * * * * * * * * * * * * * * * * * * * * tela:  Exemplo 4: Crie um procedimento que, dado um número N por parâmetro, desenhe o seguinte padrão na tela:  Por exemplo, para N = 5 * * * * * * * * * * * * * * * * * * * * * * * * *

PROCEDIMENTOS  Exemplo 4:

PROCEDIMENTOS 1 * * * * * 2 * * 3 * * 4 * * * * * 5 tela:  Exemplo 5: Crie um procedimento que, dado um número N por parâmetro, desenhe o seguinte padrão na tela:  Por exemplo, para N = 5 1 * * * * * 2 * * 3 * * 4 * * * * * 5

PROCEDIMENTOS  Exemplo 5:

EXERCÍCIOS PROCEDIMENTOS 1. que verifique se esses valores podem ser os comprimentos dos lados de um triângulo e, neste caso, escrever qual o tipo de triângulo esses valores formam. Escreva um procedimento que receba 3 valores reais X, Y e Z e Escreva um procedimento que receba um número inteiro positivo parâmetro e escreva os divisores desse número. por 2. Crie um procedimento que, dado um número N por parâmetro, desenhe os seguintes padrões na tela: 3. 4. 1 2 3 4 5 * 2 4 * * 3 3 * * 4 2 * * 5 4 3 2 1 * * * * *

PASSAGEM DE PARÂMETROS  Parâmetros são canais por onde os dados são transferidos pelo algoritmo chamador a um subalgoritmo.  Parâmetros Formais são os nomes simbólicos usados na definição dos parâmetros de um subalgoritmo. Parâmetros Formais  Parâmetros Reais são aqueles que substituem os parâmetros formais quando da chamada de um subalgoritmo. Parâmetros Reais

MECANISMOS DE PASSAGEM DE PARÂMETROS  A substituição dos parâmetros formais pelos parâmetros reais no ato da invocação de um subalgoritmo é denominada de passagem de parâmetros  Pode se dar por dois mecanismos distintos:  Passagem por valor (ou por cópia)  Passagem por referência

PASSAGEM POR VALOR parâmetros reais uma cópia.  Na passagem por valor, é criada uma cópia dos parâmetros reais  As modificações efetuadas no parâmetro formal não afetam o parâmetro real, pois trabalha-se apenas com uma cópia.

PASSAGEM POR VALOR RESULTADO valores de a e b, os valores de x e y Mesmo alterando os valores de a e b, os valores de x e y continuam os mesmos após a chamada do subalgoritmo

PASSAGEM POR REFERÊNCIA  O espaço de memória ocupado pelos parâmetros reais é compartilhado pelos parâmetros formais correspondentes  As modificações efetuadas nos parâmetros formais também afetarão os parâmetros reais  Na linguagem do Visualg, utiliza-se a palavra var antes do nome do parâmetro na declaração da função para informar que a passagem será por referência

PASSAGEM POR REFERÊNCIA A palavra var antes dos parâmetros indica passagem por referência

PASSAGEM POR REFERÊNCIA RESULTADO Agora, ao alterar os valores de a e b, os valores de x e y são também alterados

PASSAGEM POR REFERÊNCIA  Exemplo 1: Crie um procedimento que receba dois valores inteiros por parâmetro e realize a troca desses valores.

PASSAGEM POR REFERÊNCIA  Um mesmo subalgoritmo pode ter parâmetros que são passados por valor e outros que são passados por referência: Os parâmetros a e b são passados por valor e o parâmetro valorMedia é passado por referência

EXERCÍCIOS ordene procedimento e exibir os valores após a ordenação. - Crie um procedimento que receba dois valores por referência e ordene em ordem crescente. Crie um algoritmo principal para chamar o procedimento e exibir os valores após a ordenação. - os 1. Crie um procedimento para resolver uma equação de segundo grau. O procedimento deve receber 5 parâmetros: os coeficientes a, b e c da equação (por valor), e raiz1 e raiz2 (por referência). Crie um algoritmo principal que leia os coeficientes da equação e chame o procedimento. Em seguida, mostre o resultado das raízes. 2. Crie um procedimento que receba uma remova todos os caracteres de espaços da frase. Ex: a frase “O livro está em cima da mesa” deverá ficar como: “Olivroestáemcimadamesa”. frase por parâmetro e 3.

VARIÁVEIS LOCAIS E GLOBAIS  As variáveis locais são visíveis apenas dentro dos subalgoritmo que as criou  Já as variáveis globais são visíveis tanto no algoritmo principal como nos subalgoritmos  Por esse motivo, é importante que as funções/procedimentos sejam declarados na seção var após a declaração das variáveis globais  É importante não criar variáveis locais e globais com o mesmo nome para evitar ambiguidades.

VARIÁVEIS LOCAIS E GLOBAIS  Exemplo 1:

VARIÁVEIS LOCAIS E GLOBAIS  Exemplo 1: Variável Global A variável resultado é uma variável global. Pode ser utilizada dentro de um subalgoritmo Variável Local Subalgoritmo Algoritm o Principal

VARIÁVEIS LOCAIS E GLOBAIS  Exemplo 1:  Já a utilização de variáveis locais dentro do algoritmo principal não é permitida. A execução de um algoritmo como o mostrado abaixo causará um erro: A variável calculo é uma variável local do procedimento soma e NÃO pode ser utilizada dentro do algoritmo principal

VARIÁVEIS LOCAIS E GLOBAIS  O Visualg ainda não permite a passagem de Vetores e Matrizes como parâmetros de subalgoritmos  Para criar subalgoritmos que precisam de vetores e matrizes, utilize variáveis globais  Exemplo 1: Crie um procedimento para preencher um vetor de posições

VARIÁVEIS LOCAIS E GLOBAIS  Exemplo 1:

VARIÁVEIS LOCAIS E GLOBAIS  Exemplo 2: Crie um procedimento para exibir o conteúdo de um vetor

VARIÁVEIS LOCAIS E GLOBAIS  Exemplo 3: Crie um procedimento para imprimir o conteúdo de um vetor de 10 posições. Esse procedimento deve receber um parâmetro do tipo caractere que indica se o conteúdo deve ser exibido na ordem correta ou na ordem inversa (“C” para correta e “I” para inversa)

VARIÁVEIS LOCAIS E GLOBAIS  Exemplo 3:

VARIÁVEIS LOCAIS E GLOBAIS  Exemplo 4: Crie uma função para inserir um elemento em um vetor. Crie um variável global do tipo vetor de inteiro de 10 posições e uma variável global para indicar quantas posições preenchidas o vetor possui. A função de inserção deve receber por parâmetro o valor a ser inserido no vetor. Se o vetor já estiver cheio, a função deve retornar um valor lógico (falso) para informar que não foi possível inserir um valor no vetor. Caso contrário, deve retornar verdadeiro.

VARIÁVEIS LOCAIS E GLOBAIS  Exemplo 4:.

VARIÁVEIS LOCAIS E GLOBAIS  Exemplo 5: Ao algoritmo anterior, acrescente o procedimento para imprimir o conteúdo do vetor. Note que a função deve mostrar apenas as posições preenchidas do vetor. Mesmo sendo um vetor de 10 elementos, se apenas 1 tiver sido inserido, a função deve mostrar apenas esse elemento.elemento em um vetor.

VARIÁVEIS LOCAIS E GLOBAIS  Exemplo 5:

VARIÁVEIS LOCAIS E GLOBAIS  Exemplo 6: Ao algoritmo anterior, acrescente a função para remover um elemento em um vetor. Crie um variável global do tipo vetor de inteiro de 10 posições e uma variável global para indicar quantas posições preenchidas o vetor possui. A função de remoção deve receber por parâmetro a posição do elemento a ser removido. Se a posição informada não possui nenhum valor, retornar o valor falso. Caso a remoção seja bem sucedida, retornar verdadeiro. Obs: Note que, ao remover um valor do vetor, todos os valores após o valor removido devem ser deslocados em uma posição

VARIÁVEIS LOCAIS E GLOBAIS  Exemplo 6:

VARIÁVEIS LOCAIS E GLOBAIS  Exemplo 7: Crie um algoritmo principal para testar as funções/procedimentos criadas

EXERCÍCIOS Crie uma função que receba um valor por parâmetro um nome (caractere) e verifique se esse valor se encontra em um vetor (também de caractere, declarado globalmente). Retorne verdadeiro caso o valor se encontre e falso, caso contrário. Crie um algoritmo principal para testar a função criada. 1. Crie uma função que receba por parâmetro um número inteiro e verifique quantas vezes esse valor se encontra em um vetor (declarado globalmente). Retorne a quantidade de vezes que o valor se encontra no vetor. Crie um algoritmo principal para testar a função criada. 2. Crie um procedimento que receba por parâmetro um número inteiro e remova todas as ocorrências desse valor de um vetor declarado globalmente. 3.

EXERCÍCIOS Quando for escolhida a: Escreva um algoritmo que apresente um menu com quatro opções: 4.  1 - Inserir  2 - Remover  3 - Imprimir  4 - Substituir  5 - Sair Considere um vetor de inteiro de 20 posições declarado globalmente. Quando for escolhida a:  Opção 1: um subalgoritmo Insere deve ser chamado para inserir o valor na próxima posição livre do vetor  Opção 2: chamar o subalgoritmo Remover e eliminar o elemento na posição passada como parâmetro  Opção 3: chamar o subalgoritmo Imprimir para escrever na tela os valores que se encontram no algoritmo  Opção 4: chamar o subalgoritmo Substituir, que recebe por parâmetro um valor e uma posição. O subalgoritmo deve substituir o valor existente na posição informada pelo valor passado por parâmetro. Se ainda não houver elemento na posição informada, deve-se inserir o valor na próxima posição livre.  Opção 5: O programa deverá ser encerrado.

POR HOJE É SÓ !!!