Sistemas de Informação

Tamanho: px
Começar a partir da página:

Download "Sistemas de Informação"

Transcrição

1 Sistemas de Informação Laboratório de Programação I Professor Marcos Antônio Moreira Ensinar e aprender são tarefas que andam juntas e, para que seja alcançado o objetivo em cada uma delas, é necessária muita dedicação e estudo constante. Não há mágica no aprendizado, há, sim, muita determinação por parte daquele que quer aprender. Copyright Janeiro / 2012 Marcos Antônio Moreira. Todos os nomes dos produtos citados são marcas registradas da Microsoft Corp. Outros produtos citados são marcas registradas no respectivo cabeçalho As várias Marcas Registradas que aparecem no decorrer desta apostila. Mais do que simplesmente listar esses nomes e informar quem possui seus direitos de exploração, ou ainda imprimir o logotipo das mesmas, o autor declara estar utilizando tais nomes apenas para fins editoriais, em benefício exclusivo do dono da marca registrada, sem intenção de infringir as regras de sua utilização.

2 Conteúdo Introdução ao Delphi XE... 4 Tipos de Arquivos de Projetos... 5 Conceitos da Delphi Language... 7 Expressões e Operadores Expressões Aritméticas Expressões Logicas Estrutura Sequencial Estrutura Condicional Try...Except Conceitualização CASE...OF Estrutura de Repetição Repetição WHILE..DO Repetição REPEATE.. UNTIL Procedimentos e Funções PASSAGEM DE PARÂMETROS PARÂMETRO POR VALOR PARÂMETRO POR REFERENCIA EXTRA - Introdução ao.net Framework Objetivos do.net A Visão do.net Desenvolvimento mais rápido e mais fácil Distribuição simplificada de aplicações Acessibilidade a Serviços e Dados Aplicações Colaborativas Common Language RunTime (CLR) MSIL - Microsoft Intermediate Language... 56

3 O compilador JIT Managed Code Assemblies GAC, Side By Side Execution e Manifest CLS - Common Language Specificatione CTS-Common Type System Common Type System NET Framework Class Library e Namespaces Tipos de Objetos NET e JAVA Quando usar a.net? Fundamentos de C# Alguns últimos detalhes adicionais Variáveis Expressões Aritméticas Operadores relacionais C# IF/ELSE Switch Foreach For While Do/while... 92

4

5

6 P á g i n a 4 Introdução ao Delphi XE O Embarcadero Delphi XE é a maneira mais rápida de se gerar aplicativos em Windows ultra ricos e ultra rápidos. O Delphi XE, é um ambiente integrado para o desenvolvimento (IDE) composto por compilador, editor de texto, ferramenta de depuração e alguns acessórios que trazem recursos a mais ao processo de desenvolvimento. A esta ferramenta de desenvolvimento, é atribuído também a característica (fundamental) RAD (Rapid Application Development), ou seja, à medida que os componentes visuais disponíveis pelo IDE são utilizados (incluídos em seu projeto), o Delphi XE escreve o códigofonte referente a esses componentes, na respectiva linguagem escolhida para o desenvolvimento.reduza drasticamente o tempo de escrita de código e crie aplicativos cinco vezes mais rápido com desenvolvimento baseado em componentes e um IDE RAD bidirecional totalmente visual. Acelere o desenvolvimento através de múltiplas plataformas de bancos de dados em Windows para aplicativos de interface gráfica com o usuário, tela interativa sensível ao toque, quiosques e aplicativos multicamadas controlados por banco de dados, para computação nas nuvens e a Web. Com Delphi, você pode: Construir aplicativos mais rápido com componentes pré-incorporados e design visual do tipo "arrastar-e-soltar" Construir aplicativos que necessitam de velocidade: visualização de dados, controle de hardware em tempo real, manipulação de objetos em 3D, modelagem financeira, jogos, edição de imagens, equipamentos médicos, sistemas de ponto de venda, e muito mais Proteger seus aplicativos contra obsolência através de conectividade nativa a nove dos principais bancos de dados e componentes prontos para uso para conectividade nas nuvens. Utilizar milhares de componentes gratuitos e comerciais para interfaces de usuário, bancos de dados, multicamadas, aplicativos na Web, aplicações especializadas e muito mais

7 P á g i n a 5 O Delphi XE está disponível nas edições Professional, Enterprise e Architect. Tipos de Arquivos de Projetos Uma vez que todo trabalho de desenvolvimento seja feito em um ambiente que contenha várias ferramentas que contemplem uma unicidade, vários tipos de arquivos podem formar um projeto. Dessa forma, segue uma relação com os principais tipos de arquivos gerados pelo ambiente Delphi, suas extensões e seus objetivos necessários para uma melhor interação.

8 P á g i n a 6 DRP / DPROJ Quando o projeto é salvo, o DELPHI XE solicita apenas os nomes dos arquivos de unit e projeto (.pas,.dpr ); os outros ele cria automaticamente ou são recriados cada vez que o projeto for compilado, sendo que, para o desenvolvedor, os arquivos mínimos são:.pas,.dfm, e DPR.

9 P á g i n a 7 COMPONENTES VISUAIS E OS NÃO VISUAIS Componentes Visuais: São todos aqueles componentes que formam a interface com o usuário, ou seja, aqueles que são exibidos tanto em tempo de projeto quanto de tempo de execução. Exemplos: Button, Edit, panel, Memo, Label dentre outros. Componentes Não Visuais: São todos aqueles componentes que, quando adicionado ao formulário, são representados por um pequeno ícone e quando a aplicação está sendo executada esta representação gráfica deixa de existir. Dessa forma eles não fazem parte da interface da aplicação, apenas disponibiliza recursos. Exemplos: Query, Timer, DataSource, dentre outros. Conceitos da Delphi Language Para que um código seja compreendido por um computador, é preciso respeitar as regras da linguagem, pois seu código será validado posteriormente pelo compilador. TIPOS DE DADOS, VARIÁVEIS E CONSTANTES Sempre que se desenvolve um programa, usando qualquer que seja a linguagem eleita para implementação, ele processará dados. Esses dados podem representar nomes de pessoas, datas, valores monetários ou quantidades, dentre outras variações; como podem também ser variáveis ou, ainda, constantes (variáveis especiais que recebem um valor e não permitem alteração). Os dados normalmente são guardados na memória do computador e cada um deles recebeu um endereço de referência para acesso. Para que, através

10 P á g i n a 8 de seus programas, o acesso aos dados seja mais prático, identificadores denominados tecnicamente de variáveis são utilizados. Nessas variáveis, os dados de seu programa podem ser acessados, atribuídos ou alterados. Apesar de algumas linguagens ainda permitirem o contrário, as variáveis precisam ser declaradas antes de serem usadas. Cada linguagem possui sua estrutura e nela são definidos pontos onde uma variável pode ser declarada. Existem tipos de dados que estão presentes em todas as linguagens (tipos primitivos), alguns específicos e outros que podem ser definidos pelo usuário. Os tipos de dados tratados neste período serão os primitivos, porém também será apresentada a criação de novos tipos. Quando se declara uma variável, há a necessidade de se especificar seu tipo, o que determina o conjunto de valores que ela poderá armazenar, assim como o seu conjunto de operações possíveis. Uma variável de uma linguagem de programação procedural é uma abstração. A abstração é composta de certo número de atributos: nome, endereço, valor, duração, escopo, tipo e tamanho. Cada atributo tem um valor associado. Por exemplo: se for declarada uma variável inteira (x: Integer;), diz-se que o nome do atributo tem valor x e o tipo do atributo tem valor Integer. A Delphi Language é fortemente tipada, ou seja, os tipos de dados devem ser atribuídos às variáveis antes de elas serem utilizadas, não permitindo alteração. Isso é um grande benefício porque permite ao compilador uma validação maior, prevenindo erros em tempo de execução. A linguagem oferece operações de casting, permitindo que um tipo de dado possa ser alterado para outro que o contenha, porém isso se limita ao valor da variável e não ao seu tipo. Na sequência, são apresentados alguns tipos de dados. Ordinais: Define um conjunto de valores, onde cada valor desse conjunto, com exceção do primeiro e do último, tem um valor anterior e posterior. Um exemplo é o conjunto [1,2,3,4,5], onde: com exceção do número 1, todos têm valor precedente, e com exceção do número 5,

11 P á g i n a 9 todos têm um valor que o sucede. Vale ressaltar que os valores devem estar em parte inteiras. Os tipos ordinais em Delphi Language são : Integer, Character, Boolean e Enumerated. Integer: Um tipo Integer representa um subconjunto de números inteiros. Seguem na tabela os limites e formatos para armazenamento em aplicações de 32 bits. Delphi Language Limite/Precisão Formato INTEGER bits com sinal CARDINAL bits sem sinal Outros tipos básicos para números inteiros comuns são descritos a seguir: Delphi Language Limite/Precisão Formato SHORTINT bits com sinal SMALLINT bits com sinal LONGINT bits com sinal BYTE bits sem sinal Caractere: Um caractere pode ser qualquer símbolo que possa ser representado (um número, uma letra ou símbolos especiais pertencentes a um conjunto de fontes). Em Delphi Language não existe diferença na forma de atribuição de caractere e string.

12 P á g i n a 10 Boolean: Esse tipo de dado é o responsável pela representação de valores lógicos e ocupa 1 byte de memória. Os valores booleanos são denotados por duas constantes predefinidas: True e False. Enumerated: Um tipo de dado enumerado define um conjunto ordenado de valores simplesmente listando identificadores que os denotem. Reais (flutuantes): Um tipo de dado real ou flutuante define um conjunto de números que podem ser representados com notação de ponto flutuante. O tipo genérico oferecido pela Delphi Language é o real. A tabela a seguir traz os limites e formatos para os tipos oferecidos para a plataforma 32 bits comuns à Delphi Language. Delphi Language Limite/Precisão Formato SINGLE 1,5 x 10^ ,4 x 10^38 4 DOUBLE 5,0 x 10^ ,7 x 10^308 8 EXTENDED 3,6 x 10^ ,1 x 10^ REAL 5,0 x 10^ ,7 x 10^308 8 String: Uma string representa uma ceia de caracteres, um texto, porém, apenas uma letra pode ser vista como string, desde que esteja armazenada em uma variável string.

13 P á g i n a 11 ESTRUTURA BÁSICA DE UM PROGRAMA EM DELPHI Para se declarar variáveis, constantes, procedures e functions de maneira correta em qualquer linguagem, são necessários o conhecimento de sua estrutura e a identificação dos pontos onde elas podem ser declaradas. ESTRUTURA DE UMA UNIT Uma UNIT é, na maioria das vezes, associada a um formulário (form) que contém seu código, ou seja, as declarações de variáveis, os componentes utilizados e as rotinas definidas. Unit xxxx;: Representa o nome físico do arquivo onde a codificação da unit fica. Por meio desse nome, units podem usar outras units. Interface: A seção interface começa coma palavra reservada interface e termina no início da seção implementation. Nessa seção, são declarados constantes (const), tipos(types), variáveis(var), procedures e functions, que

14 P á g i n a 12 estão disponíveis para outras units ou outros programas que desejem/necessitem utilizar os elementos dessa seção. Essas declarações são chamadas de públicas (public), pois outras units(clientes da unit em questão) podem acessá-las como se elas estivessem sido declaradas em, sua própria estrutura. A declaração de uma procedure ou functios, na seção de interface, inclui apenas o cabeçalho dessas rotinas. O bloco com a implementação deles deve estar na seção Implementation. Uses: Programas são normalmente divididos em módulos dentro de arquivosfonte que são chamados de units. Type: A declaração type especifica um idetificador que denotará um novo tipo, normalmente um que não seja oferecida pela linguagem. Var: Nessa área, são declaradas todas as variáveis que podem ser acessadas pelas procedures e functions da seção Implementation, além de outras units. Implementation: A seção implementation de uma unit começa com a palavra reservada implementation e termina em initializatation ou, em caso de nãoexistência essa seção, até o final da unit. {$ xxxx}: As diretivas de compilação se parecem muito com comentários, exceto pelo caractere cifrão, presente imediatamente após o caractere chave. As diretivas podem ser usadas em qualquer parte do código-fonte, elas passam informações adicionais ao compilador na hora de criar o arquivo executável do aplicativo. End.: Nessa linha, é informado ao compilador o final da unit. Não deve ser apagada.

15 P á g i n a 13 DECLARANDO VARIÁVEIS Quando se atribui nome às variáveis, faz-se necessário seguirmos algumas regras genéricas às linguagens. O primeiro caractere deve ser uma letra; Se houver mais de um caractere, só se pode usar letra ou algarismo; Nomes de variáveis escritas com letras maiúsculas serão diferentes dos de minúsculas, dependendo da linguagem que se utiliza. Não é o caso da Delphi Language; Nenhuma palavra reservada à ferramenta (linguagem de programação) poderá ser usada como nome de uma variável. Procure dar nomes representativos para a variável. Lembre-se que, ao ler seu nome, é importante saber o que ela contém.

16 P á g i n a 14

