RESUMO DA AULA, CRIBS
Информатика и информационные технологии. Подпрограммы (конспект лекций) Diretório / Notas de aula, folhas de dicas Índice (expandir) PALESTRA Nº 4. Sub-rotinas 1. Parâmetros do subprograma A descrição de um procedimento ou função especifica uma lista de parâmetros formais. Cada parâmetro declarado em uma lista de parâmetros formal é local para o procedimento ou função descrita e pode ser referenciado no módulo associado a esse procedimento ou função por seu identificador. Existem três tipos de parâmetros: valor, variável e variável sem tipo. Eles são caracterizados da seguinte forma. 1. Um grupo de parâmetros sem uma palavra-chave precedente é uma lista de parâmetros de valor. 2. Um grupo de parâmetros precedido pela palavra-chave const e seguido por um tipo é uma lista de parâmetros constantes. 3. Um grupo de parâmetros precedido pela palavra-chave var e seguido por um tipo é uma lista de parâmetros de variáveis não tipadas. 4. Um grupo de parâmetros precedido pela palavra-chave var ou const e não seguido por um tipo é uma lista de parâmetros de variáveis não tipadas. 2. Tipos de parâmetros de sub-rotina Parâmetros de valor Um parâmetro de valor formal é tratado como uma variável local para o procedimento ou função, exceto que deriva seu valor inicial do parâmetro real correspondente quando o procedimento ou função é invocado. As alterações sofridas por um parâmetro de valor formal não afetam o valor do parâmetro real. O valor do parâmetro de valor real correspondente deve ser uma expressão e seu valor não deve ser um tipo de arquivo ou qualquer tipo de estrutura que contenha um tipo de arquivo. O parâmetro real deve ser de um tipo que seja compatível com a atribuição do tipo do parâmetro de valor formal. Se o parâmetro for do tipo string, o parâmetro formal terá um atributo size de 255. Parâmetros constantes Parâmetros constantes formais funcionam de forma semelhante a uma variável local somente leitura que obtém seu valor quando um procedimento ou função é invocado a partir do parâmetro real correspondente. Atribuições a um parâmetro constante formal não são permitidas. Um parâmetro constante formal também não pode ser passado como um parâmetro real para outro procedimento ou função. Um parâmetro constante correspondente a um parâmetro real em um procedimento ou instrução de função deve seguir as mesmas regras que o valor real do parâmetro. Nos casos em que um parâmetro formal não altera seu valor quando um procedimento ou função é executado, um parâmetro constante deve ser usado em vez de um parâmetro de valor. Parâmetros constantes permitem a implementação de um procedimento ou função para proteção contra atribuições acidentais a um parâmetro formal. Além disso, para parâmetros de tipo struct e string, o compilador pode gerar um código mais eficiente quando usado em vez de parâmetros de valor para parâmetros constantes. Parâmetros variáveis Um parâmetro variável é usado quando um valor deve ser passado de um procedimento ou função para o programa de chamada. O parâmetro real correspondente em um procedimento ou instrução de chamada de função deve ser uma referência de variável. Quando um procedimento ou função é invocado, a variável de parâmetro formal é substituída pela variável real, quaisquer alterações no valor da variável de parâmetro formal são refletidas no parâmetro real. Dentro de um procedimento ou função, qualquer referência a um parâmetro de variável formal resulta em acesso ao próprio parâmetro real. O tipo do parâmetro real deve corresponder ao tipo do parâmetro de variável formal, mas essa restrição pode ser contornada usando um parâmetro de variável sem tipo). Parâmetros não digitados Quando o parâmetro formal é um parâmetro variável sem tipo, o parâmetro real correspondente pode ser qualquer referência a uma variável ou constante, independentemente de seu tipo. Um parâmetro sem tipo declarado com a palavra-chave var pode ser modificado, enquanto um parâmetro sem tipo declarado com a palavra-chave const é somente leitura. Em um procedimento ou função, um parâmetro de variável não tipado não tem tipo, ou seja, é incompatível com variáveis de todos os tipos até que receba um tipo específico por atribuição de tipo de variável. Embora os parâmetros não tipados forneçam mais flexibilidade, existem alguns riscos associados ao uso deles. O compilador não pode verificar a validade das operações em variáveis não tipadas. Variáveis de procedimento Após definir um tipo procedural, torna-se possível descrever variáveis desse tipo. Tais variáveis são chamadas de variáveis procedurais. Como uma variável inteira que pode receber um valor de um tipo inteiro, uma variável procedural pode receber um valor de um tipo procedural. Tal valor poderia, é claro, ser outra variável de procedimento, mas também poderia ser um identificador de procedimento ou função. Nesse contexto, a declaração de um procedimento ou função pode ser vista como uma descrição de um tipo especial de constante cujo valor é o procedimento ou função. Como em qualquer outra atribuição, os valores da variável do lado esquerdo e do lado direito devem ser compatíveis com a atribuição. Os tipos de procedimento, para serem compatíveis com atribuição, devem ter o mesmo número de parâmetros, e os parâmetros nas posições correspondentes devem ser do mesmo tipo. Os nomes de parâmetros em uma declaração de tipo procedural não têm efeito. Além disso, para garantir a compatibilidade de atribuição, um procedimento ou função, se for atribuído a uma variável de procedimento, deve atender aos seguintes requisitos: 1) não deve ser um procedimento ou função padrão; 2) tal procedimento ou função não pode ser aninhado; 3) tal procedimento não deve ser um procedimento em linha; 4) não deve ser um procedimento de interrupção. Procedimentos e funções padrão são os procedimentos e funções descritos no módulo Sistema, como Writeln, Readln, Chr, Ord. Procedimentos e funções aninhados com variáveis procedurais não podem ser usados. Um procedimento ou função é considerado aninhado quando declarado dentro de outro procedimento ou função. O uso de tipos procedurais não se limita apenas a variáveis procedurais. Como qualquer outro tipo, um tipo procedural pode participar da declaração de um tipo estrutural. Quando uma variável de procedimento recebe o valor de um procedimento, o que acontece na camada física é que o endereço do procedimento é armazenado na variável. Na verdade, uma variável de procedimento é muito semelhante a uma variável de ponteiro, só que em vez de se referir a dados, ela aponta para um procedimento ou função. Como um ponteiro, uma variável procedural ocupa 4 bytes (duas palavras) que contém um endereço de memória. A primeira palavra armazena o deslocamento, a segunda palavra armazena o segmento. Parâmetros de tipo de procedimento Como os tipos procedurais podem ser usados em qualquer contexto, é possível descrever procedimentos ou funções que recebem procedimentos e funções como parâmetros. Os parâmetros de tipo de procedimento são especialmente úteis quando você precisa executar ações comuns em vários procedimentos ou funções. Se um procedimento ou função deve ser passado como parâmetro, ele deve seguir as mesmas regras de compatibilidade de tipo que a atribuição. Ou seja, tais procedimentos ou funções devem ser compilados com a diretiva far, não podem ser funções internas, não podem ser aninhadas e não podem ser descritas com os atributos inline ou interrupt. Autor: Tsvetkova A.V. << Voltar: Procedimentos e funções (O conceito de algoritmo auxiliar. Procedimentos em Pascal. Funções em Pascal. Descrições antecipatórias e conexão de sub-rotinas. Diretiva) >> Encaminhar: Arquivos (Arquivos. Operações de arquivo. Módulos. Tipos de módulos) Recomendamos artigos interessantes seção Notas de aula, folhas de dicas: Veja outros artigos seção Notas de aula, folhas de dicas. Leia e escreva útil comentários sobre este artigo. Últimas notícias de ciência e tecnologia, nova eletrônica: A existência de uma regra de entropia para o emaranhamento quântico foi comprovada
09.05.2024 Mini ar condicionado Sony Reon Pocket 5
09.05.2024 Energia do espaço para Starship
08.05.2024
Outras notícias interessantes: ▪ Bateria de íon de lítio transparente e elástica ▪ Controlador Buck MAX17558 Dual Channel 60V DC-DC ▪ A saúde humana depende das árvores ▪ Reparação de bico usando um computador Feed de notícias de ciência e tecnologia, nova eletrônica
Materiais interessantes da Biblioteca Técnica Gratuita: ▪ seção do site do Eletricista. PUE. Seleção de artigos ▪ artigo Operador dos dez mandamentos. videoarte ▪ artigo Quão difundida era a tortura da donzela de ferro na Idade Média? Resposta detalhada ▪ artigo Campainha para concentradores. Enciclopédia de rádio eletrônica e engenharia elétrica
Deixe seu comentário neste artigo: Todos os idiomas desta página Página principal | Biblioteca | Artigos | Mapa do Site | Revisões do site www.diagrama.com.ua |