(Parte 1 de 5)

Apostila de Programação I Módulo I

Fundação Educacional Machado de Assis

Escola Técnica Machado de Assis Curso Técnico em Informática

Prof. José Luís Schiavo

Santa Rosa, Setembro de 2010. 1

1Procedimentos, Funções e Métodos 1.1 Procedimentos 3

1.2 Funções 4 1.3Passagem de Parâmetros4

2Utilizando o Debugger ( Depurador )

2.1Visão Geral do Depurador5 2.2Técnicas de Depuração6 3Banco de Dados Relacional 3.1 Conceito 7 3.2Sistema de Banco de Dados7 4Sistema de Gerenciamento de Bancos de Dados (SGBD) 4.1 Conceito 7 4.2 Objetivos 7 4.3Principais Características e Vantagens8 4.4Principais Objetos de um SGBD8 5Transações de Banco de Dados 5.1Controle de Concorrência11 5.2Segurança em Banco de Dados11 5.3Cópia de Segurança11 6Firebird SQL 6.1O que é Firebird?12 6.2Um pouco da História do Firebird12 6.3Facilidade de Instalação e Manutenção13 6.4Tipos de Dados Suportados - Anexo I13 6.5Charsets e Collates13 6.6Passo a Passo para instalação e configuração do SGBD Firebird 1.5.514 7Ferramentas Para Administração do Banco de Dados18 7.1IBExpert Personal Edition19 8Componentes de Acesso - Anexo I29 9Structured Query Language (SQL) – Anexo I29 10 Bibliografia 30 11Anexo I – Apostila de Firebird31

1.Procedimentos, Funções e Métodos

A medida que vamos resolvendo problemas mais complexos o tamanho dos nossos programas vai crescendo, necessitando assim de um grau de organização maior dos códigos. No Pascal existe a possibilidade de agrupar partes do programa em procedimentos ou funções. As partes devem ser logicamente coerentes, ou seja, cada uma deve ter uma tarefa bem definida. As funções ou procedimentos tem basicamente a mesma estrutura, podendo receber parâmetros e retornar resultados.

As ações de um objeto devem ser definidas como métodos. Quando a ação não pertence a um objeto, essa ação deve ser implementada em forma de procedimentos e/ou funções.

1.1. Procedimentos

Procedimentos são sub-rotinas, que realizam uma tarefa e não retornam nenhum valor. A declaração de um procedimento é feita na seção interface e a definição, na seção implementation da unit. Ao chamar o identificador do procedimento, com os parâmetros necessários, esse procedimento será executado. Normalmente cria-se um procedimento quando alguma tarefa é executada diversas vezes dentro de um programa.

Os procedimentos tem a seguinte estrutura:

procedure nome(argumentos); var {aqui colocamos as variáveis que serão usadas só neste procedimento} begin {aqui vai a parte executável, a lógica do procedimento} end;

O nome de um procedimento poderá ser qualquer nome, de preferência significativo com aquilo que o procedimento se propõe a executar. Os argumentos são as variáveis que serão repassadas ou calculadas pelo procedimento.

Necessariamente devemos declarar as variáveis denominadas argumentos quando da definição do procedimento. Para que o procedimento seja executado, existe a necessidade de alguém chamá-lo.

Abaixo o exemplo de uma unit com a implementação um procedimento. unit Tools; interface uses Forms, Windows; procedure ErrorMsg(const Msg: string); implementation procedure ErrorMsg(const Msg: string); begin Application.MessageBox(PChar(Msg), 'Operação inválida', MB_ICONERROR); end; end.

Funções são muito semelhantes a procedimentos a única diferença é que as funções retornam um valor. O tipo do valor de retorno, calculado dentro do corpo da função deve ser informado no cabeçalho/declaração da função. Na implementação da função deve-se atribuir o valor de retorno à palavra reservada Result ou ao identificador da função. Pode-se então usar a função em expressões, atribuições, como parâmetros para outras funções, em qualquer lugar onde o seu valor possa ser usado.

Estrutura básica de uma função:

declaração de variáveis
comandos...
Result := valor a ser retornado pela função

function nome (lista de parâmetros):tipo de dado a ser retornado; begin end;

Exemplo de função para cálculo da média de dois valores:

function Media(A, B: Double): Double; begin Result := (A + B) / 2; end;

1.3.Passagem de Parâmetros