17 P á g i n a 15 A seção onde as variáveis são declaradas é de extrema relevância no que diz respeito sobre quem pode utilizá-las. As variáveis declaradas na seção Interface podem ser manipuladas por qualquer unit que insira essa unit em sua cláusula uses. As declaradas na seção Implemetation podem ser manipuladas apenas pelas Procedures e Functions implementadas na unit em referência. As declaradas em cabeçalhos de Procedures e Functions, apenas podem ser manipuladas pelo código implementado nessas Procedures e Functions. Veja um exemplo de variáveis Locais e Globais

18 P á g i n a 16 Expressões e Operadores A palavra expressão, aplicada à computação, assume uma conotação ampla: uma expressão é uma combinação de variáveis, constantes e operadores, e que, uma vez avaliada, resulta em um valor. Os operadores são elementos funcionais que atuam sobre operandos e produzem um determinado resultado. A expressão 5-2 relaciona dois operandos (os números 5 e 2) por meio do operador (-), que representa a operação de subtração. Os operadores podem ser classificados, de acordo com o número de operando sobre os quais o operador atua em binários, unários e ternários; e, quanto ao tipo de dados de seus operando e ao valor resultante de sua avaliação como operador, aritmético, lógico, relacional e literal. Expressões Aritméticas São aquelas cujo resultado da avaliação é do tipo numérico, seja ele inteiro ou real. Somente o uso de variáveis numéricas e operadoras aritméticas são permitidos em expressões desse tipo. Delphi Language Tipo Operação Exemplo - Unário Inversão de Sinal VERDADEIRO + Unário Manutenção de Sinal VERDADEIRO * Binário Multplicação 6 * 7 = 42 / Binário Divisão de números reais 8 / 2 = 4 + Binário Adição = 3

19 P á g i n a 17 - Binário Subtração 1 5 = - 1 Div Binário Divisão de números inteiros Mod Binário Resto de uma divisão de inteiros 9 div 3 = 3 10 mod 3 = 1 Expressões Logicas É aquelas cujo resultado da avaliação é um valor lógico (True ou False). Proposição é todo o conjunto de palavras ou símbolos que exprimem um pensamento de sentido completo, sendo que os pensamentos afirmam fatos ou exprimem juízos que formamos a respeito de determinados entes. Delphi Language Tipo Operação OR Binário OU AND Binário E NOT Unário NÃO Quando pensamos, efetuamos muitas vezes certas operações sobre proposições, chamadas operações lógicas : Delphi Language Comparação = Igual

20 P á g i n a 18 <> Diferente < Menor <= Menor ou igual > Maior >= Maior ou igual Esses operadores são somente usados quando se deseja efetuar comparações. Estas só podem ser feitas entre variáveis do mesmo tipo de dado e o resultado é sempre um valor lógico. ATRIBUIÇÃO DE VARIÁVEIS, SAÍDA E ENTRADA DE DADOS A atribuição de variável se dá quando precisamos armazenas algum valor para ser usado posteriormente em nosso aplicativo, seja esse uso em operações ou na simples informação para o usuário. Veja no código da implementação uma simples atribuição de valores e observe que a variável deve ser do mesmo tipo que o dado atribuído, e o operador responsável pela atribuição é :=

21 P á g i n a 19 Exemplo utilizando as funções INPUTBOX e MESSAGEDLG Estrutura Sequencial Uma estrutura sequencial é aquela na qual uma linha é executada após a outra. É a maneira mais simples de programação e é utilizada em conjunto com estruturas de seleção (condicional) e repetição, abordadas mais à frente.

22 P á g i n a 20 TROCA DE VALORES ENTE VARIÁVEIS Implemente um algoritmo que solicite ao usuário dois valores e efetue a troca deles entre as variáveis de entrada. OBTENDO O RESTO DE UMA DIVISÃO Faça um programa que leia dois números de entrada. Em seguida, realize a divisão do primeiro pelo segundo e imprima o resto dessa divisão. GASTO EM UM RESTAURANTE Faça um programa que leia um valor de conta de restaurante, representando o gasto realizado pelo cliente, e imprima no vídeo o valor total a ser pago, considerando que o restaurante cobra 10% para o garçom.

23 P á g i n a 21 CÁLCULO DE IDADE Faça um algoritmo para calcular a sua idade. Utiliza apenas o ano de nascimento e o ano de seu último aniversário. Assuma também que obrigatoriamente, o primeiro valor informado será maior que o segundo. Outra solução

24 P á g i n a 22 Estrutura Condicional Toda linguagem oferece a Estrutura Condicional (ou de seleção). Essa estrutura é representada através das instruções Se... Então..., Senão..., Então..., FimSe e Escolha... Caso. CONCEITUALIZAÇÃO IF... THEN... ELSE, IF... ELSE A sintaxe para a implementação da estrutura condicional é detalhada na sequencia, veja: Sintaxe: IF (<condição_simples_ou_composta>) then [begin] <instruções>; [end] Else IF (<condição_simples_ou_composta>) then [begin] <instruções>; [end] Else <instruções>; IF (valor>1000)then ShowMessage( Valor maior que mil ) Else IF (valor<1000) Then ShowMessage( Valor menor que mil ) Else ShowMessage( Valor igual a mil ); IF (Operação = Crédito ) and (Valor >=0) Then Begin Saldo := Saldo + Valor; ShowMessage ( Valor creditado em conta ); End;

25 P á g i n a 23 SELEÇÃO DE CATEGORIA BASEADO EM UMA IDADE Elabore um programa que solicite ao usuário sua idade e exiba a categoria a qual este se enquadra, considerando a tabela a seguir: Infantil A 5 a 7 anos Infantil B 8 a 10 anos Juvenil A Juvenil B 11 a 13 anos 14 a 17 anos Adulto Maiores de 18 anos

26 P á g i n a 24 CÁLCULO DO PESO IDEAL DE UMA PESSOA Tendo a altura e o sexo como dados de entrada de uma pessoa ( M masculino e F feminino), construa um algoritmo que calcule seu peso ideal, utilizando as seguintes fórmula: Para homens: (72.7*h)-58 Para mulheres: (62.1*h)-44.7 CALCULO DE CREDITO PARA CONTA CORRENTE - SALDOMEDIO Um banco concederá um credito especial aos seus clientes, variável com o saldo médio no ultimo ano. Faça um algoritmo que leia o saldo médio de um cliente e calcule o valor do credito de acordo com a tabela a seguir. Mostre uma mensagem, informando o saldo médio e o valor do credito. Saldo Médio De 0.00 até 200,00 Acima de 200,00 até 400,00 Acima de 400,00 até 600,00 Acima de 600,00 Percentual de Credito Nenhum 20% do valor do saldo médio 30% do valor do saldo médio 40% do valor do saldo médio

27 P á g i n a 25 Try...Except O bloco de instruções try... except... end tem seu uso recomendado quando uma determinada instrução (ou um conjunto delas) tem alguma probabilidade de gerar erro. Normalmente, esse erro (exceção) pode ocorrer devido a alguma interação com o usuário ou com algum dispositivo, tal como leitura de um arquivo ou, ainda, comunicação com algum dispositivo de hardware. Try, em inglês, significa tente, dessa forma, pode ser explicada a estrutura da seguinte maneira: tente executar as instruções que estão entre as palavras (instruções) try... except e, caso ocorra algum tipo de erro (exceção) em qualquer uma delas, na primeira ocorrência, execute as instruções existentes entre except... end. Try npeso := (72.7 * StrToFloat(edtAltura.Text)) 58; Except ON E:EConvertError do Raise EConverterError.Create( Valor Informado na Altura é Inválido ); End; Note que, caso ocorra o erro de conversão que dispara a exceção EConverterError, ela é capturada dentro do except (através do On E:EConverteError) e uma variável local ao bloco except é criada, trazendo nela referências das exceção que podem ser obtidas através de suas propriedades, como, por exemplo, E.Messagem que traz a mensagem padrão gerada pela exceção.

28 P á g i n a 26 Conceitualização CASE...OF O comando case é um substituto para IF-Then-Else aninhado ou múltiplo, pois ele avalia uma expressão (ou valor) ordinal apenas uma vez e faz as comparações com os valores preestabelecidos. Case Num of : ShowMessage( Categoria A ); : ShowMessage( Categoria B ); : ShowMessage ( Categoria C ) ; Else ShowMessage ( Sem possibilidade de competir ); End ORDENAR TRÊS NÚMEROS INFORMADOS Desenvolva um aplicativo que solicite três números reais ao usuário e, através da seleção de uma dentre as três opções mostradas na tabela a seguir, exiba (sem perder a ordem de entrada) os valores na ordem desejada. Opções a se escolher Ordem crescente Ordem decrescente O maior fica entre os outros dois números

29 P á g i n a 27 CÁLCULO DE IMPOSTO A SER COBRADO SOBRE PRODUTOS É desejado o valor a ser pago em impostos para a importação de um determinado produto, porem esse valor não é simplesmente informado pelo cliente, ele depende de outras informações fornecidas pelo cliente, que são o próprio código do produto e o código do pais de origem desse produto. CÁLCULO DO REDIMENTO Uma agencia bancaria possui dois tipos de investimentos, conforme o quadro a seguir. Faça um sistema que receba o tipo de investimento e o seu valor e que calcule e mostre o valor corrigido de acordo com o tipo de investimento.

30 P á g i n a 28 Estrutura de Repetição Existem situações onde um problema exige ou apresenta como resolução um conjunto de instruções que devem ser executadas por mais de uma vez. É apresentada essa estrutura como solução, as quais se dividem em: Repetição Contada, Repetição com Teste Condicional no Início e Repetição com Teste Condicional no Fim. Repetição Contada. For..Do For Num := 1 To 5 do nfatorial := nfatorial * Num; For Num := 5 Downto 1 do nfatorial := nfatorial * Num; CÁLCULO DE FATORIAL Faça um algoritmo que calcule o fatorial de um número inteiro lido, sabendo-se que: N! = 1 x 2 x 3 x 4 x 5 x(n-1) x N0! = 1 e 1!=1 MÉDIA ARITMÉTICA

31 P á g i n a 29 Faça um algoritmo que solicite 10 números ao usuário e o final exiba a média aritmética desses números. CONSUMO DE ENERGIA Em um condomínio fechado, de 10 residências, a companhia de fornecimento de energia está fazendo um levantamento de consumo. O responsável por esse levantamento informará ao seu programa a quantidade de Kw consumido (cada residência) e seu programa deverá informar a quantidade de Kw que 20% representa no total de consumo total do condomínio, já descontados os 20% de cada residência.

32 P á g i n a 30 Repetição WHILE..DO A condição de teste nessa estrutura normalmente compara um valor definido pelo desenvolvedor como uma variável que tem seu valor conhecido como antes (fora da estrutura) pelo usuário ou inicializada pelo desenvolvedor. Deve-se observar que é preciso oferecer a possibilidade de alteração desse valor nas instruções que estão dentro da repetição, para que assim possa ser encerrado o loop. I := 2; While (I <> nnumero) do Begin nfattorial := nfatorial * I; I := I +1; End;

33 P á g i n a 31 REAJUSTE DE SALÁRIO Elaborar um programa que efetue o cálculo do reajuste do salário em uma empresa. Considere que, para cada funcionário, o reajuste será de 15%, caso seu salário seja menor que 500. Se o salário for maior ou igual a 500, porém menor ou igual a 1000, seu reajuste será de 10%. Caso seja ainda menor de 1000, o reajuste deverá ser de 5%. Você deverá exibir ao final: a) O valor total da folha de pagamento antes do reajuste; b) O valor total da folha de pagamento após o reajuste; c) O percentual de acréscimo à folha de pagamento, em relação à folha atual.

34 P á g i n a 32 Repetição REPEATE.. UNTIL I := 2; Repeat nfatorial : = nfatorial * I; I : = I +1; Until (I = nnumero); Procedimentos e Funções O uso de procedimentos e funções é altamente recomendado na divisão de responsabilidades em projetos, quer sejam eles simples ou complexos. Assim, esse capítulo aborda o desenvolvimento de rotinas (procedimentos e funções), muito utilizado por programadores para facilitar a programação, minimizando possíveis rotinas repetidas. É sempre possível dividir grandes algoritmos que resolvem grandes e complexos problemas em partes menores, onde a solução e problemas são particionados. Na programação, chamamos essa divisão de sub-rotinas. Além desse particionamento, é possível chamar (usar) as sub-rotinas a qualquer momento em seus programas, facilitando o desenvolvimento e manutenções. Compreender a utilização de procedimentos e funções é de extrema relevância para qualquer linguagem de programação, e para os ambientes de programação visual não é diferente, pois utilizam e muito esse conceito.

35 P á g i n a 33 CONCEITUALIZAÇÃO Os procedimentos (procedures)e funções (functions) são blocos de instruções que realizam tarefas específicas. Este nada mais é do que as resoluções para os pequenos problemas de um programa principal. O código de um subalgoritmo é digitado uma vez e pode ser utilizado quantas vezes for necessário, inclusive, dependendo da situação em projetos diferentes. Dessa maneira, os programas tendem a ficar menores e mais organizados. Os programas (em programação estruturada) em geral são executados linearmente, uma linha após a outra, mas é possível a realização de desvios na execução natural dos programas quando uma função ou procedure são chamadas pelo programa principal. Por outra sub-rotina (freqüentemente) ou até mesmo por se própria. Nesse último caso, é chamada de recursão. Vantagens Subdivisão de algoritmos complexos, facilitando o seu entendimento; Estruturação de algoritmos, facilitando principalmente a detecção de erros e a documentação de sistemas. Modularização de sistemas, que facilita a manutenção de programas e a reutilização de sub algoritmos já implementados. Procedimento - PROCEDURE Um procedimento é um sub algoritmo que, apesar de não retornar de forma explícita nenhum valor ao algoritmo chamador, pode, sim, retornar valores de forma implícita. Esses valores são sempre retornados por meio dos parâmetros ou de variáveis globais, mas nunca explicitamente, como nos casos de funções.

36 P á g i n a 34 Devido a isso, a chamada de um procedimento não pode surgir no meio de expressões, ser atribuída a uma variável ou propriedade de um componente ou objeto, como no caso de funções. A chamada de procedimentos só é feita em comandos isolados dentro de um algoritmo. Procure observar nos exercícios anteriores que, quando um evento estava sendo implementado, era desenvolvida a implementação para uma procedure a ser executada quando o evento ocorresse e o cabeçalho completo para a procedure já era implementado pelo IDE. Esse evento pode ser chamado mais de uma vez, facilitando o desenvolvimento. Se você observar um pouco mais o Code Editor, ainda verificará que, na seção Implementation, é inserida automaticamente uma linha indicando essa procedure. Define-se um procedimento da seguinte forma: Sintaxe Procedure NomeProc(Lista_de_Parâmetros : Tipo); Var Begin [bloco de instruções] End; Procedure: é palavra reservada obrigatória que identifica que o sub algoritmo é um procedimento. NomeProc: refere-se ao nome da procedure que se deseja criar e que será utilizada para referenciar o procedimento. Lista_de_Parâmetros: Tipo refere-se aos parâmetros(variáveis) que serão utilizados pela procedure e seu respectivo tipo. É comum ter mais de um tipo de variável, nesse caso separa-se por ponto e vírgula (;).

37 P á g i n a 35 Var É a área para declaração de variáveis locais do sub algoritmo quando necessário. Begin e end São palavras reservadas obrigatórias da estrutura que indicam o início e fim do procedimento. [bloco de instruções] procedure em seu corpo. Refere-se às instruções a serem efetuadas pela Veja a seguir os exemplos: Exemplo A Procedure Escolha; Begin Case Opcao of 1: valor:=idade*365; 2: valor:=(idade*365)/30; 3: valor:=(idade*365)*34; End; End; Observe que, no exemplo a seguir, após o nome da procedure, são declarados alguns parâmetros. Nessa etapa não preocupe com isso, pois o mesmo é detalhado no item após as funções. Exemplo B Procedure Escolha (opção: integer; var valor:integer); Var Val : Integer; Begin

38 P á g i n a 36 Case Opcao of 1: val:=idade*365; 2: val:=(idade*365)/30; 3: val:=(idade*365)*34; End; End; PROCEDIMENTO E FUNCAO PROCEDIMENTO E FUNCAO - RENDAFAMILIAR FUNÇÃO As funções recebem valores que são passados como parâmetros e retornam apenas um valor como resultado. Define-se uma função obedecendo à seguinte sintaxe: Sintaxe Function NomeFunc(Lista_de_Parametros :Tipo): Tipo_Retorno; Var Begin [bloco de instruções]

39 P á g i n a 37 End; Function Palavra reservada obrigatória que identifica que o sub algoritmo é uma função. NomeFunc Refere-se ao nome da function que se deseja criar e que será utilizada para referenciar a função. Lista_de_Parametros: Tipo refere-se aos parâmetros (variáveis) que serão utilizados pela function e seu respectivo tipo. É comum ter mais de um tipo de variável, neste caso separa-se por ponto e vírgula (;). Tipo_Retorno Refere-se ao tipo de variável de retorno da function. Var Área para declaração de variáveis locais do sub-algoritmo quando necessário Begin..End Palavras reservadas obrigatórias da estrutura que indicam o início e fim da function. [bloco de instruções] referem-se às instruções a serem efetuadas pela function em seu corpo. Veja baixo o exemplo: Function Divide (N1, N2 :Real):Real; Begin Result:=N1/N2; End; Esclarecimentos: No exemplo é apresentada uma função criada e nomeada pelo desenvolvedor como Divide que executa e retorna a divisão entre N1e N2 em uma variável chamada Result. Toda a função da Delphi Language possui uma variável local chamada Result. Essa variável armazena o valor específico que será retornado

40 P á g i n a 38 por uma function, sendo do tipo declarado como retorno de função. Para isso basta apenas atribuir o valor à variável Result dentro da function. Outra forma de retorno de uma função é, ao invés de conferir o valor à variável Result, atribuir ao nome da função, como mostrado a seguir: Function Divide (N1, N2 : Real): Real; Begin Divide: =N1/N2; End; A chamada da função pode ser: X: = Divide(5,2); {passando valores constantes} X:= Divide(A,B); {passando variáveis} Na Delphi Language há várias funções predefinidas. Alguns exemplos: Inc(x): Incrementa (soma 1) uma variável inteira x; Ln(x): Retorna o logaritmo neperiano de x; Sqr(x): Retorna o quadrado de x; Sqrt(x): Retorna a raiz quadrada de x. Observações Adicionais 1. As regras nomear procedures e functions é a mesma já apresentadas anteriormente para variáveis.

41 P á g i n a Realizar a sua implementação dentro da seção Implementation, observando na Delphi Language que na sub-rotina deve ser codificada sempre antes de ser chamada. 3. Caso uma função não seja definida, o compilador emitirá um erro que diz Unsatisfied forward or external declaration: NomeFunc, dessa forma a declaração prévia da assinatura das funções e procedimentos (ou os prórpios) evita este erro; 4. Os nomes das funções e procedimentos não podem ser semelhantes a variáveis que estejam no mesmo contexto de visibilidade. PROCEDIMENTO E FUNCAO - ALUNOS PASSAGEM DE PARÂMETROS Os parâmetros para funções ou procedimentos podem ser, no mínimo, de dois tipos diferentes: de valores e referencia. Os parâmetros possibilitam a comunicação de fora para dentro e de dentro para fora de uma sub-rotina, o que a torna independente e reutilizável em outros programas. Para declarar procedures e functions que utilizam parâmetros, acrescenta-se ao cabeçalho a lista de parâmetros a se utilizada, que deverá estar entre parênteses, conforme detalhado nas conceitualizações acima e mostrado novamente a seguir (somente o cabeçalho): Procedure NomeProc(Lista_de_Parametros: Tipo); Function NomeFunc(Lista_de_Parametros: Tipo): Tipo;

42 P á g i n a 40 PARÂMETRO POR VALOR Quando se passa um parâmetro por valor, estamos realmente passando o valor ou a cópia de um valor armazenado em uma variável ou propriedade de um componente. O parâmetro de valor é visto como uma variável local na subrotina. É possível modificar o valor do parâmetro dentro da sub-rotina, mas quando esta é finalizada, o valor de entrada continua o mesmo. Isso ocorre porque o compilador cria uma cópia da variável passada para a sub-rotina e envia essa cópia para esta sub-rotina, ficando a variável original inalterada. Há um isolamento proporcionado por esse tipo de passagem. Nenhum valor manipulado dentro da sub-rotina fica visível, a não se o próprio valor de retorno. O único ponto a considerar é que haverá maior memória alocada, o que pode prejudicar certas implementações. Unit Unit1; Implementation Funtion Calcula(N1,N2: Real): Real; Begin N1 := N1 * 2; Result := N1/N2; End;

43 P á g i n a 41 Procedure TForm1.btnDivideClick(Sender: TObject); Var X,Y: Real; Begin Observe que neste ponto é feito a chamada a Procedure Calcula. Note que a variável resultado é um parâmetro por referencia X := StrToFloat(edt_N1.Text); Y := StrToFloat(edt_N2.Text); Label1.Caption := FloatToStr(Calcula(X,Y)); End PARÂMETRO POR REFERENCIA Quando a passagem se faz por referencia, estamos passando o endereço da variável e não o seu valor. Quando se altera, dentro das funções ou procedimento, o valor de uma variável passada por referencia essa alteração surte efeito em todo o programa, pois o que está sendo modificado é o valor da variável original. Para passarmos um parâmetro por referencia, devemos precedê-lo da palavra reservada var. Um exemplo disso é o procedimento do evento OnClose de um formulário: Procedure TForm1.FormClose(Sender: TObject; var Action :TCloseAction); Begin End; Observe que var é uma palavra reservada que tem dupla finalidade. Não se preocupe, pois o compilador saberá o contexto na qual ela está sendo utilizada e não acusará erro nesse caso, pois o var dentro do cabeçalho de uma

44 P á g i n a 42 procedure ou function tem a função de especificar que a variável utilizada é por passagem de parâmetro. Observações importantes quanto aos parâmetros: O nome de um parâmetro e ou de uma variável local na sub-rotina só é conhecido dentro da sub-rotina, portanto, não sendo possível acessá-la fora dessa sub-rotina que foi chamada ou declarada. Por isso essas variáveis, tanto nas procedures quanto nas functions são chamadas de variáveis locais, sendo apenas de uso local. É possível declarar os parâmetros e variáveis locais com nome idênticos a variáveis locais de outras sub-rotinas e até globais. Elas serão armazenadas quando utilizadas (chamadas) em endereços diferentes de memória, uma não afetará a outra. Quando houver uma variável global e local com mesmo nome, a variável mais interna acessa primeiro, ou seja, a local. Os parâmetros assim como as variáveis locais, são criados quando a sub-rotina é executada, sendo que ao retornar ao ponto de chamada, essas variáveis são destruídas, não existirão mais. São alocadas apenas quando chamada, por isso não podem ser acessadas fora da sub-rotina. PROCEDIMENTO E FUNCAO - RENDAFAMILIAR Elabore um programa que permita a informação por parte do usuário, dos dados de uma pessoa que são: nome data de nascimento, renda familiar e quantidade de pessoas que existem na família, na mesma residência. Sua aplicação deverá tem um botão que calcule

45 P á g i n a 43 e exiba em um Label,a idade e renda per capita da família. Para esses cálculos, faça uso de um procedimento em Delphi. Uma Análise sobre o Problema Um detalhe deve ser visto em relação à quantidade de dependentes para o cálculo da renda per capita, pois a tendência é confundir essa quantidade de pessoas com a quantidade de dependentes. Ou seja, se a pessoa for solteira, a quantidade de pessoas na família é um. Caso não seja informado nada ou, ainda, zero, a divisão retornará um erro. PROCEDIMENTO E FUNCAO - POUPANÇA Elabore uma aplicação que receba os dados de caderneta de poupança. Os dados necessários são o valor do depósito inicial e a taxa atual de rendimentos. Através do uso de uma FUNÇÃO, faça a projeção de um ano de rendimento, tendo como base para cada mês a taxa informada. Exiba o resultado em um ListView com as colunas: Mês, Saldo Inicial, Valor do Ganho, Saldo Final.

46 P á g i n a 44 Uma Análise sobre o Problema Pegar o saldo inicial de uma aplicação e a taxa utilizada para verificação de ganho, e com estes dados a operação é executada. Os ganhos identificados deverão ser somados ao saldo inicial, obtendo assim o saldo final para o período, já corrigido.

47 P á g i n a 45

48 P á g i n a 46 EXTRA - Introdução ao.net Framework O desenvolvimento de aplicações utilizando o.net Framework serve como um modelo de programação eficaz e um conjunto de APIs poderoso. O processo de construção do sistema ganha uma agilidade enorme, fazendo com que as preocupações do desenvolvedor se limitem a criação das funcionalidades do programa. Dessa forma, este material serve para conhecer todas as partes que integram a plataforma.net, o que é essencial para qualquer desenvolvedor. O.NET Framework oferece soluções para construção e execução de aplicações desktop (Windows Forms, Windows Presentation Foundation), orientadas a dados (ADO.NET, ADO.NET Entity Framework, ADO.NET Data Services, LINQ), Web (ASP.NET, WCF), para dispositivos móveis (.NET CF), dispositivos embarcados (.NET MF), autenticação (WCS), workflows (WF), dentre outras. Cada uma dessas tecnologias é útil em determinados cenários. O antigo modelo de desenvolvimento utilizado em aplicações Windows impunha diversas dificuldades para a construção de sistemas. Para alcançar a interoperabilidade entre aplicações distribuídas, e escritas em diferentes linguagens, eram necessárias uma série de manipulações e conversões de tipos. Além disso, os desenvolvedores eram obrigados a trabalhar com construções de linguagem pouco produtivas e propensas a erros. O surgimento do.net Framework representou uma mudança de paradigmas, abstraindo dos desenvolvedores muitas das tarefas tediosas impostas por outras plataformas. O.NET Framework é uma plataforma que simplifica o desenvolvimento da aplicações, focada na Internet e baseada em padrões consolidados do mercado. A iniciativa foi anunciada em julho de 2000 e oferece um rico conjunto de classes e objetos destinados a criação de aplicações. A Internet está se tornando cada vez mais uma parte fundamental de cada aspecto de nossas vidas. Os negócios contam com ela. A educação desenvolve