O Pascal possibilita a passagem de parâmetros por valor ou por referência para funções e procedimentos. Os parâmetros passados podem ser de qualquer tipo básico ou definido pelo usuário Parâmetros também podem ser constantes.

Existem três tipos de passagem de parâmetros, que devem ser indicados na declaração da função ou procedimento. Parâmetros de tipos diferentes de vem ser separados por ponto e vírgula.

a) Parâmetros Por Valor

Parâmetros por valor são o modo default(padrão) de passagem de parâmetros. Quando um parâmetro é passado por valor, significa que uma cópia local daquela variável é criada, e a função ou procedimento opera sobre a cópia. Considere o exemplo a seguir:

procedure Teste_A(s: string);

Quando o procedimento é chamado desta forma, uma cópia da string s será criada, e Teste_A() operará sobre a cópia local de s. Isto significa que Teste_A() pode alterar o valor de s sem ter qualquer efeito sobre a variável original passada para Teste_A() quando de sua chamada.

b) Parâmetros Por Referência

O Pascal possibilita a passagem de variáveis para funções e procedimentos por “referência”; Parâmetros passados por referência são também chamados parâmetros variáveis. Passar por referência significa que a função ou procedimento ao receber a variável pode modificar o valor daquela variável e essa modificação irá se refletir na variável original passada como parâmetro, mesmo sendo uma variável local. Para passar uma variável por referência, usa-se a palavra var antes dos parâmetros da função ou procedimento conforme abaixo:

procedure Teste_B(var x: integer); begin x := 2; { x agora é alterado na chamada do procedimento } end;

Em vez de fazer uma cópia local de x, a palavra reservada var faz com que o endereço do parâmetro seja copiado de forma que seu valor possa ser diretamente alterado.

c) Parâmetros Constantes

Se você não quiser que o valor de um parâmetro passado para dentro de uma função seja alterado, você pode declará-lo com a palavra chave const. Const não apenas impede que o valor dos parâmetros sejam modificados, como também gera código mais otimizado para strings e registros passados para dentro de procedimentos ou funções. Aqui está um exemplo de uma declaração de procedimento que recebe um parâmetro string constante:

ShowMessage(s)
ShowMessage('Valor inválido.');

procedure Teste_C(const s: string); begin if s <> '' then // se s não estiver vazia... else end;

2.Utilizando o Debugger ( Depurador )

2.1.Visão Geral do Depurador

Um depurador é um programa que fornece ferramentas que permitem encontrar código-fonte com erros em um programa. O depurador embutido no Delphi permite depurar uma aplicação sem ter que sair do ambiente de desenvolvimento. Com ele, é possível avançar passo a passo no códigofonte do programa à medida que ele é executado, observar como ele se comporta e até mesmo monitorar o valor de variáveis e propriedades.

a) Tipos de Erros Fundamentalmente, existem três tipos de erros que ocorrem em um programa.

•Erros de compilação : são também chamados de “erros de sintaxe”. Ocorrem quando há código impropriamente construido em uma aplicação. Por exemplo, se o ponto e vírgula for esquecido após uma instrução, o Delphi capturará este erro e gerará uma mensagem de erro.

•Erros de tempo de execução : ocorrem quando o programa é codificado corretamente, mas ainda efetua uma operação inválida, quando executado. Exemplos:

-Dividir um valor por zero;

-Tentar abrir um arquivo que não existe;

-Tentar remover um registro de um arquivo vazio.

•Erros lógicos : ocorre quando o código do programa está correta em termos de sintaxe, não causa erros de tempo de execução, mas não gera os resultados desejados.

O depurador integrado pode ser utilizado para localizar tanto erros de tempo de execução quanto erros lógicos. Note, no entanto, que embora o depurador possa ajudar a localizar um trecho de código incorreto, ele não pode resolver estes erros de programação, pois só o programador conhece a lógica interna da aplicação.

Além de usar o depurador de fato, deve-se verificar se as informações para depuração estão disponíveis à aplicação. Embora o Delphi gere estas informações como padrão, é possível habilitar ou desabilitar esta opção manualmente. Para compilar um projeto com informações de depuração, siga os passos a seguir: 1.Escolha a opção de menu Tools Debugger Options; 2.Clique na página General; 3.Clique na caixa de seleção Integrated Debugging caso esta não esteja marcada.

(Parte 1 de 5)

Comentários