49 P á g i n a 47 se por meio dela e nossas vidas pessoais são simplificadas por ela. Sites Web modernos não são apenas informativos, mas altamente interativos. O.NET Framework é uma plataforma criada pela Microsoft, que dá sustentação ao desenvolvimento de inúmeros tipos de aplicativos e suporte a uma grande variedade de dispositivos. Dentre suas competências, disponibiliza meios para a criação de design visual rico, comunicação direta e segura, além de inúmeras tarefas de programação para a modelagem de todo tipo de processos. Segundo a Microsoft, o.net Framework foi projetado para fornecer um ambiente de programação consistente e orientado a objetos, onde seja possível minimizar a implantação e os conflitos de versionamento, bem como eliminar os problemas de desempenho encontrados em ambientes interpretados ou com scripts. Através da integração com outras ferramentas e tecnologias, a plataforma.net provê recursos para maximizar a produtividade do desenvolvimento de aplicações, permitindo a construção de soluções baseadas no Windows ou na Web. Uma arquitetura simplificada do.net Framework pode ser observada na Figura abaixo, e consiste basicamente de cinco partes: - Common Language Specification (CLS); - Common Type Specification (CTS); - Tecnologias e Frameworks de Desenvolvimento; Soluções reutilizáveis e customizáveis para tarefas de programação de maior porte; - Base Class Libraries (BCL); Bibliotecas de código pré-construídas para as tarefas de programação de baixo nível mais comuns e acessíveis a todas as linguagens habilitadas à plataforma; - Common Language Runtime (CLR); Fornece uma camada de abstração sobre o sistema operacional;

50 P á g i n a 48 Antes de examinar as especificidades da Plataforma.NET, é útil considerar algumas das questões que motivaram a sua criação. Podemos facilmente planejar uma viagem, comprar uma passagem aérea, alugar um quarto de hotel e obter informações sobre eventos e pontos turísticos em questão de minutos. Podemos até mesmo obter análises sobre vários negócios, serviços e locais. Agora, as empresas podem alcançar e vender para mercados mundiais mais amplos. A internet é provavelmente a fonte mais substancial de informações atualizadas em tempo real, cruciais para aqueles que são responsáveis por decisões de negócio. Com toda essa capacidade, talvez pareça irritante inferir que as coisas poderiam melhorar. O fato é que a internet ainda é uma miscelânea de tecnologias não cooperantes entre si. Quanto à internet poderia melhorar se os

51 P á g i n a 49 serviços obtidos por meio dela pudessem funcionar conjuntamente no geral, aumentando a experiência e produtividade do usuário final? Talvez, por exemplo, seus planos de viagem possam incluir recomendações sobre restaurantes com base nas suas preferências pessoais. A partir disso, você poderia reservar sua mesa imediatamente. Suponha que você esteja em uma lista de espera de um vôo melhor. Você poderia receber um alerta por meio de seu dispositivo móvel, celular ou PDA, de modo que pudesse fazer rapidamente quaisquer ajustes á sua agenda em tempo real. Como um usuário do negócio, você não apenas poderia querer saber quem tem os preços mais baixos para um item particular, mas também quando um fornecedor oferece um item a custo mais baixo sem realizar uma pesquisa manual. Objetivos do.net De acordo com a Microsoft, O.NET é a solução da Microsoft para Web Services, a próxima geração de software que conecta nosso mundo de informações, dispositivos e pessoas de uma maneira unificada e personalidade. Oferecer um ambiente integrado para desenvolvimento baseado na orientação a objetos, que podem ser executados localmente ou remotamente; Oferecer um ambiente seguro para execução de código, eliminando problemas de performance, causados por linguagens baseadas em script ou código interpretado; Manter a experiência do desenvolvedor através de uma variedade de tipos de aplicações, como Windows e Web; Ser baseado em padrões da indústria, como XML e Web Services, garantindo que todo código baseado no.net possa ser facilmente integrado com outros códigos; Oferecer software como um serviço;

52 P á g i n a 50 Definir um novo modelo de desenvolvimento baseado em componentes, dando fim a era COM (embora ainda seja possível usar objetos COM no.net); Permitir a integração entre linguagens, baseando-se em um modelo único de desenvolvimento e oferecendo uma biblioteca de classes comum (a mesma utilizada no C#, VB.NET, Delphi etc.) Acredite, programar em uma linguagem específica não será mais tão importante: com.net você passará a programar para uma plataforma; conhecendo as classes do.net Framework, poderá utilizar com facilidade qualquer linguagem.net; Permitir a distribuição simplificada de aplicações (também conhecida como distribuição por XCOPY ), sem a necessidade de registros ou configurações adicionais; Desenvolvimento focado na Web, utilizando padrões abertos como o HTTP, SOAP e XML; Utilização de um ambiente seguro, gerenciado e robusto para a execução de aplicações (uma máquina virtual); compiladores para o.net não geram mais instruções nativas da CPU, mas código intermediário; Abolir a necessidade de registro de bibliotecas e objetos, ou o uso de GUIDs; acabam os problemas de versionamento de DLLs (a chamada DLL Hell ). O GAC (Global Assembly Cache) faz o controle automático de versões de assembly. Ser o sucessor do modelo atual de programação Win32, fazendo com que o programador use um conjunto robusto de classes ao invés de chamar APIs diretamente (DLLs como user32.dll, gdi32.dll, etc.); Ser um competidor para o Java, introduzindo a independência de sistema operacional, utilização de uma máquina virtual e código gerenciado.

53 P á g i n a 51 Quando a Microsoft começou a falar sobre o.net (e mesmo depois do seu lançamento), havia uma grande confusão sobre o que ele era exatamente. As pessoas não tinham certeza se o.net era um novo framework, um sistema operacional ou uma linguagem de programação. Na realidade, o.net é uma marca da visão da Microsoft para o desenvolvimento distribuído baseado na nova tecnologia. Chamamos essa tecnologia de.net framework e é por meio dela que desenvolvemos Web Services. A Visão do.net Certamente, há muitos objetivos na iniciativa.net. Os objetivos a seguir parecem ser mais proeminentes na Microsoft e em outras distribuições e eles serão abordados em detalhes: Desenvolvimento mais rápido e mais fácil; Distribuição simplificada das aplicações; Acesso a serviços e dados a qualquer momento e em qualquer lugar; Aplicações colaborativas. Desenvolvimento mais rápido e mais fácil Para os desenvolvedores, o.net é uma nova e animadora plataforma de desenvolvimento que supera muitas limitações das plataformas existentes. Em geral, essa nova plataforma aumenta a produtividade do desenvolvimento ajudando os desenvolvedores a se tornarem mais eficientes. Em outras palavras, o desenvolvimento tornou se mais fácil, permitindo aos desenvolvedores agir mais rapidamente. Essa nova plataforma é chamada.net framework.

54 P á g i n a 52 O.NET framework inclui um rico e extensível conjunto de classes que oferece aos desenvolvedores várias ferramentas poderosas de desenvolvimento. Essas classes tornaram disponíveis desde funções de sistema de baixo nível até elegantes controles de interface com o usuário. O.NET framework vai, porém, muito além de bibliotecas de classe. Seus componentes centrais permitem aos desenvolvedores programar para quaisquer dispositivos utilizando qualquer linguagem que atenda a especificação do.net. Ele libera o desenvolvedor da preocupação com tarefas subjacentes como gerenciamento de memória e, com algumas linguagens.net, segurança de tipo. Ele permite que o desenvolvedor se concentre na solução de desenvolvimento. Nenhuma outra plataforma torna tão fácil compartilhar o código entre linguagens. Por exemplo, os desenvolvedores não terão mais de converter manualmente arquivos de cabeçalho para utilizar tipos definidos em outra linguagem. O Microsoft.NET também é suportado por mais de 30 linguagens, incluindo, as linguagens Delphi Language, Visual Basic.NET e C#. Distribuição simplificada de aplicações Qualquer pessoa que tenha lido sobre o.net viu ou ouviu a expressão inferno da DLL. Qualquer um que desenvolva softwares para o Windows sabe exatamente o que essas pessoas estão falando. Para alguns desenvolvedores, nada pode invocar o terror tal qual descobrir que aplicações importantes, ou o próprio Windows não conseguem executar depois que uma nova aplicação foi instalada no seu sistema. O Windows, assim como as aplicações que executam nele, utiliza e distribui as Dynamic Link Libraries (DLLs). Outras aplicações utilizam frequentemente funções que residem nessas DLLs. Os problemas ocorrem quando um usuário instala ou atualiza uma aplicação que sobrescreve

55 P á g i n a 53 uma DLL utilizada por essas outras aplicações. Se a nova funcionalidade da DLL for diferente da original, outras aplicações poderão não mais se comportar de maneira esperada. Outro ponto do inferno da DLL é escrever e manter programas de instalação para o Windows. Instalar DLLs servidoras e lidar com o registro e a segurança de usuário, tanto em computadores pessoais como em computadores dentro de um domínio de uma rede, são apenas algumas das batalhas com as quais você precisa lidar. Então, quando uma instalação finalmente estiver funcionando em uma instalação limpa do Windows, em execução sob uma máquina virtual (que normalmente não corresponde ao sistema de ninguém), será necessário descrever um programa de desinstalação para tentar desfazer a confusão que você criou. Os programas de instalação convencionais afirmam que podem resolver esse problema; entretanto, eles não fornecem o meio de realizar rotinas de baixo nível que você, de qualquer maneira, acaba tendo de codificar. Com aplicações cuspindo pedaços de si mesmas por todo seu sistema, é natural que o Windows e as aplicações que nele encontram se executando tornem se instáveis ao longo do tempo e tenham uma reputação de serem falhas. O Microsoft.NET tenta resolver esse problema mudando a maneira de lidar com a distribuição de aplicações.net. Acessibilidade a Serviços e Dados Provendo acesso a serviços e dados a qualquer momento e em qualquer lugar, os Web Services são os componentes do.net com o qual a Microsoft, e outras empresas, afirmam que irão revolucionar a maneira como os desenvolvedores criam soluções e como os usuários adquirem e utilizam essas soluções. Com a realidade dos poderosos computadores pessoais e outros dispositivos e a perspectiva de acessos onipresentes á internet, essas afirmações não estão longe de serem alcançadas. Três elementos dividem essa idéia de A qualquer

56 P á g i n a 54 momento, em qualquer lugar. Primeiro, a Internet sempre está acessível. Segundo, os Web Services fornecem funcionalidades via a Internet. Terceiro, os Web Services podem ter por alvo qualquer dispositivo: um computador pessoal, uma agenda de mão, um telefone celular ou qualquer outro dispositivo projetado para funcionar com os Web Services. Em geral, os desenvolvedores podem criar soluções incorporando as funcionalidades existentes disponibilizadas pelos Web Services. Portanto em vez de escrever ou comprar um pacote de cálculos contábeis, os desenvolvedores podem utilizar um que existe na Internet. Por exemplo, sem a necessidade de programar essas e outras funções em um pacote de folha de pagamento on-line, os desenvolvedores podem focalizar mais a solução do negócio e menos o funcionamento interno para implementá-lo. Aplicações Colaborativas Os Web Services permitem ás organizações continuar a utilização de seus serviços automatizados existentes que atualmente não podem se comunicar entre si. Como os Web Services estão baseados na tecnologia XML, eles podem ser utilizados para integrar esses sistemas proprietários. Em muitos sistemas, a abordagem típica para integração resolve a exportação de dados para um arquivo legível pelo código personalizado utilizado na importação para um outro sistema. Fornecendo uma camada colaborativa por meio dos Web Services/XML, a natureza proprietária dos sistemas pode ser contida e, ao mesmo tempo, expor suas funcionalidades. Outros sistemas podem atrelar essa funcionalidade, permitindo que organizações criem soluções de negócios completas por toda a empresa.

57 P á g i n a 55 Entendendo o funcionamento do.net Framework O.NET Framework suporta múltiplas linguagens de programação, como por exemplo o C#, Delphi Prism e VB.NET, possibilitando que o desenvolvedor opte pela que achar mais interessante, tendo em vista que cada uma possui vantagens e desvantagens. O suporte a várias linguagens é possível através da CRL (Common Language Runtime), que é o ambiente de execução onde as aplicações são controladas. Para que uma aplicação.net esteja pronta para ser executada, seu código fonte necessita estar compilado em código nativo. Primeiramente é feita a compilação para código MSIL (Microsoft Intermediate Language), que é um conjunto de instruções independentes de CPU (Central Processing Unit), onde são acrescentados todos os metadados necessários para sua execução. O.NET disponibiliza compiladores JIT (Just In Time) para cada arquitetura suportada pelo CLR, e é através deles que o código MSIL é transformado em código nativo. O compilador JIT detecta se algum método ou propriedade não será utilizado durante a execução do programa e converte apenas o que for necessário, fazendo com que a compilação seja mais rápida, além do código resultante poupar recursos e ser otimizado tanto em tamanho como velocidade de execução. Common Language RunTime (CLR) A CLR é a máquina virtual do.net e é uma das peças-chave da plataforma. Sem dúvida é o kernel de todo o framework e responsável por toda a funcionalidade de qualquer aplicação escrita para a plataforma.

58 P á g i n a 56 Entre as atribuições da CLR estão: Gerenciar a memória - a CLR efetua constantes verificações na memória da aplicação, garantindo a sua performance e integridade; Gerenciar o Garbage Collection o coletor de lixo da CLR se encarrega de liberar objetos alocados e não liberados pelo desenvolvedor; Efetuar a compilação de código intermediário (discutido a seguir); Execução de threads e execução de código gerenciado; Realizar constantes verificações no código para garantir a segurança; Verificação de tipos não é possível a utilização de ponteiros sem tipos, o.net é um ambiente de execução fortemente tipado; Vários outros aspectos estão diretamente relacionados à máquina virtual, como veremos a seguir. MSIL - Microsoft Intermediate Language Compiladores de linguagens (como C#, VB, Delphi etc.) não geram mais código nativo da CPU e do sistema operacional, como acontecia até agora. Ao invés disso, compiladores geram código gerenciado, em linguagem intermediária, ou seja, código para rodar na plataforma. Imagine isso como sendo algo entre linguagem de máquina e código-fonte. Assim, se for fornecida uma CLR para outro sistema operacional, seu código compilado continua o mesmo. O resultado da compilação é um Assembly.NET. O trecho a seguir mostra um exemplo de código intermediário, extraído a partir da descompilação de uma aplicação de console:

59 P á g i n a 57 Fique tranquilo, não é preciso (apesar de ser possível) escrever diretamente em IL. O compilador JIT Aplicações.NET são compiladas duas vezes. A primeira ocorre quando compilamos nosso código-fonte usando o compilador da linguagem (C#, VB, Delphi etc.), como falamos anteriormente. Quando a aplicação é executada pela primeira vez, a máquina virtual do.net Framework (CLR) identifica qual sistema operacional está sendo utilizado (Windows XP, Vista, NT, 2003, 2008, etc.) e se encarrega de acionar o JIT (compilador Just in Time), que gera o executável nativo da plataforma. Quando a aplicação for executada novamente, a CLR considera a versão compilada. Ou seja, o produto final (o executável) tem a mesma performance de uma aplicação nativa, para Win32 por exemplo. Managed Code Todo código compilado para.net é chamado de código gerenciado (Managed Ex 002 Code). A máquina virtual pode então fazer constantes verificações de tipo para garantir a segurança na execução do código. Não há brechas para execução de códigos maliciosos que possam prejudicar o funcionamento da aplicação e do sistema operacional como um todo. A CLR é um ambiente totalmente seguro.

60 P á g i n a 58 O código compilado nativo para o sistema operacional é chamado de Unmanaged Code. Assemblies Assembly é uma unidade de códigos compilada, com funcionalidade e escopos bem definidos, que é armazenada fisicamente em formato.dll ou.exe. Foram criados para simplificar a distribuição de aplicações, organizar todos os elementos e informações necessárias para o seu funcionamento, resolvendo inclusive os problemas de versionamento. Um Assembly é um importante conceito no.net Framework. GAC, Side By Side Execution e Manifest O GAC Global Assembly Cache é o local onde o.net armazena todos os Assemblies (bibliotecas DLLs) compartilhadas por várias aplicações. Se você já desenvolveu aplicações para Windows que utilizam DLL, já deve ter passado por um problema bastante comum: uma nova versão da DLL é utilizada na máquina e a aplicação que a usava deixa de funcionar, problema conhecido como DLL Hell. No.NET, cada Assembly é versionado (ex ) internamente. Ou seja, podemos ter, na mesma máquina, duas versões da mesma DLL sendo executadas ao mesmo tempo. A aplicação usará a DLL que foi utilizada no momento da sua compilação, graças às informações armazenadas no manifest da aplicação. A possibilidade de existirem várias versões da mesma DLL física rodando na mesma máquina, cada uma sendo utilizada por uma aplicação, é chamado de Side By Side Execution (execução lado a lado). Costumo dizer, a grosso modo, que o GAC seria como um System32 versionado.

61 P á g i n a 59 Você pode utilizar o gacutil.exe do SDK para instalar e remover Assemblies do GAC, ou ainda usar um extensão do explorer do Windows, bastando abrir o diretório C:\Windows\assembly a partir do Shell (Figura abaixo). CLS - Common Language Specificatione CTS- Common Type System Um dos principais objetivos do.net Framework é permitir a integração entre linguagens, baseando-se em um modelo único de desenvolvimento e oferecendo uma biblioteca de classes comum, a mesma utilizada no C#, VB.NET, Delphi etc. Antes do.net, cada linguagem definia um conjunto próprio de tipos, classes e APIs (por exemplo a MFC da Microsoft, a VCL da Embarcadero Delphi, etc.), o que poderia aumentar a curva de aprendizado caso um desenvolvedor precisasse utilizar outra ferramenta de desenvolvimento ou linguagem. Além disso, a integração entre linguagens, componentes ou aplicações nunca foi algo simples. Várias tecnologias surgiram com esse objetivo: o COM (Component Object Model), DDE (Dynamic Data Exchange), OLE (Object Linking and Embedding), ActiveX etc. Quem nunca precisou acessar a partir de sua aplicação uma DLL escrita em outra linguagem? As Type Libraries até que

62 P á g i n a 60 facilitavam um pouco esse processo. Outras vezes, era preciso declarar uma rotina externa e utilizar tipos básicos da API do Windows, como pchar e cardinal. Em todos os casos a integração é praticamente rudimentar. Você não podia, por exemplo, estender um objeto COM escrito em VB declarando uma classe descendente em Delphi, somente interfaces. Com o.net isso muda drasticamente. Todas as linguagens feitas para o.net utilizam os mesmos tipos básicos, através de uma especificação chamada CTS (Common Type System). Por exemplo, os tipos System.String, System.Object, System.IO.File, System.Data.Dataset podem ser utilizados em qualquer linguagem que possua um compilador para.net. Além disso, a CLS (Common Language Specification) define convenções e regras destinadas a garantir a interoperabilidade entre diferentes linguagens (C#, VB, Delphi etc.). Dessa forma, você pode tirar proveito de todos os recursos oferecidos pela POO entre diferentes linguagens, como herança, tratamento de exceção e polimorfismo, usando somente o código binário (em formato MSIL Microsoft Intermediate Language) gerado pelo compilador da outra linguagem! Não é necessário possuir o código-fonte. Common Type System Anteriormente ao.net, fazer com que componentes COM criados em diferentes linguagens pudessem se comunicar era um procedimento muito trabalhoso, pois existia a necessidade de mapear manualmente os tipos de uma linguagem para outra. Com o.net essa necessidade não existe mais, pois todas as linguagens habilitadas seguem certos padrões de desenvolvimento, que estão definidos na especificação CLS (Common Language Specification), e têm acesso a um conjunto de tipos comum, conhecido como CTS (Common Type System), os quais fornecem a estrutura que possibilita a integração entre linguagens.

63 P á g i n a 61.NET Framework Class Library e Namespaces Provavelmente um dos melhores recursos do.net Framework é sua extensa biblioteca de classes e objetos. No.NET, temos classes para realizar praticamente qualquer tarefa de programação: trabalhar com arquivos, conectar a um banco de dados, construir/consumir Web Services, criar aplicações GUI ou para Web etc. Para facilitar, as classes foram organizadas em namespaces, que são estruturas lógicas destinadas a agrupar classes e tipos com funcionalidades semelhantes. Por exemplo, todas as classes básicas do framework estão localizadas no namespace System. As classes destinadas ao desenvolvimento para banco de dados estão sob o namespace System.Data.

64 P á g i n a 62 Para o desenvolvimento de aplicações visuais para Windows, o namespace é System.Windows.Forms. E assim por diante. Com isso, fica muito fácil (e intuitivo) a localização de e organização de classes no framework. No.NET Framework, classes são organizadas logicamente em namespaces. Figura abaixo.

65 P á g i n a 63 Veja alguns dos principais namespaces do framework, contendo as respectivas classes para as finalidades indicadas: System.Web.UI - criação de aplicações visuais para Web com ASP.NET Web Forms; System.Web.Services - programação com Web Services usando ASP.NET; System.Windows.Forms - criação de aplicações GUI com Windows Form; System.Data - conectividade com fontes de dados usando ADO.NET; System.EnterpriseServices - classe para criação aplicações COM+; System.Globalization - localização de aplicações (cultura), incluíndo formato de data, moeda, números etc. System.IO - manipulação de arquivos; System.Net - classes base para os principais protocolos da Internet; System.Reflection - reflexão no.net; System.Runtime.InteropServices - Interoperabilidade.NET e COM; System.Runtime.Remoting - aplicações de objetos distribuídos; System.Runtime.Serialization - serialização de objetos; System.Security - configuração de segurança; System.Text - manipulação de strings e textos;

66 P á g i n a 64 System.Threading - desenvolvimento multi-tarefa; System.Web.Caching - Cache em ASP.NET; System.Web.Configuration - Configuração ASP.NET; System.Web.Mail - protocolos POP3 e SMTP; System.Web.Mobile - desenvolvimento Mobile com ASP.NET; System.Xml - processamento de documentos XML. Tipos de Objetos O.NET Framework é totalmente orientado a objetos. Isso significa dizer que tudo no framework é um objeto, desde inteiros, strings até objetos de acesso a dados. Todos descendem obrigatoriamente de System.Object; Existem dois tipos de objetos no.net: Reference: um objeto que é referenciado através de um endereço na pilha, um ponteiro tipado. Value: são alocados diretamente na pilha, sempre contém um valor e não podem ser nulos. Geralmente utilizados nos tipos primitivos, como inteiros, strings etc. Para permitir a utilização de tipos Value como se fossem realmente objetos, o.net utiliza um recurso chamado Boxing, permitindo que você possa chamar métodos e acessar suas propriedades. O processo inverso é conhecido como UnBoxing. Por exemplo, você pode ter o seguinte:

67 P á g i n a 65

68 P á g i n a 66

69 P á g i n a 67 Neste Tópico, irei falar um pouco da linguagem C# (C Sharp) e mostrando sempre um paralelo em Delphi Language do mesmo comando. Não pense encontrar um manual da linguagem C# aqui, pois existem bons livros que se aprofunda com ricos detalhes nas linguagens. Meu objetivo é mostrar pontos importantes da linguagem C#. Desta forma, você estará obtendo bons conhecimentos para estudos.

70 P á g i n a 68 Alguns esclarecimentos A necessidade de uma nova linguagem Como você já deve estar se perguntando, por que a necessidade de uma nova linguagem? Este é um assunto que tem gerado uma ampla discussão não apenas no nível técnico ou de engenharia de software em si, como também no nível de mercado (afinal alguém tem de pagar a conta, não é?). Até certo ponto é fácil convencer pessoas técnicas como você ou eu a usar uma nova linguagem ou tecnologia quando tecnicamente for provado que teremos ganhos consideráveis em relação ao que já existe no mercado, mas as implicações de se acrescentar uma nova linguagem ao parque tecnológico instalado numa corporação são sérias. Afinal, será necessário investir em treinamentos e reciclagem de pessoal para essa nova linguagem, ou pior ainda, em contratação de mão de obra especializada que conheça essa nova linguagem. Ainda, o fato de seu gerente convencer o CIO da empresa de que essa nova linguagem trará ganhos significativos no desenvolvimento de sistemas não explica como os sistemas que já foram desenvolvidos usando outras linguagens de programação deverão ser mantidos. Isso implica necessariamente que uma parte da equipe de desenvolvedores terá de cuidar do suporte, manutenções evolutivas ou corretivas dos sistemas existentes, enquanto outra parte da equipe terá de cuidar do desenvolvimento de sistemas na nova linguagem. A resposta para esse problema é razoavelmente simples: a.net não obriga o desenvolvedor a mudar a linguagem de programação que já usa na corporação; outrossim, permite que a migração para.net seja indolor, suave, a partir do momento que o programador poderá continuar a usar a linguagem na qual ele já é experiente.

71 P á g i n a 69 Mas você ainda deve estar se perguntando: por que a necessidade de uma nova linguagem? A proposta do C# em termos de linguagens de programação poderia ser descrita esboçando algumas das suas características principais: Ex 003 Clareza, simplicidade e facilidade: C# é clara, simples, fácil de aprender, mas nem por isso menos poderosa. Completamente orientada a objetos: C#, diferentemente de muitas linguagens existentes no mercado, é completamente orientada a objetos. Em C#, tudo é um objeto. Não requer ponteiros para gerenciar a memória: C# não requer ponteiros para alocar/desalocar memória heap. Esse gerenciamento, como dissemos acima, é feito pelo GC (Garbage Collector). Suporta interfaces, sobrecarga, herança, polimorfismo, atributos, propriedades, coleções, dentre outras características essenciais numa linguagem que se diz orientada a objetos. Código 100% reutilizável: Todo programa desenvolvido em C# é passível de reutilização a partir de qualquer outra linguagem de programação. NET e JAVA Muito se fala que a.net chegou ao mercado para concorrer pelo espaço ocupado pela linguagem JAVA. Em certo sentido isso é verdade, principalmente no que diz respeito ao desenvolvimento de Web Services e aplicações Web Server Side (do lado servidor). Entretanto, consideramos que.net vai mais além ao viabilizar o desenvolvimento de aplicações que não se limitam ao middleware, mas que se estende também ao desenvolvimento de aplicações

72 P á g i n a 70 de Front End (desktop). Além do mais, a.net dá suporte nativo a XML para qualquer aplicativo de qualquer natureza desenvolvido em.net. JAVA, que não é apenas uma linguagem de programação mas sim uma plataforma de desenvolvimento, peca pelo fato de ser centralizada na linguagem JAVA. Como já falamos ao longo deste capítulo, a.net não tem como centro a linguagem de programação e sim a interoperabilidade de linguagens e a portabilidade multiplataforma. Para os programadores JAVA, a boa notícia é que a Microsoft está trabalhando também em uma versão do JAVA com suporte a.net, algo conhecido como J# (leia-se J-Sharp). Quando usar a.net? Como consequência do que foi dito acima, a.net se adapta perfeitamente ao desenvolvimento do seguinte tipo de aplicações: Aplicações clientes de front end Aplicações de middleware: Web services, aplicações do lado servidor (ASP.NET, SOAP, Web Services e XML) Aplicações para internet: a.net fornece bibliotecas especializadas para o desenvolvimento de aplicações para Internet suportando os protocolos mais comuns: FTP, SMTP, HTTP, SOAP etc. Aplicações gráficas: via a biblioteca GDI+, a.net dá suporte completo a esse tipo de aplicações. Acesso a bancos de dados via ADO.NET: ADO.NET é uma evolução da tecnologia ADO usada amplamente no desenvolvimento de sistemas para

73 P á g i n a 71 bancos de dados. Entretanto, novas características são encontradas nessa nova biblioteca, como manipulação de dados na aplicação cliente, como se esta estivesse sendo manipulada no servidor. Isso implica em aplicações connectionless (sem conexão) com vistas a não degradar o desempenho do servidor de banco de dados, quando este está servindo milhares de conexões simultaneamente. Ideal para desenvolvimento de aplicações OLTP, não é? Aplicações multitarefa: a biblioteca System.Thread dá suporte ao desenvolvimento de aplicações multitarefa. E muito mais!

74 P á g i n a 72 OBSERVAÇÃO IMPORTANTE: Não será discutida ou tratada a linguagem C# profundamente. Serão somente explanados alguns conceitos importantes da linguagem. Fundamentos de C# A linguagem de programação C# (lê-se C Sharp) surge como uma evolução da linguagem "C" e destina-se a aplicações utilizando o.net Framework, utilizando os novos conceitos de Orientação a Objetos (OO). Irei mostrar como usar alguns dos namespaces básicos da.net e falaremos um pouco da sintaxe de C#. As características do C# Dentre as características essenciais do C# podemos citar: Completamente orientada a objetos: em C#, qualquer variável tem de fazer parte de uma classe. Fortemente tipada: isso ajudará a evitar erros por manipulação imprópria de tipos, atribuições incorretas etc. Gera código gerenciado: assim como o ambiente.net é gerenciado, assim também é C#. Tudo é um objeto: System.Object é a classe base de todo o sistema de tipos de C#. Controle de versões: cada assembly gerado, seja como EXE ou DLL, tem informação sobre a versão do código, permitindo a coexistência de dois assemblies homônimos, mas de versões diferentes no mesmo ambiente.

75 P á g i n a 73 Suporte a código legado: o C# pode interagir com código legado de objetos COM e DLLs escritas em uma linguagem não-gerenciada. Flexibilidade: se o desenvolvedor precisar usar ponteiros, o C# permite, mas ao custo de desenvolver código não-gerenciado, chamado unsafe. Linguagem gerenciada: os programas desenvolvidos em C# executam num ambiente gerenciado, o que significa que todo o gerenciamento de memória é feito pelo runtime via o GC (Garbage Collector), e não diretamente pelo programador, reduzindo as chances de cometer erros comuns a linguagens de programação onde o gerenciamento da memória é feito diretamente pelo programador. Alguns últimos detalhes adicionais Blocos de código são agrupados entre chaves { }. Cada linha de código é separada por ponto-e-vírgula. Os comentários de linha simples começam com duas barras //. Comentários em bloco são feitos usando os terminadores /* (de início) (de fim) O C# é sensível ao contexto, portanto int e INT são duas coisas diferentes. int é uma palavra reservada que é um alias do tipo System.Int32. INT poderia ser um identificador, entretanto não é recomendado usar como identificadores de variáveis o nome de um tipo ou palavra reservada como no exemplo citado.

76 P á g i n a 74 Sempre declare uma classe onde todos os aspectos inerentes à inicialização da aplicação serão implementados, e obviamente, que conterá o método Main( ) também. No decorrer deste livro seguiremos fielmente essa regra nos nossos exemplos. Variáveis Em C#, todas as variáveis são declaradas dentro do escopo de uma classe e podem ser dos seguintes tipos: Definição de Variáveis Veremos aqui os tipos de variáveis mais utilizadas no desenvolvimento de softwares. Veja abaixo algumas das variáveis mais utilizadas no desenvolvimento de softwares em C#: Descrição dos tipos de dados: int long float Double Decimal String Char Bool Números inteiros (32 bits por padrão) Números inteiros (64 bits por padrão) Números de ponto flutuante (32 bits por padrão) Números de ponto flutuante (63 bits por padrão) Valores monetários (128 bits por padrão) Para seqüências de caracteres (16 bits por caractere) Para somente um caractere (16 bits) Valor booleano que pode ser (true) ou (false)

77 P á g i n a 75 Exemplos de Console Um programa do tipo console em C# não irá possuir elementos de interface com o usuário, sendo esta feita através de uma janela do prompt de comandos do Windows. Neste programa estamos importando os principais namespaces do framework através das instruções using que devem ser incluídas no começo do programa. Existem muitos destes namespaces e cada classe deverá fazer uso de elementos específicos. Para começarmos o nosso programa o Visual Studio já incluiu aqueles que são os mais comuns. Podemos deixar como está. O nosso programa possui ele próprio um namespace indicado logo abaixo dos usings. Este elemento pode ser omitido em programas mais simples, mas existem casos como, por exemplo, quando formos criar uma biblioteca de classes (class library) que usualmente é representada pelos arquivos DLL do Windows, em que o uso de namespaces facilitará a organização separando as classes conforme sua funcionalidade. Como foi dito, cada programa em C# é ele próprio uma classe então, logo abaixo da indicação do namespaces, colocamos a identificação da classe. Finalmente, como se trata de uma aplicação do tipo console, precisamos ter o método principal que se torna o ponto de entrada do programa. Isto é indicado através da criação de um método (função da classe) do tipo estático (static) que não faz nenhum tipo de retorno (void) nomeado como Main, este

78 P á g i n a 76 nome deve ser seguido sempre que criarmos método principal de uma aplicação console. Um ponto fundamental da linguagem C# é que ela é case sensitive, ou seja, faz diferenciação entre maiúsculas e minúsculas. Exibindo dados no console Uma primeira tarefa a ser feita é possibilitar exibição de dados no programa para o usuário. C# possui várias formas de fazer isto, na Tabela abaixo, seguem os principais métodos, todos eles da classe Console. Escreva o programa abaixo para verificar o funcionamento destes métodos. O programa posiciona o cursor do console em uma posição e escreve um texto ali. Após fazer isso, interrompe a execução do programa e aguarda até que

79 P á g i n a 77 seja pressionada a tecla ENTER para que quando estiver sendo executado a partir do Visual Studio pela tecla F5, seja possível visualizar o conteúdo da janela do programa. A sua execução deve resultar em algo parecido com o da Figura abaixo. Uma tarefa muito comum em programas do tipo console é ler alguma informação que foi passada pelo usuário e exibir esta na tela. Na figura abaixo, dá um exemplo disto. Altere o seu programa e execute para que possamos a partir deste, vermos outros elementos da linguagem C#.

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br Introdução O computador como ferramenta indispensável: Faz parte das nossas vidas; Por si só não faz nada de útil; Grande capacidade de resolução

Leia mais

DESENVOLVIMENTO DE SOFTWARE AULA 1

DESENVOLVIMENTO DE SOFTWARE AULA 1 DESENVOLVIMENTO DE SOFTWARE AULA 1 CAMPUS SANTO ANDRÉ CELSO CANDIDO SEMESTRE 2014 1 Características da Plataforma.NET A plataforma.net Framework 4.0 (.NET 4.0) é uma plataforma de softwares que fornece

Leia mais

Fundament n os s da platafo f rm r a. NE N T André Menegassi

Fundament n os s da platafo f rm r a. NE N T André Menegassi Fundamentos da plataforma.net André Menegassi O que é o.net Framework?.NET é uma plataforma de software para desenvolvimento de aplicações que conecta informações, sistemas, pessoas e dispositivos através

Leia mais

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá. INTRODUÇÃO A lógica de programação é extremamente necessária para as pessoas que queiram trabalhar na área de programação, seja em qualquer linguagem de programação, como por exemplo: Pascal, Visual Basic,

Leia mais

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP) Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,

Leia mais

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES 3.1 - IDENTIFICADORES Os objetos que usamos no nosso algoritmo são uma representação simbólica de um valor de dado. Assim, quando executamos a seguinte instrução:

Leia mais

Criando um script simples

Criando um script simples Criando um script simples As ferramentas de script Diferente de muitas linguagens de programação, você não precisará de quaisquer softwares especiais para criar scripts de JavaScript. A primeira coisa

Leia mais

Framework.NET, Microsoft Visual C# 2010 Express e Elementos da Linguagem C#

Framework.NET, Microsoft Visual C# 2010 Express e Elementos da Linguagem C# Linguagem de Programação 3 Framework.NET, Microsoft Visual C# 2010 Express e Elementos da Linguagem C# Prof. Mauro Lopes 1-31 35 Objetivos Nesta aula iremos apresentar a tecnologia.net, o ambiente de desenvolvimento

Leia mais

AMBIENTE. FORMULÁRIO: é a janela do aplicativo apresentada ao usuário. Considere o formulário como a sua prancheta de trabalho.

AMBIENTE. FORMULÁRIO: é a janela do aplicativo apresentada ao usuário. Considere o formulário como a sua prancheta de trabalho. DELPHI BÁSICO VANTAGENS Ambiente de desenvolvimento fácil de usar; 1. Grande Biblioteca de Componentes Visuais (VCL - Visual Component Library), que são botões, campos, gráficos, caixas de diálogo e acesso

Leia mais

Resolução de problemas e desenvolvimento de algoritmos

Resolução de problemas e desenvolvimento de algoritmos SSC0101 - ICC1 Teórica Introdução à Ciência da Computação I Resolução de problemas e desenvolvimento de algoritmos Prof. Vanderlei Bonato Prof. Cláudio Fabiano Motta Toledo Sumário Análise e solução de

Leia mais

Dadas a base e a altura de um triangulo, determinar sua área.

Dadas a base e a altura de um triangulo, determinar sua área. Disciplina Lógica de Programação Visual Ana Rita Dutra dos Santos Especialista em Novas Tecnologias aplicadas a Educação Mestranda em Informática aplicada a Educação ana.santos@qi.edu.br Conceitos Preliminares

Leia mais

10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO

10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO 10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO UMA DAS GRANDES FUNÇÕES DA TECNOLOGIA É A DE FACILITAR A VIDA DO HOMEM, SEJA NA VIDA PESSOAL OU CORPORATIVA. ATRAVÉS DELA, ELE CONSEGUE

Leia mais

Sumário Introdução... 15 1 Fundamentos... 19 2 Introdução ao IDE Delphi... 25 3 A Linguagem... 33 4 Projetos e Configurações do Ambiente...

Sumário Introdução... 15 1 Fundamentos... 19 2 Introdução ao IDE Delphi... 25 3 A Linguagem... 33 4 Projetos e Configurações do Ambiente... Sumário Introdução... 15 1 Fundamentos... 19 1.1 Linguagens de Programação... 19 1.1.1 Métodos de Implementação... 19 1.1.2 A Linkedição (Ligação)... 22 1.2 Ambientes Integrados de Desenvolvimento (Integrated

Leia mais

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas CMP1132 Processo e qualidade de software II Prof. Me. Elias Ferreira Sala: 402 E Quarta-Feira:

Leia mais

1.6. Tratamento de Exceções

1.6. Tratamento de Exceções Paradigmas de Linguagens I 1 1.6. Tratamento de Exceções Uma exceção denota um comportamento anormal, indesejado, que ocorre raramente e requer alguma ação imediata em uma parte do programa [GHE 97, DER

Leia mais

Aula 4 Pseudocódigo Tipos de Dados, Expressões e Variáveis

Aula 4 Pseudocódigo Tipos de Dados, Expressões e Variáveis 1. TIPOS DE DADOS Todo o trabalho realizado por um computador é baseado na manipulação das informações contidas em sua memória. Estas informações podem ser classificadas em dois tipos: As instruções, que

Leia mais

OPERADORES E ESTRUTURAS DE CONTROLE

OPERADORES E ESTRUTURAS DE CONTROLE OPERADORES E ESTRUTURAS DE CONTROLE 3.1 Operadores Os operadores indicam o tipo de operação matemática que será executada gerando novos valores a partir de um ou mais operadores. São muito utilizados em

Leia mais

Introdução a listas - Windows SharePoint Services - Microsoft Office Online

Introdução a listas - Windows SharePoint Services - Microsoft Office Online Page 1 of 5 Windows SharePoint Services Introdução a listas Ocultar tudo Uma lista é um conjunto de informações que você compartilha com membros da equipe. Por exemplo, você pode criar uma folha de inscrição

Leia mais

1 Inicie um novo. Guia de Referência Rápida de Gerenciamento de Projeto para o Project 2007. projeto

1 Inicie um novo. Guia de Referência Rápida de Gerenciamento de Projeto para o Project 2007. projeto Guia de Referência Rápida de Gerenciamento de Projeto para o Project 2007 1 Inicie um novo Antes de começar um novo, uma organização deve determinar se ele se enquadra em suas metas estratégicas. Os executivos

Leia mais

Planejando o aplicativo

Planejando o aplicativo Um aplicativo do Visual FoxPro geralmente inclui um ou mais bancos de dados, um programa principal que configura o ambiente de sistema do aplicativo, além de uma interface com os usuários composta por

Leia mais

Apostila de Fundamentos de Programação I. Prof.: André Luiz Montevecchi

Apostila de Fundamentos de Programação I. Prof.: André Luiz Montevecchi Apostila de Fundamentos de Programação I Prof: André Luiz Montevecchi Introdução O mundo atual é dependente da tecnologia O uso intenso de diversos aparatos tecnológicos é parte integrante do nosso dia-a-dia

Leia mais

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008 Tabela de Símbolos Análise Semântica A Tabela de Símbolos Fabiano Baldo Após a árvore de derivação, a tabela de símbolos é o principal atributo herdado em um compilador. É possível, mas não necessário,

Leia mais

Prof. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br

Prof. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br Prof. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br Ementa Introdução a Banco de Dados (Conceito, propriedades), Arquivos de dados x Bancos de dados, Profissionais de Banco de dados,

Leia mais

Arquitetura de Computadores. Tipos de Instruções

Arquitetura de Computadores. Tipos de Instruções Arquitetura de Computadores Tipos de Instruções Tipos de instruções Instruções de movimento de dados Operações diádicas Operações monádicas Instruções de comparação e desvio condicional Instruções de chamada

Leia mais

Programando em C# Orientado a Objetos. By: Maromo

Programando em C# Orientado a Objetos. By: Maromo Programando em C# Orientado a Objetos By: Maromo Agenda Módulo 1 Plataforma.Net. Linguagem de Programação C#. Tipos primitivos, comandos de controle. Exercícios de Fixação. Introdução O modelo de programação

Leia mais

Noções de. Microsoft SQL Server. Microsoft SQL Server

Noções de. Microsoft SQL Server. Microsoft SQL Server Noções de 1 Considerações Iniciais Basicamente existem dois tipos de usuários do SQL Server: Implementadores Administradores 2 1 Implementadores Utilizam o SQL Server para criar e alterar base de dados

Leia mais

Algoritmos em Javascript

Algoritmos em Javascript Algoritmos em Javascript Sumário Algoritmos 1 O que é um programa? 1 Entrada e Saída de Dados 3 Programando 4 O que é necessário para programar 4 em JavaScript? Variáveis 5 Tipos de Variáveis 6 Arrays

Leia mais

Componentes da linguagem C++

Componentes da linguagem C++ Componentes da linguagem C++ C++ é uma linguagem de programação orientada a objetos (OO) que oferece suporte às características OO, além de permitir você realizar outras tarefas, similarmente a outras

Leia mais

Manual SAGe Versão 1.2 (a partir da versão 12.08.01)

Manual SAGe Versão 1.2 (a partir da versão 12.08.01) Manual SAGe Versão 1.2 (a partir da versão 12.08.01) Submissão de Relatórios Científicos Sumário Introdução... 2 Elaboração do Relatório Científico... 3 Submissão do Relatório Científico... 14 Operação

Leia mais

ESTUDO DE CASO WINDOWS VISTA

ESTUDO DE CASO WINDOWS VISTA ESTUDO DE CASO WINDOWS VISTA História Os sistemas operacionais da Microsoft para PCs desktop e portáteis e para servidores podem ser divididos em 3 famílias: MS-DOS Windows baseado em MS-DOS Windows baseado

Leia mais

Feature-Driven Development

Feature-Driven Development FDD Feature-Driven Development Descrição dos Processos Requisitos Concepção e Planejamento Mais forma que conteúdo Desenvolver um Modelo Abrangente Construir a Lista de Features Planejar por

Leia mais

Engenharia de Software III

Engenharia de Software III Engenharia de Software III Casos de uso http://dl.dropbox.com/u/3025380/es3/aula6.pdf (flavio.ceci@unisul.br) 09/09/2010 O que são casos de uso? Um caso de uso procura documentar as ações necessárias,

Leia mais

CURSO DE PROGRAMAÇÃO EM JAVA

CURSO DE PROGRAMAÇÃO EM JAVA CURSO DE PROGRAMAÇÃO EM JAVA Introdução para Iniciantes Prof. M.Sc. Daniel Calife Índice 1 - A programação e a Linguagem Java. 1.1 1.2 1.3 1.4 Linguagens de Programação Java JDK IDE 2 - Criando o primeiro

Leia mais

Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: 2010-1 Prof. Dr. Raimundo Moura

Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: 2010-1 Prof. Dr. Raimundo Moura UFPI CCN DIE Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: 2010-1 Prof. Dr. Raimundo Moura O projeto Desenvolver um compilador de um subconjunto básico da linguagem PORTUGOL.

Leia mais

Satélite. Manual de instalação e configuração. CENPECT Informática www.cenpect.com.br cenpect@cenpect.com.br

Satélite. Manual de instalação e configuração. CENPECT Informática www.cenpect.com.br cenpect@cenpect.com.br Satélite Manual de instalação e configuração CENPECT Informática www.cenpect.com.br cenpect@cenpect.com.br Índice Índice 1.Informações gerais 1.1.Sobre este manual 1.2.Visão geral do sistema 1.3.História

Leia mais

2. OPERADORES... 6 3. ALGORITMOS, FLUXOGRAMAS E PROGRAMAS... 8 4. FUNÇÕES... 10

2. OPERADORES... 6 3. ALGORITMOS, FLUXOGRAMAS E PROGRAMAS... 8 4. FUNÇÕES... 10 1. TIPOS DE DADOS... 3 1.1 DEFINIÇÃO DE DADOS... 3 1.2 - DEFINIÇÃO DE VARIÁVEIS... 3 1.3 - VARIÁVEIS EM C... 3 1.3.1. NOME DAS VARIÁVEIS... 3 1.3.2 - TIPOS BÁSICOS... 3 1.3.3 DECLARAÇÃO DE VARIÁVEIS...

Leia mais

Ambientes Visuais. Ambientes Visuais

Ambientes Visuais. Ambientes Visuais Ambientes Visuais Inicialmente, apenas especialistas utilizavam os computadores, sendo que os primeiros desenvolvidos ocupavam grandes áreas e tinham um poder de processamento reduzido. Porém, a contínua

Leia mais

Introdução aos cálculos de datas

Introdução aos cálculos de datas Page 1 of 7 Windows SharePoint Services Introdução aos cálculos de datas Aplica-se a: Microsoft Office SharePoint Server 2007 Ocultar tudo Você pode usar fórmulas e funções em listas ou bibliotecas para

Leia mais

3. O NIVEL DA LINGUAGEM DE MONTAGEM

3. O NIVEL DA LINGUAGEM DE MONTAGEM 3. O NIVEL DA LINGUAGEM DE MONTAGEM Nas aulas anteriores tivemos a oportunidade de discutir dois diferentes níveis presentes na maioria dos computadores atuais. Nesta aula dedica-se a outro nível que também

Leia mais

Memória Flash. PdP. Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos

Memória Flash. PdP. Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos TUTORIAL Memória Flash Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006 PdP Pesquisa e Desenvolvimento de Produtos http://www.maxwellbohr.com.br contato@maxwellbohr.com.br

Leia mais

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 1 Prof. Cristóvão Cunha Objetivos de aprendizagem

Leia mais

Microsoft Access XP Módulo Um

Microsoft Access XP Módulo Um Microsoft Access XP Módulo Um Neste primeiro módulo de aula do curso completo de Access XP vamos nos dedicar ao estudo de alguns termos relacionados com banco de dados e as principais novidades do novo

Leia mais

CONVENÇÃO DE CÓDIGO JAVA

CONVENÇÃO DE CÓDIGO JAVA CONVENÇÃO DE CÓDIGO JAVA Eligiane Ceron - Abril de 2012 Versão 1.0 Conteúdo Considerações iniciais... 2 Introdução... 2 Extensão de arquivos... 2 Arquivos de código Java... 2 Comentários iniciais... 2

Leia mais

SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2

SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2 SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2 1.1 Introdução... 2 1.2 Estrutura do IP... 3 1.3 Tipos de IP... 3 1.4 Classes de IP... 4 1.5 Máscara de Sub-Rede... 6 1.6 Atribuindo um IP ao computador... 7 2

Leia mais

Banco de Dados. Microsoft Access

Banco de Dados. Microsoft Access Banco de Dados Microsoft Access PARTE 01 edição 2007 Índice 01-) Conceito... 2 02) Sistema Gerenciador de Banco de Dados Relacional (SGBDR)... 3 03) Access... 3 04) Etapas para elaboração de um Banco de

Leia mais

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br LP II Estrutura de Dados Introdução e Linguagem C Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br Resumo da aula Considerações Gerais Introdução a Linguagem C Variáveis e C Tipos de

Leia mais

SUMÁRIO Acesso ao sistema... 2 Atendente... 3

SUMÁRIO Acesso ao sistema... 2 Atendente... 3 SUMÁRIO Acesso ao sistema... 2 1. Login no sistema... 2 Atendente... 3 1. Abrindo uma nova Solicitação... 3 1. Consultando Solicitações... 5 2. Fazendo uma Consulta Avançada... 6 3. Alterando dados da

Leia mais

ALGORITMOS PARTE 01. Fabricio de Sousa Pinto

ALGORITMOS PARTE 01. Fabricio de Sousa Pinto ALGORITMOS PARTE 01 Fabricio de Sousa Pinto Algoritmos: Definição 2 É uma sequência de instruções finita e ordenada de forma lógica para a resolução de uma determinada tarefa ou problema. Algoritmos 3

Leia mais

TÉCNICAS DE PROGRAMAÇÃO

TÉCNICAS DE PROGRAMAÇÃO TÉCNICAS DE PROGRAMAÇÃO (Adaptado do texto do prof. Adair Santa Catarina) ALGORITMOS COM QUALIDADE MÁXIMAS DE PROGRAMAÇÃO 1) Algoritmos devem ser feitos para serem lidos por seres humanos: Tenha em mente

Leia mais

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIAS DA COMPUTAÇÃO BACHARELADO AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS Orientando: Oliver Mário

Leia mais

Despachante Express - Software para o despachante documentalista veicular DESPACHANTE EXPRESS MANUAL DO USUÁRIO VERSÃO 1.1

Despachante Express - Software para o despachante documentalista veicular DESPACHANTE EXPRESS MANUAL DO USUÁRIO VERSÃO 1.1 DESPACHANTE EXPRESS MANUAL DO USUÁRIO VERSÃO 1.1 1 Sumário 1 - Instalação Normal do Despachante Express... 3 2 - Instalação do Despachante Express em Rede... 5 3 - Registrando o Despachante Express...

Leia mais

INTRODUÇÃO OBJECT PASCAL/DELPHI

INTRODUÇÃO OBJECT PASCAL/DELPHI Introdução Object Pascal/Delphi 1 INTRODUÇÃO OBJECT PASCAL/DELPHI Objetivo Demonstrar a sintaxe e a semântica do Object Pascal e a forma como esse linguagem de programação será aplicada na disciplina de

Leia mais

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0 AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0 SUMÁRIO 1 Conceitos Básicos... 3 1.1 O que é Software?... 3 1.2 Situações Críticas no desenvolvimento

Leia mais

1.1. Organização de um Sistema Computacional

1.1. Organização de um Sistema Computacional 1. INTRODUÇÃO 1.1. Organização de um Sistema Computacional Desde a antiguidade, o homem vem desenvolvendo dispositivos elétricoeletrônicos (hardware) que funciona com base em instruções e que são capazes

Leia mais

Métodos Os métodos de uma classe podem ser classificados como construtores, destrutores, funções ou procedimentos.

Métodos Os métodos de uma classe podem ser classificados como construtores, destrutores, funções ou procedimentos. Métodos Os métodos de uma classe podem ser classificados como construtores, destrutores, funções ou procedimentos. Construtor: método executado por uma CLASSE (e não por um objeto, instância da classe)

Leia mais

Novell. Novell Teaming 1.0. novdocx (pt-br) 6 April 2007 EXPLORAR O PORTLET BEM-VINDO DESCUBRA SEU CAMINHO USANDO O NOVELL TEAMING NAVIGATOR

Novell. Novell Teaming 1.0. novdocx (pt-br) 6 April 2007 EXPLORAR O PORTLET BEM-VINDO DESCUBRA SEU CAMINHO USANDO O NOVELL TEAMING NAVIGATOR Novell Teaming - Guia de início rápido Novell Teaming 1.0 Julho de 2007 INTRODUÇÃO RÁPIDA www.novell.com Novell Teaming O termo Novell Teaming neste documento se aplica a todas as versões do Novell Teaming,

Leia mais

Conceitos de Banco de Dados

Conceitos de Banco de Dados Conceitos de Banco de Dados Autor: Luiz Antonio Junior 1 INTRODUÇÃO Objetivos Introduzir conceitos básicos de Modelo de dados Introduzir conceitos básicos de Banco de dados Capacitar o aluno a construir

Leia mais

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO - TIC 10º C. Planificação de. Curso Profissional de Técnico de Secretariado

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO - TIC 10º C. Planificação de. Curso Profissional de Técnico de Secretariado Escola Básica e Secundária de Velas Planificação de TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO - TIC Curso Profissional de Técnico de Secretariado 10º C MÓDULO 1 FOLHA DE CÁLCULO Microsoft Excel Conteúdos

Leia mais

1. NÍVEL CONVENCIONAL DE MÁQUINA

1. NÍVEL CONVENCIONAL DE MÁQUINA 1. NÍVEL CONVENCIONAL DE MÁQUINA Relembrando a nossa matéria de Arquitetura de Computadores, a arquitetura de Computadores se divide em vários níveis como já estudamos anteriormente. Ou seja: o Nível 0

Leia mais

Linguagem e Técnicas de Programação I Programação estruturada e fundamentos da linguagem C

Linguagem e Técnicas de Programação I Programação estruturada e fundamentos da linguagem C Linguagem e Técnicas de Programação I Programação estruturada e fundamentos da linguagem C Prof. MSc. Hugo Souza Material desenvolvido por: Profa. Ameliara Freire Continuando as aulas sobre os fundamentos

Leia mais

Capacidade = 512 x 300 x 20000 x 2 x 5 = 30.720.000.000 30,72 GB

Capacidade = 512 x 300 x 20000 x 2 x 5 = 30.720.000.000 30,72 GB Calculando a capacidade de disco: Capacidade = (# bytes/setor) x (méd. # setores/trilha) x (# trilhas/superfície) x (# superfícies/prato) x (# pratos/disco) Exemplo 01: 512 bytes/setor 300 setores/trilha

Leia mais

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Disciplina: INF 02810 Prof.: (monalessa@inf.ufes.br) Conteúdo 1. Introdução 2. Processo de Software 3. Gerência de

Leia mais

Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho

Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho 20 Capítulo 3 Avaliação de Desempenho Este capítulo aborda como medir, informar e documentar aspectos relativos ao desempenho de um computador. Além disso, descreve os principais fatores que influenciam

Leia mais

Validando dados de páginas WEB

Validando dados de páginas WEB Validando dados de páginas WEB Para que validar os dados? Validar os dados informados pelo usuário garante que sua aplicação funcione corretamente e as informações contidas nela tenha algum sentido. Outro

Leia mais

MANUAL C R M ÍNDICE. Sobre o módulo de CRM... 2. 1 Definindo a Campanha... 3

MANUAL C R M ÍNDICE. Sobre o módulo de CRM... 2. 1 Definindo a Campanha... 3 ÍNDICE Sobre o módulo de CRM... 2 1 Definindo a Campanha... 3 1.1 Incluir uma campanha... 3 1.2 Alterar uma campanha... 4 1.3 Excluir... 4 1.4 Procurar... 4 2 Definindo os clientes para a campanha... 4

Leia mais

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 2-1. PRINCÍPIOS DE SOFTWARE DE ENTRADA E SAÍDA (E/S) As metas gerais do software de entrada e saída é organizar o software como uma série de camadas, com as mais baixas preocupadas em esconder as

Leia mais

Um Driver NDIS Para Interceptação de Datagramas IP

Um Driver NDIS Para Interceptação de Datagramas IP Um Driver NDIS Para Interceptação de Datagramas IP Paulo Fernando da Silva psilva@senior.com.br Sérgio Stringari stringari@furb.br Resumo. Este artigo apresenta o desenvolvimento de um driver NDIS 1 para

Leia mais

Arquitetura de Rede de Computadores

Arquitetura de Rede de Computadores TCP/IP Roteamento Arquitetura de Rede de Prof. Pedro Neto Aracaju Sergipe - 2011 Ementa da Disciplina 4. Roteamento i. Máscara de Rede ii. Sub-Redes iii. Números Binários e Máscara de Sub-Rede iv. O Roteador

Leia mais

Sistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com

Sistemas Operacionais. Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Sistemas Operacionais Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Estruturas de Sistemas Operacionais Um sistema operacional fornece o ambiente no qual os programas são executados. Internamente,

Leia mais

www.nddigital.com.br Manual de Administração DPS Printer 2.1 NDDigital S/A - Software

www.nddigital.com.br Manual de Administração DPS Printer 2.1 NDDigital S/A - Software www.nddigital.com.br Manual de Administração DPS Printer 2.1 NDDigital S/A - Software 2 Introdução Este manual foi elaborado para administradores, para entendimento do funcionamento do produto e administração

Leia mais

4 O Workflow e a Máquina de Regras

4 O Workflow e a Máquina de Regras 4 O Workflow e a Máquina de Regras O objetivo do workflow e da máquina de regras é definir um conjunto de passos e regras configuráveis. Ao longo de sua execução, um usuário consegue simplificar o seu

Leia mais

2 Diagrama de Caso de Uso

2 Diagrama de Caso de Uso Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Caso de Uso (Use Case) Autoria:Aristófanes Corrêa

Leia mais

Introdução à Lógica de Programação

Introdução à Lógica de Programação Introdução à Lógica de Programação Sistemas Numéricos As informações inseridas em um computador são traduzidos em dados, ou seja, em sinais que podem ser manipulados pelo computador. O computador trabalha

Leia mais

Introdução à Lógica de Programação

Introdução à Lógica de Programação Sistemas Operacionais e Introdução à Programação Introdução à Lógica de Programação 1 Estruturas de dados Representação computacional das informações do problema ser resolvido Informações podem ser de

Leia mais

BARRAMENTO DO SISTEMA

BARRAMENTO DO SISTEMA BARRAMENTO DO SISTEMA Memória Principal Processador Barramento local Memória cachê/ ponte Barramento de sistema SCSI FireWire Dispositivo gráfico Controlador de vídeo Rede Local Barramento de alta velocidade

Leia mais

Algoritmos: Lógica para desenvolvimento de programação de computadores. Autor: José Augusto Manzano. Capítulo 1 Abordagem Contextual

Algoritmos: Lógica para desenvolvimento de programação de computadores. Autor: José Augusto Manzano. Capítulo 1 Abordagem Contextual Algoritmos: Lógica para desenvolvimento de programação de computadores Autor: José Augusto Manzano Capítulo 1 Abordagem Contextual 1.1. Definições Básicas Raciocínio lógico depende de vários fatores para

Leia mais

Introdução à Programação

Introdução à Programação Introdução à Programação Introdução a Linguagem C Construções Básicas Programa em C #include int main ( ) { Palavras Reservadas } float celsius ; float farenheit ; celsius = 30; farenheit = 9.0/5

Leia mais

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES Alexandre Egleilton Araújo, Jaime Willian Dias Universidade Paranaense (Unipar) Paranavaí PR Brasil araujo.ale01@gmail.com, jaime@unipar.br Resumo.

Leia mais

Treinamento Sistema Condominium Módulo III

Treinamento Sistema Condominium Módulo III Financeiro (Lançamentos Despesas e Saldos) Nesse módulo iremos apresentar os principais recursos da área contábil do sistema. Contábil> Lançamentos Nessa tela é possível lançar as despesas dos condomínios,

Leia mais

Neste capítulo discutiremos o que é uma DLL, seus aspectos e tipos e ainda, porquê é tão importante para as aplicações Windows

Neste capítulo discutiremos o que é uma DLL, seus aspectos e tipos e ainda, porquê é tão importante para as aplicações Windows DINAMIC LINK LIBRARIES Capítulo 7 Neste capítulo discutiremos o que é uma DLL, seus aspectos e tipos e ainda, porquê é tão importante para as aplicações Windows O QUE É UMA DLL? Dinamic Link Libraries

Leia mais

Introdução a Java. Hélder Nunes

Introdução a Java. Hélder Nunes Introdução a Java Hélder Nunes 2 Exercício de Fixação Os 4 elementos básicos da OO são os objetos, as classes, os atributos e os métodos. A orientação a objetos consiste em considerar os sistemas computacionais

Leia mais

Prática da Disciplina de Sistemas Distribuídos Serviços Web IFMA DAI Professor Mauro Lopes C. Silva

Prática da Disciplina de Sistemas Distribuídos Serviços Web IFMA DAI Professor Mauro Lopes C. Silva 1. O que são Serviços Web (Web Services)? Prática da Disciplina de Sistemas Distribuídos Serviços Web IFMA DAI Professor Mauro Lopes C. Silva A ideia central dos Web Services parte da antiga necessidade

Leia mais

ATRIBUTOS PRIVADOS 6. ENCAPSULAMENTO MÉTODOS PRIVADOS MÉTODOS PRIVADOS

ATRIBUTOS PRIVADOS 6. ENCAPSULAMENTO MÉTODOS PRIVADOS MÉTODOS PRIVADOS ATRIBUTOS PRIVADOS Podemos usar o modificador private, para tornar um atributo privado, obtendo um controle centralizado Definimos métodos para implementar todas as lógicas que utilizam ou modificam o

Leia mais

Aluísio Eustáquio da Silva

Aluísio Eustáquio da Silva 1 Aluísio Eustáquio da Silva SciLab Programável Material didático usado em aulas de Programação de Computadores, Algoritmos e Lógica de Programação Betim Maio de 2012 2 PROGRAMAÇÃO O SciLab permite que

Leia mais

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS) Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS) Definição Geral: Disciplina de Compiladores Prof. Jorge Bidarra (UNIOESTE) A especificação de requisitos tem como objetivo

Leia mais

agility made possible

agility made possible RESUMO DA SOLUÇÃO Utilitário ConfigXpress no CA IdentityMinder a minha solução de gerenciamento de identidades pode se adaptar rapidamente aos requisitos e processos de negócio em constante mudança? agility

Leia mais

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02 ArpPrintServer Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02 1 Sumário INTRODUÇÃO... 3 CARACTERÍSTICAS PRINCIPAIS DO SISTEMA... 3 REQUISITOS DE SISTEMA... 4 INSTALAÇÃO

Leia mais

Tutorial de Matlab Francesco Franco

Tutorial de Matlab Francesco Franco Tutorial de Matlab Francesco Franco Matlab é um pacote de software que facilita a inserção de matrizes e vetores, além de facilitar a manipulação deles. A interface segue uma linguagem que é projetada

Leia mais

Aula 01 - Formatações prontas e condicionais. Aula 01 - Formatações prontas e condicionais. Sumário. Formatar como Tabela

Aula 01 - Formatações prontas e condicionais. Aula 01 - Formatações prontas e condicionais. Sumário. Formatar como Tabela Aula 01 - Formatações prontas e Sumário Formatar como Tabela Formatar como Tabela (cont.) Alterando as formatações aplicadas e adicionando novos itens Removendo a formatação de tabela aplicada Formatação

Leia mais

AULA 4 VISÃO BÁSICA DE CLASSES EM PHP

AULA 4 VISÃO BÁSICA DE CLASSES EM PHP AULA 4 VISÃO BÁSICA DE CLASSES EM PHP Antes de mais nada, vamos conhecer alguns conceitos, que serão importantes para o entendimento mais efetivos dos assuntos que trataremos durante a leitura desta apostila.

Leia mais

Roteiro 2: (Planilhas Eletrônicas) - Função procv / manipulação de formulários

Roteiro 2: (Planilhas Eletrônicas) - Função procv / manipulação de formulários Roteiro 2: (Planilhas Eletrônicas) - Função procv / manipulação de formulários Objetivos Explorar funções de procura e referência; Explorar ferramentas para controle de formulários em planilhas; Importar

Leia mais

Desenvolvendo Websites com PHP

Desenvolvendo Websites com PHP Desenvolvendo Websites com PHP Aprenda a criar Websites dinâmicos e interativos com PHP e bancos de dados Juliano Niederauer 19 Capítulo 1 O que é o PHP? O PHP é uma das linguagens mais utilizadas na Web.

Leia mais

Manual de Integração

Manual de Integração Manual de Integração Versão 3.10 Conteúdo 1 Obtendo e Instalando o Emissor... 4 1.1 Obtendo o instalador... 4 1.2 Instalando o JAVA e o Framework.NET 2.0... 4 1.3 Instalando o Emissor... 5 2 Padrões de

Leia mais

Manual do Ambiente Moodle para Professores

Manual do Ambiente Moodle para Professores UNIVERSIDADE FEDERAL DA FRONTEIRA SUL Manual do Ambiente Moodle para Professores Tarefas Versão 1.0b Setembro/2011 Direitos Autorais: Essa apostila está licenciada sob uma Licença Creative Commons 3.0

Leia mais