Você está na página 1de 241

•■

Aplicações
Aplicações EE Eis.
Porto
� Editora

1Inf
nformáticas
ormáticas B
B S⸀踀⸀贀 ORI䜀䤀氀言
L℀Ⰰ

Aplicações
Aplicações Informáticas
Informáticas B
B 12.º
12.º ano
ano OIGANAO
Dalila Fonseca I| Deolinda
Dalila Fonseca Pacheco I| Fernando
Deolinda Pacheco Marques I| Ricardo
Femando Marques Ricardo Soares
Soares
À
贀蠀 .言렀⸀⸀
CÓPIA
蘀蠀
A cópia ilegal viola
os direitos dos auto爀攀s.
Os p爀攀judicados somos
todos nós.
A disciplina de Aplicações Informáticas B do 12.º ano possibilita ao
aluno adquirir e consolidar conhecimentos e competências em áreas
como a programação, a interatividade e o multimédia, sendo estas uma
mais-valia, pois permitem abranger temas atuais em áreas específicas
com aplicação quotidiana.

A elaboração deste manual obedeceu às linhas de orientação do


Programa da disciplina, tendo sido preocupação que a abordagem dos
conteúdos nas várias unidades obedecesse, sempre que possível, à
vertente prática que as caracteriza.

Ao longo de cada unidade apresenta-se um conjunto de exercícios de


aplicação relacionados com os conteúdos abordados, para consolidação
dos conhecimentos e das competências adquiridos.

Para si, que escolheu esta opção...

Bom trabalho!

Os autores
Db
UNIDADE UNIDADE

Introdução 95
1.1. Linguagens naturais e linguagens formais
Do GUI aos ambientes imersivos 96
1.2. Algoritmos e pseudocódigo
1.1. Evolução histórica da interface
Conceitos fundamentais 13
Homem-mágquina 96
1.2. Os ambientes gráficos atuais, ergonomia
2.1. Introdução 13
e sentidos 97
2.2. Dados e tipos de dados 16
2.3. Variáveis e constantes 17 Realidade virtual 98
2.4. Instrução de atribuição 18 2.1. Conceito 98
2.5. Instruções de entrada e de saída 18 2.2. Simulação da realidade 98
2.6. Operadores e expressões 20 2.3. Realidade imersiva e não imersiva 99
2.6.1. Operadores aritméticos 20
2.6.2. Operadores relacionais 20 Interatividade 102
2.6.3. Operadores lógicos 21 3.1. Conceito 102
2.6.4. Prioridade dos operadores 22
3.2. Características ou componentes 102

Teste e controlo de erros em algoritmia 23 3.3. Níveis segundo a relação Homem-máquina 102
3.4. Níveis segundo a ação sensorial 103
Estruturas de controlo 24 3.5. Tipos de interatividade 104
4.1. Estrutura sequencial 24
4.2. Estrutura de decisão ou seleção 26 Como avaliar soluções interativas 104
4.2.1. Estrutura de seleção simples 26
O desenho de soluções interativas 105
4.2.2. Estrutura de seleção composta 28
4.2.3. Estrutura de seleção encadeada 30
4.2.4. Estrutura de seleção múltipla 33
4.3. Estruturas de repetição ou ciclos 35
UNIDADE
4.3.1. Ciclo For [Para] 35
109
4.3.2. Ciclo While (Enquanto) 38
4.3.3. Ciclo Repeat (Repetir) 40
Conceito de multimédia 110
Arrays 43
Tipos de media 111
5.1. Vetores 43
2.1. Quanto à sua natureza espaciotemporal 111
5.1.1. Operações com vetores 44
2.1.1. Estáticos 111
5.1.2. Algoritmos de ordenação 46
2.1.2. Dinâmicos 111
5.1.3. Algoritmos de pesquisa 50
2.2. Quanto à sua origem 112
5.2. Matrizes 53
2.2.1. Capturados 112
5.2.1. Operações básicas com matrizes 54
2.2.2, Sintetizados 112

Cadeia de caracteres (string) 56


Modos de divulgação de conteúdos
Sub-rotinas 61
multimédia 112
3.1. Online 112
7.1. Funções 62
3.2. Offline 113
7.2. Procedimentos 62
7.3. Variáveis locais e variáveis globais 63 Linearidade e não linearidade 113
7.4. Passagem de argumentos 65
Tipos de produtos multimédia 113
Introdução à programação 5.1. Baseados em páginas 113
orientada aos eventos 68
5.2. Baseados no tempo 113
8.1. Noção de evento no contexto
da programação 68 Tecnologias multimédia 114
8.2. Comparação entre a programação 6.1. Representação digital 114
orientada ao fluxo e a orientada aos eventos 6.1.1. Amostragem 115
8.3. Uso de uma linguagem orientada a eventos 68 6.1.2. Quantização 115
8.3.1. Controlos 70 6.1.3. Codificação 115
8.3.2. Formulários 72 6.2. Recursos necessários 117
8.3.3. Tipos de dados e operadores 77 6.2.1. Hardware 117
8.3.4. Funções predefinidas 80
8.3.5. Estruturas de controlo 83
8.3.6. Sub-rotinas 90
UNIDADE

129 Formatação de texto 182


3.1. Conjuntos de caracteres 182
Bases sobre a teoria da cor aplicada 3.1.1. ASCII 182
aos sistemas digitais 130 3.1.2. Unicode 182
1.1. Modelos aditivo e subtrativo 131 3.1.3. EBCDIC 183
1.2. Modelo RGB 132 3.2. Fontes 183
1.2.1. Caracterização do modelo 132 3.2.1. Características das fontes 183
1.2.2. Aplicações 133 3.2.2. Fontes bitmapped 183
1.2.3. Resolução e tamanho 133 3.2.3. Fontes escaladas
1.2.4. Profundidade de cor 134 (Type 1, TrueType e OpenType] 184
1.2.5. Indexação de cor 134 3.2.4. Uso de um gestor de fontes 185
1.2.6. Paleta de cores 135 3.2.5. Uso racional de fontes 185
1.2.7. Complementaridade de cores 136
1.3. Modelo CMYK 136 Aquisição e reprodução de som 187
1.3.1. Caracterização do modelo 136 4.1. Formatos de ficheiros 188
1.3.2. Aplicações 137 4.1.1. Não comprimidos 188
1.4. Modelo HSV 137 4.1.2. Comprimidos 189
1.4.1. Caracterização do modelo 137 4.2. Software 192
1.4.2. Aplicações 138
1.5. Modelo YUV 138 Aquisição, síntese, edição e reprodução
1.5.1. Caracterização do modelo 138 de vídeo 196
1.5.2. Aplicações 139 5.1. Standards 196
1.6. Cores em HTML 139 5.1.1. Analógicos 196
5.1.2. Digitais 197
Geração e captura de imagem 142
5.2. Compressão 198
2.1. Formatos de ficheiros de imagem 142 5.2.1. Necessidade da compressão 198
2.1.1. Formatos mais comuns 142 5.2.2. Codecs 198
2.1.2. Tipos de formatos para imagens
5.3. Software 200
bitmap 142
2.1.3. Tipos de formatos para imagens Animação 2D - Técnicas de animação
vetoriais 144 em computador 204
2.2. Gráficos vetoriais 145 6.1.Captura e geração de sequências
2.2.1. Noções e características 145 de imagens 204
2.2.2. Uso de um programa de desenho 6.2. Layers 205
- Inkscape 146 6.3. Sprites 206
2.3. Gráficos bitmapped 159 6.4. Animação em Flash 206
2.3.1. Noções e características 159
6.5. GIF animados 208
2.3.2. Uso de um programa de pintura
- GIMP 159
6.6. Uso de um programa de animação - Synfig 210

2.4. Compressão de imagens 175


Divulgação de vídeos e som via rede 233
2.5. Retoques de imagem 175
7.1. Métodos 233
2.5.1. Alteração dos atributos da imagem 175
7.1.1. Streaming 233
2.5.2. Adequação dos atributos da imagem
7.1.2. Download
ao tipo de documento 180
7.1.3. Download progressivo 235
2.6. Captura de imagens 181
7.2. Recursos necessários 235
2.6.1. Por scanner 181
7.3. Codecs específicos 236
2.6.2. Por máquina fotográfica digital 181
7.4. Produção 237
7.5. Uso de software servidor e cliente 238

Bibliografia 240
Introducão
à Programação
Jogo
1. Introdução

1.1. Linguagens naturais e linguagens formais


Em primeiro lugar, pode-se definir uma linguagem como sendo uma forma de comuni-

LIONPA ONO] O TIAIV


cação, que utiliza símbolos e determinadas regras para os combinar.

Dentro deste contexto, encontram-se as linguagens naturais e as formais.

A linguagem natural é a linguagem falada ou escrita como, por exemplo, o português.


As linguagens naturais não foram projetadas pelas pessoas.

São passíveis de várias interpretações e sofrem transformações naturais ao longo do


tempo.

Os termos e as regras sintáticas e semânticas utilizados surgem depois e têm como


objetivo a sistematização e a organização da linguagem.

A sintaxe da linguagem estuda os processos que geram ou combinam as frases, espe-


cificando a sua estrutura interna e funcionamento, enquanto a semântica se ocupa do
significado dos vários componentes dessa linguagem (quadro 1.1).

Quadro 1.1

Linguagem Associação de formas com significado.

Sintaxe Especificação da combinação das formas.

Semântica Especificação dos significados.

Ao contrário das linguagens naturais, as linguagens formais são previamente projeta-


das para determinados fins. A linguagem formal é delineada de modo a evitar equívocos
na utilização dos termos como, por exemplo, a Matemática e as linguagens de programa-
ção de computadores. Ao contrário das linguagens naturais, as formais são desenvolvi-
das de forma a evitar a ambiguidade e a redundância. Numa linguagem formal, os termos
e as regras sintáticas e semânticas são previamente estabelecidos antes da linguagem
ser usada (quadro 1.2).

Quadro 1.2

Não projetada pelas pessoas.


Linguagem natural , no -
sea Passível de várias interpretações.

Previamente projetada para determinados fins.


ROS o Evita ambiguidades e redundância.

Um programa de computadores é constituído por uma sucessão de instruções que


permitem especificar ao processador da máquina as ações consecutivas a executar sobre
um conjunto de dados. Normalmente, estes programas são escritos, isto é, codificados,
com recurso às linguagens de programação. Estas são projetadas para aproximá-las à
linguagem humana, isto porque as linguagens-máquina apenas manipulam dados biná-
rios, isto é, uma sucessão dos valores lógicos O e 1.
1. Introdução 9

As linguagens de programação apresentam um método normalizado para a elaboração


das instruções dos programas de computadores, fazendo uso do conjunto de regras sintáti- Jogo
cas e semânticas da linguagem em causa.

Assim, as linguagens de programação, entendidas pelos computadores, são linguagens


construídas, isto é, do tipo formal (quadro 1.3).

Quadro 1.3

Linguagem Sistema de escrita formal, constituído por um conjunto de regras para a


de programação escrita de programas de computador.

Programa (código) Conjunto de instruções numa linguagem de programação.

Instrução Especificação ao processador da ação a executar.

Existem milhares de linguagens de programação.

O quadro 1.4 apresenta uma classificação das gerações, e alguns exemplos, em fun-
ção das características de evolução das linguagens de programação.

A primeira geração corresponde às linguagens de mais baixo nível, a linguagem-má-


quina, enquanto as de nível superior se aproximam da compreensão dos seres humanos.

Mas cada instrução destas últimas equivale a várias instruções da linguagem-máquina.

Quadro 1.4

Nível Geração Descrição Exemplo

1a Linguagem diretamente executável pelo processador do Linguagem-máquina


, computador. Usa apenas os valores De 1. ou binária.

Baixo Linguagem de baixo nível que utiliza uma notação simbólica


2a compreensível pelo ser humano com uma correspondência Linguagem Assembly
, direta com o código de uma determinada máquina. Necessita ,
de um assembler para traduzi-la em linguagem-máquina.
Primeiras linguagens de alto nível projetadas para serem Fortran, ALGOL,
3a facilmente entendidas e escritas pelo ser humano. À partir COBOL, BASIC, Visual
, desta geração as linguagens necessitam de compiladores ou Basic, C, C++, CH,
interpretadores para as traduzir para a linguagem-máquina. Pascale Java.

Linguagens capazes de gerarem código por si sós. A principal


diferença entre as linguagens de 3.3 e 4.2 geração é que as
primeiras descrevem passo a passo como fazer algo, MATLAB SQL
4a enquanto as últimas especificam o que deve ser feito, estando Clipper. DBase
Alto mais voltadas para o resultado final. Desta forma, as ' ,
linguagens de 4.º geração dispensam o conhecimento
profundo das funções de programação.
Linguagens “inteligentes”, ainda pouco desenvolvidas, que
tendem a uma maior aproximação entre a linguagem natural
e a linguagem de programação.
AIB12 O Porto Editora

5.2 Os utilizadores passariam a comunicar na sua linguagem LISP, Prolog.


nativa, não necessitando de seguir a sintaxe do programa.
A linguagem deduz, infere e tira conclusões, apoiando-se na
informação contida em bases de conhecimento.
10 Introdução à Programação

LIONPT ONO O TIQIV


Exercício Exercícios de aplicação 1
1. Selecione a opção correta nas seguintes questões.
1.1. Qual é a diferença entre uma linguagem natural e uma linguagem formal?
(A) As linguagens naturais podem ser projetadas pelas pessoas, enquanto as linguagens
formais não.
(B) A ambiguidade e a redundância são características das linguagens naturais.
(C) Não existem diferenças entre as linguagens naturais e formais.
(D) A estrutura, a sintaxe e a semântica das linguagens naturais são previamente
estabelecidas.
1.2. Qual é a diferença entre uma linguagem de programação de alto nível e uma linguagem de
programação de baixo nível?
(A) É de alto nível quando se aproxima da linguagem-máquina e é de baixo nível quando se
aproxima da compreensão dos seres humanos.
(B)] É de alto nível quando se afasta da linguagem natural e é de baixo nível quando se
aproxima desta.
(C) É de alto nível quando se aproxima da compreensão dos seres humanos e é de baixo nível
quando se aproxima da linguagem-máguina.
(D) Ambas as linguagens são diretamente executáveis pelo processador do computador.

1.2. Algoritmos e pseudocódigo


Uma linguagem de programação tem como objetivo expressar um processo que, com o
auxílio de um computador, tende a resolver um problema. Para resolver o problema é pre-
ciso criar um programa numa linguagem escolhida. No entanto, para efetuar a passagem
do problema para o programa, convém elaborar um algoritmo que possibilite a compreen-
são e a descrição do problema e que seja de fácil conversão para qualquer linguagem de
programação. Sendo assim, um algoritmo é uma sequência finita de instruções descritas
de forma lógica, ordenada, clara e precisa a fim de resolver o problema (quadro 1.5).

Quadro 1.5

Problema O que se pretende resolver.

“Y
Algori Sequência finita de instruções descritas de forma lógica, ordenada,
goritmo clara e precisa a fim de resolver o problema.
wW
Programa Algoritmo codificado numa linguagem de programação.

Um algoritmo pode ser escrito com o auxílio de uma linguagem natural, utilizando expres-
sões precisas. Mas existem outros modos de especificação, nomeadamente o fluxograma
e o pseudocódigo. No primeiro caso, utiliza-se uma representação gráfica e, no segundo
Exclusivo caso, uma representação textual (português estruturado).
do Professor
Os fluxogramas utilizam símbolos gráficos para representar o fluxo das ações necessá-
rias para resolver um problema, tal como está apresentado no quadro 1.6.

Solução
1. Introdução 1

Quadro 1.6

Jogo
Simbolo . ) / / < > () -

Início ou Entrada a
a , Processo/ | Decisão/ - Linha
Descrição | fim do ou saída - - Conexão Sub-rotina
. Operação Comparação de fluxo
algoritmo de dados

Os pseudocódigos utilizam uma representação textual (narrativa) constituída por pala-


vras da linguagem natural e pela sintaxe característica das linguagens de programação
estruturada. Não existe uma notação standard do pseudocódigo, mas o quadro 1.7 apre-
senta alguns elementos presentes numa linguagem de programação estruturada e que
servem de base também às notações do pseudocódigo.

Quadro 1.7

Estrutura Elemento

Variáveis
Dados
Constantes

Numéricos, lógicos, caracteres, cadeia de caracteres


Tipos de dados
Estruturados (array, record, string, set, file)

Aritméticos
Relacionais
Operadores
Lógicos
De cadeia de caracteres

Atribuição
Instruções básicas De entrada
De saída

Sequencial
Estruturas de controlo Decisão ou seleção
Repetição ou de ciclos

A utilização de um fluxograma torna-se mais difícil de concretizar no caso de programas


extensos. Nestes casos, a utilização do pseudocódigo torna-se mais prática para estrutu-
rar o raciocínio no desenvolvimento de um programa e para convertê-lo mais facilmente
para uma linguagem de programação.

Para construir um algoritmo é necessário:


1 — Compreender o problema (o que se pretende).
2 — Identificar os dados de entrada (os dados fornecidos e a sua situação inicial).
3 — Identificar os dados de saída (os dados resultantes do processamento).
4 — Identificar as operações de processamento (os cálculos e as restrições para a ob-
tenção dos dados de saída a partir dos dados de entrada).
5 — Elaborar o algoritmo, definindo:
AIB12 O Porto Editora

º as variáveis necessárias para armazenar as entradas e efetuar o processamento;


e as instruções necessárias.
6 — Testar o algoritmo.
Introdução à Programação

Numa abordagem estruturada, os programas podem ser divididos em duas partes: na

LIONPT ONO O TIQIV


Exercício primeira, declaram-se, por exemplo, os dados e as variáveis e, na segunda, definem-se as
instruções que concretizam as operações necessárias para atingir os objetivos. A soma
de dois números é exemplificada no quadro 1.8 com a apresentação das diferentes for-
mas de descrever a resolução do problema, tendo em vista a elaboração de um programa
de computador. Neste exemplo, e nas situações que se seguem, os programas são apre-
sentados na linguagem de programação Pascal.

Quadro 1.8

Código em
. ap linguagem de
Linguagem natural Fluxograma Pseudocódigo guagem €
programação
Pascal

1. Início. Algoritmo soma; Program soma;


2. Ler dois valores a
, Variáveis a, b, Var a, b, c:
reais (a, b).
. y c: real; real;
3. Efetuar o cálculo da
soma dos dois valores Início Begin
reais (c = a + Db). Ler (a, b); Readln
4. Escrever o resultado cea+db; (a, Db);
da soma (c). Escrever (c); c: = a+b;
5. Fim. Fim. write (c);
End.

Fim

Exercícios de aplicação 2
1. Selecione a opção correta nas seguintes questões.
1.1. Defina o conceito de algoritmo.
(A) É um conjunto de instruções escritas com a ajuda de uma linguagem natural, mas que
não necessita de expressões precisas.
(B) É uma sequência de instruções que devem ser exatamente seguidas passo a passo para
resolver um determinado problema.
(C) É um conjunto de instruções codificadas numa linguagem de programação.
(D) É um conjunto de instruções que são descritas aleatoriamente para compreender um
determinado problema.
1.2. Complete a seguinte afirmação: “O [::) é uma escrita informal, de alto nível, de
um algoritmo que apresenta alguns elementos de uma Linguagem de programação
estruturada, destinando-se à compreensão humana.”
(A) Pseudocódigo
(B) Algoritmo
(C) Fluxograma
(D) Programa
1.3. Defina o conceito de fluxograma.
(A) É uma linguagem de programação formal.
Exclusivo (B) É uma linguagem de programação natural.
do Professor (C) E uma representação textual de um algoritmo.
(D) É uma representação gráfica de um algoritmo.

Solução
2. Conceitos fundamentais

Exercícios de aplicação 2 (cont.)


2. Crie um algoritmo em linguagem natural que apresente as etapas necessárias para concretizar as
seguintes atividades do dia a dia.
(A) Efetuar um levantamento de dinheiro no multibanco.
(B) Efetuar a mudança de um pneu.

3. Crie um algoritmo em linguagem natural com as etapas necessárias para a criação de um


programa que efetue a leitura do seu primeiro nome e da sua idade e mostre estes dados de acordo
com o apresentado no seguinte exemplo:
“O João tem 17 anos”.

4. Apresente o algoritmo do exercício anterior sob a forma de pseudocódigo e fluxograma.

5. Apresente sob a forma de fluxograma o pseudocódigo seguinte:

Algoritmo troca valores;


Variáveis a, b, c: lógico;
Início
true;
yo

false;
ooo

a;
b;
O

< C;

Escrever (a, b);


Fim.

6. Crie um algoritmo em linguagem natural com as etapas necessárias para a criação de um


programa que efetue a leitura de um número inteiro e apresente os dois números inteiros
seguintes de valor superior.

7. Apresente o algoritmo do exercício anterior sob a forma de pseudocódigo e fluxograma.

2. Conceitos fundamentais

2.1. Introdução
O computador é uma máquina constituída por hardware e software, que tem a capaci-
dade de receber, armazenar e fornecer dados, depois de processados, de forma automá-
tica, rápida e precisa (quadro 2.1).

Quadro 2.1
AIB12 O Porto Editora

Hardware Conjunto de componentes físicos. .


Exclusivo
do Professor
Software Conjunto de instruções (programas) que fazem funcionar o hardware. E

Solução
O trabalho realizado por um computador é baseado em operações que envolvem os

BIONPA OO] O TIAIV


seguintes componentes físicos (fig. 2.1):

* o processador (CPU — Central Processing Unit) que manipula os dados e utiliza as


instruções, ambos armazenados na memória principal;

º a memória principal, como a RAM, que armazena os dados e as instruções de um


programa;

e as entradas e as saídas que controlam e executam as operações de leitura e de


escrita da informação através dos periféricos que englobam os dispositivos:
— auxiliares de armazenamento de software e dados como, por exemplo, as unida-
des de disco;
— de saída como, por exemplo, a impressora e o monitor;
— de entrada como, por exemplo, o rato e o teclado.

Utilizador

2
= Aplicação
|
Editor
I
Q Código fonte

Compilador
i
Código objeto

o Sistema . | Entradas/Saídas
o> ;
operativo Linker : :
Livrarias externas

8 Código executável

Loader

Código máquina

o . E
S Disco Processador RAM Entrada/Saída
eMv
T
Barramento do sistema

Fig. 2.1. Esquema representativo da interligação do hardware com o software e as diferentes etapas de desenvolvimento
de um programa em Pascal.

O funcionamento e a gestão dos diferentes componentes do hardware de um compu-


tador, assim como a gestão dos processos (programas) em execução, dependem do sis-
tema operativo. Este consegue, assim, estabelecer a ligação entre o hardware e as ope-
rações desencadeadas ao nível do software de aplicação.

Quando se programa em linguagem Pascal, diferentes etapas têm de ser percorridas


desde a sua criação até à sua execução. Como é uma linguagem de alto nível, é necessá-
rio utilizar um software de aplicação para a sua criação e, depois, com ajuda do sistema
operativo e outros programas, transformar o código criado pelo programador por outro,
que seja executável pelo computador.
2. Conceitos fundamentais

A figura 2.1 ilustra, de uma forma simplificada, um esquema sequencial do desenvolvi-


mento de um programa em Pascal num computador e o quadro 2.2 resume as diferentes Exercício
etapas desse desenvolvimento.

Quadro 2.2

Tipo de
Tipo de Tipo de
ficheiro Descrição do processo
software programa
de código

O editor é um programa que permite criar e modificar o


Aplicação Editor Fonte texto do ficheiro que contém as instruções do programa.
Este ficheiro, guardado em disco, contém o código fonte.

O compilador recebe o código fonte e vai criar um


ficheiro, guardado em disco, que contém o código objeto.
Este código resulta da análise lexical, sintática e
semântica feita ao código fonte, otimizando-o e gerando
Compilador Objeto
um código intermédio antes do executável. Este código
intermédio encontra-se já codificado em binário, mas
pode apresentar algumas faltas, como, por exemplo, a
junção a certos módulos externos.

O linker tem a função de juntar ao código objeto os vários


módulos em falta constituintes do código fonte, criando,
Sistema e guardando em disco um único ficheiro completo de
operativo código executável. Geralmente, estes módulos fazem
Linker Executável referência a funções do sistema operativo, como, por
exemplo, operações que envolvem a entrada ou saída de
dados, através do teclado ou do monitor, ou a
subprogramas que controlam operações mais
complexas. Estas últimas são denominadas livrarias.

O loader tem como função carregar na memória


principal o anterior código binário executável. Este
Loader Máquina código é muitas vezes denominado código máquina, por
estar codificado num formato associado a um
determinado processador que vai executar o programa.

Depois dos conceitos introdutórios anteriores, convém perceber a estrutura de escrita


do ficheiro do código fonte de um programa em linguagem Pascal. Todo o programa é ins-
crito dentro de um bloco principal. Observando a figura 2.2, fazem parte do bloco principal
do programa:

* o cabeçalho do programa, onde é indicado o nome do programa;

e a parte declarativa de variáveis, bibliotecas, procedimentos e funções, entre outros


AIB12 O Porto Editora

elementos;

e a parte operativa, onde se escrevem as instruções e os comandos necessários para


a execução do programa.
LIONPT ONO O TIQIV
Bloco principal do programa

Cabeçalho do programa Program soma;

Parte declarativa
Uses
Label
Const
Var a, b, c: real;
Type
Var
Procedure
Function

: Begin
Parte operativa
. Readin (a, b);
Begin
c := a+b;
(Instruções e comandos) Write (c)
rite (c);
End.
End.

Fig. 2.2. Esquema representativo da estrutura de escrita de um programa em Pascal.

A figura 2.2 mostra, também, o paralelismo existente entre a sintaxe do exemplo apre-
sentado no quadro 1.8 e a estrutura de blocos de um programa em linguagem Pascal.
Neste exemplo, o programa começa com as palavras Program e o nome dado ao pro-
grama. Desta forma, inicia-se o bloco principal do programa. De seguida, são declaradas
as variáveis com a palavra Var. Por fim, inicia-se a parte operativa do programa com a
palavra Begin, a partir da qual são escritas as instruções e os comandos a executar. Este
bloco termina sempre com a palavra End seguida de um ponto final (.). Em Pascal, utiliza-
-se O ponto e vírgula (;) no fim da maior parte das instruções.

2.2. Dados e tipos de dados


Podemos definir dados como sendo elementos sobre os quais serão efetuadas opera-
ções. Estes, de acordo com a sua natureza, podem estar associados a diferentes tipos.

Um determinado tipo de dados está associado a um conjunto de valores, que definem


o formato específico dos elementos desse tipo. Os quadros seguintes apresentam os
tipos de dado numérico (quadro 2.3), lógico (quadro 2.4), carácter (quadro 2.5), cadeia de
caracteres (quadro 2.6) e estruturado (quadro 2.7) — mais utilizados na linguagem de pro-
gramação Pascal.

Quadro 2.3

Tipo de dado numérico Bytes ocupados Intervalo de valores

Integer (inteiro) 2 -32 7682 32 767


Longint (inteiro longo] 4 | -2 147 483 64822 147 483 647

| Shortint inteiro curto) | -128 a 127


Byte (inteiro) 1 0 a 255

29x 10? a 1,7 x 10º [valores positivos)


Real (real) 6 (os valores negativos têm aproximadamente o
mesmo intervalo)
2. Conceitos fundamentais 17

Quadro 2.4

Jogo
Tipo de dado lógico Bytes ocupados Valores

Boolean (booleano] 1 True ou False (Verdadeiro ou Falso)

Quadro 2.5

Tipo de dado carácter Bytes ocupados Valores

Char (carácter] 1 Qualquer elemento da tabela ASCII

Quadro 2.6

Tipo de dado cadeia de caracteres Valores

String (texto) Até 255 elementos da tabela ASCII

Quadro 2.7

Tipo de dado estruturado Descrição

Tipo de dado estruturado que é identificado por um único nome.


Array (vetor)
A sua estrutura é definida por vários elementos do mesmo tipo.

Tipo de dado estruturado constituído por um conjunto de dados


Record (registo)
“logicamente relacionados”, podendo, estes, ser de tipos diferentes.

Tipo de dado estruturado constituído por um conjunto de dados


Set [conjunto]
semelhantes interrelacionados.

Tipo de dado estruturado formado por elementos do mesmo tipo de


File (ficheiro) dados ou diferente. O file é um tipo de dado que é armazenado em
disco.

2.3. Variáveis e constantes


As variáveis são identificadores para designar valores que podem variar ao longo da
execução do programa. Em Pascal, as variáveis têm de ser declaradas na parte declara-
tiva dos programas, sendo precedidas pela palavra Var. Associado a cada uma das variá-
veis é reservado um espaço em memória de acordo com o seu tipo de dados.

O nome de uma variável ou identificador, aquando da sua construção, tem de obedecer


às seguintes regras:
e não deve ser o nome de uma palavra reservada do Pascal, como, por exemplo,
begin, end, var, program, write, read, const, function, entre outras;

pode ser constituído por um ou mais caracteres;


AIB12 O Porto Editora

não deve possuir espaços em branco;

º O primeiro carácter deve ser sempre uma letra;

e não deve possuir os caracteres especiais () *& HS EDI+-=/P><.

AIB12 FOZ
Introdução à Programação

O quadro 2.8 apresenta a sintaxe e os respetivos exemplos de declaração de variáveis.

LIONPT ONO O TIQIV


Jogo
Quadro 2.8

Sintaxe Var <idl, id2, ...>:<Tipo de dado>;

Var peso, altura: real;


Exemplo soma: integer;
nome 1: string;

As constantes são identificadores para designar valores que não variam ao longo da
execução do programa. As constantes são, também, declaradas na parte declarativa,
mas precedidas pela palavra Const. Tal como numa variável, para uma constante é reser-
vado um espaço em memória de acordo com o dado que lhe foi atribuído.

O quadro 2.9 apresenta a sintaxe e os respetivos exemplos de declaração de constantes.

Quadro 2.9

Sintaxe Const <id>=<valor>;

Const PI = 3.1415926;
Exemplo o

2.4. Instrução de atribuição


Uma instrução de atribuição tem por finalidade associar um determinado valor a uma
variável. Em Pascal, para implementar esta operação, utiliza-se o sinal :=, que é o opera-
dor de atribuição.

O quadro 2.10 apresenta a sintaxe e os respetivos exemplos de atribuição de valores


a variáveis.
Quadro 2.10

Sintaxe <id>:=<valor>;

quantidade:=10;
Exemplo preco:=5;
a:=a+l;

2.5. Instruções de entrada e de saída


As instruções de entrada servem para ler dados exteriores ao programa (input), que são
armazenados em variáveis. Em Pascal, para a leitura de dados utilizam-se as instruções
Read ou Readln. A instrução read difere da instrução readin porque a segunda obriga a fazer
uma mudança de linha após a sua execução. O quadro 2.11 apresenta a sintaxe e os res-
petivos exemplos de entrada de dados.
Quadro 2.11

Sintaxe Ler (<id>);

Exemplo read (valor);


Pp readin (a, b);
2. Conceitos fundamentais

As instruções de saída servem para escrever dados para o exterior do programa


(output). Em Pascal, para a escrita de dados utilizam-se as instruções Write ou Writeln. Exercício
A instrução write difere da instrução writeln porque a segunda obriga a fazer uma mudança de
linha após a sua execução. O quadro 2.12 apresenta a sintaxe e os respetivos exemplos de
saída de dados.
Quadro 2.12

Sintaxe Escrever (<id>);

Exemol write (valor);


empto writeln (a, Db);

Exercícios de aplicação 3
1. Defina o conceito de programa de computador, selecionando a opção correta.
(A) É uma sequência de instruções codificadas numa linguagem de programação.
[B) É uma representação gráfica de um algoritmo.
[C) É um conjunto de operações executadas numa linguagem de programação.
[D) É uma representação de um algoritmo numa linguagem natural.

2. Identifique o tipo de ficheiro de código associado a cada uma das seguintes afirmações.

Afirmação Tipo de ficheiro


de código

São as instruções de um programa guardadas num ficheiro. a)

Código gerado pelo compilador. b)

Código ao qual podem ser adicionados módulos de Livrarias c)


externas do sistema operativo.

Código executado diretamente pelo processador. d)

3. Classifique de verdadeira ou falsa as seguintes afirmações.


(A) As variáveis e as constantes são identificadores que servem para guardar valores que se
alteram ao longo da execução do programa.
(B) Otipo de dados está associado a um conjunto de valores e condicionam o conjunto de
operações que podem ser aplicadas sobre esses valores.
(C) As palavras-chave ou reservadas podem ser usadas como nomes de identificadores.
(D) Os dados do tipo Integer são armazenados ocupando em memória 2 bytes.
(E) As strings são identificadas por plicas.

4. Indique a que tipo de dados corresponde cada um dos seguintes valores.


a) —19
b) “25 de abril de 1974”
c) “-500”
AIB12 O Porto Editora

d) 3.05 x 10º
Exclusivo
do Professor
f)
a 136
ue

Solução
20 Introdução à Programação

Jogo
2.6. Operadores e expressões
Os operadores são elementos matemáticos que atuam sobre os operandos (variáveis

PIONPT ONO O TIQIV


e constantes), numa determinada expressão.

As expressões, por sua vez, são uma combinação de operandos e operadores e que,
uma vez resolvidas, resultam num determinado valor.

2.6.1. Operadores aritméticos

Os operadores aritméticos permitem a realização de operações matemáticas com valo-


res do tipo numérico, cujo resultado é ainda um valor do tipo numérico.

O quadro 2.13 apresenta os operadores aritméticos utilizados na linguagem Pascal,


com os respetivos exemplos.

A coluna Resultado apresenta o resultado das operações da coluna Exemplo, utilizando


os valores dos cálculos anteriores.

Quadro 2.13

Operador Operação Exemplo Resultado

+ Adição ai=5+3; a=s8

— Subtração bi:i=a-a4; b=4

* Multiplicação ci:i=brta; CNS?

/ Divisão ARC RT; n = 16

DIV Divisão Inteira |y «= 15 DIV 2; [25]


(quociente
Co
da divisão inteira de 15 por 2)

MOD Módulo 2 := 15 MOD 2; “| [251


(resto da divisão inteira de 15 por 2)

Os operadores DIV e MOD só podem ser aplicados a valores do tipo inteiro, resultando
valores, também, do tipo inteiro.

Por outro lado, o operador/ conduz sempre a um resultado real, seja qual for o tipo dos
seus operandos.

Finalmente, com os operadores +, - e *, se um dos operandos for do tipo real, então o


resultado será, também, do tipo real.

2.6.2. Operadores relacionais

Os operadores relacionais são usados para efetuar comparações entre expressões, re-
sultando sempre um dos valores lógicos, true (verdadeiro) ou false (falso).

O quadro 2.14 apresenta os operadores relacionais utilizados na linguagem Pascal, com


os respetivos exemplos.

A coluna Resultado apresenta o resultado das operações da coluna Exemplo, conside-


rando que às variáveis a e b são atribuídos os valores 13 e 5, respetivamente.
2. Conceitos fundamentais

Quadro 2.14

Exemplo
Operador | Operação (considerando que Resultado
a=13eb=5)

= iguala a=b False

<> diferente de a <> b True

< menor que a<hb False

> maior que a>b True

<= menor ou iguala a<=b False

>= maior ou iguala a >= Db True

2.6.3. Operadores lógicos


Os operadores lógicos realizam operações lógicas, devolvendo sempre um dos valores
lógicos, true ou false.
O quadro 2.15 apresenta os operadores lógicos utilizados na linguagem Pascal com os
respetivos exemplos.

A coluna Resultado apresenta o resultado das operações da coluna Exemplo, conside-


rando que às variáveis a, b e c são atribuídos os valores 13, 5 e 2, respetivamente.

Os resultados apresentados no quadro 2.15 têm por base os valores das tabelas de ver-
dade de cada operador lógico, apresentadas no quadro 2.16.

Quadro 2.15

Exemplo
Operador Operação (considerando que Resultado
a=13,b=5ec=2)

Não
NoT - NOT (a > b) False
(negação)

E
AND . . (a > b) AND (b > c) True
(conjunção)

Ou
OR e . (a <b) OR (c > a) False
ATB12 O Porto Editora

(disjunção inclusiva]

XOR Disjunção exclusiva (c>a) XOR (b>c) A


(Ou exclusivo)
Introdução
à Programação

Quadro 2.16

LIONPT ONO O TIQIV


Jogo
Operador a b Resultado

True - False
NoT
False - True

True True True

True False False


AND
False True False

False False False

True True True

True False True


OR
False True True

False False False

True True False

True False True


XOR t +
False True True

False False False

2.6.4. Prioridade dos operadores

Em expressões com vários operadores matemáticos, é necessário conhecer as regras


de prioridade para obter os resultados corretos. O quadro 2.17 apresenta a ordem de
prioridade utilizada na linguagem Pascal, que deve ser seguida na implementação de um
programa, tendo em vista a correta resolução de um determinado problema.
Quadro 2.17

Prioridade Operador

1.3 NOT

2.2 *, /, DIV, MOD, AND

3.a +, —, OR, XOR

Zaa =, <>, «<, <=, >=, >

O quadro 2.18 exemplifica a aplicação da ordem de prioridade dos operadores na reso-


lução de uma expressão, que faz uso de parêntesis. De referir que, tal como na matemá-
tica, o uso de parêntesis nas expressões dá prioridade às operações que se encontram
dentro destes relativamente a outras que se encontram fora dos parêntesis.
Quadro 2.18

| NOT ((6 >= 3) AND (5 <> 6)) OR (10 * 2 > 22)


|
NOT (TRUE AND TRUE) OR FALSE
|
NOT (TRUE) OR FALSE |

FALSE OR FALSE
|
FALSE |
3. Teste e controlo de erros em algoritmia

Exercícios de aplicação 4 Exercício


1. Classifique de verdadeira ou falsa as seguintes afirmações. IZ
(A) De acordo com o conceito de prioridade, os operadores adição e subtração são sempre
executados antes dos operadores multiplicação e divisão. Vídeo
(B) Os operandos são valores que recebem a ação dos operadores.
(C) Os operadores DIV e MOD podem ser aplicados a valores do tipo real.

2. Indique o resultado das seguintes expressões.


a) 3div2
b) 3mod2
c) (20 div 10) mod 2

3. Determine os valores lógicos de cada uma das seguintes expressões, supondo que X=10e Y =2
(apresente os cálculos que permitem chegar aos resultados).
a) (X >= 0) AND (Y >= 0)
b) (x =3) OR (Y <> 6)
c) NOT (Y < 6) AND ((X <> 2) OR (Y - X = 3))
d) NOT ((Xx< 1) OR ((Y < 4) AND (Y > 5)))
e) (((X div 5) mod Y) > 5) OR (3 < (2 mod Y))

3. Teste e controlo de erros em algoritmia


O teste e o controlo de erros num algoritmo permitem verificar se este resolve o pro-
blema pretendido. Para isso, utiliza-se a técnica do tracing (traçagem), que permite acom-
panhar passo a passo a execução de um algoritmo, eliminando, desta forma, a possibili-
dade de ocorrência de erros.
O tracing consiste, assim, em testar um algoritmo com valores de entrada, observando
o comportamento interno ao longo dos vários passos que compõem o algoritmo.

Na implementação desta técnica, começa-se por criar uma tabela (quadro 3.1).
Depois, coloca-se na primeira linha as variáveis, as condições ou expressões lógicas e as
operações que se pretendem testar. De seguida, vão-se enumerando os passos na pri-
meira coluna. Por último, preenche-se a tabela passo a passo, atribuindo às variáveis a e
b os valores de entrada 4 e 5, respetivamente, e executando as operações presentes no
algoritmo.

O quadro 3.1 apresenta o exemplo de um algoritmo e a respetiva traçagem.

Quadro 3.1

Algoritmo soma; a b ce a+b Saída


Variável a, b, c: inteiro;
Início 1.º Passo 4
Ler (a);
Ler (b); 2.º Passo 4 5

ceeasb; 3.º Passo | 4 5 9


AIB12 O Porto Editora

Escrever (c); E .
, xclusivo
Fam. 4.º Passo | 4 5 9 9 do Professor

Solução
Introdução à Programação

BIONP ONO] O TITIV


Jogo Exercícios de aplicação 5
1. Crie a traçagem dos seguintes algoritmos, atribuindo à variável a o valor de entrada 2, na alínea a) e
às variáveis a e b os valores de entrada true e false, respetivamente, na alínea b).
a)
Algoritmo exemplol;
Variáveis a, b, c: inteiro;
Início
Ler (a);
b<2%*%a;
ce ar+b;
a<2*c+2*hb;
b <a
- 10;
Escrever (a, b, C);
Fim.

b)
Algoritmo troca valores;
Variáveis a, b, c: lógico;
Início
Ler (a);
Ler (b);
ce a;
a <hb;
be c;
Escrever (a, Db);
Fim.

4. Estruturas de controlo
As estruturas de controlo avaliam o desenrolar das instruções de um programa. Estas
subdividem-se em sequencial, de decisão ou seleção e de repetição ou ciclos.

4.1. Estrutura sequencial


Neste tipo de estrutura, as instruções de um programa são executadas numa determi-
nada sequência sem que esta possa sofrer alterações através dos dados de entrada.

No quadro 4.1 é apresentado o exemplo de um algoritmo em pseudocódigo e em fluxo-


grama, que calcula o valor total de um produto, utilizando uma estrutura sequencial, e no
quadro 4.2 é apresentado o respetivo programa em linguagem Pascal.

Exclusivo
do Professor

Solução
4. Estruturas de controlo

Quadro 4.1

Pseudocódigo Fluxograma

Algoritmo Total produto;


Início
Variável quantidade: inteiro;

JU
total, preco: real;

sm designa: texto; / Escrever ("Digite a designação do produto”) /


Início
Escrever (“Digite a designação do
produto”); Ler (designa)
Ler (designa); y

DE RR / Escrever ("Digite a quantidade do produto”) /


produto”);
Ler (quantidade) ;

|
Escrever (“Digite o preço por unidade Ler [quantidade]
de produto”) ;

|
Ler (preco); Escrever ("Digite o preço por
total <« quantidade * preco; / unidade de produto”) /
Escrever (“O valor total do produto ”,
designa,“ é ”, total); Ler (preco)

Ê
Fim.

total «—- quantidade*preco

|
|
Escrever ("O valor total do produto ”,
designa,” é ”, total)

Fim

O algoritmo e o respetivo programa em Pascal, apresentados nos quadros 4.1 e 4.2,


referem-se à situação em que o utilizador introduz a designação de um produto, a sua
quantidade e o seu preço. De seguida, calcula o valor total do produto existente. Por úl-
timo, o programa apresenta o nome do produto e o respetivo valor total.

Quadro 4.2

Programa

Program Total produto;


Var quantidade: integer;
total, preco: real;
designa: string;
Begin
Writeln('Digite a designação do produto”);
Readln (designa) ;
Writeln('Digite a quantidade do produto”);
Readln (quantidade) ;
Writeln('Digite o preço por unidade de produto"');
Readln (preco) ;
total := quantidade * preco;
Writeln('O valor total do produto ', designa, ' é ', total);
AIB12 O Porto Editora

Readln;
End.
26 Introdução à Programação

A instrução Readln utilizada isoladamente antes da instrução End permite ao utilizador

LIONPT ONO O TIQIV


Jogo observar o resultado do programa quando este é escrito numa versão do Turbo Pascal,
tendo de pressionar a tecla Enter para terminar o programa.

O quadro 4.3 apresenta a traçagem do algoritmo do quadro 4.1, considerando os se-


guintes valores de entrada:

* designa igual a “Lápis”

* quantidade igual a 10

* preco igual a 0.50

Quadro 4.3

designa | quantidade | preco | total € quantidade


* preco Saída

1.º Passo | Lápis


2.º Passo | Lápis 10
3.º Passo | Lápis 10 0.50
4.º Passo | Lápis 10 0.50 5)
5.º Passo | Lápis 10 0.50 5 O valor total do produto Lápis é 5

4.2. Estrutura de decisão ou seleção


As estruturas de decisão ou seleção permitem escolher uma opção, de entre as exis-
tentes, para o desenvolvimento de um programa, executando sequências alternativas de
acordo com os dados de entrada.

Este tipo de estrutura subdivide-se em estruturas de:

e seleção simples;

e seleção composta;

* seleção encadeada;

e seleção múltipla.

4.2.1. Estrutura de seleção simples

Através da utilização da estrutura de seleção simples apenas são executadas as instru-


ções quando a condição de seleção for avaliada com o valor lógico True; caso contrário,
com o valor lógico False, o programa continua a execução das instruções fora desta estru-
tura de seleção simples.

Nos quadros 4.4 e 4.5 são apresentadas as sintaxes da estrutura de seleção simples,
respetivamente, em pseudocódigo e em linguagem Pascal. Por outro lado, o quadro 4.4
apresenta o exemplo de um algoritmo em pseudocódigo e em fluxograma, que calcula a dife-
rença entre dois pesos, se o peso introduzido pelo utilizador for inferior a 70 kg, e o quadro
4.5 o respetivo programa em linguagem Pascal.
De notar que, neste caso, não aparecem as palavras Senão (Else) porque não é neces-
sário desenvolver o ramo False da estrutura. É de realçar, também, que, pelo facto de
existir mais do que uma instrução no ramo True da estrutura, é necessário utilizar o con-
junto Início... Fim (Begin... End) para agrupá-las e associá-las ao referido ramo.
4. Estruturas de controlo

Quadro 4.4

Sintaxe Fluxograma

Se <expressão> Então

FimSe Escrever ("Digite o seu nome”)

Pseudocódigo
Escrever ("Digite o seu peso”)
Algoritmo peso inf 70;
Variável dif, peso: real; Ler (peso)
nome: texto;
Início
peso < 70
Escrever (“Digite o seu nome”);
Ler (nome); rue
Escrever (“Digite o seu peso”); dif — 70-peso
Ler (peso);
Se peso < 70 Então Escrever (“Falta ao ”, nome,” ”,
dif, “kg para atingir
os 70 kg”)
Início
dif <« 70 —- peso;
Escrever (“Falta ao ”, nome,“ ”, dif,“ kg
para atingir os 70 kg”); / Escrever ["O programa vai terminar") /
Fim;
FimsSe; Fim
Escrever (“O programa vai terminar");
Fim.

O algoritmo e o respetivo programa em Pascal, apresentados nos quadros 4.4 e 4.5,


referem-se à situação em que o utilizador introduz um nome e um peso. Depois, através
da condição peso < 70, é determinado se o peso inserido é inferior a 7O kg. Caso seja, é
calculada e apresentada a diferença entre o peso inserido e os 70 kg. Caso contrário, o
programa continua a sua execução. O programa termina sempre com a apresentação da
mensagem “O programa vai terminar”.

Quadro 4.5

Sintaxe Programa

no Program peso inf 70;


If <expressão> Then Var dif, peso: real;
nome: string;
Begin
Writeln('Digite o seu nome');
Readln (nome) ;
Writeln('Digite o seu peso');
Readln (peso) ;
If peso < 70 Then
Begin
dif := 70 —- peso;
Writeln('Falta ao ', nome," ', dif," kg para
atingir os 70 kg');
End;
AIB12 O Porto Editora

Writeln('O programa vai terminar');


Readln;
End.
Introdução à Programação

O quadro 4.6 apresenta a traçagem do algoritmo do quadro 4.4, considerando os se-

BIONP ONO] O TITIV


Jogo guintes valores de entrada: * nome igual a “Rui” e e peso igual a 67

Quadro 4.6 : ;
nome peso | peso<70 | dif < 70 - peso Saída

1.º Passo Rui

2.º Passo Rui 67

3.º Passo | Rui 67 87<10


True

4.º Passo Rui 67 E 8)

5.ºPasso | Rui 67 - 3 Faltam ao Rui 3 kg para


atingir os 70 kg

6.º Passo Rui 67 - 3 O programa vai terminar

4.2.2. Estrutura de seleção composta

Através da utilização da estrutura de seleção composta, podem existir duas opções


possíveis para o desenrolar das instruções do programa e que são selecionadas de
acordo com o valor lógico resultante da avaliação de uma condição ou expressão.

Nos quadros 4.7 e 4.8 são apresentadas as sintaxes da estrutura de seleção com-
posta, respetivamente, em pseudocódigo e em linguagem Pascal. Por outro lado, o
quadro 4.7 apresenta o exemplo de um algoritmo em pseudocódigo e em fluxograma, que
determina o maior de dois números, e o quadro 4.8 o respetivo programa em linguagem
Pascal.
Quadro 4.7

Sintaxe Fluxograma

Se <expressão> Então

Senão

o Escrever ("Digite um

Ler (num)
Pseudocódigo
Escrever ("Digite um número
Algoritmo maior de 2; inteiro diferente do anterior”)
Variável maior, numl, num2: inteiro;
Início
Escrever (“Digite um número inteiro”); False
Ler (numl); fé nu maior «- num2
Escrever (“Digite um número inteiro
, , rue
diferente do anterior"); :
Ler (num2);
Se numi
maior
> num2
< numl
Então
O
Senão screver
, ("O maior
2 de: dois
. númerosé ”, maior)
maior < num2;
,
Fimse ; E
Escrever (“O maior de dois números é ",
maior) ;
Fim.
4. Estruturas de controlo

O algoritmo e o respetivo programa em Pascal, apresentados nos quadros 4.7 e 4.8,


referem-se à situação em que o utilizador introduz dois números inteiros, diferentes entre
si, efetuando depois a sua comparação. Se o primeiro número for maior que o segundo,
então o primeiro número é atribuído à variável maior. Senão, o segundo número é atri-
buído à variável maior. Por último, apresenta o maior dos dois números.

Quadro 4.8

Sintaxe Programa

. Program maior de 2;
If <expressão> Then Var maior, numl, num2: integer;
. Begin
Else Writeln('Digite um número inteiro');
Readln (numl) ;
Writeln('Digite um número inteiro diferente do anterior');
Readln (num2) ;
If numl > num2 Then
maior := numl
Else
maior := num2;
Writeln('O maior de dois números é ', maior);
End.

O quadro 4.9 apresenta a traçagem do algoritmo do quadro 4.7, considerando os se-


guintes valores relativos a duas entradas:
Primeira Segunda
* numi igual a / * numi igual a 5
* num2 igual a 2 * num2 igual a 6

Quadro 4.9

num1 | num2 | numi > num2 | maior € num1 maior € num2 Saída

1.º Passo 7

2.º Passo 7 2

3.º Passo 7 2 >


True

4.º Passo 7 2 - 7 -

5.º Passo 7 2 - 7 - Onúmeros


maior deé 7dois

1.º Passo 5

2.º Passo 5 6

3.º Passo 5 6 526


False
AIB12 O Porto Editora

4.º Passo 5 6 - - 6

5.º Passo 5 6 - - 6 Onúmeros


maior deé 6dois
Introdução à Programação

LIONPT ONO O TIQIV


Jogo Exercícios de aplicação 6
1. Crie um algoritmo, em pseudocódigo e em fluxograma, que permita a leitura de dois números reais
e apresente a sua média.

2. Crie um algoritmo, em pseudocódigo e um fluxograma, que permita a leitura de um número inteiro


e calcule o seu quadrado.

3. Crie um algoritmo, em pseudocódigo e em fluxograma, que permita a leitura de dois caracteres


alfanuméricos, determinando, a seguir, se são iguais. Caso sejam iguais, aparece a mensagem
“Inseriu dois caracteres iguais”.

4. Crie um algoritmo, em pseudocódigo, que permita a leitura de dois números inteiros para as
variáveis À e B. De seguida, determine o número de maior valor ou se ambos são de valor igual,
surgindo uma das mensagens “Os números são de valor igual” ou “O número de maior valor é o.....

5. Crie uma traçagem do algoritmo criado no exercício 3, utilizando para as variáveis (A, B] os
seguintes valores de entrada (9, 9), (19, 6) e [4, 13).

6. Utilizando a linguagem Pascal, crie os programas para cada um dos problemas propostos nos
exercícios 1,3,€e 4.

4.2.3. Estrutura de seleção encadeada

Numa estrutura de seleção encadeada podem existir várias opções encadeadas para o
desenrolar das instruções do programa. Cada uma destas opções pode ser selecionada
de acordo com o valor lógico resultante da avaliação da sua condição ou expressão.

Nos quadros 4.10 e 4.11 são apresentadas as sintaxes da estrutura de seleção com-
posta, respetivamente, em pseudocódigo e em linguagem Pascal. Por outro lado, os mes-
mos quadros apresentam o exemplo de um algoritmo em pseudocódigo e em fluxograma,
que determina se dois números são iguais entre si ou qual o maior deles, e o respetivo
programa em linguagem Pascal.

Quadro 4.10

Sintaxe Pseudocódigo

=" Algoritmo Maior Igual 2;


Se <expressão> Então Variável numl, num2: inteiro;
= Início
Senão Se <expressão> Então Escrever (“Digite um número inteiro”);
Ler (numl);
Senão Escrever (“Digite outro número inteiro”);
Ler (num2);
Se numi = num2 Então
FimSe
Escrever (“Os números são iguais”)
FimSe
Senão Se numi > num2 Então
Escrever (“O maior dos dois números é ”, numl)
Senão Escrever (“O maior dos dois números é ”, num2);
FimSe;
Exclusivo FimSe;
do Professor Fim.

Solução
4. Estruturas de controlo

Quadro 4.10 (cont.)

Fluxograma

Início

Escrever ("Digite um
número inteiro”)

/ Ler (num?) ]

Escrever ("Digite outro


número inteiro”)

Ler (num2)

Escrever
(Os números
são iguais”)

Escrever ("O maior


dos dois números
é”, numl)

Escrever (“O maior dos dois


números é ”, num2)
AIB12 O Porto Editora

O algoritmo e o respetivo programa em Pascal, mostrados nos quadros 4.10 e 4.11,


referem-se à situação em que o utilizador insere dois números inteiros. Ao efetuar a com-
paração, verifica primeiro se os números são iguais, senão, verifica qual deles é o maior.
Introdução à Programação

Quadro 4.11

LIONPA ONO, O TITIV


Sintaxe Programa

Program Maior Igual 2;


If <expressão> Then Var numl, num2: integer;
Begin
Else If <expressão> Then Writeln('Digite um número inteiro');
Readln (numl) ;

Else wWriteln('Digite outro número inteiro');


Readln (num2) ;
If numi = num2 Then
Writeln('Os números são iguais!)
Else If numi > num2 Then
Writeln('O maior dos dois números é '", numl)
Else
Writeln('O maior dos dois números é ", num2);
End.

O quadro 4.12 apresenta a traçagem do algoritmo, apresentado no quadro 4.10, con-


siderando os seguintes valores relativos a duas entradas:
Primeira Segunda
* numià igual a 16 * numi igual a 13
* num2 igual a 16 * num2 igual a 19

Quadro 4.12

num num2 num1 = num2 num1 > num2 Saída

1.º Passo 16

2.º Passo 16 16

3.º Passo 16 16 16=16


True
4.º Passo 16 16 - - Os números são iguais
1.º Passo 13

2.º Passo 13 19

3.º Passo 13 19 TE = 8
False

4.º Passo 13 19 - ER,


False
5.º Passo 13 19 - False O maior dos dois números é 19

Exercícios de aplicação 7

1. Crie um algoritmo, em pseudocódigo e em fluxograma, de forma que permita a leitura de um


número inteiro. De seguida, determine se o número é de valor positivo, negativo ou nulo,
apresentando uma mensagem correspondente a uma das três situações possíveis.

2. Crie um programa em Pascal relativo ao exercício anterior.


Exclusivo
do Professor 3. Crie uma traçagem do algoritmo criado no exercício 1, utilizando para a variável A os seguintes
valores de entrada 9,- 19 e 0.

Solução
4. Estruturas de controlo

4.2.4. Estrutura de seleção múltipla


Jogo

Numa estrutura de seleção múltipla é possível selecionar uma de múltiplas opções


para o desenrolar das instruções do programa, sendo selecionada de acordo com o valor
de uma variável.

Nos quadros 4.13 e 4.14 são apresentadas as sintaxes da estrutura de seleção múl-
tipla, respetivamente, em pseudocódigo e em linguagem Pascal. Por outro lado, os mes-
mos quadros apresentam o exemplo de um algoritmo em pseudocódigo e em fluxograma,
que determina o dia da semana de acordo com o valor inserido, e o respetivo programa em
linguagem Pascal.

Quadro 4.13

Sintaxe Fluxograma

Selecionar Caso <variável>


<valort>:..

<valorn>: ...
Senão ...
FimSelecionarCaso

Pseudocódigo

Algoritmo Designa dias;


Variáveis dia: inteiro;
Início
Escrever (“Insira um número inteiro
de 1 a 7");
Ler (dia);
Selecionar Caso dia
1: Escrever ( (“Segunda-feira”);
2: Escrever (“Terça-feira”);
3: Escrever (“Quarta-feira”);
4: Escrever (“Quinta-feira”);
5: Escrever (“Sexta-feira”);
6: Escrever (“Sábado”); True Escrever
7/8 Escrever (“Domingo”) ("Domingo”) E
Senão Escrever (“Inseriu um
número inválido”);
/ Escrever (“Inseriu um número inválido”) /
FimSelecionarcaso;
Fim.

O algoritmo e o respetivo programa em Pascal, mostrados nos quadros 4.13 e 4.14,


AIB12 O Porto Editora

referem-se à situação em que o utilizador insere um número inteiro. A partir deste valor é
selecionada a opção correspondente e apresentado o respetivo dia da semana. Os valo-
res numéricos que podem ser inseridos pelo utilizador vão de 1 a 7, senão surge uma
mensagem a informar que foi inserido um número inválido.

AIB12 FO3
Introdução à Programação

Quadro 4.14

LIONPA ONO, O TITIV


Sintaxe Programa

e Program Designa dias;


Case <variável> of Var dia: integer;
<«valort>:... Begin
e Writeln('“Insira um número inteiro de 1 a 7');

<valorn>:... selo !hou(eh ich)


Else .. Case dia of
End: Writeln('Segunda-feira');

wlNH
Writeln(“Terça-feira');
Writeln('Quarta-feira');
Writeln('“Quinta-feira');

UE
Writeln('Sexta-feira');
Writeln('Sábado');

JO
: Writeln('Domingo”')
Else Writeln(“Inseriu um número inválido');
End;
End.

O quadro 4.15 apresenta a traçagem do algoritmo do quadro 4.13, considerando os


seguintes valores relativos a duas entradas:
Primeira Segunda
e dia igual a 4 e dia igual a 9

Quadro 4.15

Dia Saída
1.º Passo 4

2.º Passo 4 Quinta-feira

1.º Passo 9
2.º Passo 9 Inseriu um número inválido

Exercícios de aplicação 8

1. Crie um algoritmo, em pseudocódigo e em fluxograma, que permita efetuar a leitura de dois


números reais. Mediante a seleção de uma opção (carácter alfabético), deve ser efetuada uma
operação aritmética com os números lidos anteriormente e apresentado o resultado da operação.
Utilize uma estrutura de seleção múltipla (Selecionar Caso) para implementar um menu com as
seguintes opções:
A - Adição
S - Subtração
M - Multiplicação
D - Divisão
Caso seja selecionada uma opção diferente destas, será apresentada a mensagem “Opção
Exclusivo inválida”.
do Professor

Utilizando a linguagem Pascal, crie o programa relativo ao problema proposto no exercício anterior.

Solução
4. Estruturas de controlo

4.3. Estruturas de repetição ou ciclos Jogo

As estruturas de repetição ou ciclos permitem repetir um conjunto de instruções de um


programa, controlado pelo resultado lógico da avaliação de uma condição ou expressão.

4.3.1. Ciclo For (Para)


O ciclo For é um tipo de estrutura de repetição em que inicialmente é conhecido o nú-
mero de vezes que o bloco de instruções será repetido. Para tal, utiliza um contador auto-
mático implementado através de uma variável do tipo inteiro. O valor desta variável vai ser
incrementado (To) ou decrementado (DownTo), resultando a realização de uma contagem
crescente ou decrescente do número de repetições indicadas na estrutura do ciclo.

Os quadros 4.16 e 4.17 apresentam as sintaxes da estrutura de repetição do ciclo


For, respetivamente, em pseudocódigo e em linguagem Pascal. Por outro lado, nos mes-
mos quadros pode ver-se o exemplo de um algoritmo em pseudocódigo e em fluxograma,
que calcula a média de n números inteiros, e o respetivo programa em linguagem Pascal.

Quadro 4.16

Sintaxe Fluxograma

Início
Para <variávelcontador := valorinicial> Até <valorfinal> Fazer
Y
<bloco de instruções> // Escrever (CIndique quantos inteiros quer digitar") /
FimPara

Ler (n)

Pseudocódigo

Algoritmo med num;


e n soma «- O

il

Variáveis i, n, soma, num: inteiro;

media: real; False

Início
True
Escrever (“Indique quantos inteiros quer E
digitar");
/ Escrever ("Indique um número inteiro”) /

Ler (n);

soma < O;
Ler (num)
Eh
Para i « 1 Até n Fazer
soma «- soma + num
Escrever (“Indique um número
inteiro”);
Lei+1
Ler (num);
>
soma < soma + num;
FimPara; media «- soma /n

media < soma / n;


/ Escrever (CA média dos números é ”,medial /
AIB12 O Porto Editora

Escrever (“A média dos números é ",

media);
Fim
Fim.
Introdução à Programação

O algoritmo e o respetivo programa em Pascal, mostrados nos quadros 4.16 e 4.17,

BIONP ONO] O TITIV


referem-se à situação em que o utilizador começa por inserir um número inteiro (n) para
a variável contador (i) do ciclo For (Para). Em cada iteração (repetição) do ciclo, é inserido
pelo utilizador um número inteiro (num), cujo valor vai sendo adicionado à variável soma,
que funciona como um acumulador. Quando o número de iterações terminar, é calculada
a média tendo por base os valores que foram acumulados na variável soma e o valor do
número de iterações que foi indicado pelo utilizador (n). Por último, é apresentado o resul-
tado do cálculo da média.
Quadro 4.17

Sintaxe Programa

- no Program med num;


For <contador:=valorinicial> To CER
<valo fi al> Do med ia : real;
<bloco de i struções> Begin

Writeln (“Indique quantos inteiros quer digitar');


Readln(n);
soma := O;
For 1:=1 To n Do
Begin
Writeln (“Indique um número inteiro');
Readln (num) ;
soma := soma + num;
End;
media := soma / n;
Writeln('A média dos números é ', media);
End.

O quadro 4.18 apresenta a traçagem do algoritmo do quadro 4.16, considerando os


seguintes dados de entrada:
e niguala 2 e num iguala 10 e a 12
Quadro 4.18

n 'soma€0 i€1 i<=n num soma €soma+num | itc-i+l | media € soma/n Saída

1.º Passo | 2

2.º Passo | 2 0

3.º Passo | 2 0 1

4.º Passo | 2 0 1 S 2
rue

5.º Passo | 2 0 1 - 10

6.º Passo | 2 - 1 - 10 10

7.º Passo | 2 - - - 10 10 2

8.º Passo | 2 - - [2214


True
10 2
9.º Passo | 2 - - - 12 10 2

10.º Passo | 2 - - - 12 22 2

11.º Passo | 2 - - - 12 22 3

12.º Passo | 2 - - [3sllos


False
22 3
13.º Passo | 2 - - - 12 22 3 NI

14.º Passo | 2 - - - 12 2 3 n o
números é 11
4. Estruturas de controlo

O quadro 4.19 apresenta a descrição passo a passo da traçagem do algoritmo do


quadro 4.18.

Quadro 4.19

Passo Descrição
1.º É atribuído à variável n (número de iterações) o valor 2 [pelo utilizador”).
no É inicializada a O a variável soma.
So É inicializada a 1 a variável contador [i) no ciclo For.
4.º É testada a condição i <=n (1 <= 2), como é True continua a execução do ciclo For.

5.0 É executada a primeira instrução do ciclo, sendo atribuído o valor 10 à variável num (pelo
, utilizador).
6.º É executada a segunda instrução do ciclo, sendo adicionado o valor 10 ao acumulador soma
' (soma
€ 0 + 10).
7º É executada a terceira instrução do ciclo, sendo incrementada a variável contador fi) do ciclo
, passando de 1 para 2 [1 6 1+1).
8.º É testada a condição i <= n (2 <= 2), como é True continua a execução do ciclo For.
9.º É executada a primeira instrução do ciclo, sendo atribuído o valor 12 à variável num (pelo
, utilizador).
10.º É executada a segunda instrução do ciclo, sendo adicionado o valor 22 ao acumulador soma
. (soma
O 10 + 12).
o É executada a terceira instrução do ciclo, sendo incrementada a variável contador (i] do ciclo
11. .
passando de2 para 3 [16 2+1).
12.º É testada a condição i <= n [3 <= 2), como é False termina a execução do ciclo For.

o É efetuado o cálculo da média (media), tendo por base o valor acumulado em soma (soma € 22) e
13.
o valor de n (n € 2), resultando o valor 11.

14.º É apresentada a mensagem “A média dos números é 11".

Exercícios de aplicação 9

1. Sem utilizar uma estrutura repetitiva, crie um algoritmo, em pseudocódigo, que permita a leitura de
quatro números inteiros, determinando e apresentando para cada um deles se:
e o número é de valor par e superior a dez;
* o número é de valor ímpar e inferior a dez.

Crie um algoritmo, em pseudocódigo, e o respetivo programa, em Pascal, que resolva o problema


indicado no exercício anterior, utilizando a estrutura de repetição For (Para).

Crie uma traçagem do algoritmo criado no exercício 2, utilizando os seguintes valores de entrada
(9), [19), (8) e (14).
Desenvolva um programa, em linguagem Pascal, que permita ao utilizador indicar dois números
inteiros, correspondentes aos limites inferior [variável LInf) e superior (variável LSup) . De seguida,
é necessário testar que o número indicado para o limite superior é de valor superior ao número
indicado para o limite inferior. Caso se verifique, devem ser gerados e apresentados os números no
AIB12 O Porto Editora

intervalo entre os números indicados, inclusive. Caso contrário, é apresentada a mensagem “Os Exclusivo
limites, indicados para o intervalo, estão errados” e o programa termina. Implemente este do Professor
programa utilizando a estrutura de repetição For (Paral.

Solução
38 Introdução à Programação

4.3.2. Ciclo While (Enquanto)


Jogo

BIONP ONO O TITIV


O ciclo While é um tipo de estrutura de repetição em que o número de vezes a repetir
o bloco de instruções é controlado pelo resultado da avaliação de uma condição ou ex-
pressão lógica. Enquanto o resultado da avaliação for True (verdadeiro) o bloco de instru-
ções é executado. Uma vez que a condição ou expressão lógica é avaliada no início da
estrutura, se na primeira avaliação o resultado for False (falso), o bloco de instruções não
chega a ser executado uma única vez.

Este ciclo pode, também, ser implementado sabendo, inicialmente, o número de vezes
que o bloco de instruções vai ser repetido. Neste caso, é utilizada uma variável contador
destinada a controlar a execução do ciclo, à semelhança do funcionamento do ciclo For.

Nos quadros 4.20 e 4.21 são apresentadas as sintaxes da estrutura de repetição do


ciclo While, respetivamente, em pseudocódigo e em linguagem Pascal, em que não se
conhece previamente o número de ciclos a executar. Neste exemplo, o algoritmo apresen-
tado em pseudocódigo e em fluxograma, e o respetivo programa em linguagem Pascal,
calcula o número de nomes inseridos pelo utilizador.

Quadro 4.20

Sintaxe Fluxograma

Enquanto <expressão> Fazer


E à

<bloco de instruções>
FimEnquanto; conta «— O

Escrever ("Digite um nome”) /

Pseudocódigo y
Algoritmo Conta nomes; / tentem) /
Variável conta: inteiro;
nome: texto; [e
Início
conta < O;
Escrever (“Digite um nome”);
Ler (nome);
Enquanto nome <> “Fim” Fazer True
conta <« conta + 1;
Escrever (“Digite um nome”); conta «— conta
+ 1
Ler (nome);
FimEnquanto;
Escrever (“Foram digitados ”, conta, / Escrever ("Digite um nome”)
“ nomes”);
Fim.

>

Escrever ("Foram digitados ”,


conta,” nomes”)
T

Fim
4. Estruturas de controlo

O algoritmo e o respetivo programa em Pascal, apresentados nos quadros 4.20 e


4.21, referem-se à situação em que o utilizador insere nomes até inserir a palavra Fim.
Por cada nome digitado, o contador, a variável conta, é atualizado somando mais um ao
seu valor anterior e, por último, o programa indica quantos nomes foram inseridos.

Quadro 4.21

Sintaxe Programa

Program Conta nomes;


While <expressão> Do Var conta: integer;
nome: string;
<bloco de
instruções> Begin
conta := O;
Writeln('Digite um nome”);
Readln (nome) ;
While nome <> “Fim” Do
Begin
conta := conta + 1;
Writeln('Digite um nome”);
Readln (nome) ;
End;
Writeln('Foram digitados ',conta,' nomes');
End.

O quadro 4.22 apresenta a traçagem do algoritmo do quadro 4.20, considerando os


seguintes dados de entrada:
* nome igual a “Rui”
e nome igual a “Ana”
e nome igual a “Fim”

Quadro 4.22

conta - 0 | nome nome <>”Fim” conta € conta + 1 Saída


1.º Passo 0

2.º Passo 0 Rui

3.º Passo 0 Rui Rui <> Fim


True

4.º Passo - Rui > 1

5.º Passo - Ana = 1

o Ana Ana <> Fim 1


6.º Passo
True

7.º Passo - Ana = 2

8.º Passo - Fim E 2

o Fim Fim <> Fim 2


9.º Passo
False

- Fim - 2 Foram digitados


10.º Passo
2 nomes
AIB12 O Porto Editora

O quadro 4.23 apresenta a descrição passo a passo da traçagem do algoritmo do


quadro 4.22.
Introdução à Programação

Quadro 4.23

LIONPA ONO, O TITIV


Jogo
Passo Descrição

1.º É inicializada a O a variável contador conta.

É atribuída à variável nome a palavra Rui (pelo utilizador). O conteúdo desta variável é
2.º testado na condição do ciclo While, antes de qualquer repetição de instruções no
interior do mesmo.
3.º É testada a condição nome<>"“Fim” (Rui <> Fim), como é True continua a execução do
, ciclo.
4º É executada a primeira instrução do ciclo, sendo incrementada a variável contador
, (conta) do ciclo passando de O para 1 (conta + 0+ 1).
5.º É executada a segunda instrução do ciclo, sendo atribuída à variável nome a palavra
. Ana (pelo utilizador).
6.º É testada a condição nome <> “Fim” (Ana <> Fim), como é True continua a execução
, do ciclo.
7º É executada a primeira instrução do ciclo, sendo incrementada a variável contador
, (conta) do ciclo passando de 1 para 2 (conta E 1+ 1).
go É executada a segunda instrução do ciclo, sendo atribuída à variável nome a palavra
, Fim [pelo utilizador].
9.º É testada a condição nome<>"Fim” (Fim <> Fim], como é False termina a execução do
, ciclo While.

10.º É apresentada a mensagem “Foram digitados 2 nomes”.

Exercícios de aplicação 10
1. Resolva novamente os exercícios 2 e 4 da página 37, utilizando a representação sob a forma de
fluxograma e o respetivo programa na linguagem Pascal, substituindo o ciclo For pelo ciclo While.

4.3.3. Ciclo Repeat (Repetir)


O ciclo Repeat é um tipo de estrutura de repetição em que o número de vezes a repetir
o bloco de instruções é controlado pelo resultado da avaliação de uma condição ou ex-
pressão lógica. Até que (Until) o resultado da avaliação seja True (verdadeiro), o bloco de
instruções continua a ser executado. Como a condição ou expressão lógica é avaliada no
fim da estrutura, é sempre executado, pelo menos uma vez, o bloco de instruções.

Este ciclo pode, também, ser implementado sabendo inicialmente o número de vezes
que o bloco de instruções vai ser repetido.

Neste caso, é utilizada uma variável contador que vai permitir controlar a execução do
ciclo, à semelhança do funcionamento do ciclo For.

Nos quadros 4.24 e 4.25 são apresentadas as sintaxes da estrutura de repetição do


ciclo Repeat, respetivamente, em pseudocódigo e em linguagem Pascal, em que não se
Exclusivo conhece previamente o número de ciclos a executar. Neste exemplo, o algoritmo apresen-
do Professor
tado em pseudocódigo e em fluxograma, e o respetivo programa em linguagem Pascal,
calcula o perímetro de um retângulo até que o utilizador escolha terminar este cálculo.

Solução
4. Estruturas de controlo

Quadro 4.24

Sintaxe Fluxograma

Repetir (nico )

Até que <expressão>;


/ Escrever (“Medidas do retângulo”) /

Pseudocódigo / Escrever (“Indique a largura em metros”) /


I
Algoritmo Retangulo; Ler (larg)
Variável area, perimetro, comp, larg: real;
resp: caracter; / Escrever (“Indique o comprimento em metros”) /
Início
Repetir
Escrever (“Medidas do retângulo”);
Escrever (“Indique a largura em metros”); perimetro «- 2*[(larg
+ comp)
Ler (larg);
Escrever (“Indique o comprimento em /Escrever ["Perímetro =”, perimetro, “metros”) /
metros”);
Ler (comp); Escrever ["Pretende efetuar
perimetro <«< 2 * (larg + comp); mais cálculos [s/n)”)
Escrever (“Perímetro = ”, perimetro,
“ metros”); Ler (resp)
Escrever (“Pretende efetuar mais cálculos
(s/n)"); False
Ler (resp);
Até que (resp <> "s"); | True
Fim. Fim

O algoritmo e o respetivo programa em Pascal, mostrados nos quadros 4.24 e 4.25,


referem-se à situação em que o utilizador insere dois números reais relativos às medidas
da largura e do comprimento de um retângulo. Depois, é efetuado o cálculo do perímetro
e apresentado o respetivo resultado. Por último, o utilizador é questionado se pretende
efetuar mais cálculos: caso pretenda continuar insere o carácter s, caso contrário, ter-
mina inserindo um carácter diferente de s (n ou outro).

Quadro 4.25

Sintaxe Programa

a Program Retangulo;
Repeat Var area, perimetro, comp, larg: real;
no resp: char;
Until... Begin
Repeat
Writeln('Medidas do retângulo');
Write (“Indique a largura em metros ');
Readln (larg) ;
Write (“Indique o comprimento em metros ');
Readln (comp) ;
perimetro := 2 * (larg + comp);
Writeln('Perímetro = ' ,perimetro, * metros');
Writeln('Pretende efetuar mais calculos (s/n)');
AIB12 O Porto Editora

Readln (resp) ;
Until (resp <> 's');
End.
Introdução à Programação

O quadro 4.26 apresenta a traçagem do algoritmo do quadro 4.24, considerando os

BIONP ONO] O TITIV


seguintes valores relativos a duas entradas:
Primeira Segunda
e largura igual a 4 e largura igual a 10
e comprimento igual a 12 e comprimento igual a 20

Quadro 4.26

larg | comp perimetro € 2 * (larg + comp) Saída resp | lresp<>“s”)

1.º Passo 4

2.º Passo 4 12

3.º Passo 4 12 32

4.º Passo 4 12 32 Perímetro = 32 metros

5.º Passo 4 12 32 s

6.º Passo 4 12 32 s False

7.º Passo 10 12 32 s -

8.º Passo 10 20 32 Ss -

9.º Passo 10 20 60 Ss -

10.º Passo 10 20 60 Perímetro = 60 metros Ss -

11.º Passo 10 20 60 n -

12.º Passo 10 20 60 n True

O quadro 4.27 apresenta a descrição passo a passo da traçagem do algoritmo do


quadro 4.26.

Quadro 4.27

Passo Descrição
1.º É executada a primeira instrução de entrada de dados (Input) do ciclo, sendo atribuído à
, variável larg o valor 4 (pelo utilizador).
2º É executada a segunda instrução de entrada de dados (Input) do ciclo, sendo atribuído à
, variável comp o valor 12 (pelo utilizador].
3.º É executada a instrução do cálculo do perímetro, sendo atribuído à variável perimetro o
. resultado 32 (perimetro < 2 * (4 + 12)).
4º É executada a instrução de saída de dados (Output), sendo apresentada a mensagem
, “Perímetro = 32 metros”.
5. É executada a terceira instrução de entrada de dados (Input) do ciclo, sendo atribuído à
, variável resp o carácter s [pelo utilizador).
6.º É executada a última instrução do ciclo, sendo testada a expressão resp <> “s” [s <> 5).
, Como o resultado do teste é False o ciclo continua até que este seja True.
5. Arrays

Quadro 4.27 (cont.)

Passo Descrição nc
7º É executada a primeira instrução de entrada de dados (Input) do ciclo, sendo atribuído à =
, variável larg o valor 10 (pelo utilizador). /
8.º É executada a segunda instrução de entrada de dados (Input) do ciclo, sendo atribuído à Exercício
. variável comp o valor 20 (pelo utilizador].
9º É executada a instrução do cálculo do perímetro, sendo atribuído à variável perimetro o
. resultado 60 [perimetro + 2 * (10 + 20)).
10.º É executada a instrução de saída de dados [Output], sendo apresentada a mensagem
, “Perímetro = 60 metros”.
11.º É executada a terceira instrução de entrada de dados (Input) do ciclo, sendo atribuído à
. variável resp o carácter n (pelo utilizador).
o É executada a última instrução do ciclo, sendo testada a expressão resp <> “s” (n <> 5).
12. / . .
Como o resultado do teste é True o ciclo termina.

Exercícios de aplicação 11

1. Resolva novamente os exercícios 2 e 4 da página 37, utilizando a representação sob a forma de


fluxograma e o respetivo programa na linguagem Pascal, substituindo o ciclo For pelo ciclo Repeat.

5. Arrays
Os arrays são variáveis, identificados por um nome, que contêm um conjunto de ele-
mentos do mesmo tipo. Estes são acessíveis através do respetivo nome e da variável de
índice correspondente à sua posição no array. Os arrays simplificam a utilização de mui-
tas variáveis do mesmo tipo a guardar em memória, com designações diferentes, agru-
pando-as numa única variável.

Os arrays podem ter mais do que uma dimensão. Os mais utilizados são os arrays
unidimensionais (vetores) e os arrays bidimensionais (matrizes).

0.1. Vetores
Os vetores (arrays unidimensionais) têm uma dimensão, utilizando, por isso, apenas
uma variável de índice para o acesso aos seus elementos.

O quadro 5.1 apresenta o exemplo do vetor idade que guarda seis valores numéricos
inteiros, correspondentes a seis idades. Para tal, é utilizado um índice (variável i) para
aceder a cada um dos elementos do vetor (idade[i]).

Quadro 5.1

i 1 2 3 4 5 6
AIB12 O Porto Editora

idadeli] idadel1] idadel2] idadel3] idadel4] idadel5] idadel6] O or


Idade 13 15 18 19 14 15

Solução
Introdução à Programação

5.1.1. Operações com vetores


Exercício

A declaração de vetores é feita na parte declarativa do programa.

Para declarar um vetor é utilizada a palavra Var, seguida do nome da variável (nome).

BIONP ONO] O TITIV


A seguir, é indicado o tipo de variável (array) e o intervalo dos seus elementos ou índices
([4..n]). Por último é indicado o tipo de dado dos elementos do vetor (of <tipo de dado>)
(quadro 5.2).

Quadro 5.2

Sintaxe Var <nome> array [1..n] of<tipo de dado>

Exemplo Var km: array [1..10] of real;

No exemplo apresentado no quadro 5.2, é declarada uma variável com o nome km, do
tipo array e com o intervalo de índices de 1 a 10, cujos dados são do tipo real.

O quadro 5.3 apresenta a sintaxe das instruções de leitura, de escrita e de atribuição


de um vetor.

Quadro 5.3

Leitura Escrita Atribuição

Readln(<nome>[índice]) Writeln[<nome>[índice]) <nome>[índice]:=elemento

1 Program Total km;


2 var km: array [1..5] of real;
3 total: real;
4 a: integer;
5 Begin
6 total := 0;
7 Writeln('Digite a distância percorrida (Km) em cada uma das cinco viagens realizadas');
8
9 For a := 1 To 5 Do
10 Begin
11 Write('Viagem ', a, “ =");
12 Readin(km[a]);
13 total := total + kmflal;
14 End;
LS
16 Writeln('O total de Km percorridos nas cinco viagens é ', total);
17
18 km [4] = 100;
19
20 total := 0;
21
22 For a := 1 To 5 Do
23 Begin
24 Writeln(“km[”, a, “] =", kmlal);
25 total := total + kmla];
26 End;
27
28 Writeln('O total de Km percorridos nas cinco viagens é ', total);
29 End.

Fig. 5.1. Programa em Pascal exemplificando a utilização de um vetor.

O programa apresentado na figura 5.1 calcula a distância total percorrida em cinco via-
gens, apresentando também a distância de cada uma delas para determinados valores inse-
ridos pelo utilizador. Posteriormente, volta a calcular a distância total e a apresentar os va-
lores da distância percorrida em cada uma das viagens, tendo em conta uma alteração ao
conteúdo do vetor na posição do índice quatro, com a atribuição do valor 100.
5. Arrays 45

No programa em Pascal apresentado na figura 5.1, as instruções assinaladas dentro


dos retângulos a vermelho têm as seguintes finalidades: Exercício

e no primeiro retângulo, o primeiro ciclo For permite ao utilizador inserir os valores relati-
vos às distâncias percorridas para o vetor km. Permite, também, efetuar o cálculo do
total das distâncias percorridas (total);
e no segundo retângulo, a instrução de atribuição coloca no vetor km, índice 4, o valor 100;
e no último retângulo, após a atribuição anterior e a inicialização da variável total a 0,
o segundo ciclo For permite a listagem atualizada de todo o conteúdo do vetor km e
mostra o novo valor da variável total.

A figura 5.2 apresenta o resultado da execução do programa apresentado na figura 5.1,


para os valores inseridos pelo utilizador.

Fig. 5.2. Resultado da execução do programa apresentado na figura 5.1.

Exercícios de aplicação 12

1. Classifique cada uma das seguintes afirmações de verdadeira ou falsa.


(A) Oarray é um tipo de dados estruturado em Pascal.
(B) Os arrays apenas permitem conter dados do tipo inteiro.
(C) Os arrays podem ter mais do que uma dimensão.
(D) Os arrays usam frequentemente as estruturas de repetição.
(E) A declaração dos vetores e das matrizes é feita na parte operativa do programa.

2. Responda às alíneas seguintes, tendo em atenção a seguinte estrutura do vetor Temperaturas.

| 10,1 | 1,4 | 8,6 1,9 185 | 195


a) Indique quala posição, no vetor, em que a temperatura é iguala 8,6.
b) | Indique quala posição, no vetor, em que a temperatura é máxima.
c) Calcule a soma das temperaturas registadas na primeira posição com a última posição do vetor.
d) Calcule a diferença entre as temperaturas máxima e mínima, das registadas no vetor.
e) Calcule a média das temperaturas registadas no vetor.
f) Declare o vetor, tendo em atenção os valores dos elementos apresentados.

3. Elabore um programa, em Pascal, que permita declarar um vetor de 5 elementos (array


unidimensional] para registar a quantidade de pares de sapatilhas produzidas, nos cinco dias úteis
de uma semana de trabalho, por uma empresa de calçado. O programa tem de permitir:
e inserir as quantidades produzidas;
e mostrar as quantidades registadas no vetor;
e mostrara quantidade registada num determinado dia da semana, indicado pelo utilizador;
AIB12 O Porto Editora

e determinar qual a quantidade mínima registada, indicando o dia em que se registou; Exclusivo
e determinar se uma quantidade, indicada pelo utilizador, existe no vetor e, caso exista, indicar em do Professor
que posição do vetor.

Solução
46 Introdução
à Programação

5.1.2. Algoritmos de ordenação


Jogo

Os algoritmos de ordenação têm por finalidade organizar sequências de elementos, do

LIONPY OO] O TIAIV


mesmo tipo, por ordem crescente ou decrescente dos seus valores. Na maioria das vezes estes
algoritmos são criados para serem aplicados aos elementos de arrays, uma vez que este tipo
de dados permite guardar, numa mesma variável, um conjunto de elementos do mesmo tipo.

Existem inúmeros algoritmos de ordenação com maior ou menor grau de dificuldade de


implementação, de utilização da memória, de custo associado a cada passo de imple-
mentação, entre outros aspetos.

Dentro deste objetivo são abordados os algoritmos de ordenação por:


e inserção (Insertion Sort);
e seleção (Selection Sort);
e bolha (Bubble Sort).

O algoritmo de ordenação por inserção (Insertion Sort) permite ordenar os elementos


de um vetor, percorrendo-os da esquerda para a direita, comparando-os dois a dois. Numa
ordenação crescente, sempre que o elemento da direita for menor que o anterior irá, por
comparações sucessivas, ser posicionado mais à esquerda na ordem correta. Este tipo
de ordenação assemelha-se ao processo de organização das cartas existentes na mão de
um jogador.

A figura 5.3 apresenta um programa em Pascal que ordena por ordem crescente seis
valores inteiros inseridos pelo utilizador num vetor.

Program InsertionSort;
var vetor: array [1..6] of integer;
1, J, tamanho, chave: integer;
Begin
tamanho := 6;
writeln('Insira 6 números inteiros para o vetor');
for i := 1 to tamanho do
begin
| write('Vetor[”, à, “1 =");
| readin(vetor [i]);
end;
writeln;
writeln(“inicial := ", vetor[1], * |“, vetor[2], ", vetor [3], * ", vetor[4], * ", vetor [5],
“ |", vetor[6]);
for j := 2 to tamanho do
begin
chave := vetor [5];
E l:=5-1;
| while (i > 0) and (vetor[i]l > chave) do
i
begin
| vetor [i+1] := vetor [i];
i
l:=i-d;
| vetor [i+1] := chave;
| end;
| writeln('troca ', j - 1, " =", vetorl[1 ", vetor[2], * |", vetor[3], ", vetor [4],
“|, vetor[5], ]
BR
a
q

o

|
25 end;
26 writeln;
27 writeln ("Listagem ordenada dos elementos do vetor');
28 for i := 1 to tamanho do
29 writeln("Vetor[', à, '] :=", vetorlil);
30 end.

Fig. 5.3. Programa em Pascal exemplificando a ordenação por inserção.


5. Arrays 47

A figura 5.4 mostra o resultado da execução do programa apresentado na figura 5.3.


Depois dos valores inseridos pelo utilizador, é efetuada a ordenação apresentando as prin- Jogo
cipais trocas de posicionamento de um valor o mais à esquerda possível. Isto acontece
quando é detetado um valor à direita menor que o anterior.

Fig. 5.4. Resultado da execução do programa


apresentado na figura 5.3.

O algoritmo de ordenação por seleção (Selection Sort) permite ordenar os elementos de


um vetor, realizando passagens sucessivas nos elementos de um vetor para identificar o
valor mínimo ou máximo em cada uma delas.

A figura 5.5 apresenta um programa em Pascal que ordena por ordem crescente seis va-
lores inteiros inseridos pelo utilizador num vetor.

1 Program SelectionSort;
2 var vetor: array[1..6] of integer;
3 i, jJj, tamanho, minimo, temp: integer;
4 Begin
5) tamanho := 6;
6 writeln('Insira 6 números inteiros para o vetor');
7 for i := 1 to tamanho do
8 begin
9 write(“Vetor[”, à, “] =");
10 readln (vetor [1]);
11 end;
12 writeln;
13 writeln(“inicial =", vetor[1], " |", vetorl[2], ", vetor[3], * | ', vetor[4], ", vetor [5]
“ |", vetor[6]);
14 for i := 1 to tamanho-1 do
15 begin
16 minimo := à;
17 for 5) := i + 1 to tamanho do
18 1f vetor [J] < vetor [minimo] then
19 minimo := 5;
20 temp := vetorli];
21 vetor [1] = vetor [mínimo! ;
22 vetor [minimo] := temp;
23 writeln('troca “, à, “ =", vetor[1], “ |“, vetor[2], ", vetor [3], * ", vetor [4]
vetor[5], " | ', vetor[6]);
24 end;
AIB12 O Porto Editora

25 writeln;
26 writeln('Listagem ordenada dos elementos do vetor');
27 for i := 1 to tamanho do
28 writeln('Vetor[', à, “] =", vetorl[il);
29 end.

Fig. 5.5. Programa em Pascal exemplificando a ordenação por seleção.


Neste exemplo, a ordenação crescente dos valores do vetor é feita a partir da identifica-

BIONPA OO] O TIAIV


ção da posição do valor mínimo.

Na primeira passagem é trocado, entre si, o valor da primeira posição do vetor com a do
valor mínimo.

Na segunda passagem e seguintes, o processo repete-se, isto é, fazem-se trocas, entre


si, dos valores contidos na segunda posição e seguintes pelos respetivos valores mínimos
detetados.

A figura 5.6 mostra o resultado da execução do programa apresentado na figura 5.5.

Depois dos valores inseridos pelo utilizador, é efetuada a ordenação apresentando as


principais trocas de posicionamento de um valor para a sua posição correta à esquerda.

Isto acontece quando é detetado um valor mínimo à direita em relação aos outros valo-
res do vetor, excluindo os que já se encontram corretamente posicionados.

Fig. 5.6. Resultado da execução do


programa apresentado na figura 5.5.

O algoritmo de ordenação por bolha (Bubble Sort) permite ordenar os elementos de um


vetor, percorrendo os seus valores da direita para a esquerda e comparando-os com os das
posições adjacentes.

Neste processo de ordenação, é sempre encontrado o valor mais baixo em cada passa-
gem e colocado na posição mais à esquerda possível de forma ordenada.

Esta ordenação é obtida por comparação dois a dois entre elementos adjacentes, ainda
não ordenados, efetuando permutas de posição sucessivas sempre que o valor da direita
for menor que o da esquerda.
5. Arrays 49

A figura 5.7 apresenta um programa em Pascal que ordena por ordem crescente seis
valores inteiros inseridos pelo utilizador num vetor.

1 Program BubbleSort;
2 var vetor: array [1..6] of integer;
3 1, J, tamanho, temp: integer;
4 Begin
5 tamanho := 6;
6 writeln('Insira 6 números inteiros para o vetor');
7 for i := 1 to tamanho do
8 begin
9 write('Vetor[', à, “] =");
10 readln (vetor [i]);
11 end;
12 writeln;
13 writeln(“inicial =", vetor[1], " |", vetorl[2], ", vetor[3], * | “, vetorl4], * ", vetor [5]
“ |", vetor[6]);
14 for i := 1 to tamanho do
Ss) begin
16 for j := tamanho downto i+1 do
17 if vetor[j] < vetor[j-1] then
18 begin
19 temp := vetor [5];
20 vetor [j] := vetor[5j-1];
21 vetor [5-1] := temp;
22 end;
23 writeln('troca ', j - 1, "=", vetorlll, ", vetor[2], * ", vetor[3], * *, vetor [4]
“ |", vetor[5], ", vetor [6]);
24 end;
25 writeln;
26 writeln ("Listagem ordenada dos elementos do vetor');
27 for i := 1 to tamanho do
28 writeln('“Vetor[”, à, “] =", vetorlil);
29 end.

Fig. 5.7. Programa em Pascal exemplificando a ordenação por bolha.

A figura 5.8 mostra o resultado da execução do programa apresentado na figura 5.7.


Depois dos valores inseridos pelo utilizador, é efetuada a ordenação apresentando as
principais trocas de posicionamento de um valor o mais à esquerda possível. Isto acon-
tece quando são feitas comparações sucessivas entre todos os valores adjacentes não
ordenados, a partir da direita para a esquerda. Neste exemplo, na troca 0, o primeiro
valor da direita, 3, permanece na mesma posição porque não é menor que 2.

Fig. 5.8. Resultado da execução do programa


apresentado na figura 5.7.
AIB12 O Porto Editora

AIB12 FO4
Introdução à Programação

Por consequência, o valor 2 passa a ser comparado com os elementos localizados à

LIONPT ONO O TIQIV


Jogo sua esquerda.

Neste processo, o valor 2 passa para a primeira posição, porque nas sucessivas com-
parações adjacentes foi sempre o menor.

Nas trocas seguintes, é sucessivamente encontrado o valor menor, entre os não orde-
nados, passando a ocupar uma posição ordenada.

Exercícios de aplicação 13

1. Elabore um programa, em Pascal, que permita declarar um vetor de 8 elementos [array


unidimensional) para registar a quantidade de embalagens de cereais produzidas por uma
empresa, em oito dias consecutivos.
O programa tem de permitir:
e inserir as quantidades de embalagens produzidas;
e efetuar uma ordenação decrescente das quantidades, segundo o algoritmo de ordenação por
seleção;
e efetuar a Listagem das quantidades registadas no vetor, por ordem decrescente.

Elabore um programa, em Pascal, que permita declarar um vetor de 9 elementos [array


unidimensional) para registar o número de alunos de uma escola, em nove anos consecutivos.
O programa tem de permitir:
e inserir o numero de alunos;
e efetuar uma ordenação decrescente do número de alunos, segundo o algoritmo de ordenação por
bolha;
e efetuar a listagem do número de alunos registados no vetor por ordem decrescente.

Elabore um programa, em Pascal, que permita declarar um vetor de 6 elementos [array


unidimensional) para registar a quantidade de milho (em quilogramas) armazenadas numa
cooperativa, em seis anos consecutivos.
O programa tem de permitir:
e inserir as quantidades;
efetuar uma ordenação decrescente das quantidades, segundo o algoritmo de ordenação por
inserção;
e efetuar a listagem das quantidades registadas no vetor por ordem decrescente.

5.1.3. Algoritmos de pesquisa

Os algoritmos de pesquisa permitem determinar se um elemento existe num vetor e,


caso exista, podem indicar a posição deste. Este tipo de algoritmos pode ser aplicado em
vetores desordenados ou ordenados e com elementos repetidos ou não. Quando se aplica
a um vetor com elementos repetidos, pode-se efetuar a pesquisa de forma a obter ape-
nas a posição do primeiro elemento, apenas a posição do último elemento ou todas as
posições em que o elemento repetido se encontra. De seguida, abordam-se os algoritmos
de pesquisa sequencial e de pesquisa binária.

O algoritmo de pesquisa sequencial percorre todos os elementos de um vetor da esquerda


para a direita ou da direita para a esquerda. Esta pesquisa termina quando se encontra o ele-
mento ou, caso contrário, percorre todos os elementos do vetor. A figura 5.9 apresenta um
Exclusivo programa que efetua uma pesquisa sequencial da esquerda para a direita, apresentando
do Professor
todas as comparações, assim como as posições em que o valor pesquisado é encontrado no
vetor.

Solução
5. Arrays 51

1 Program PesgSequencial; E)
2 Var vetor: array[1..6] of integer; Jogo
3 j, num: integer;
4 flag: boolean;
5 Begin
6 Writeln('Insira 6 números inteiros para o vetor');
7 For j := 1 to 6 do
8 Begin
9 Write('Vetor[', 3, 1 =");
10 Readin(vetor[5]);
11 End;
12 Writeln;
13 Write('Insira o número inteiro a pesquisar ');
14 Readln (num) ;
15 Writeln;
16 REIS IR:
17 flag := false;
18 Repeat
19 If num = vetor [j] Then
20 Begin
21 flag := true;
22 Writeln(j, '* comparacao -> ', num, * = ', vetor[j], * -> TRUE');
23 Writeln('Numero inteiro encontrado na posicao ', 5);
24 End
25 Else
26 Writeln(j, '* comparacao -> ', num, " =", vetor[j], * -> FALSE');
27 Writeln;
28 j:=)+1;
29 Until (5 > 6);
30 If flag := false Then
31 Writeln('Numero inteiro não encontrado"');
32 End.

Fig. 5.9. Programa em Pascal exemplificando a pesquisa sequencial.

A figura 5.10 mostra o resultado da execução do programa apresentado na figura 5.9.


Depois dos valores inseridos pelo utilizador, é efetuada a pesquisa. De seguida, são efetua-
das comparações sucessivas entre os valores do vetor e o valor inserido para a pesquisa.
Sempre que é detetada uma igualdade é apresentada uma mensagem, indicando a posição
do valor no vetor. Caso não exista nenhuma igualdade, após efetuadas todas as compara-
ções, surge a mensagem “Número inteiro não encontrado”.

Fig. 5.10. Resultado da execução do programa


apresentado na figura 5.9.

O algoritmo de pesquisa binária permite efetuar a pesquisa de um elemento nos ele-


AIB12 O Porto Editora

mentos de um vetor com ou sem elementos repetidos, obrigatoriamente ordenados. Neste


processo de pesquisa são efetuadas divisões inteiras sucessivas por dois (pesquisa biná-
ria) no número de elementos do vetor, encontrando-se, desta forma, a posição do
elemento do meio. Este elemento vai ser comparado com o elemento a pesquisar. Consi-

LIONPT ONO O TIQIV


derando que o vetor está ordenado por ordem crescente, dará origem a uma de três situa-
ções:

e se o elemento do meio for igual ao elemento a procurar, a pesquisa termina;

e se 0 elemento do meio for menor que o elemento a procurar, a pesquisa continua,


repetindo-se o processo nos elementos da metade direita do vetor;

e se 0 elemento do meio for maior que o elemento a procurar, a pesquisa continua,


repetindo-se o processo nos elementos da metade esquerda do vetor.

A figura 5.11 apresenta um programa que efetua uma pesquisa binária num vetor orde-
nado de forma crescente.

1 Program PesgBinaria;
2 Var vetor: array [1..6] of integer;
3 j, posi, num, inicio, meio, fim: integer;
4 Begin
5 Writeln(“Insira 6 números inteiros para o vetor');
6 For j := 1 to 6 do
7 Begin
8 Write('Vetor[', 3, M] =");
9 Readln (vetor [j]);
10 End;
11 Write('Insira o numero inteiro a pesquisar ');
12 Readln (num) ;
13 Writeln;
14 fim := 6;
15 inicio := 1;
16 posi := 0;
17 Repeat
18 | meio := (inicio + fim) div 2;
19 | Writeln('Compara ', num, '* com ', vetor [meio]);
20 If num = vetor [meio] Then
21 | Begin
22 | | posi := meio;
23 | | inicio := fim + 1;
24 End
25 | Else
26 | Begin
27 | | If num < vetor [meio] Then
28 | | fim := meio - 1
29 | Else
30 | | inicio := meio + 1;
31 | End;
32 Until (inicio > fim);
33 Writeln;
34 If posi := 0 Then
35 Writeln('Numero inteiro não encontrado!) ;
36 Else
37 Writeln('Numero inteiro encontrado na posicao ', posi);
38 End.

Fig. 5.11. Programa em Pascal exemplificando a pesquisa binária.

A figura 5.12 mostra o resultado da execução do programa apresentado na figura


5.11. Depois dos valores inseridos pelo utilizador, é efetuada a pesquisa do elemento
23. Como o número de elementos do vetor é seis, o primeiro elemento do meio é o da
posição três (elemento 16). Como o elemento a pesquisar é maior que o elemento do
meio (23 > 16), a pesquisa continua do lado direito do vetor. Na nova divisão, o novo
elemento do meio encontra-se na quinta posição (18). Como o elemento a pesquisar con-
tinua a ser maior que o novo elemento do meio (23 > 18), a pesquisa continua do lado
direito do vetor. O novo elemento do meio corresponde, agora, ao número a pesquisar
(23).
5. Arrays 53

Jogo

Exercício

Fig. 5.12. Resultado da execução do programa


apresentado na figura 5.11.

Exercícios de aplicação 14

1. Elabore um programa, em Pascal, que permita declarar um vetor de 12 elementos (array


unidimensional) para registar a quantidade de hambúrgueres (em unidades) vendidos numa cadeia
de restaurantes, durante um ano, correspondendo cada posição do vetor a um mês.
O programa tem de permitir:
e inserir as quantidades;
e efetuar uma ordenação decrescente das quantidades, segundo o algoritmo de ordenação por

e efetuar a pesquisa, de acordo com o algoritmo de pesquisa sequencial, de uma determinada


quantidade indicada pelo utilizador, apresentando o mês em que se verificou. Caso não seja
encontrado o valor, é mostrada a mensagem “Valor não encontrado”.

5.2. Matrizes
As matrizes, arrays bidimensionais, têm duas dimensões, utilizando, por isso, duas
variáveis de índice, uma para a linha e outra para a coluna, para o acesso aos seus ele-
mentos. A sua representação gráfica corresponde a uma tabela de dupla entrada
(linha X coluna).

O quadro 5.4 apresenta o exemplo da matriz Classifica que guarda 15 números do tipo
inteiro, correspondentes às classificações da disciplina de Aplicações Informáticas. Estas
classificações referem-se a três períodos de um ano letivo (linhas) de cinco alunos de uma
turma (colunas).

Para tal, são utilizados dois índices (variáveis L e C) para aceder a cada um dos ele-
mentos da matriz (Classifica[L,C]).

Quadro 5.4

1 2 3 4 5
L
Classifical1,1] Classifical[1,2] Classifical[1,3] Classifical1,4] Classifica[1,5]
1
12 14 16 17 13

Classifical2,1] Classifical2,2] Classifical2,3] Classifical2,4] Classifical2,5]


2
AIB12 O Porto Editora

15 13 17 19 15
Exclusivo
Classifical3,1] Classifical3,2] Classifical3,3] Classifical3,4] Classifical3,5] do Professor
3
16 15 16 19 16

Solução
Introdução à Programação

5.2.1. Operações básicas com matrizes

LIONPT ONO O TIQIV


Exercício

A declaração das matrizes é feita na parte declarativa do programa.

Para declarar uma matriz é utilizada a palavra Var, seguida do nome da variável (nome).
A seguir, é indicado o tipo da variável (array) e o intervalo dos seus elementos ou índices
([1..n1,1..n2]).

Por último, é indicado o tipo de dados dos elementos da matriz (of <tipo de dado>) (quadro
5.5).
Quadro 5.5

Sintaxe Var <nome> array [1..n1,1..n2] of <tipo de dado>

Exemplo Var km: array [1..5,1..2] of real;

No exemplo apresentado no quadro 5.5, é declarada uma variável com o nome km, do
tipo array e com os intervalos de índices 1 a 5 (linhas) e 1 a 2 (colunas), cujos dados são
do tipo real.

O quadro 5.6 apresenta a sintaxe das instruções de leitura, de escrita e de atribuição


a uma matriz.
Quadro 5.6

Leitura Readln (<nome> [índice, índice])

Escrita Writeln (<nome> [índice, índice])

Atribuição <nome> [índice, índice] :=elemento

O programa apresentado na figura 5.13 permite inserir seis temperaturas pelo utilizador.

Depois, são efetuadas duas alterações em dois valores da matriz. E, por último, apre-
senta duas listagens.

1 Program op Basicas Matrizes;


2 Var temperatura: array [1..2,1..3] of real;
3 total, media: real;
4 1, c: integer;
5 Begin
6 Writeln('Digite 6 valores de temperatura”);
7 For 1 := 1 To 2 Do
8 For c :=1 To 3 Do
9 Begin
10 Write('Dia ', c, " registo ', 1, “" =");
11 Readln (temperatura [1,c]);
12 End;
13 Writeln;
14 Writeln('Atribuição do valor 10 para temperatura [2,1] e temperatura [1,2]');
pl temperatura [2,1] := 10;
16 temperatura [1,2] := 10;
17 Writeln;
18 Writeln('Listagem dos valores de temperatura da matriz, após alteração dos valores');
19 For 1 := 1 To 2 Do
20 For c := 1 To 3 Do
21 Writeln('Dia ', c, " registo ', 1, * =", temperatura[l,c]);
22 Writeln;
23 Writeln('Listagem dos valores de temperatura superiores a 10 da matriz');
24 For 1 := 1 To 2 Do
25 For c :=1 To 3 Do
26 Begin
27 If temperatura [1,c] > 10 then
28 Writeln('Dia ', c, "* registo ', 1, * =", temperaturall,c]);
29 End;
30 End.

Fig. 5.13. Programa em Pascal exemplificando a utilização de uma matriz.


5. Arrays 55

De realçar que numa matriz, para referenciar os seus elementos, é necessário fazer ,
variar duas variáveis de índice relativas às linhas e às colunas. Neste sentido, é necessá-
rio utilizar dois ciclos, sendo o mais adequado o ciclo For.

No exemplo apresentado na figura 5.13, o ciclo For I:=1 To 2 Do representa o índice


relativo às linhas (Il) e o ciclo For c:=1 To 3 Do representa o índice relativo às colunas (c).
Sempre que se efetuar uma operação que envolva percorrer todos os elementos da ma-
triz, é necessário utilizar os dois ciclos.

A figura 5.14 mostra o resultado da execução do programa apresentado na figura 5.13.


Depois dos valores inseridos na matriz temperatura, com 6 elementos (Linhas x Colunas =>
2x3 => 6), são realizadas duas atribuições, ambas de valor 10, a duas posições da matriz,
identificadas pela linha 2, coluna 1 e pela linha 1, coluna 2. Após as atribuições é efetuada
uma listagem de todos os valores da matriz. Por último, é efetuada a listagem dos valores su-
periores a 10 da matriz.

Fig. 5.14. Resultado da execução do programa apresentado na figura 5.13.

1. Responda às alíneas, tendo em atenção a seguinte estrutura da matriz km.

11 102 | 250 170


130 120 | 146 | 1400
140 121 | 118 | 1425

(A) Indique qual a posição (linha e coluna) cujos quilómetros são iguais a 146.
(B) Indique qual a posição [linha e coluna) da distância máxima registada na matriz.
(C) Calcule a diferença entre as distâncias máxima e mínima das registadas na matriz.
(D) Declare a matriz, tendo em atenção os valores dos elementos apresentados.

2. Elabore um programa, em Pascal, que permita declarar uma matriz (array bidimensional)
de 4 colunas por 4 linhas para registar as classificações de 4 alunos em 4 disciplinas (o número
do aluno corresponde ao número da linha e o número da disciplina corresponde ao número da
coluna). O programa tem de permitir:
e inserir as classificações;
e mostrar a classificação de um aluno a uma disciplina;
e mostrar todas as classificações de um aluno;
AIB12 O Porto Editora

e calcular a média de um aluno;


Exclusivo
e calcular a média de uma disciplina; do Professor
e determinar qual a nota máxima de um aluno, indicando a disciplina em que se registou.
Jogo
6. Cadeia de caracteres (string)
As cadeias de caracteres, também conhecidas por strings, fazem parte dos tipos de

PIONPT ONO O TIQIV


dados da linguagem Pascal, permitindo guardar em memória conjuntos de caracteres. Estes
conjuntos podem ter no máximo 255 caracteres, que podem ser alfabéticos, numéricos e
símbolos. As cadeias de caracteres podem ser utilizadas como vetores de caracteres (array
de char), por serem conjuntos de dados do mesmo tipo, isto é, do tipo carácter (char), per-
mitindo efetuar operações sobre cada um dos seus caracteres individualmente.

A declaração de uma variável do tipo string (cadeia de caracteres) é feita na parte de-
clarativa do programa. Para declarar uma string é utilizada a palavra Var, seguida do nome
da variável, sendo depois indicado o tipo de variável (string).
Tal como se apresenta no quadro 6.1, a declaração de uma variável do tipo string pode
ser realizada de duas formas, indicando:

e apenas o tipo string, que pode conter até 255 caracteres;

e o tipo string e a quantidade máxima de caracteres indicada entre parêntesis retos [ ].

Quadro 6.1

Sintaxe Exemplo

Var <nome> of string; Var nome: string;

| Var <nome> of string [n]; | var nacionalidade: string [40];

O programa apresentado na figura 6.1 permite ao utilizador inserir o seu nome até 32
caracteres e a sua localidade de nascimento. Depois, o programa conta e apresenta o nú-
mero de caracteres iguais ao a, maiúsculo ou minúsculo. Por último, apresenta uma mensa-
gem resultante da combinação do conteúdo de duas variáveis do tipo string.

1 Program Op Bas Strings;


2 Var NomeCompleto: string[32];
3 LocalNascimento: string;
4 Texto: string;
5 ContaA, I: integer;
6 Begin
7 Write (“Insira o sei nome (até 32 caracteres) ');
8 Readln (NomeCompleto) ;
9 Write (“Insira o nome da localidade onde nasceu ');
10 Readln (LocalNascimento);
11 For 1 := 1 To 32 Do
12 If (NomeCompleto(I] = 'a') Or (NomeCompletop[I] = 'A') Then
13 ContaA := ContaA + 1;
14 Writeln;
15 Writeln('No seu nome existem ', ContaA, * caracteres iguais ao a, maiúsculo ou minúsculo!);
16 Texto := 'A sua localidade de nascimento é ';
17 Writeln(Texto, LocalNascimento);
18 End.

Fig. 6.1. Programa em Pascal exemplificando a utilização de variáveis do tipo cadeia de caracteres.

Fig. 6.2. Resultado da execução do programa apresentado na figura 6.1.


6. Cadeia de caracteres [string] 57

A figura 6.2 mostra o resultado da execução do programa apresentado na figura 6.1.


Depois de o utilizador inserir as cadeias de caracteres nas respetivas variáveis (Nome- Jogo
Completo e LocalNascimento), é realizada a contagem do número de caracteres iguais ao
a, maiúsculo ou minúsculo, existentes na variável NomeCompleto. Para a realização da
contagem é utilizado um ciclo For que permite percorrer a variável NomeCompleto do tipo
string como um vetor de caracteres. Desta forma, através de uma estrutura de seleção If
é possível comparar cada carácter contando (contador conta) as situações em que estes
são iguais ao a, maiúsculo ou minúsculo. Após apresentação do número de caracteres a
maiúsculos ou minúsculos, é atribuída a cadeia de caracteres “A sua localidade de nasci-
mento é” à variável Texto do tipo string. Finalmente, é apresentada a mensagem resul-
tante da combinação do conteúdo das variáveis Texto e LocalNascimento.

O Pascal disponibiliza um conjunto de funções e procedimentos internos, sub-rotinas


predefinidas, para a realização de operações sobre strings, apresentados no quadro 6.2.

Quadro 6.2

Descrição Sintaxe
Length Função que devolve o número de caracteres existentes nene e CE CR
numa string (str).
UpCase Função que devolve os caracteres (chr] indicados em pese
maiúsculas.

Função que devolve o resultado da concatenação Concat (strl, str2, ..,


Concat (junção) de duas ou mais strings (str1, str2, ..., strn)
Do string): string;
indicadas.

Pos Função que devolve a posição ocupada numa string (str) Pos (substr, str: string):
pelo primeiro carácter de uma sub-string (substr). byte;
Função que devolve, de uma string, uma cópia de uma
sub-string [substr) indicada de acordo com a posição Copy (substr: string; posi:
Copy . To. , :
(posi) do início e do número de caracteres a copiar byte; num: byte): string;
(num).
Procedimento que exclui uma parte de uma string (str)
Delete(var str: string;
Delete passada como parâmetro, de acordo com a posição do
posi: byte; num: byte);
início (posi) e o número de caracteres indicados (num).
Procedimento que insere uma sub-string (substr) dentro | Insert (substr: string; var
Insert a ao , :
de uma string (str), numa posição (posi) indicada. str: string; posi: byte);
Procedimento que converte uma string (str) num valor
numérico (num). Se o conteúdo da string não puder ser Val(str: string; var num:
Val convertido, uma variável (erro) guarda o valor integer/real; var erro:
correspondente à posição em que ocorreu o primeiro integer);
erro. Caso não ocorra erro, guarda o valor zero.
str Procedimento que converte um valor numérico (num) OT SC IT
numa string (str).
Função que devolve o carácter correspondente ao código
Chr , naae Chr (valor: byte): char;
ASCII (valor) indicado.
ord Função que devolve o código ASCll correspondente ao Eae
carácter (chr) indicado.
AIB12 O Porto Editora

As figuras 6.3 a 6.8, a seguir apresentadas, exemplificam a realização de operações


sobre strings, através da utilização dos procedimentos e funções descritos no quadro 6.2.
Introdução à Programação

No programa apresentado na figura 6.3 são exemplificadas as seguintes operações

LIONPT ONO O TIQIV


das funções internas sobre strings:
e Length — determina o número de caracteres existentes na variável frase e atribui
esse número à variável num;
e UpCase — transforma em maiúsculas os caracteres existentes na variável frasei,
atribuindo-os à variável frase2;
e Pos — determina a posição do primeiro carácter da variável palavra existente na variá-
vel frase1 e atribui essa posição à variável num;
e Concat — junta ao conteúdo da variável frasei o conteúdo da variável palavra e atribui
a string resultante à variável frase2;
e Copy — a partir da posição posi, copia da variável frase2 os caracteres indicados em
num, atribuindo o resultado novamente à variável frase2 e substituindo nesta o seu
conteúdo anterior.

1 Program Length Upcase Pos Concat copy;


2 Var frasel, frase2, palavra: string;
3 num, posi: integer;
4 Begin
5 Write (“Insira uma pequena frase ');
6 Readln (frasel);
7 Writeln;
8 Writeln('CONTAR O NÚMERO DE CARACTERES - LENGTH
() ');
9 num := length (frasel);
10 Writeln('"Inseriu ”, num, '* caracteres');
11 Writeln;
12 Writeln('COLOCAR UMA STRING EM MAIÚSCULAS - UPCASE () ');
13 frase2 := upcase (frasel);
14 Writeln('A frase que inseriu em maiúsculas é — !', frase2);
15 Writeln;
16 Writeln ("POSIÇÃO DO PRIMEIRO CARÁCTER DA SUBSTRING - POS() );
17 Write('Insira uma substring que exista na sua frase ');
18 Readln (palavra) ;
19 num := pos (palavra, frasel);
20 Writeln('A palavra que inseriu começa na posição - ", num);
21 Writeln;
22 Write('Insira outra string para juntar à sua frase ');
23 Readln (palavra) ;
24 Writeln;
25 Writeln('CONCATENAR DUAS STRINGS - CONCAT() ');
26 frase2 := concat (frasel, palavra);
27 Writeln ("Resultado da concatenação - ', frase2);
28 Writeln;
29 Writeln('COPIAR UMA STRING - COPY() ');
30 Writeln('Frase inicial - ', frase2);
31 Write('Indique a partir de que posição quer copiar (de 1 até ', length(frase2), “)');
32 Readln (posi) ;
33 Write ('Indique quantos caracteres pretende copiar ');
34 Readln (num) ;
85 frase2 := copy (frase2, posi, num);
36 Writeln('Escolheu copiar - ', frase2);
37 End.

Fig. 6.3. Programa em Pascal exemplificando a utilização das funções de tratamento de strings Length, UpCase, Pos,
Concat e Copy.

A figura 6.4 mostra o resultado da execução do programa apresentado na figura 6.3.


De acordo com os dados inseridos pelo utilizador, são apresentados os resultados obtidos
pela utilização das funções de tratamento de strings Length, Upcase, Pos, Concat e Copy.
6. Cadeia de caracteres (string) 59

Fig. 6.4. Resultado da execução do programa apresentado na figura 6.3.

No programa apresentado na figura 6.5 são exemplificadas as seguintes operações


dos procedimentos internos sobre strings:
e Delete — a partir da posição posi, apaga da variável frasel o número de caracteres
indicados em num;
e Insert — a partir da posição posi, insere o conteúdo da variável palavra no conteúdo
da variável frasel.

1 Program Delete Insert;


2 Var frasel, palavra: string;
3 num, posi: integer;
4 Begin
5 Write ("Insira uma pequena frase ');
6 Readln (frasel);
7 Writeln;
8 Writeln('APAGAR CARACTERES DE UMA STRING - DELETE() ');
9 Write (“Indique a posição, na frase, para começar a apagar caracteres (de 1 até ',
length (frasel), “)');
10 Readln (posi) ;
11 Write ("Indique quantos caracteres pretende apagar ');
12 Readln (num) ;
13 delete (frasel, posi, num);
14 Writeln('Depois de apagar os caracteres indicados, a frase fica - ', frasel);
15 Writeln;
16 Writeln(' INSERIR CARACTERES NUMA STRING - INSERT() ');
17 Write('Indique a substring a inserir na frase ');
18 Readln (palavra) ;
19 Write(“Insira a posição, na frase, em que quer inserir os caracteres ');
20 Readln(posi);
21 Insert (palavra, frasel, posi);
22 Writeln('Frase final - ", frasel);
23 End.

Fig. 6.5. Programa em Pascal exemplificando a utilização dos procedimentos Delete e Insert, permitindo
a realização de operações relacionadas com o tratamento de strings.

A figura 6.6 mostra o resultado da execução do programa apresentado na figura 6.5.


De acordo com os dados inseridos pelo utilizador são apresentados os resultados obtidos
pela utilização dos procedimentos de tratamento de strings Delete e Insert.
AIB12 O Porto Editora

Fig. 6.6. Resultado da execução do programa apresentado na figura 6.5.


60

No programa apresentado na figura 6.7 são exemplificadas as seguintes operações

LIONPT ONO O TIQIV


das funções e procedimentos internos sobre strings:
e Chr — converte o valor numérico da variável num no carácter correspondente da ta-
bela de código ASCII, atribuindo-o à variável letra;
e Ord — converte o valor do carácter da variável letra no correspondente carácter da
tabela de código ASCII, atribuindo-o à variável num;
e Val — converte o número da variável pal (tipo string) para o tipo numérico, colocando-o
na variável num2. Caso dê erro, na conversão, é enviado pela variável erro um nú-
mero correspondente à posição em que ocorreu o primeiro erro;
e Str — converte o número da variável num para o tipo string, atribuindo-o à variável pal.

Program Val Str


Chr Ord;
Var letra: char;
wNH

erro, num: integer;


num2: real;
pal: string;
Begin
JON

writeln('CONVERTE UM VALOR NUMÉRICO INTEIRO NUM CARACTER - CGR() ! );


Write (“Insira um valor numérico inteiro entre 0 e 255 ');
o

Readln (num) ;
O

letra := chr (num) ;


wWNHOULOIAUWAwNHO

Writeln('Caracter correspondente ao valor numérico ', num, '* é ', letra);


NNNNHHHHHHHHHEAH

writeln('CONVERTER UM CARACTER NO VALOR NUMÉRICO INTEIRO (TABELA ASCII) - ORD() );


Write (“Insira um caracter (numérico, símbolo, letra maiúscula ou letra minúscula) ');
Readln (letra) ;
num := ord(letra);
Writeln('Valor numérico correspondente ao caracter ', letra, * é ", num);
wWriteln('CONVERTER UM NÚMERO DO TIPO STRING NUM VALOR NUMÉRICO - VAL() ! DE;
Write('Insira um número (tipo string) ');
Readln (pal);
val (pal, num2, erro);
If erro <> 0 Then
Writeln('Impossível converter string, ocorreu um erro no caracter ', erro);
else
24 Writeln('A string ', pal, * foi convertida no número real ', num2);
25 Writeln('A adição de ", num2, * com ", num2, '* é ", num2 + num2);
26 Writeln('CONVERTER UM VALOR NUMÉRICO NUM STRING - STR() DE;
27 Write ("Insira um valor numérico ');
28 Readln (num) ;
29 str (num, pal);
30 Writeln('Valor numérico ', num, * convertido em string ', pal);
31 Writeln('A adição de ', pal, * com ', pla, * é", pal + pal);
32 End.

Fig. 6.7. Programa em Pascal exemplificando operações relacionadas com o tratamento das strings, através da
utilização das funções Ord e Chr e dos procedimentos Val e Str.

A figura 6.8 mostra o resultado da execução do programa apresentado na figura 6.7.


De acordo com os dados inseridos pelo utilizador são apresentados os resultados obtidos
pela utilização dos procedimentos Val e Str e das funções Ord e Chr.

Fig. 6.8. Resultado da execução do programa apresentado na figura 6.7.


7. Sub-rotinas 61

Exercícios de aplicação 16 Exercício


1. Classifique cada uma das seguintes afirmações de verdadeira ou falsa.
(A) As cadeias de caracteres em Pascal podem conter apenas caracteres alfabéticos.
Jogo
(B) Duzentos e cinquenta e cinco é o número máximo de caracteres permitidos numa string.
(C) A declaração de uma string é realizada na parte declarativa do programa, podendo ter ou não a
indicação do número máximo de caracteres que pode conter.

2. Desenvolva um programa, em Pascal, que permita declarar as variáveis nomesc, resulconcat e esc
do tipo cadeia de caracteres. O programa tem de permitir:
e inserir o nome da sua escola para a variável nomesc;
º apresentar o número de caracteres existentes no nome da sua escola;
e apresentar em maiúsculas o nome da sua escola;
º apresentar a posição ocupada no nome pela primeira letra a;
e apresentar o conteúdo da variável resulconcat, devendo conter o resultado da concatenação, do
nome da sua escola com a localidade a que pertence. A localidade tem de ser acrescentada a
seguir ao nome da sua escola e separada deste por um traço;
e apresentar o resultado da variável esc, que contém uma cópia da palavra Escola, feita a partir da
variável nomesc;
e apresentar a cadeia de caracteres resultante após ter apagado a localidade na variável
resulconcat;
e apresentar a cadeia de caracteres resultante após ter inserido no início do nome da escola as
palavras “Frequento a ”.

3. Desenvolva um programa, em Pascal, que permita declarar uma variável do tipo carácter,
permitindo inserir apenas um carácter. O programa tem de:
e permitir ao utilizador indicar um valor numérico inteiro, entre 0 e 255, e apresentar o
correspondente carácter da tabela ASCII;
e permitir ao utilizador indicar um carácter e apresentar o correspondente valor numérico inteiro
da tabela ASCII;
* apresentar o número inteiro, resultante da conversão de uma string, que tinha sido previamente
lida para uma variável. Considere a possibilidade da string não poder ser convertida, resultando
no aparecimento de uma mensagem com a indicação da posição em que ocorreu o primeiro erro;
e apresentar a string, resultante da conversão de um número, que tinha sido previamente lido para
uma variável.

7. Sub-rotinas
As sub-rotinas são conjuntos de instruções identificadas por uma designação e que
podem ser executadas, ou seja, chamadas quantas vezes as necessárias num programa.
A declaração das sub-rotinas num programa, em Pascal, é feita na parte declarativa do pro-
grama principal e após a declaração das constantes e das variáveis. As sub-rotinas podem
ou não apresentar parâmetros (variáveis) na sua declaração, implicando, por sua vez, a pas-
sagem ou não de argumentos (variáveis, expressões ou dados) aquando da sua chamada.

Ao contrário das sub-rotinas predefinidas (quadro 6.2), estas são criadas pelo programador.
Os programas desenvolvidos, utilizando sub-rotinas, estruturam-se de uma forma modulari-
zada, permitindo uma melhor organização e consequente entendimento do seu código.
AIB12 O Porto Editora

Uma sub-rotina pode ser chamada por outra, contudo a que é chamada tem de ser decla- doExclusivo
Professor
rada numa ordem acima da que a chama. As sub-rotinas podem ser de dois tipos: funções ou
procedimentos.

Solução
62

7.1. Funções
As funções são sub-rotinas que, após a sua execução, devolvem obrigatoriamente um

BIONPY ONO] O TIAIV


resultado através do seu nome para o local de onde foram chamadas. O resultado tem
um determinado tipo de dados previamente definido na função. Por outro lado, a função
pode ter parâmetros associados a tipos de dados. A chamada para execução da função é
feita através de uma instrução de atribuição ou de saída de resultados, tal como exempli-
ficado no quadro 7.1.

Quadro 7.1

Instrução Exemplo

| Atribuição M := media;

| Saída de resultados | Writeln (“A média é = ", media); |

Na declaração de funções é utilizada genericamente a estrutura apresentada no quadro 7.2.

Quadro 7.2

Sintaxe Function nome da função [<parâmetros: tipo de dados>): <tipo de dados>;

Exemplo Function soma (a: Integer): Integer;

7.2. Procedimentos
Os procedimentos são sub-rotinas que, quando chamados, e ao contrário das funções,
não devolvem um resultado através do seu nome. Por isso, os procedimentos não estão
associados a um determinado tipo de dados. No entanto, podem ter parâmetros associa-
dos a tipos de dados.

Os procedimentos são chamados para execução apenas pela indicação do seu nome,
tal como exemplificado no quadro 7.3.

Quadro 7.3

Instrução Exemplo
Indicação do seu nome | CalcMaximo;

Na declaração de procedimentos é utilizada genericamente a estrutura apresentada no


quadro 7.4.

Quadro 7.4

Sintaxe Procedure nome do procedimento [<parâmetros: tipo de dados>): <tipo de dados>;

Exemplo Procedure CalcMaximo (c: Integer);

O programa apresentado na figura 7.1 permite ao utilizador inserir seis números inteiros
para um vetor. Depois, o programa determina e apresenta os números máximo e mínimo dos
elementos do vetor.
7. Sub-rotinas 63

UMEwNH Program Subrotinas;


Var num: array [1..6] of integer; Exercício
i: integer;

Function Max: integer;


Var vmax: integer;
JON

Begin
vmax := num(1];
o

For i := 2 To 6 Do
O

If num[i] > vmax then


twNHO
HHHHHA

vmax = num[il;
Max := vmax;
End;
WB

Procedure Min;
Var vmin: integer;
a
HHH

Begin
oa

vmin := num[1];
For i := 2 To 6 Do
H

If num[i] < vmin then


HO

vmin := num[il;
ND

Writeln('O menor valor existente no vetor é ', vmin);


ln

End ;
tw
UMa
NV

Begin
Writeln('Insira 6 valores inteiros');
fon]
MN

For i := 1 To 6 Do
HOlUWçco
wwnNNN

Begin
Write (“num[", 1, “] =");
Readln (num[i]);
End;
Writeln('O maior valor existente no vetor é ', Max);
in
VU

Min;
tw

End.
to
1

Fig. 7.1. Programa em Pascal exemplificando a utilização de sub-rotinas (procedimentos e funções).

A figura 7.2 mostra o resultado da execução do programa apresentado na figura 7.1.


No programa principal, o utilizador insere seis valores inteiros para uma variável vetor
(num). Ainda no programa principal, são chamadas a função (Max), através de uma instru-
ção de saída, e o procedimento (Min), através da indicação do seu nome. A função deter-
mina o valor máximo dos seis valores do vetor e passa-o, através do nome da função,
para a instrução de saída do programa principal. O procedimento determina o valor mf
nimo dos seis valores do vetor e apresenta-o através de uma instrução de saída colocada
no próprio procedimento.

Fig. 7.2. Resultado da execução do programa apresentado


na figura 7.1.

7.3. Variáveis locais e variáveis globais


As variáveis podem ser globais ou locais.
AIB12 O Porto Editora

As variáveis globais são declaradas na parte declarativa do programa principal e os


seus valores podem ser utilizados quer ao nível do programa principal, quer ao nível das
sub-rotinas do programa.
64 Introdução à Programação

As variáveis locais são declaradas na parte declarativa das sub-rotinas, sendo apenas

LIONPT ONO O TIQIV


Exercício utilizadas dentro da sub-rotina em que foram declaradas.

O programa apresentado na figura 7.3 calcula a área de um retângulo a partir dos valo-
res inseridos nas variáveis globais (comp e larg), utilizando um procedimento com uma va-
riável local (calc area).

Program Var Globais Locais;


wnNH Var comp, larg: real;
Procedure area;
Var calc area: real;
Begin
calc area := comp * larg;
JON

Writeln('A área do retângulo é ', calc area, ' metro quadrado”);


End;
Oo

Begin
Write('Digite a medida em metro da largura de retângulo ');
twNHO
HHHHHA

Readin (larg) ;
Write('Digite a medida em metro do comprimento do retângulo ');
Readin (comp) ;
area;
WB

End.

Fig. 7.3. Programa em Pascal exemplificando a utilização de variáveis locais e globais.

A figura 7.4 mostra o resultado da execução do programa apresentado na figura 7.3.


O utilizador insere dois valores reais em duas variáveis globais (larg e comp). Após a in-
serção dos valores é chamado e executado o procedimento area, permitindo calcular a
área do retângulo a partir dos valores existentes nas variáveis comp e larg. No procedi-
mento, para efetuar o cálculo da área, é declarada a variável local calc area. Por último,
é apresentado o resultado guardado nesta variável através de uma instrução de saída
existente no procedimento.

Fig. 7.4. Resultado da execução do programa apresentado na figura 7.3.

Exercícios de aplicação 17

1. Classifique cada uma das seguintes afirmações de verdadeira ou falsa.


(A) As sub-rotinas são conjuntos de instruções que são executadas uma única vez.
(B) As funções e os procedimentos são sub-rotinas de tipos diferentes.
(C) Depois de executados, os procedimentos, ao contrário das funções, não devolvem um resultado
através do seu nome.
(D) As variáveis globais e locais são declaradas na parte declarativa das sub-rotinas.

Crie um programa, em Pascal, que permita efetuar a leitura de dois valores reais, para as variáveis
globais altura e base, correspondentes às medidas da altura e comprimento da base de um
triângulo. De seguida, é efetuado o cálculo da área do triângulo, utilizando a função
Function Area Triangulo: real; e apresentado o resultado.

Crie um programa, em Pascal, que permita efetuar a leitura de dois valores reais, para as variáveis
Exclusivo
globais comp e larg, correspondentes às medidas do comprimento e da largura de um retângulo.
do Professor De seguida, é efetuado o cálculo do perímetro do retângulo e apresentado o resultado no
procedimento Procedure Perimetro;.

Solução
7. Sub-Rotinas 65

7.4. Passagem de argumentos Jogo

A passagem de argumentos é utilizada em programas com sub-rotinas (procedimentos


e funções), permitindo ao programador controlar os dados que são trocados entre o pro-
grama principal e as sub-rotinas. A importância deste aspeto aumenta à medida que o
tamanho e a complexidade dos programas também aumentam. Os argumentos corres-
pondem aos dados que são passados através da instrução de chamada da sub-rotina
para o cabeçalho desta. Estes dados são utilizados na sub-rotina e têm de coincidir em
número e tipo, tanto na declaração como na chamada desta.

A passagem de argumentos pode ser implementada por uma de duas formas: por valor
e por referência.

Na passagem por valor, ao ser cnamada a sub-rotina, são passadas cópias dos dados
ou das variáveis (argumentos) e atribuídas às variáveis (parâmetros) declaradas no cabe-
çalho da sub-rotina. Neste caso, na declaração da sub-rotina, não é utilizada a palavra Var
na declaração das variáveis dos parâmetros.

Os dados recebidos nas sub-rotinas, através dos seus parâmetros, podem sofrer alte-
rações nos seus valores. Mas estas não serão refletidas fora da sub-rotina, ou seja, não
serão passadas para as variáveis que serviram de argumentos na chamada das sub-roti-
nas, uma vez que são efetuadas sobre as cópias.

Na passagem por valor, na declaração de procedimentos e funções, são utilizadas gene-


ricamente as estruturas apresentadas no quadro 7.5.

Quadro 7.5

Sintaxe | Exemplo |

Procedure CalcMaximo (x, y:


Procedure nome do procedimento [<parâmetros: tipo de dados>);
integer);

Function CalcMin (a, b:


Function nome da função [<parâmetros: tipo de dados>): <tipo de dados>;
real): real;

Na passagem por referência, ao ser chamada a sub-rotina, os endereços das variáveis


dos argumentos são passados às variáveis dos parâmetros declaradas no cabeçalho da
sub-rotina.

Desta forma, as alterações sofridas nos dados das variáveis dos parâmetros refletem-
-se nas variáveis dos argumentos do programa principal.

Ao contrário da passagem por valor, na passagem por referência, a declaração da sub-


rotina utiliza a palavra Var na declaração das variáveis dos parâmetros.

Na passagem por referência, na declaração de procedimentos e funções, são utiliza-


das genericamente as estruturas apresentadas no quadro 7.6.

Quadro 7.6

Sintaxe Exemplo |

Procedure CalcMaximo (var x,


AIB12 O Porto Editora

Procedure nome do procedimento [<Var parâmetros: tipo de dados>);


y: integer);

Function CalcMin (var a, b:


Function nome da função [<Var parâmetros: tipo de dados>): <tipo de dados>;
real): real;

AIB12 FO5
66

O programa apresentado na figura 7.5 calcula a média e o total de dois valores inseridos

LIONPT ONO O TIQIV


pelo utilizador. Termina com a apresentação dos resultados e dos valores das variáveis, de-
pois de passagens de argumentos por valor e por referência na chamada, respetivamente,
de um procedimento e de uma função.

1 Program Valor Referencia;


2 Var a, b: integer;
3 media: real;
4 Function calcmedia(var x, y: integer): real;
5 Begin
6 x =x * 2;
7 y=y* 2;
8 calcmedia := (x + y) / 2;
9 End;
10 Procedure calctotal(n, m: integer);
11 Var total: integer;
12 Begin
13 m:=m+ 10;
14 n:=n+ 10;
15 total :=m+ hn;
16 Writeln('O total de “, n, "+", m, " é igual a ', total);
17 End;
18 Procedure leitura;
19 Begin
20 Write('“Insira um valor inteiro ');
21 Readin(a);
22 Write (“Insira outro valor inteiro ');
23 Readin(b);
24 End;
25 Begin
26 leitura;
27 wWriteln('1 - NO PROGRAMA PRINCIPAL a =',a, "b=",b);
28 Writeln;
29 media = calcmedia(a, Db);
30 Writeln('Após executar a função (calcmedia) com passagem de argumentos por referência');
31 Writeln('A média de ', a, "+", b, " é igual a ', media);
32 Writeln('2 - NO PROGRAMA PRINCIPAL a =',a, "“b=",b);
33 Writeln;
34 Writeln('Após executar o procedimento (calctotal) com passage de argumentos por valor');
35 calctotal
(a, b);
36 Writeln('3 - NO PROGRAMA PRINCIPAL a =',a, "b=",hb);
37 End.

Fig. 7.5. Programa em Pascal exemplificando a passagem de argumentos por referência e por valor.

A figura 7.6 mostra o resultado da execução do programa apresentado na figura 7.5.


O utilizador, através do procedimento leitura, insere dois valores reais em duas variáveis
globais (a e b). Após a apresentação destes valores, no programa principal, é efetuada a
chamada à função calcmedia e passada a referência das variáveis dos argumentos (a e b)
para as variáveis dos parâmetros (x e y).
Neste tipo de passagem de argumentos, é de realçar a utilização da palavra Var na
declaração da função calcmedia. Nesta função é calculado o dobro de cada um dos valo-
res passados e, de seguida, a sua média. No programa principal é apresentado o resul-
tado da média e a alteração registada nos valores das variáveis a e b após a execução da
função.

Fig. 7.6. Resultado da execução do programa apresentado na figura 7.5.


7. Sub-Rotinas

De seguida, a partir do programa principal, é chamado o procedimento calctotal e pas-


sados os valores das variáveis dos argumentos (a e b) para as variáveis dos parâmetros Exercício
(m e n). Neste procedimento é adicionado o valor 10 a cada uma das variáveis dos parã-
metros (m e n). De seguida, é calculado o total e apresentado o seu valor.

Por último, no programa principal são apresentados, novamente, os valores das variá-
veis a e b, sendo que, neste caso, não sofreram alterações dos seus valores após a
execução do procedimento.

Exercícios de aplicação 18
1. Classifique cada uma das seguintes afirmações de verdadeira ou falsa.
(A) As sub-rotinas apresentam necessariamente parâmetros na sua declaração.
(B) Um argumento representa o valor que é passado para um parâmetro da sub-rotina quando esta
é chamada.
(C) Tanto na passagem de argumentos por valor como por referência, na declaração das variáveis
dos parâmetros da sub-rotina, é utilizada a palavra Var.

2. Crie um programa, em Pascal, que permita efetuar a leitura de dois números reais. Mediante a
seleção de uma opção (carácter alfabético) deve ser efetuada uma operação aritmética e
apresentado o resultado da operação. Utilize uma estrutura de seleção múltipla (Case) para
implementar um menu com as seguintes opções:
A - Adição
M - Multiplicação
Caso seja selecionada uma opção diferente destas, será apresentada a mensagem “Opção
Inválida”.
Utilize procedimentos e funções para organizar o código relativo às operações aritméticas. Devem
ser utilizadas as seguintes declarações:
Procedure Adicao (a1, a2: real);
Function Multiplicacao (m1, m2: real): real;

3. Elabore um programa, em Pascal, que permita registar as distâncias percorridas, em quilómetros,


por um estafeta de uma pizzaria nas entregas efetuadas, em dez dias sucessivos de trabalho.
a) Declare um vetor de 10 elementos [array unidimensional) para registar as distâncias
percorridas.
b) Crie o procedimento InsiraDist, para permitir ao utilizador digitar as dez distâncias para o vetor,
apresentadas no quadro seguinte.

Dia 1 2 3 4 5 6 7 8 9 10
Distância 123,5 | 55,4 23,2 145 | 176,3 | 100 12 153 | 100,2 78

c) Crie o procedimento OrdenaDist, para permitir ordenar por ordem crescente os elementos do
vetor, utilizando o algoritmo de ordenação Insertion Sort.
d) Crie o procedimento ListagemoOrdl, para efetuar a listagem dos dados do vetor.
AIB12 O Porto Editora

e) Crie o procedimento Apresenta, para apresentar a quantidade de quilómetros percorridos num


determinado dia indicado pelo utilizador, realizando a pesquisa de acordo com o algoritmo de
pesquisa binária.

Exclusivo
do Professor

Solução
68 Introdução
à Programação

Jogo
8. Introdução à programação orientada
aos eventos
A programação orientada aos eventos é um paradigma da programação que dita que o

BIONP ONO] O TIAIV


fluxo do programa é controlado por eventos. Para atingir este objetivo a sua arquitetura
está dividida em duas partes distintas (fig. 8.1):
e a primeira encarrega-se de detetar os eventos (dispatcher) e encaminhá-los para tra-
tamento;
e a segunda encarrega-se de tratar os eventos, o que na prática se traduz pela execu-
ção de uma rotina (conjunto de instruções) que se destina a processar especifica-
mente um determinado evento (event handler).

Eventos

vw

Dispatcher

wY wY l

Handler 1 Handler 2 Handler 3


Fig. 8.1. Esquema representativo da arquitetura do paradigma
da programação orientada aos eventos.

8.1. Noção de evento no contexto da programação


Em programação, os eventos devem ser entendidos como ações externas ao programa
que podem ter diferentes origens, conforme a utilização que se pretende para a aplicação.

No desenvolvimento de GUI (Graphical User Interfaces), a origem mais provável dos


eventos será a interação do utilizador com o programa, quer esta se traduza, por exem-
plo, pelo pressionar de uma tecla, por um clique do rato sobre a área da aplicação ou
mesmo pelo fecho da janela da própria aplicação.

8.2. Comparação entre a programação orientada


ao fluxo e a orientada aos eventos
Na programação orientada ao fluxo, o programador determina a orientação do desenvol-
vimento do fluxo do programa. Na programação orientada aos eventos, o fluxo do programa
é determinado pela ocorrência dos eventos, não sendo, por isso, possível ao programador
determinar em que momento será executada determinada rotina.

8.3. Uso de uma linguagem orientada a eventos


A utilização de uma linguagem orientada a eventos permite direcionar o esforço de
programação no tratamento dos eventos, abstraindo-se o programador da sua deteção,
porque esta tarefa fica a cargo do código já fornecido pela própria linguagem.

Das várias linguagens que suportam o desenvolvimento de uma programação orien-


tada ao evento, o Visual Basic, que é uma linguagem orientada ao objeto, serve de re-
curso para a exposição deste ponto.
8. Introdução à programação orientada aos eventos 69

A figura 8.2 apresenta o ambiente do conjunto Microsoft Visual Studio Express 2013
for Windows Desktop. Vídeo

[oe Cr "=
Me Tv CUMAO MM NOS EST UMUM naur .. E
eee duma = e.
ads aqu 7
Z . »
emos

re rerts e (q Wrediar

etiray Started

Fig. 8.2. Ambiente do conjunto Microsoft Visual Studio Express 2013 for Windows Desktop.

Para iniciar um projeto seleciona- nes mp ro


-se no menu File a opção New Project e e ' erre Í
surge a caixa de diálogo da figura 8.3. mem =
Na caixa de diálogo New Project sur- + reco o
gem cinco modelos (Templates), Win- | Uo
dows Forms Application, Class Library, do
WPF Application, WPF Browser Applica- | rsss memicaneta nam
tion e Console Application. Nesta caixa ia ESSE e
de diálogo, seleciona-se a opção Win- ME DEE a Ce menams
dows Forms Application para desenvol- ===
— = —— Ca)
ver aplicações para o Windows. Fig. 8.3. Caixa de diálogo New Project.

Após a abertura de um novo projeto (fig. 8.4), são apresentadas as janelas: Formi, Tool-
box, Solution Explorer, Properties, entre outras.

DO cmaaçõo uid io mat rea tido Iago 4) ta dies teta


e ua MT MD MS A O ST e O
new DCE FP,
AIB12 O Porto Editora

Fig. 8.4. Janela com um novoprojeto Windows Forms Application aberto.


Introdução à Programação

8.3.1. Controlos

Em Visual Basic os controlos são objetos que podem ser fornecidos pela própria ferra-

LIONPA 00d O TIJIV


menta (controlos internos) ou controlos desenvolvidos por terceiros (controlos do utiliza-
dor). Os controlos contêm os seus próprios atributos e métodos. Em Visual Basic os atri-
butos são denominados propriedades.

Na janela do Visual Basic (fig. 8.4), os controlos podem ser visualizados na sua totali-
dade ou organizados nas seguintes categorias: Common Controls, Containers, Menus &
Toolbars, Data, Components, entre outras. O quadro 8.1 apresenta alguns controlos da
caixa Toolbox e a sua descrição.

Quadro 8.1

Categoria Descrição
Common Controls | Controlos mais comuns que permitem interagir com o utilizador.
Containers Contentores que permitem agrupar outros controlos.
Menus & Toolbars | Controlos para a criação de menus e de barras de ferramentas.
Data Controlos de processamento e ligações a base de dados.
Components Controlos que permitem a utilização de funcionalidades do sistema operativo.

Na figura 8.5 são apresentados os diversos controlos do Common Controls e no


quadro 8.2 são apresentadas as respetivas descrições.

Quadro 8.2

Identificação Descrição 4 Rasa


k Pointer 14]
1 Pointer Ponteiro de seleção. B Button
2 | Button Botão de comando que gera um evento quando o utilizador H a
clica sobre ele. a es +4]
Caixa de verificação que permite ativar ou desativar a sua so )
3 | CheckBox lecã ; DateTimePicker — 6
seleção. o A be F
4 | CheckedListBox Caixa de listagem com caixas de verificação que mostra uma A Linkiabei 8
lista de itens com uma caixa de seleção para cada um deles. E uta-— 19]
5 | ComboBox Caixa de combinação que mostra uma lista de itens que podem E Listview— 0]
ser selecionados ou inseridos novos. () —MaskedTedBox —11|
6 | DateTimePicker Seletor de data e hora que permite selecionar e mostrar uma ao
data e hora num determinado formato. los Motiiicom
: EB NumericUpDowm 14)
7. Label Rótulo que permite mostrar texto. EB PictureBox
8 | LinkLabel Hiperligação que mostra um rótulo de controlo para ED ProgressBar 16)
hiperligações, formatação e monitorização. us a RadioButton
:
. Caixa de listagem simples que mostra uma Lista de itens, as 18
9 | ListBox a o x EI TetBox
permitindo múltipla seleção. da ToolTp
10 | ListView carece Rd muttancona. que mostra uma lista de itens = Trio [21]
. . . . . . h

com diferentes formas de apresentação. ip


Caixa de texto com validação que utiliza uma máscara para
11 | MaskedTextBox . 7, q p Fig. 8.5. Controlos do
validar os caracteres desejados.
Common Controls.
12 | MonthCalendar Calendário mensal onde é possível selecionar uma data.
. Icone de notificação que coloca um ícone na área de notificação
13 | Notifylcon , . - ,
na barra de tarefas do Windows, durante a sua execução.

. Seletor numérico que permite incrementar ou decrementar


14 | NumericUpDown DOOU
valores, pressionando as respetivas setas direcionais.
8. Introdução à programação orientada aos eventos

Quadro 8.2 (cont.)

Identificação Descrição
15 | PictureBox Caixa de imagem que permite apresentar uma imagem.
Barra de progressão que mostra uma barra cuja evolução do seu preenchimento
16 | ProgressBar A - = ,
corresponde à execução de uma operação.
Botão de opção que permite selecionar uma só opção num conjunto agrupado
17 | RadioButton destes botões de acordo com uma lógica específica. Normalmente, estes
conjuntos são criados dentro de uma Caixa de Grupo (GroupBox) do Containers.
. Caixa de texto com formatação avançada que fornece a entrada de texto e
18 | RichTextBox a , =
recursos de edição com formatação avançada.
19 | TextBox Caixa de texto que permite digitar texto sem recursos de edição.

20 | ToolTip Dica que mostra informação quando se passa com o rato sobre um controlo.

21 | TreeView Lista em árvore que mostra informação organizada hierarquicamente.


22 | WebBrowser Navegador de páginas Web que permite a consulta destas dentro de um
formulário (simula um navegador].

Na figura 8.6 são apresentados os diversos controlos do Containers e no quadro 8.3


são apresentadas as respetivas descrições.

Quadro 8.3

Identificação Descrição 4 Containess


1 | FlowLayoutPanel Painel
ainel iza de de f forma automática
que organiza tomática o o fluxo
fluxo d dos seus ErdFlow anal

tofu) EeJes]poJ-
controlos segundo uma determinada disposição. E) Groupô
» ESTES Caixa de grupo que apresenta uma moldura em torno de Panel
um grupo de controlos com uma legenda opcional. EE SplitContainer
Painel que permite agrupar um conjunto de controlos e == TabControl
3 | Panel utilizar barras de deslocamento. Não apresenta uma E3 TableLayoutPanel—
legenda Essa as a e Fig. 8.6. Controlos do
ENO splitContainer Apresenta uma área dividida em dois painéis Containers.
redimensionáveis e permite adicionar controlos.
5 | TabControl Gere e mostra um conjunto de separadores relacionados,
que podem conter controlos e componentes.
O TableLayoutPanel Gere o aspeto dos seus componentes e organiza-os
automaticamente em forma de tabela.

Na figura 8.7 são apresentados os diversos controlos do Menus & Toolbars e no


quadro 8.4 são apresentadas as respetivas descrições.

Quadro 8.4

4 Menus
& Toolbars
Identificação Descrição
à Pointer
. Quando se clica com o botão direito do rato sobre um E] ContetMenuStrip— 1 ]
1 ContextMenuStrip .
controlo apresenta o menu de contexto associado. E Menustrip 12]
2 MenuStrip Permite criar, num formulário, um menu ordenado por ke StatusStrip
funcionalidades. E TooStrip————[4]
DD ToolStripContainer—| 5|
. Permite visualizar, num formulário, uma barra de estado
3 | StatusStrip . - .
com informação sobre o objeto visualizado. Fig. 8.7. Controlos do
Menus & Toolbars.
4 | ToolStrip Permite criar, num formulário, barras de ferramentas.
AIB12 O Porto Editora

Permite criar painéis em cada um dos lados de um


5 | ToolStripContainer | formulário que podem conter objetos do tipo ToolStrip,
StatusStrip, MenuStrip.
72 Introdução à Programação

8.3.2. Formulários

Um formulário (Form) é o nome que se dá em Visual

LIONPY OO] O TIAIV


Basic às janelas que fazem parte de um projeto criado
com o modelo Windows Forms Application (fig. 8.8).

O formulário atua como um contentor sobre o qual são


dispostos os controlos. Estes podem ser arrastados para
o formulário a partir da Toolbox.

Fig. 8.8. Janela do formulário (Formd).

E TS ds Assim que se inicia um novo projeto, surgem, normal-


à 23 DB mente do lado direito, duas janelas, contendo as informa-
«3 WindowsApplicationt ções relativas ao projeto (Solution Explorer) e às proprie-
Sã My Project
IEREO dades (Properties) do objeto que em cada momento está
selecionado (fig. 8.9).

O Solution Explorer (fig. 8.9) é uma janela do ambiente


Properties “2x
Forml.vb Fie Properties ”
de desenvolvimento integrado que contém e ajuda a gerir
os elementos do projeto como forms e módulos, que serão
ex [51] E
Build Action Compile desenvolvidos mais à frente. Os ficheiros são exibidos hie-
Copy to Output Direc Do not copy rarquicamente de uma forma muito semelhante à do Win-
Custom Tool
Custom Tool Namesps
dows Explorer.
File Name Formi.vb
O Properties (fig. 8.9) é uma janela que apresenta um
conjunto de campos de edição de acordo com o objeto
que está selecionado. Cada um dos campos diz respeito a
uma característica do objeto selecionado e que pode ser
Build Action
How the file relates to the build and deployment alterada.
processes.
Se as janelas do Solution Explorer ou do Properties não
estiverem visíveis, seleciona-se no menu View a opção So-
Fig. 8.9. Janelas do Solution
Explorer e do Properties. lution Explorer ou Properties Window.

Criação de um projeto
O formulário apresentado na figura 8.10 exemplifica a criação de um projeto com um
formulário e a utilização de alguns controlos. Para criar um novo projeto, seleciona-se no
menu File a opção New Project. De seguida, seleciona-se, na caixa de diálogo New Pro-
ject, a opção Windows Forms Application, que permite criar uma aplicação do tipo formu-
lário para o Windows. Atribui-se, por exemplo, o nome First Project ao projeto e pode-se,
também, alterar o local onde este vai ser guardado.

Primeira Aplicação no Visual Basic

Indique o primeiro e o último nomes

Executor Terminar

Fig. 8.10. Formulário do projeto com o nome


First Project.
8. Introdução à programação orientada aos eventos

Para criar o formulário apresentado na figura 8.10, é


necessário efetuar as seguintes operações: form! “sem windoss Forms Forms

fas [m)s dn
e Configurar o formulário (Form1) com as seguintes Fora cio mo were

propriedades (fig. 8.11): Forsior


Ser 2 de te.
fenpetantr Mm

Paper da sys ima


— Text: First Project (título do formulário); Test ferst Project
Ieario mr arco uma
— Size: 639; 244 (dimensões do formulário). po :
Adoro Ed
e Criar um rótulo (Label1) para o título “Primeira Apli- dporbóse Eratins cart! cus Pare
ee Mera Sirg ne
cação no Visual Basic”, com as seguintes proprie- Contato Feres Faro

dades (fig. 8.12): Eratdad


Lota te
true
ae ordr cá

— Font: tipo de letra Arial Black e tamanho da e


8
letra 18; e
O
— Text: Primeira Aplicação no Visual Basic. dep nnttodo font
depor ima
e Criar um rótulo (Label2) para o texto “Indique o pri- O posa gr
ES aeosoadmrsas
meiro e último nomes” com as seguintes proprieda- depoae Ed
des: det arnbtodo acer dy
E vox ser
— Font: tipo de letra Arial Black e tamanho da S Me mamôo
Mrerróco
letra 14; E Posse
E me 67% 244
— Text: Indique o primeiro e último nomes.
Ratos vrSoesiad ts x sor

e Criar uma caixa de texto (TextBox1) com as seguin- layoa

tes propriedades (fig. 8.13):

— Font: tipo de letra Arial e tamanho da letra Fig. 8.11. Janela Properties do
14,25; formulário Formi.

— Tabindex: 1.

TemtBon! Systems wircsmmes Forms "estos

Ejas [m)s
= ,
a
Bactc cio Ls do

AccessibleRole Default Border Tde FeegX

feiaopearance) ES
urso
Fort
tes
Arial, 14,750t
BackColor [) Control
Forec ci = vinSom * et
BorderStyle None
Cursor Default Lmes Strengl
] Array
Pafetadd Me
FlatStyle Standard
Sorcibys tora
EB Fort Arial Black; 18pt; style=Bold Tent
ForeColor E controirex
LA ter
Image [] (none) eis aros Faia
Imagealign MiddieCenter
1) :
ImageIndex [D) (none) cet eta Ego
Imagekey [L) (none) Acceçãs”*at ma
ImageList (none) Ao rop Falsa
RightToLeft No a ar actor ssmg terms
Text Primeira Aplicação no Visual Basic nte! Mer Strp nora
TextAlgn TopLeft Enade rue
UseMnemonic True raso Sadat true
UsewWakCursor False Todo No ortred
RB Behavior Mari era Mm
AlowDrop False Mittre ima
AustoElipsis False Passear
ContextMenuStrip (none) ResS edy me
Enabled True ento ss ruins rue
Tabindex 0 Tablredos 1
UseCompatible TextRendering False ” Taboo “rue
AIB12 O Porto Editora

Appearance (Applaator Sette)


Mas property setrrgs to am apede ator cortes sex te

Fig. 8.12. Janela Properties da Label1. Fig. 8.13. Janela Properties da TextBox1.
74 Introdução à Programação

e Criar um botão de comando (Button1) com o

LIONPT ONO O TIQIV


Baton! pe rios Forms frftor . texto “Executar” e com as seguintes proprieda-
jenjds (um) 7 des (fig. 8.14):
B
— Font: tipo de letra Comic Sans MS e tama-
” “ wir nho da letra 12;
spas .” re
nas aqi ras te — Text: Executar.
sua el ni
nt icçem re e Criar um botão de comando (Button2) com o
a e e "da

re Comic Sans MS; 17274 texto “Terminar” e com as seguintes proprieda-


e e des:
ae cre
ge dd Mae enter — Font: tipo de letra Comic Sans MS e tama-
auge irado re
es e re nho da letra 12;
get e
nPeTot ad “
— Text: Terminar.
Test tnecut ar
Testádgr Mese enter
estimagel etst ento
nata ru true
ea si a co True
nado e sr sor wa

Abud € we
de4 Aros we

te ter Prg wre


ef ess ve.
entes ”
eirto 4

(Agel
at mnrsettamga )
Magos property settrgs to apodestor corfepa str tão

Fig. 8.14. Janela Properties do Button1.

Após inserir, no Formi, os controlos do formulário é necessário introduzir as linhas de có-


digo de acordo com o funcionamento pretendido. Neste caso, o código vai ser inserido nos
botões de comando.

Para aceder à janela do editor do código do Visual Basic (Code Window), efetua-se um
duplo clique sobre o objeto ou seleciona-se o objeto e, no menu View, a opção Code. De se-
guida, surge a janela Code Window com algum código predefinido. Assim, ao efetuar um duplo
clique no botão Buttoni, abre-se a janela do editor com o código predefinido, a classe Formi
e o procedimento de evento Buttoni, Click (fig. 8.15). O nome do procedimento de evento é
constituído pelos nomes do objeto e do evento, separados por underscore (.). A indicação
Handles Button1.Click, associa o evento Click ao objeto ButtonZ.

Pei” vossas (pese Rs Page

“E )Mectas stimns) -

ser

£
ie

Fig. 8.15. Janela do editor do código do Visual Basic.

Nesta aplicação, pretende-se inserir o primeiro e último nomes na caixa de texto (TextBox1).
Quando se clicar no botão Button1 (Executar), pretende-se esconder a Label2 e o Button1 e
fazer surgir na caixa de texto (TextBox1) a mensagem “Bem-vindo ao Visual Basic”, concate-
nada com o conteúdo desta.
8. Introdução à programação orientada aos eventos 75

Para que o evento Click desencadeie as ações pretendidas, é necessário introduzir as


seguintes linhas de código (fig. 8.17):

Label2.Visible = False

TextBox1l.Text = “Bem-vindo ao Visual Basic” & TextBoxl.Text

Buttonl.Visible = False

Ao digitar as linhas de código no Visual Basic, este vai sugerindo hipóteses da sintaxe
do código a utilizar de acordo com o que está a ser inserido. A figura 8.16 mostra o fun-
cionamento do IntelliSense ao sugerir as hipóteses de sintaxes do código.

formmbst” tuss 4 (Desagr e 24t Fog

PD autor ” * cuk *
Formi |
a a
a.
' o E $ A k k E 9 t k

E dg iuboi
"+ TE so ss ses rs rs Ê
O (bel
E

End E err
z as

x rare e === ie = - == A
Fig. 8.16. Janela do editor do código exemplificando o funcionamento do IntelliSense.

Caso se clique no botão Button2 (Terminar), termina a execução da aplicação. Para


que este evento Click desencadeie a ação pretendida, é necessário introduzir a seguinte
linha de código (fig. 8.17):

End

Form ind pros) o (Desagr) Rat Pop o”

| Agrormi ” EJ(Dectar stwns) w


M
Pubis ass Formi
a
var e do Purconts jtckil ai sender bs yst em bIject, Val e bs e ” E 4 x

Labei?.visíble = false
seboxs. Tex -t y 1 Da “ 4 Textboxi.
Text
Burcont. visible
« False

Ii”
Ia

Fig. 8.17. Janela do editor com o código a inserir nos botões do formulário Form1.

A figura 8.18 apresenta o exemplo da execução desta aplicação após se selecionar a


opção Start Debugging no menu Debug. No formulário desta aplicação são, depois, inseri-
dos, pelo utilizador, o primeiro e último nomes.

Primeira Aplicação no Visual Basic

Indique o primeiro e o último nomes


Femando Pessos
AIB12 O Porto Editora

Executor Termnar

Fig. 8.18. Formulário da aplicação com os dados


de exemplo inseridos.
76 Introdução à Programação

A figura 8.19 apresenta o resultado da execução das linhas de código quando se clica

LIONPT ONO O TIQIV


no botão Executar do formulário apresentado na figura 8.18.

Primeira Aplicação no Visual Basic

Bem-vindo ao Visual Basic Fernando Pessoa

Fig. 8.19. Formulário da aplicação resultante do clique no botão


Executar do formulário apresentado na figura 8.18.

Exercícios de aplicação 19

1. Crie um projeto, em Visual Basic, com o nome PrimeiroProjeto, com o aspeto do formulário
apresentado na figura 1, de acordo com as indicações das alíneas seguintes.
a) Inserir três rótulos.
É Concatenar primeiro e último nomes
e Digite o primeiro nome.
e Digite o último nome. Digite o primeiro nome |
e Nomes concatenados. Digite o último nome
b) Inserir três caixas de texto: Nomes concatenados
e as duas primeiras destinam-se a receber
a entrada do primeiro e do último nomes; Sair Concatenar Limpar
e a terceira destina-se a apresentar o resultado
dos nomes concatenados. Esta caixa deve Fig. 1. Formulário do projeto (PrimeiroProjeto).

estar bloqueada para não permitir a inserção de texto [propriedade Enable).


c) Inserir três botões de comando com os nomes:
e Limpar, permitindo, quando clicado, efetuar a limpeza do conteúdo de todas as caixas de texto.
e Afigura 2 apresenta o código necessário para o funcionamento do botão Limpar, quando este
é clicado (evento Click);
TextBox1.Text ()
TextBox2.Text () = “”
TextBox3.Text () = “”

Fig. 2. Código do botão Limpar (evento Click).


e Concatenar, permitindo, quando clicado, juntar os dois nomes digitados nas duas primeiras
caixas de texto e apresentar o resultado na terceira caixa de texto;
e Sair, permitindo, quando clicado, terminar a execução do programa, através da utilização da
instrução End no código do botão relativo ao evento Click.
d) Altere o título do formulário para “Concatenar primeiro e último nomes”.

Crie um projeto, em Visual Basic, com o nome


ee TA TEL
CI TT RES SETE NIE 4 | | ES
SegundoProjeto (figura 3), que atribui à variável A
o valor lógico True e à variável Bo valor lógico
False. Depois, os valores lógicos das variáveis são VariávelA || Trocar
trocados entre si. Por último, são apresentados os
valores lógicos de cada variável. , |
9 Variável B Sair

Exclusivo
Fig. 3. Formulário do projeto (SegundoProjeto).
do Professor

Solução
8. Introdução à programação orientada aos eventos

8.3.3. Tipos de dados e operadores

Tal como na linguagem Pascal, anteriormente abordada nesta unidade, também o Vi-
sual Basic apresenta diferentes tipos de dados e operadores.

O quadro 8.5 apresenta os diferentes tipos de dados, o número de bytes ocupados e


o seu intervalo de valores.

Quadro 8.5

Tipo de dado Bytes ocupados Intervalo de valores

Depende da
Boolean plataforma de Verdadeiro/falso.
execução

Byte 1 O a 255 [sem sinal).

Char (string caracter) 2 O a 65 535 [sem sinal).


Date 8 0:00:00 [meia-noite] em 1 de janeiro de 0001 a 11:59:59 PM
em 31 de dezembro de 9999.
0 a +/-79 228 162 514 264 337 593 543 950 335
(+/-7,9...E+28) sem casas decimais;
. 0 a +/-7,922 816 251 426 433 759 354 395 033 5 com 28 casas
Decimal 16 o
decimais;
O número mais pequeno diferente de 0 é
+/-0,000 000 000 000 000 000 000 000 000 1 [+/-1E-28).
-1,797 693 134 862 32 E 308 a
Double (vírgula 8 -4,940 656 458 412 47 E 324 para números negativos;
flutuante) 4,940 696 458 412 465 44 E-324 a
1,797 693 134 862 315 70 E+308 para números positivos.
Integer 4 -2 147 48364822 147483 647
Lon 8 -9 223 372 036 854 755 808 a
9 9223372 036 854 755 807 (9.2...E+18) [com sinal).
4 ou 8 bytes
. dependendo de .
Object Pode conter qualquer tipo de dado.
ser plataforma
de 32 ou 64 bits
SByte 1 -128 a 127 (com sinal).

Short [short integer) 2 -32 768 a 32 767 (com sinal).

Single [vírgula 4 -3,402 823 5 E+38 a —1 401 298 E-45 para números negativos;
flutuante) 1,401 298 E-45 a 3,402 823 5 E+38 para números positivos.
. Depende da
ua pe plataforma de O a dois mil milhões de caracteres Unicode.
variável) -
execução
Ulnteger 4 0 a 4 294 067 295 [sem sinal).
ULong 8 0 a 18 446 744 073 709 551 615 (1,8...E+19]
(sem sinal.

User-Defined Depende da O limite de cada membro depende exclusivamente dos limites


AIB12 O Porto Editora

plataforma de .
(Estrutural) - associados ao seu tipo de dados.
execução
UShort 2 0 a 65 535 [sem sinal).
78 Introdução à Programação

O quadro 8.6 apresenta os operadores aritméticos utilizados na linguagem Visual

LIONPT ONO O TIQIV


Basic, com os respetivos exemplos. A coluna Resultado apresenta o resultado das opera-
ções da coluna Exemplo, utilizando os valores dos cálculos anteriores.

Quadro 8.6

Operador Operação Exemplo Resultado

+ Adição a=5+3 a=8

= Subtração b=a-as b=4

E Multiplicação c=bta CNES?

/ Divisão n=c/2 n = 16
Resto da z=1
Mod ADSENa . = 15 MOD 2 NO .
divisão inteira 2 (resto da divisão inteira de 15 por 2)
e y=7
a as 2 . RO .
, DS , (quociente da divisão inteira de 15 por 2)

a Exponenciação | x =y ?2 x = 49

O quadro 8.7 apresenta o operador de cadeias de caracteres utilizado na linguagem


Visual Basic, com o respetivo exemplo e resultado.

Quadro 8.7

Operador Operação Exemplo Resultado

& Concatenação t = “Bom ” & “dia!” t = Bom dia!

O quadro 8.8 apresenta diferentes formas de utilização do operador de atribuição utili-


zadas na linguagem Visual Basic. Na coluna Exemplo são apresentadas diferentes formas
de atribuição a uma variável em que um dos operandos é essa mesma variável. A coluna
Resultado apresenta o resultado das operações da coluna Exemplo, partindo do princípio
que a = 3 em cada exemplo.

Quadro 8.8

Operador Exemplo Equivalência Resultado


(a =3 para cada exemplo)
= a=3 a=3 a=3

à= a“=2 a-aí“a a=9


*= a *t= 2 a=-ara a = 6

A a /= 2 a=a/2 a=1,5
N= ad=2 a=a2 a=1
+= a+=2 a=a+2 a =s

—= a -= 2 a=a-q a=1

&= a & = “ dias” a=a ks “dias” a = 3 dias

O quadro 8.9 apresenta os principais operadores relacionais utilizados na linguagem


Visual Basic com os respetivos exemplos. A coluna Resultado apresenta o resultado das
operações da coluna Exemplo, considerando que às variáveis a e b são atribuídos os va-
lores 16 e 4, respetivamente.
8. Introdução à programação orientada aos eventos

Quadro 8.9

Jogo
Exemplo
Operador Operação (considerando que Resultado
a=16eb=4)

= iguala a=b False


<> diferente de a <> b True

< menor que a<hb False

> maior que a>b True

<= menor ou iguala a<=b False


>= maior ou iguala a >= Db True

O quadro 8.10 apresenta os principais operadores lógicos utilizados na linguagem Vi-


sual Basic, com os respetivos exemplos. A coluna Resultado apresenta o resultado das
operações da coluna Exemplo, considerando que às variáveis a, b e c são atribuídos os
valores 15, 7 e 3, respetivamente.

Quadro 8.10

Exemplo
Operador Operação (considerando que Resultado
a=15,b=7ec=3)

Não
NOT º NOT (a>b) False
(negação)

AND E . º (a>b) AND (b<c) False


(conjunção)
Ou
OR . e. . (a<b) OR (c>a) False
(disjunção inclusiva]

XOR Duo EaD (c>a) XOR (b>c) True


(Ou exclusivo]

O quadro 8.11 apresenta a sintaxe e o exemplo da declaração de uma variável em Vi-


sual Basic.

Quadro 8.11

Sintaxe Exemplo

Dim <id1, id2, ...> As <Tipo de dado> Dim Texto As String

Dim <id1, id2,...> As <Tipo de dado> <= valor> Dim Idade As Integer = 36

O quadro 8.12 apresenta a sintaxe e o exemplo da declaração de uma constante em


Visual Basic.

Quadro 8.12

Sintaxe Exemplo
AIB12 O Porto Editora

Const Pi As Single = 3.142

Const <id1, id2, ...> As <Tipo de dado> <= valor> Const Temperatura As Single = 3 * 5

Const Soma = 100


80 Introdução à Programação

8.3.4. Funções predefinidas


Jogo

O Visual Basic tem um conjunto predefinido de funções, nomeadamente matemáticas,

BIONPA ONO O TITIV


texto, conversão, diálogo, formatação, verificação, entre outras. Neste ponto, serão abor-
dadas as funções mais utilizadas de entre as de diálogo, de conversão e de texto.

Os quadros 8.13 e 8.16 apresentam as funções de diálogo existentes no Visual Basic.


Estas funções têm o objetivo de estabelecer a comunicação entre a aplicação e o utiliza-
dor, através de uma caixa de diálogo.

A função MsgBox (quadro 8.13) permite apresentar mensagens para o utilizador, reali-
zando a comunicação no sentido da aplicação para o utilizador. Os quadros 8.14 e 8.15
apresentam os valores que podem ser definidos no parâmetro Valor da Constante para
indicar os botões ou ícones a visualizar nas caixas de diálogo. O parâmetro Mensagem é
de definição obrigatória.
Quadro 8.13

Função | Sintaxe
MsgBox MsgBox(<Mensagem>, [Valor da Constante], [Título])
Exemplo | Resultado

E)

MsgBox (“Total”, 1, "Resultado”)

Quadro 8.14 Quadro 8.15

Valor | Constante Botão visualizado Valor Constante Ícone

0 vbOkOnly Botão OK 16 vbCritical Q

1 vbOkCancel Botões OK e Cancelar

2 vbAbortRetrylgnore | Botões Abortar, Repetir e Ignorar a Ponusa do 2

3 vbYesNoCancel Botões Sim, Não e Cancelar 48 vbExclamation à

4 vbYesNo Botões Sim e Não

5 vbRetryCancel Botões Repetir e Cancelar na Ponto ado MY

A função InputBox (quadro 8.16) permite a introdução de dados pelo utilizador, reali-
zando a comunicação no sentido do utilizador para a aplicação. O parâmetro Mensagem é
de definição obrigatória.
Quadro 8.16

Função Sintaxe

InputBox InputBox[<Mensagem>,
[Título], [Valor por defeito], [Coordenada XJ, [Coordenada Y])

Exemplo Resultado

InputBox (“Digite a
idade”, "Dados", 100,
500, 500)
8. Introdução à programação orientada aos eventos

O quadro 8.17 apresenta as principais funções de texto existentes no Visual Basic,


descritas a seguir:
* Len — devolve o número de caracteres existentes numa string indicada no seu parâmetro;
* Lcase — devolve os caracteres em minúsculas de uma string indicada no seu parâmetro;
* Ucase — devolve os caracteres em maiúsculas de uma string indicada no seu parâmetro;
* Asc — devolve o valor do código ASCII correspondente ao primeiro carácter da string
indicada no seu parâmetro;
e Chr — devolve o carácter correspondente ao código ASCII indicado no seu parâmetro.

Quadro 8.17

Função Sintaxe Exemplo Resultado

Len Lenl<expressão do tipo string>] nc = Len (“Aplicações”) nc = 10

Lcase Lcasel<expressão do tipo string>] t = Lcase (“VB”) t = vb

Ucase Ucasel<expressão do tipo string>]) t = Ucase (“vb”) t = VB

Asc Ascl<expressão do tipo string>] c = Asc (Wisual”) c= 86

Chr Chrl<valor inteiro>)] t = Chr (65) t=A

O quadro 8.18 apresenta a função de conversão Val do Visual Basic. Esta função per-
mite converter os números contidos numa cadeia de caracteres no seu correspondente
valor numérico.

Quadro 8.18

Função Sintaxe Exemplo Resultado

Val Vall<expressão do tipo string>] num = Val (“123”) + 6 | num = 129

Exercícios de aplicação 20

1. Crie um projeto, em Visual Basic, que permita a leitura de dois números reais e apresente a
sua média.

2. Crie um projeto, em Visual Basic, com o nome Calculadora, que


apresente como interface o formulário da figura 1, de acordo
com as indicações das alíneas seguintes.
a) Formate o texto dos objetos do formulário com o tipo de Letra Arial,
tamanho 12 pts e estilo Negrito.
b) O botão igual (=), quando clicado, permite apresentar o resultado da
operação selecionada.
c) O botão Limpar, quando clicado, deve efetuar a limpeza de todas as
caixas de texto.
Fig. 4. Formulário do projeto
d) O botão Sair, quando clicado, deve permitir terminar a execução do (Calculadora).
programa.
e) Adicione o código necessário para que a aplicação resolva, também, as operações de
exponenciação [2] e divisão inteira (Div).
AIB12 O Porto Editora

Exclusivo
do Professor

Solução
AIB12 F06
Introdução à Programação

BIONP ONO] O TITIV


3. Crie um projeto, em Visual Basic, com o
nome FTexto, que apresente como interface
o formulário da figura 2, de acordo com as
indicações das alíneas seguintes.
a) Formate o texto dos objetos do formulário
com o tipo de Letra Arial, tamanho 12 pts e
estilo Negrito.
b) A Label para apresentar o resultado deve
Fig. 2. Formulário do projeto (FTexto).
estar com tamanho fixo e ter o Border Style
como Fixed Single.
c) Para inserir os dados é utilizada uma caixa de entrada (InputBox), devendo o seu código ser
digitado no Form (evento Load).
A figura 3 apresenta o código necessário para o funcionamento da InputBox.

Label2.Text = InputBox(“Insira o texto”)

Fig. 3. Código da InputBox.

d) O botão Limpar, quando clicado, deve efetuar a limpeza do conteúdo da caixa de texto e
desativar a seleção das caixas de seleção.
A figura 4 apresenta o código necessário para o funcionamento do botão Limpar, quando este é
clicado (evento Click).
Private Sub Buttonl Click(Sender As Object, e As EventArgs) Handles Buttonl.Click
CheckBox1.Checked = False
CheckBox2.Checked = False
CheckBox3.Checked = False
End Sub

Fig. 4. Código do botão Limpar (evento Click).

e) O botão Mostrar, quando clicado, permite apresentar o resultado de uma ou mais operações
selecionadas através de caixas de mensagem [MsgBox]. No caso de não ter sido selecionada
nenhuma operação surge a caixa de mensagem com a indicação "Nenhuma caixa de seleção foi
selecionada”.
A figura 5 apresenta o código necessário para o funcionamento do botão Mostrar, quando este é
clicado (evento Click).
Private Sub Button2 Click(Sender As Object, e As EventArgs) Handles Button2.Click
If CheckBox1.Checked Then
MsgBox (UCase (Labe1l2 .Text))
End If
If CheckBox2.Checked Then
MsgBox (LCase (Label2.Text))
End If
If CheckBox3.Checked Then
MsgBox (Len (Label2.Text))
End If
End Sub

Fig. 5 Código do botão Mostrar (evento Click).

f) O botão Sair, quando clicado, deve permitir terminar a execução do programa.

Exclusivo
do Professor

Solução
8. Introdução à programação orientada aos eventos 83

8.3.5. Estruturas de controlo


Jogo

As estruturas de controlo avaliam o desenrolar das instruções de um programa. Estas


subdividem-se em estruturas: de decisão ou de seleção e de repetição ou de ciclos. O
quadro 8.19 apresenta um resumo de algumas estruturas de controlo utilizadas no Visual
Basic.

Quadro 8.19

Estruturas de decisão ou de seleção Estruturas de repetição ou de ciclos

If... Then... Do While... Loop


If... Then... Else.. While... End While
If....Then... Elself.. Do Until.. Loop
Select Case... Do... Loop While
Do... Loop Until
For... Next

Estruturas de decisão ou de seleção


A estrutura de decisão ou de seleção If... Then... executa uma ação se a condição for
verdadeira, caso contrário não executa nenhuma.

O quadro 8.20 apresenta a sintaxe da estrutura de seleção If... Then...

Quadro 8.20

Sintaxe da estrutura If... Then...

If <expressão> Then
<bloco de instruções>
End If

A figura 8.20 mostra a exemplificação da utilização desta estrutura, determinando a


maioridade de uma pessoa. O formulário principal contém um controlo do tipo label (Label1)
e o código é inserido no handler load.
No exemplo do código apresentado na figura 8.20, são utilizadas duas funções (Val e
InputBox) para atribuir um valor numérico à variável a. A função Val tem como objetivo con-
verter o valor inicialmente inserido pelo utilizador, através da InputBox, com o título Variável
A, que é do tipo cadeia de caracteres (string), no seu correspondente valor numérico.

Public Class JanelaPrincipal


Private Sub JanelaPrincipal Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles MyBase.Load
Dim a = Val (InputBox (“Digite uma idade”, “Variável A”))
If a < 18 Then
AIB12 O Porto Editora

Labell.Text = “Menor de Idade”


End If
End Sub
End Class

Fig. 8.20. Código exemplificativo da estrutura de seleção If... Then...


84 Introdução à Programação

A figura 8.21 apresenta um exemplo da execução do código da aplicação visível na fi-

LIONPT ONO O TIQIV


gura 8.20 com a inserção do valor 15 na InputBox. Após clicar-se no botão OK, surge a
janela do formulário Exemplo If com o resultado apresentado numa label (fig. 8.22).

Pan x

Re ==
Fig. 8.22. Janela resultante
Fig. 8.21. Caixa de diálogo da InputBox do clique no botão OK
com os dados de exemplo inseridos. apresentado na figura 8.21.

A estrutura de decisão ou de seleção If... Then... Else... permite avaliar uma condição.
Se esta for verdadeira executa uma determinada ação. Senão, se for falsa, executa uma
ação alternativa.

O quadro 8.21 apresenta a sintaxe da estrutura de seleção If... Then... Else... A figura
8.23 mostra a exemplificação da utilização desta estrutura, determinando a maioridade de
uma pessoa.

No exemplo do código apresentado na figura 8.23, é testado se o valor da variável a


inserido é menor que 18. Se for verdade, escreve a mensagem “Menor de Idade”, senão,
se for falsa, escreve a mensagem “Maior de Idade”.

Quadro 8.21

Sintaxe da estrutura If... Then... Else...

If < expressão> Then


<bloco de instruções>
Else
<bloco de instruções>
End If

Public Class JanelaPrincipal


Private Sub JanelaPrincipal Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles MyBase.Load
Dim a = Val (InputBox (“Digite uma idade”, “Variável A”))
If a < 18 Then
Label1.Text = “Menor de Idade”
Else
Labell.Text = “Maior de Idade”
End If
End Sub
End Class

Fig. 8.23. Código exemplificativo da estrutura de seleção If... Then... Else...

A figura 8.24 apresenta um exemplo da execução do código da aplicação mostrado na


figura 8.23, com a inserção do valor 18 na InputBox. Após clicar-se no botão OK, surge a
janela do formulário Exemplo If Else com o resultado apresentado numa label (fig. 8.25).

Fig. 8.25. Janela resultante


Fig. 8.24. Caixa de diálogo da InputBox do clique no botão OK
com os dados de exemplo inseridos. apresentado na figura 8.24.
8. Introdução à programação orientada aos eventos 85

A estrutura de decisão ou de seleção If... Then... Elself... permite avaliar várias condi-
ções encadeadas.

O quadro 8.22 apresenta a sintaxe da estrutura de seleção If... Then... Elself...


A figura 8.26 mostra a exemplificação da utilização desta estrutura, determinando o grupo
etário de uma pessoa.

Quadro 8.22

Sintaxe da estrutura If... Then... Elself...

If <expressão> Then
<bloco de instruções>
Elself <expressão> Then
<bloco de instruções>
Elself <expressão> Then
<bloco de instruções>
End If

Public Class JanelaPrincipal


Private Sub JanelaPrincipal Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles MyBase.Load
Dim a As Integer
a = Val (InputBox (“Digite uma idade”, “Variável A”))
If a< 1 Then
Labell.Text = “Ainda não nasceu”
ElseIf a < 4 Then
Labell.Text = “Bebé”
ElseIf a < 11 Then
Label1.Text = “Criança”
ElseIf a < 18 Then
Label1.Text = “Adolescente”
ElseIf a < 31 Then
Label1l.Text = “Jovem”
ElseIf a < 81 Then
Labell.Text = “Adulto”
ElseIf a < 101 Then
Label1l.Text = “Idoso”
Else
Labell.Text = “Extraordinário”
End If
End Sub
End Class

Fig. 8.26. Código exemplificativo da estrutura de seleção If... Then... Elself...

No exemplo do código apresentado na figura 8.26, é testado o valor da variável a inse-


rido, determinando o grupo etário da pessoa. Se nenhuma das condições for satisfeita
então é apresentada a mensagem “Extraordinário”.

A figura 8.27 apresenta um exemplo da execução do código da aplicação apresentado


na figura 8.26, com a inserção do valor 111 na InputBox. Após clicar-se no botão OK, surge
a janela do formulário Exemplo If Elself, com o resultado apresentado numa label (fig. 8.28).
AIB12 O Porto Editora

Fig. 8.28. Janela resultante


Fig. 8.27. Caixa de diálogo da InputBox do clique no botão OK
com os dados de exemplo inseridos. apresentado na figura 8.27.
86 Introdução à Programação

A estrutura de decisão ou de seleção Select Case... é utilizada para selecionar uma de

LIONPT ONO O TIQIV


várias opções de acordo com o valor de uma variável.

O quadro 8.23 apresenta a sintaxe da estrutura de seleção Select Case... A figura


8.29 mostra a exemplificação da utilização desta estrutura, determinando o grupo etário
de uma pessoa.
Quadro 8.23

Sintaxe da estrutura Select Case...

Select Case <variável a testar>


Case <valor da variável>
<bloco de instruções>
Case <valor da variável>
<bloco de instruções>
Case <valor da variável>
<bloco de instruções>
End Select

No exemplo do código apresentado na figura 8.29, de acordo com o valor da variável a


inserido, é selecionada uma opção indicando o grupo etário da pessoa. A opção Case Else
permite o tratamento de exceções. Ou seja, quando o valor da variável a não corresponder
a nenhuma das opções, a aplicação apresenta a mensagem “Extraordinário”.

Public Class JanelaPrincipal


Private Sub JanelaPrincipal Load(ByVal sender As System.0Object, ByVal e As System.EventArgs)
Handles MyBase.Load
Dim a As Integer
a = Val (InputBox (“Digite uma idade”, “Variável A”))
Select Case a
Case Is < 1
Label1.Text = “Ainda não nasceu”
Case 1, 2,3 «< 4
Label1.Text “Bebé”
Case 4 To 10
Labell.Text = “Criança”
Case 11 To 17
Label1.Text = “Adolescente”
Case 18 To 30
Label1.Text = “Jovem”
Case 31 To 80
Label1l.Text = “Adulto”
Case 81 To 100
Label1.Text = “Idoso”
Case Else
Label1l.Text = “Extraordinário”
End Select
End Sub
End Class

Fig. 8.29. Código exemplificativo da estrutura de seleção Select Case...

A figura 8.30 apresenta um exemplo da execução do código da aplicação apresentado


na figura 8.29 com a inserção do valor 78 na InputBox. Após clicar-se no botão OK, surge
a janela do formulário Exemplo Case com o resultado apresentado numa label (fig. 8.31).

Fig. 8.31. Janela resultante


Fig. 8.30. Caixa de diálogo da InputBox c do clique no botão OK
om os dados de exemplo inseridos. apresentado na figura 8.30.
8. Introdução à programação orientada aos eventos 87

No exemplo anterior (fig. 8.29), na estrutura Select Case..., foram utilizadas duas pala-
vras reservadas, o Is e o To. A palavra reservada To permitiu definir intervalos de valores
(limite inferior To limite superior) a comparar e a palavra reservada Is permitiu utilizar o
operador menor (<) para comparar o valor de entrada com um dado valor (1).

Estruturas de repetição ou de ciclos


A estrutura de repetição ou de ciclo For... Next é utilizada quando inicialmente se co-
nhece o valor de início e de fim do ciclo. Para tal, utiliza uma variável contador que incre-
menta ou decrementa automaticamente um determinado valor (passo), através da utiliza-
ção da palavra reservada Step. Quando se pretende decrementar o valor inicial da variável
contador é maior que o seu valor final e o Step tem de ter um valor de passo negativo (For
nc = 20 To 1 Step — 2).

Nesta estrutura a variável contador é automaticamente declarada dentro do ciclo


For... Next.

O quadro 8.24 apresenta a sintaxe da estrutura For... Next. A figura 8.32 mostra a
exemplificação da utilização desta estrutura, calculando a soma acumulada de números
gerados a partir de um valor inicial até a um valor final, indicado pelo utilizador, com incre-
mentos, por defeito, de um.

Quadro 8.24

Sintaxe da estrutura For... Next

For <variável contador> = <valor inicial> To <valor final> [Step <passo>]


<bloco de instruções>
Next

Public Class JanelaPrincipal


Private Sub JanelaPrincipal Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles MyBase.Load
Dim a, cont As Integer, sum As Long
a = Val (InputBox (“Digite uma idade”, “Variável A”))
For cont = 1 Toa
sum += cont
Next
Labell.Text = sum
End Sub
End Class

Fig. 8.32. Código exemplificativo da estrutura de repetição For... Next.

A figura 8.33 apresenta um exemplo da execução do código da aplicação apresentado


na figura 8.32, com a inserção do valor 12 na InputBox. Após clicar-se no botão OK, surge
a janela do formulário Ciclo For... Next, com o resultado (78) apresentado numa label
(fig. 8.34).

pe cmo CE
ad
AIB12 O Porto Editora

Fig. 8.34. Janela resultante


Fig. 8.33. Caixa de diálogo da InputBox do clique no botão OK
com os dados de exemplo inseridos. apresentado na figura 8.33.
A estrutura de repetição ou de ciclo Do While... Loop permite repetir um bloco de có-

LIONPT ONO O TIQIV


digo enquanto uma determinada condição for verdadeira.

O quadro 8.25 apresenta a sintaxe da estrutura Do While... Loop.

Quadro 8.25 A figura 8.35 mostra a exemplificação da utiliza-


Sintaxe da estrutura Do While... Loop ção desta estrutura, calculando a soma acumulada
de números gerados a partir do valor 1 até ao valor
Do While < expressão> indicado pelo utilizador com incrementos de 1.
<bloco de instruções> Ao ser executada esta aplicação, para o mesmo
Loop valor de entrada (12) é apresentado o mesmo re-
sultado (78).

Public Class JanelaPrincipal


Private Sub JanelaPrincipal Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles MyBase.Load
Dim a, cont As Integer, sum As Long
a = Val (InputBox (“Digite uma idade”, “Variável A”))
Do While cont <= a
sum += cont
cont += 1
Loop
Label1.Text = sum
End Sub
End Class

Fig. 8.35. Código exemplificativo da estrutura de seleção Do While... Loop.

De notar que, no código apresentado na figura 8.35, para calcular a soma acumulada
dos valores gerados foram utilizadas as variáveis sum e cont. A variável sum vai acumu-
lando a soma dos valores que vão sendo gerados e a variável cont vai servir de contador,
incrementando o seu valor até atingir o valor indicado, correspondente ao número de ciclos.

A estrutura de repetição ou de ciclo While... End While permite repetir um bloco de có-
digo enquanto uma determinada condição for verdadeira. Esta estrutura é equivalente à
anterior mudando apenas a sua sintaxe (quadro 8.26).

Quadro 8.26

Sintaxe da estrutura While... End While

While <expressão>
<bloco de instruções>
End While

A estrutura de repetição ou de ciclo Do... Loop While permite repetir um bloco de có-
digo enquanto uma determinada condição for verdadeira. A diferença para a estrutura Do
While... Loop é que o bloco de instruções nela contido será sempre executado pelo menos
uma vez porque, neste caso, a condição de controlo do ciclo é testada no fim.

O quadro 8.27 apresenta a sintaxe da estrutura Do... Loop While.

Quadro 8.27

Sintaxe da estrutura Do... Loop While

Do
<bloco de instruções>
Loop While <expressão>
8. Introdução à programação orientada aos eventos 89

A figura 8.36 mostra a exemplificação da utilização desta estrutura, resolvendo a situa-


ção enunciada anteriormente no ciclo Do While... Loop. Ao ser executada a aplicação,
para o mesmo valor de entrada (12), esta apresenta o mesmo resultado (78).

Public Class JanelaPrincipal


Private Sub JanelaPrincipal Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles MyBase.Load
Dim a, cont As Integer, sum As Long
a = Val (InputBox (“Digite uma idade”, “Variável A”))
Do
sum += cont
cont += 1
Loop While cont <= a
Label1.Text = sum
End Sub
End Class

Fig. 8.36. Código exemplificativo da estrutura de seleção Do... Loop While.

A estrutura de repetição ou de ciclo Do Until... Loop permite repetir um bloco de código


enquanto uma determinada condição for falsa.

O quadro 8.28 apresenta a sintaxe da estrutura Do Until... Loop.

A figura 8.37 mostra a exemplificação da utilização Quadro 8.28


desta estrutura, resolvendo a situação enunciada anterior. | sintaxe da estrutura Do Until... Loop
mente no ciclo Do While... Loop. Ao ser executada a aplica-
ção, para o mesmo valor de entrada (12), esta apresenta o Do Until <expressão>
<bloco de instruções>
mesmo resultado (78).
Loop

Public Class JanelaPrincipal


Private Sub JanelaPrincipal Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles MyBase.Load
Dim a, cont As Integer, sum As Long
a = Val (InputBox (“Digite uma idade”, “Variável A”))
Do Until cont > a
sum += cont
cont += 1
Loop
Label1.Text = sum
End Sub
End Class

Fig. 8.37. Código exemplificativo da estrutura de seleção Do Until... Loop.

A estrutura de repetição ou de ciclo Do... Loop Until permite repetir um bloco de código
enquanto uma determinada condição for falsa. A diferença para a estrutura
Do Until... Loop é que o bloco de instruções nela contido será sempre executado pelo
menos uma vez, porque, neste caso, a condição de controlo do ciclo é testada no fim.

O quadro 8.29 apresenta a sintaxe da estrutura Do... Loop Until.

Quadro 8.29

Sintaxe da estrutura Do... Loop Until


AIB12 O Porto Editora

Do
<bloco de instruções>
Loop Until <expressão>
Introdução à Programação

A figura 8.38 mostra a exemplificação da utilização desta estrutura, resolvendo a situa-

LIONPT ONO O TIQIV


Jogo ção enunciada anteriormente no ciclo Do While... Loop. Ao ser executada a aplicação,
para o mesmo valor de entrada (12), esta apresenta o mesmo resultado (78).

Public Class JanelaPrincipal


Private Sub JanelaPrincipal Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles MyBase. Load
Dim a, cont As Integer, sum As Long
a = Val (InputBox (“Digite uma idade”, “Variável A”))
Do
sum += cont
cont += 1
Loop Until cont > a
Labell.Text = sum
End Sub
End Class

Fig. 8.38. Código exemplificativo da estrutura de seleção Do... Loop Until.

Exercícios de aplicação 21

1. Crie um projeto, no Visual Basic, com um formulário que permita a inserção de um número inteiro.
Caso seja inserido um número diferente de zero, surge a mensagem “O número indicado é
diferente de zero”. Caso contrário, não é desencadeada qualquer ação.

2. Crie um projeto, no Visual Basic, com um formulário que permita a inserção do seu nome e ano de
nascimento, surgindo depois a mensagem “E maior de idade”, caso tenha uma idade igual ou
superior a 18 anos e, caso contrário, surge a mensagem “E menor de idade”.

3. Crie um projeto, no Visual Basic, com um formulário que permita apresentar a designação do mês e
a respetiva estação do ano, mediante a indicação do mês através de um número inteiro entre 1 e 12.
Caso o número indicado não pertença ao intervalo entre 1 e 12, surge a mensagem “Mês indicado
errado”.

4. Crie um projeto, no Visual Basic, com um formulário que permita apresentar o valor do desconto,
obtido a partir do valor de compras indicado. O cálculo do desconto é efetuado de acordo com os
seguintes valores de compras: <1000 sem desconto, >=1000 e <10000 desconto de 10% e >=10000
desconto de 20%.

5. Crie um projeto, no Visual Basic, que mostre todos os números pares inteiros positivos inferiores ou
iguais a um dado número inserido pelo utilizador. Por exemplo, caso insira o número 8 deverão ser
apresentados os números pares 2,4,6€e8.

8.3.6. Sub-rotinas

Tal como em Pascal, o Visual Basic permite a utili-


zação de procedimentos (Sub) e funções (Function)
contendo ou não parâmetros passados por valor
(ByVal) ou referência (ByRef). As sub-rotinas só
raueno podem ser declaradas dentro de módulos (ficheiro do
o Frotessor . . .
projeto), estruturas (conjunto de dados e sub-rotinas Fig. 8.39, Janela do Solution Explorer com
estruturados) ou classes (protótipos de objetos). o menu de contexto aberto.

Solução
8. Introdução à programação orientada aos eventos 91

Para adicionar um módulo na janela do Solution Explorer (fig. 8.39) clica-se com o
botão direito do rato sobre a designação do projeto e, no menu de contexto, seleciona-se
a opção Add seguida da opção Module. Outra forma seria selecionar a opção Add Module,
no menu Project.

Depois de definir o nome do módulo, ao adicioná-lo ao projeto surge de imediato a ja-


nela de código que permite inserir o código das sub-rotinas (fig. 8.40).

As funções devolvem um
* [(Deciaratrons)
valor, através do seu nome, pasar
para o local onde a função é
chamada ou evocada. Este
valor pode ser passado ao
<
nome da função através de
Fig. 8.40. Janela de código do módulo.
uma atribuição ou através da
instrução Return.

Quando é utilizada a instrução Return, para além da passagem do valor ao nome da


função, a função termina a sua execução.
Quadro 8.30
Por outro lado, ao serem chamadas através do
seu nome, podem ter uma lista de argumentos pas- Sintaxe de uma função
sados por referência (ByRef) ou por valor (ByVal) Function NomeFunção(largumentos]) [As tipo]
aos parâmetros da função. Finalmente, para cha- <bloco de instruções>
mar uma função não é obrigatório atribuíla a uma [return valor]
variável ou utilizar uma instrução de saída, podendo End Function
ser chamada através da indicação do seu nome.

As funções podem ou não ser defini- Module Subrotinas


Function FIdade (ByVal Idade As Integer) As String
das com um determinado tipo de dados,
Select Idade
ou seja, não é obrigatório declarar o tipo Case Is <1

do valor a devolver. Return (“Ainda não nasceu”)


Case 1, 2,3 < 4
FIdade = “Bebé”
O quadro 8.30 apresenta a sintaxe de
Case 4 To 10
uma função. A figura 8.41 apresenta o có- FIdade = “Criança”
digo de função Fldade com o parâmetro Case 11 To 17
. 2 a FIdade = “Adolescente”
Idade, existente no módulo Sub-rotinas. A Case 18 To 30
figura 8.42 apresenta o código do formu- FIdade = “Jovem”
au a a 2 Case 31 To 80
lário JanelaPrincipal onde é efetuada a FIdade = “Adulto”
chamada à função Fldade com passagem Case 81 To 100
do argumento por valor a. Na chamada da . Midade ERA
- .. . ase se
função o valor da variável a (argumento) é FIdade = “Extraordinário”
passado à variável Idade (parâmetro). End Select
- End Function
Dentro da função, de acordo com o valor na module
da variável Idade, é selecionada uma Fig. 8.41. Código exemplificativo da estrutura de uma função.
opção através de uma estrutura Case, in-
dicando o grupo etário da pessoa.

Public Class JanelaPrincipal


Private Sub JanelaPrincipal Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles MyBase.Load
Dim a As Integer
AIB12 O Porto Editora

a = Val (InputBox (“Digite uma idade”, “Variável A”))


Labell.Text = FIdade (a)
End Sub
End Class

Fig. 8.42. Código exemplificativo da chamada de uma função.


92 Introdução à Programação

A figura 8.43 apresenta um exemplo da execução do código da aplicação apresentado

LIONPT ONO O TIQIV


nas figuras 8.41 (função Fldade) e 8.42 (Formulário JanelaPrincipal) com a inserção do
valor 12 na InputBox. Após clicar-se no botão OK, surge a janela do formulário Exemplo
Função com o resultado apresentado numa label (fig. 8.44).

ross=s Lo)
(Cones|

Fig. 8.44. Janela resultante


Fig. 8.43. Caixa de diálogo da InputBox do clique no botão OK
com os dados de exemplo inseridos. apresentado na figura 8.43.

Os procedimentos não devolvem um valor através do seu nome e, por isso, não têm
nenhum tipo de dados associado. A chamada de um procedimento é efetuada pela indica-
ção do seu nome, podendo ter uma lista de argumentos passados por referência (ByRef)
ou por valor (ByVal) aos parâmetros do procedimento.

O quadro 8.31 apresenta a sintaxe de um procedimento. A figura 8.45 apresenta o


código do procedimento Sldade com os parâmetros Texto e Idade, existente no módulo
Sub-rotinas.
Quadro 8.31

Sintaxe de um procedimento

Sub NomeProcedimento(largumentos])
<bloco de instruções>
End Sub

Module Modulel
Sub SIdade (ByRef Texto As String, ByVal Idade As Integer)
Select Case Idade
Case Is <1
Texto = Texto & “ ainda não nasceu”
Case 1, 2,3 < 4
Texto = Texto & “ é bebé”
Case 4 To 10
Texto = Texto & “ é criança”
Case 11 To 17
Texto = Texto & *“ é adolescente”
Case 18 To 30
Texto = Texto & “ é jovem”
Case 31 To 80
Texto = Texto & *“ é adulto”
Case 81 To 100
Texto = Texto & “ é idoso”
Case Else
Texto = Texto & “ tem uma idade extraordinária”
End Select
End Sub
End Module

Fig. 8.45. Código exemplificativo da estrutura de um procedimento.

A figura 8.46 apresenta o código do formulário JanelaPrincipal onde é efetuada a cha-


mada ao procedimento Sldade com passagem dos argumentos por referência Label1.Text
e por valor a. Na chamada do procedimento o valor da variável Label1.Text (argumento) é
passado à variável Texto (parâmetro) e a referência da variável a (argumento) é passada
à variável Idade (argumento). Dentro do procedimento, de acordo com o valor da variável
Idade, é selecionada uma opção através de uma estrutura Case, indicando o grupo etário
da pessoa.
8. Introdução à programação orientada aos eventos

Public Class JanelaPrincipal


Private Sub JanelaPrincipal Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles MyBase. Load
Dim a As Integer
Dim nome As String
nome = InputBox (“Insira o seu primeito nome”)
a = Val (InputBox (“Digite uma idade”, “Variável A”))
SIdade (nome, a)
Labell.Text = nome
End Sub
End Class

Fig. 8.46. Código exemplificativo da chamada de um procedimento.

As figuras 8.47, 8.48 e 8.49 apresentam um exemplo da execução do código da aplica-


ção apresentado nas figuras 8.45 (procedimento Sldade) e 8.46 (Formulário JanelaPrincipal)
com a inserção dos dados Maria e 13 nas duas InputBox. Após clicar-se no segundo botão
OK, surge a janela do formulário Exemplo Procedimento com o resultado apresentado numa
label (fig. 8.49).

ERA
Coreia

Fig. 8.47. Caixa de diálogo da InputBox Fig. 8.48. Caixa de diálogo da InputBox
com os dados de exemplo inseridos. com os dados de exemplo inseridos
(resultante do clique no botão OK
apresentado na figura 8.47).

Mana
é adolescente

Fig. 8.49. Janela resultante do clique no


botão OK apresentado na figura 8.48.

Exercícios de aplicação 22

1. Crie um projeto, no Visual Basic, com o nome SubRotinas, que apresente como interface o
formulário da figura 1 e permita ao utilizador inserir dois valores do tipo double e selecionar a
operação a efetuar.
Mediante a operação selecionada, será executada uma das funções
ou procedimentos seguintes, apresentando o resultado numa caixa
de mensagem.
Function media (ByVal x As Double, ByVal yAs Double) As Double
Function soma (ByVal a As Double, ByVal b As Double) As Double
Sub max (ByVal c As Double, ByVal d As Double)
Sub min (ByVala As Double, ByVal b As Double)
AIB12 O Porto Editora

2. Escreva uma função que pergunte ao utilizador qual a sua cidade


(GetCidade). Depois, escreva uma instrução que invoque esta e . . EO
t ltad M B , Fig.1. Formulário do do Professor
mostre o resultado numa MessageBox. projeto SubRotinas.

Solução
Introdução
a Teoria da
Interatividade
96

Exercício
1. Do GUI aos ambientes imersivos
O GUI (Graphical User Interface), ou interface gráfica, ao ser visualizado pelos utilizado-

PIONPT ONO O TIQIV


res constitui um meio para a interação destes com o computador. Uma interface gráfica
transmite ao utilizador a sensação de manipulação direta dos objetos que fazem parte
dela, através da utilização de dispositivos de entrada como o rato, o joystick e o teclado.
Os ambientes de realidade virtual resultam do desenvolvimento e da investigação realiza-
dos com GUI. Por outro lado, através da utilização de ambientes virtuais e da estimulação
de todos os sentidos do utilizador (visão, audição, tato e outros), obtêm-se os ambientes
imersivos. Para a estimulação dos sentidos do utilizador são utilizados outros dispositi-
vos, para interagir com os objetos do ambiente virtual, como o capacete de visualização
(head-mounted display), as luvas de dados (datagloves) e os auscultadores (headphones).
Desta forma, a visão dos utilizadores deixa de ser o único sentido a ser estimulado, trans-
mitindo ao utilizador a sensação de imersão.

1.1. Evolução histórica da interface Homem-máquina


A evolução histórica da interface Homem-máquina é o resultado de diversos desenvol-
vimentos verificados em diferentes domínios ao longo dos anos.

Como principais marcos históricos desta evolução podem ser indicados os seguintes
exemplos:

º Em 1958, Comeau e Bryan desenvolveram, e a empresa Philco implementou, um


protótipo de um capacete com monitores e sensores de deteção de movimento lIi-
gado a um par de câmaras remotas. Estes sensores permitiam deslocar as câmaras
de acordo com os movimentos da cabeça, criando no utilizador a sensação de pre-
sença. Posteriormente, este equipamento passou a chamar-se Head-Mounted Dis-
play (HMD).

* Em 1962, Morton Heilig, cineasta, desenvolveu um simulador denominado Senso-


rama (fig. 1.1), que permitia ao utilizador viver de forma artificial, sentindo as sensa-
ções de uma viagem num veículo de duas rodas. Para tal, era utilizada a formação
de imagens 3D, som stereo, vibrações e sensações do vento e aromas.

e Em 1968, Ivan Sutherland criou o primeiro sistema Head-Mounted Three Dimensional


Display, também conhecido por capacete 3D. Em virtude desta descoberta, este in-
vestigador ficou conhecido como o precursor da realidade virtual.

Fig. 1.2. Exemplo de um sistema Videoplace. Fig. 1.3. Exemplo de uma projeção de
imagens em 2D num sistema
Videoplace.

Fig. 1.1. Simulador denominado


Sensorama.
1. Do GUl aos ambientes imersivos 97

* Em 1969, Myron Krueger criou o Videoplace (figs. 1.2 e 1.3), capturando imagens de
pessoas que participavam na experiência e projetando-as em 2D numa tela em que Exercício
as pessoas podiam interagir umas com as outras e com os objetos projetados nesta.

e Em 1986, a NASA (National Aeronautics Space Administration) criou um ambiente


virtual que permitia aos utilizadores indicar comandos por voz, manipular objetos
virtuais através do movimento das mãos e ouvir voz sintetizada com som 3D. O som
3D tenta reproduzir no sistema auditivo humano sensações idênticas às escutadas
no mundo real.

º Em 1987, a VPL Research (Visual Programming Language Research) foi pioneira na


comercialização de produtos de realidade virtual como a luva de dados (dataglove) e
o capacete de visualização (head-mounted display).

A partir do ano 2000, o aumento da utilização dos smartphones, tablets e outros equi-
pamentos fizeram aumentar o interesse pela realidade aumentada. Esta permite que ele-
mentos da realidade virtual possam ser sobrepostos a imagens do mundo real através
das câmaras digitais instaladas nesses equipamentos. Neste caso, a interação do utiliza-
dor com os elementos virtuais ocorre de maneira natural e intuitiva. Hoje em dia, os de-
safios no campo da realidade virtual tentam encontrar formas que permitam aos utilizado-
res uma interação mais natural com o ambiente virtual, bem como o desenvolvimento da
Internet no sentido de um espaço virtual tridimensional. Assim, o novo conceito hiper-
-realidade é definido como a capacidade de combinar realidade virtual, realidade física,
inteligência artificial e humana, integrando-as de forma natural.

1.2. Os ambientes gráficos atuais, ergonomia e sentidos


Os ambientes gráficos atuais apresentam boa qualidade, necessitando, por isso, para
a sua formação, de computadores e dispositivos periféricos com mais capacidades. Por
terem mais qualidade, transmitem mais facilmente ao utilizador a sensação de realidade
e permitem uma análise mais cuidada e correta da informação. A qualidade dos ambien-
tes gráficos é um aspeto particularmente importante na imersão do utilizador, principal-
mente quando o ambiente virtual é recriado a partir de um ambiente real. Pois quanto
mais reais se apresentarem aos olhos do utilizador mais imerso este poderá sentir-se no
ambiente virtual.

Para tornar os ambientes gráficos mais realistas são utilizados o rendering e o mapea-
mento de texturas, que são duas técnicas que contribuem para a formação de imagens
de boa qualidade. O rendering é uma operação que permite transformar os dados gráficos
em dados de imagem. Para se obter um rendering adequado é necessário definir correta-
mente a iluminação do ambiente e a posição relativa dos objetos no mundo virtual. Um
rendering de alta qualidade requer também uma definição correta das propriedades que
fazem parte da constituição dos objetos e do mapeamento das texturas a aplicar às dife-
rentes partes dos objetos.

O desenvolvimento de equipamentos cada vez mais adaptados ao utilizador e às suas


funções é o resultado dos estudos efetuados pela ergonomia. Desta forma, evitam-se si-
tuações de mal-estar no utilizador criadas pelos equipamentos de realidade virtual devido
a características como o seu peso, as suas dimensões e o seu modo de funcionamento.
Por exemplo, na década de 80 os equipamentos eram demasiado pesados e grandes e o
seu funcionamento provocava enjoos, cansaço e fortes dores de cabeça nos utilizadores.
AIB12 O Porto Editora

Devido a todos estes desenvolvimentos verificados nos ambientes gráficos e nos equipa-
mentos disponibilizados, consegue-se atualmente estimular todos os sentidos dos utiliza-
dores mais facilmente, de uma forma mais realista e mais imersiva.

AIB12 FO7
98

Exercício
2. Realidade virtual

2.1. Conceito
A realidade virtual consiste em ambientes simulados através do computador, permi-

LIONPT 00d O TITIV


tindo aos utilizadores interagir, visualizar e manipular objetos destes. Estes ambientes
podem ser recriações a partir do ambiente real ou criações originais que existem apenas
no ciberespaço. Os utilizadores, ao experimentarem uma situação de realidade virtual,
podem senti-la como se fosse real, abstraindo-se da realidade.

A implementação de um sistema de realidade virtual requer a existência de um sis-


tema multimédia interativo bastante desenvolvido, com formação de gráficos 3D interati-
vos em tempo real, implicando a utilização de computadores com grande capacidade. Por
outro lado, quando se pretende a estimulação de outros sentidos para além da visão, é
necessária a utilização de mais equipamentos, como luvas de dados (datagloves) e aus-
cultadores (headphones).

Estes ambientes virtuais são, atualmente, utilizados na maioria das áreas do conheci-
mento e das atividades humanas, como medicina, arquitetura, engenharia, educação,
entretenimento e treino de atividades desportivas e profissionais. Permitem colocar o
utilizador em contacto com novas situações, aprendendo de forma segura, económica e
rápida e podendo contribuir para a melhoria do seu desempenho.

Na realidade virtual a imersão, a interação em tempo real e o envolvimento constituem


os aspetos básicos necessários à sua implementação.

2.2. Simulação da realidade


A simulação da realidade é uma imitação de um sistema do mundo real. A simulação
tenta representar certos aspetos do comportamento de um sistema físico ou abstrato
através do comportamento de outro sistema.

A realidade virtual permite simular virtualmente experiências do mundo real, economi-


zando tempo e dinheiro e atingindo objetivos que, muitas vezes, não seriam tão facilmente
alcançados. Por exemplo, é possível aos biólogos simular alterações em ecossistemas e
testar hipóteses sobre o seu equilíbrio (figs. 2.1 e 2.2).

Fig. 2.1. Exemplo da simulação de um ecossistema Fig. 2.2. Exemplo da simulação do mesmo ecossistema
numa fase inicial. da figura 2.1 numa fase posterior.
2. Realidade virtual 99

2.3. Realidade imersiva e não imersiva


Exercício

A realidade imersiva consiste na sensação de inclusão experimentada pelo utilizador


de um ambiente virtual, ou seja, o utilizador sente-se dentro do ambiente e a interagir com
os seus elementos. Para produzir no utilizador esta sensação, o sistema tem de conse-
guir estimulá-lo sensorialmente, utilizando diversos dispositivos, como o capacete de vi-
sualização (head-mounted display), as luvas de dados (datagloves) e os auscultadores
(headphones) (quadro 2.1).

Além destes, é importante considerar outros aspetos na imersão, como o lugar utili-
zado, a forma como é efetuada a projeção, a posição e as deslocações do utilizador, a
distância do utilizador aos controlos e a qualidade do som.

A realidade não imersiva, ao contrário da realidade imersiva, consiste na sensação de


não inclusão experimentada pelo utilizador de um ambiente virtual, ou seja, neste caso o
utilizador não se sente como parte do ambiente.

É considerado ambiente não imersivo a visualização de imagens tridimensionais atra-


vés de um monitor e em que o utilizador interage com os elementos do ambiente virtual
através de dispositivos como o rato, o teclado e o joystick (quadro 2.1).

Quadro 2.1

Designação Tipo Descrição

lHead-Mounted eae Visualização Capacete de visualização.

BOOM
(Binocular . o Caixa móvel para visão estereoscópica
mi Visualização
Omni-Oriented , interativa.
Monitor]

Óculos para visualização


Crystal Eye Visualização estereoscópica, permitindo um campo
de visão amplo.

CAVE Espaço delimitado por três ou mais


(Cave Automatic Visualização paredes de projeção stereo para
Virtual Environment) visualização interativa.

Luva eletrónica que permite capturar


Controlo e os movimentos das mãos (e dos
Dataglove . = , .
manipulação dedos] e usá-los para interagir com o
utilizador.

Dispositivo que permite um alto


AIB12 O Porto Editora

controlo do movimento, aumentando


Controlo e o
Spacemouse . - a produtividade e o conforto dos
manipulação e e o
utilizadores que utilizam aplicações de
software 3D.
100

Quadro 2.1 (cont.)

PIONP ONO O TIAIV


Designação Tipo Descrição Imagem

Controlo e Rar
Teclado . = Permite interagir com o computador.
manipulação

. Controlo e Rr
Joystick Permite interagir com o computador.
manipulação

Visualização/
Permite visualizar ambientes gráficos
Monitor/Touch screen Controlo e
e interagir com o computador.
manipulação

Permite ouvir sons provenientes do


Headphone Audição
computador.

Fatos de realidade Controlo e Indumentária que permite a interação


virtual manipulação do utilizador com o mundo virtual.

Rato 3D sem fios. A sua posição, XYZ,


. Controlo e é detetada através de sensores
Ring Mouse . = no .
manipulação ultrassónicos no espaço. Muito
utilizado em ambientes virtuais.

Dispositivo semelhante ao rato de um


computador, mas com a
GyroPoint Desk Controlo e particularidade de poder trabalhar no
manipulação ar, pois possui um giroscópio e
comunica por rádio com o
computador.

Captura a imagem, o movimento e o


Controlo e som em tempo real, fazendo um
Sensor ótico 3D
manipulação rastreamento das ações dos
utilizadores e do ambiente envolvente.
2. Realidade virtual

Exercícios de aplicação 1 Exercício

1. Diga o que entende por GUI.

2. Indique dois marcos históricos no desenvolvimento da interface Homem-máquina.

O que entende por realidade virtual?

Distinga realidade imersiva de realidade não imersiva.

A partir do quadro 1, escreva no seu caderno a ligação entre os dispositivos de hardware e a


correspondente descrição.

Quadro 1

Hardware Descrição
1) Dispositivo semelhante ao rato de um computador, com a
(A) Crystal Eye particularidade de poder trabalhar no ar, pois possui um
giroscópio e comunica por rádio com o computador.
2) Espaço delimitado por três ou mais paredes de projeção
(B) CAVE stereo para visualização interativa.
3) Indumentária que permite a interação do utilizador com o
(C) Spacemouse mundo virtual.
4) Luva eletrónica que permite capturar os movimentos das
(D) GyroPoint Desk mãos (e dos dedos] e usá-los para interagir com o utilizador.

(E) Dataglove 5) Caixa móvel para visão estereoscópica interativa.

(F) Fatos de 6) Permite ouvir sons provenientes do computador.


realidade virtual
7) Dispositivo que permite um alto controlo do movimento,
(G) Headphone aumentando a produtividade e o conforto dos utilizadores
que utilizam aplicações de software 3D.
8) Óculos para visualização estereoscópica, permitindo um
(H) BOOM campo de visão amplo.

6. A partir do quadro 2, escreva no seu caderno as ligações entre os dispositivos de hardware e


o correspondente tipo de estimulação/ação.

Quadro 2

Hardware Tipo de estimulação/ação


(A) Fatos de
1) Audição
realidade virtual
(B) Crystal Eye
2) Visualização
(C) Headfone
(D) Spacemouse
3) Controlo e manipulação
(E) HMD
(F) GyroPoint Desk
(G) Dataglove
(H) CAVE
AIB12 O Porto Editora

(Il) BOOM Exclusivo


do Professor

Solução
102

3. Interatividade

3.1. Conceito
Exercício
A interatividade num ambiente virtual consiste na possibi-

LIONPT 00d O TITIV


lidade de o utilizador dar instruções ao sistema através de
ações efetuadas neste e nos seus objetos. O sistema, em
função destas ações, transforma-se e adapta-se, criando
novas situações ao utilizador.

O utilizador pode, por exemplo, movimentar-se num am-


biente virtual 3D efetuando ações sobre os objetos que o
compõem. A simples movimentação do utilizador vai implicar
que o sistema tenha de gerar e atualizar as imagens do am-
Fig. 3.1. Interatividade. biente virtual correspondentes à nova perspetiva.

3.2. Características ou componentes


A interatividade tem como características ou componentes:

* a comunicação, que estabelece uma transmissão recíproca entre o utilizador e o


sistema, através de dispositivos periféricos ligados ao sistema;

* O feedback, que permite regular a manipulação dos objetos do ambiente virtual a


partir dos estímulos sensoriais recebidos do sistema pelo utilizador;

* o controlo e a resposta, que permitem ao sistema regular e atuar nos comportamen-


tos dos objetos do ambiente virtual;

* O tempo de resposta, que é o tempo que decorre entre a ação do utilizador sobre um
dos objetos do ambiente virtual e a correspondente alteração criada pelo sistema;

e a adaptabilidade, que é a capacidade que o sistema possui de alterar o ambiente


virtual em função das ações do utilizador sobre os objetos deste.

3.3. Níveis segundo a relação Homem-máquina


Na relação Homem-máquina podem ser identificados os níveis de interatividade rea-
tiva, coativa e proativa.

No nível de interatividade reativa, o utilizador tem um controlo limitado sobre o con-


teúdo do ambiente virtual. A interação e o feedback são controlados pelo sistema e se-
guem um caminho pré-programado, ou seja, o sistema controla o desenrolar da ação dos
utilizadores.

No nível de interatividade coativa, o utilizador tem o controlo da sequência, do ritmo e


do estilo das ações desenvolvidas sobre o conteúdo do ambiente virtual.

No nível de interatividade proativa, o utilizador tem o controlo da estrutura e do con-


teúdo das ações desenvolvidas no ambiente virtual, ou seja, o utilizador controla dinami-
camente o desenvolvimento do conteúdo deste.
3. Interatividade 103

O quadro 3.1 relaciona os três níveis de interatividade de acordo com o controlo exer-
cido pelo utilizador sobre a estrutura e o conteúdo de um ambiente virtual. Jogo

Quadro 3.1

Controlo do conteúdo

Limitado Alargado

Limitado Reativa Coativa


Controlo da estrutura
Alargado Coativa Proativa

3.4. Níveis segundo a ação sensorial


Segundo a ação sensorial, os níveis de interatividade classificam-se em elevada,
média e baixa.

No nível de interatividade elevada, o utilizador está completamente imerso num am-


biente virtual, onde são estimulados todos os seus sentidos.

No nível de interatividade média, apenas alguns sentidos do utilizador estão a ser utili-
zados e exerce um controlo limitado sobre o desenrolar da ação num ambiente virtual.

No nível de interatividade baixa, o utilizador não se sente como parte do ambiente vir-
tual e apenas alguns dos seus sentidos estão a ser utilizados.

Interatividade

| y I
Elevada Média Baixa

Exemplo: Simulador de Exemplo: Consola de jogos. Exemplo: Cinema.


realidade virtual.
AIB12 O Porto Editora
104

3.0. Tipos de interatividade


Jogo
Os diferentes tipos de interatividade podem classificar-se em: linear, de suporte, hierár-

LIONPY OO] O TIAIV


quica, sobre objetos, reflexiva, de hiperligação, de atualização e construtiva (quadro 3.2).

Quadro 3.2

Tipo de
interatividade Descrição

O utilizador pode definir o sentido da sequência das ações desenvolvidas no


ambiente virtual, mas apenas acedendo à seguinte ou à precedente. Numa
Linear
interação linear as ações são mais simples de gerar. Este tipo de interatividade
desenvolve-se de forma reativa.

O utilizador recebe do sistema apoio sobre o seu desempenho através de


De suporte simples mensagens de ajuda a complexos manuais. Este tipo de interatividade
desenvolve-se de forma reativa.

O utilizador navega no sistema através de um conjunto predefinido de opções,


Hierárquica podendo selecionar um trajeto. Este tipo de interatividade desenvolve-se de
forma reativa.

O utilizador ativa objetos usando o rato ou um outro dispositivo apontador para


obter respostas do sistema. Estes objetos alteram o seu funcionamento de
Sobre objetos acordo com determinados fatores, como o relacionamento entre objetos ou
instruções predefinidas sobre a sua atividade e o seu desempenho. Este tipo de
interatividade desenvolve-se de forma proativa.

O sistema efetua perguntas que o utilizador responde. Este pode comparar as


suas respostas com as de outros utilizadores ou com as de especialistas,
Reflexiva
permitindo, desta forma, uma reflexão sobre as mesmas. Este tipo de
interatividade desenvolve-se de forma proativa.

O sistema define as ligações necessárias para garantir que o acesso aos seus
elementos, por parte do utilizador, seja assegurado por todos os trajetos
De hiperligação
possíveis ou relevantes, criando um ambiente flexível. Este tipo de interatividade
desenvolve-se de forma proativa.

A interatividade entre o sistema e o utilizador permite gerar conteúdos


atualizados e individualizados em resposta às ações do utilizador. Este tipo de
interatividade pode variar de um formato simples de perguntas e de respostas
De atualização
até formatos mais complexos que podem incorporar na sua construção
componentes de inteligência artificial. Este tipo de interatividade desenvolve-se
de forma proativa.

O utilizador constrói um modelo a partir do manuseamento de objetos


componentes deste, atingindo um objetivo específico. Para tal, o utilizador tem
Construtiva de seguir uma sequência correta de ações para que a tarefa seja concluída. Este
tipo de interatividade é uma extensão do tipo de interatividade de atualização e
desenvolve-se de forma proativa.

4. Como avaliar soluções interativas


As soluções interativas de realidade virtual têm como objetivo principal o envolvimento
do utilizador interagindo num ambiente que não é real. Estas soluções necessitam de ser
avaliadas, nomeadamente nos aspetos relacionados com as questões tecnológicas utili-
zadas, as alterações provocadas ao nível psicológico e social dos utilizadores e a quali-
dade da aplicação.
5. O desenho de soluções interativas 105

Desta forma, para avaliar estas soluções interativas, de uma forma mais completa e
objetiva, analisam-se as seguintes características: Jogo

funcionamento dos dispositivos periféricos e a sua ergonomia;


qualidade gráfica dos ambientes virtuais e o seu realismo perante o olhar do utilizador;
contributo para a imersão do utilizador;
utilização adequada das cores;
aspetos visuais;
qualidade adequada do som;
qualidade da estimulação táctil e da perceção da força;
funcionamento e objetivos da simulação;
outras características mais específicas relacionadas com a área ou o domínio em
que se insere.

5. O desenho de soluções interativas


O desenho de soluções interativas deve ser precedido do levantamento de todos os re-
quisitos envolvidos, podendo este ser mais ou menos complexo, de acordo com o tamanho
e a complexidade destas. A seguir são enumerados alguns dos requisitos a considerar:
definição da solução interativa a desenvolver;
caracterização do tipo de imersão pretendido;
avaliação, caracterização e suporte dos vários dispositivos a utilizar;
definição da capacidade de perceção dos movimentos do utilizador;
avaliação de recursos e capacidades;
seleção das ferramentas a utilizar no desenvolvimento;
criação e edição de formas geométricas e texturas;
descrição da visão estereoscópica;
caracterização do hardware, do software e do suporte de rede;
modelação da ação física do sistema.

Para o desenho de soluções interativas no âmbito da realidade virtual é necessário en-


volver conhecimentos de diversas áreas, que permitam a modelação de objetos, a ligação
de computadores em redes, a implementação de sistemas de processamento em tempo
real e o desenvolvimento de programação orientada a objetos. Para tornar esta tarefa mais
acessível e rápida, sem perder capacidades, foram criadas ferramentas, genericamente
conhecidas por VR Toolkits (Virtual Reality Toolkits), permitindo a criação de programas de
realidade virtual. As ferramentas são essencialmente bibliotecas expansíveis com coleções
de funções orientadas a objetos e às especificações da realidade virtual. Através da utiliza-
ção das funções, o objeto simulado passa a pertencer a uma classe e a herdar os seus
atributos por defeito. Desta forma, podem ser simplificadas as tarefas de desenvolvimento
de um programa complexo, uma vez que permite ao programador escrever e acrescentar
módulos aos programas. Estas ferramentas permitem, na sua maioria, a importação de
AIB12 O Porto Editora

imagens a partir de programas como o AutoCad, a ligação de dispositivos periféricos espe-


cíficos da realidade virtual e o trabalho com efeitos de iluminação, sombreamento e textura
dos objetos, funcionando de forma independente do hardware.
Introdução à Teoria da Interatividade

Existem diversas ferramentas para a criação de soluções interativas no âmbito da rea-

BIONP ONO] O TITIV


Exercício lidade virtual. O quadro 5.1 apresenta alguns exemplos destas ferramentas.

Quadro 5.1

Designação Descrição

Permite adicionar características do comportamento humano a acontecimentos


DI-Gu simulados em tempo real. Cada característica altera-se de forma realista, responde a
y comandos simples e movimenta-se no ambiente de acordo com as indicações. Estas
características são animadas de forma automática.

É uma solução completa para a indústria, aplicações militares e jogos. Para além de ser
Gizmo3D usado pelos serviços militares é também utilizado na indústria espacial. Permite
desenvolver formas geométricas com rapidez, sombras em tempo real, estruturas
recursivas, ambientes e animação.

Permite uma visualização 3D intuitiva. Possui ferramentas de modelação e de edição,


Virtus cria perspetivas corretas com o mapeamento das texturas, tem capacidades de exportar
WalkThrough Pro | VRML (Virtual Reality Modeling Language) e combina a capacidade de rendering 3D em
tempo real com as movimentações detetadas.

Permite o desenvolvimento de ambientes 3D simulados e aplicações de realidade


WorldToolkKit
virtual. E uma livraria orientada a objetos com um alto nível de funções para
para Windows
configuração, interação e controlo da simulação em tempo real.

Linguagem de programação de ambientes virtuais de rede para a Internet, podendo as


VRML o o.
suas aplicações ser executadas na maioria dos browsers.

O X3D [eXtensible 3D) é um padrão aberto para distribuir conteúdo 3D, expresso como
um documento XML [eXtensible Markup Language), através da Web. Surgiu de uma
X3D revisão da especificação ISO VRML97, incorporando aperfeiçoamentos desta linguagem
e melhorias na sua arquitetura. Aceita múltiplos formatos de codificação como VRML,
XML e binário.

É a API (Aplication Programmer's Interface) mais utilizada para o desenvolvimento de


aplicações visualmente imersivas. É uma plataforma que permite criar um produto final
CAVELib de alta qualidade que pode ser executado em diferentes sistemas operativos, como o
Windows, o Linux, o Solaris e o IRIX, e independente dos sistemas de visualização
utilizados.

Google SketchUp | É um software utilizado para criar e apresentar modelos 3D.

Unity É um programa multiplataforma para criar jogos e conteúdos interativos 3D e 2D.

É um programa de computador para modelagem, animação, texturização, renderização,


Blender composição, edição de vídeo e criação de aplicações interativas 3D. É um programa
multiplataforma, estando disponível para diversos sistemas operativos.

É um motor gráfico utilizado para produzir jogos. É um programa multiplataforma que


CryEngine suporta os atuais sistemas operativos e as novas consolas como WII U da Nintendo,
PlayStation da Sony e Xbox da Microsoft.

Exercícios de aplicação 2

Exclusivo 1. Diga o que entende por interatividade.


do Professor
2. Identifique os vários componentes da interatividade.

Solução
5. O desenho de soluções interativas 107

Exercício

3. A partir do quadro 1, escreva no seu caderno a ligação entre os níveis de interatividade e a


correspondente descrição.
Quadro 1

ac Descrição
interatividade :
(A) Coativa 1) O utilizador controla dinamicamente o desenvolvimento do conteúdo deste.

2) O utilizador tem o controlo da sequência, do ritmo e do estilo das ações


(B) Proativa , o
desenvolvidas sobre o conteúdo do ambiente virtual.

(C) Reativa 3) O utilizador tem um controlo limitado sobre o conteúdo do ambiente virtual.

4. Copie para o seu caderno e complete 0 Controlo do conteúdo


quadro 2, que apresenta a relação entre . |
os três níveis de interatividade, de Quadro 2 b) Alargado
acordo com o controlo exercido pelo | | Controlo E) Reativa c)
utilizador sobre a estrutura e o conteúdo da | |
num ambiente virtual. estrutura | Alargado d) Proativa
5. Indique os níveis de interatividade que podem ser identificados segundo a ação sensorial.

6. À partir do quadro 3, escreva no seu caderno a ligação dos tipos de interatividade e a


correspondente descrição.
Quadro 3

Tipos de =
interatividade Descrição
1) O utilizador constrói um modelo a partir do manuseamento de objetos
(A) Reflexiva na ue e
componentes deste, atingindo um objetivo específico.
(B) De hiperli- 2) O sistema efetua perguntas que o utilizador responde. Este pode comparar
gação as suas respostas com as de outros utilizadores ou com as de especialistas.
3) O utilizador ativa objetos, usando o rato ou um outro dispositivo apontador
(C) Hierárquica para obter respostas do sistema. Estes objetos alteram o seu
funcionamento de acordo com determinados fatores.

4) O sistema define as ligações necessárias para garantir que o acesso aos


(D) Linear seus elementos, por parte do utilizador, seja assegurado por todos os
trajetos possíveis ou relevantes, criando um ambiente flexível.

(E) De atuali- 5) O utilizador navega no sistema através de um conjunto predefinido de


zação opções, podendo selecionar um trajeto.
6) A interatividade entre o sistema e o utilizador permite gerar conteúdos
(F) De suporte DE Nuas E
atualizados e individualizados, em resposta às ações do utilizador.

. 7) O utilizador recebe do sistema apoio sobre o seu desempenho através de


(G) Construtiva
simples mensagens de ajuda a complexos manuais.
(H) Sobre 8) O utilizador pode definir o sentido da sequência das ações desenvolvidas no
objetos ambiente virtual, mas apenas acedendo à seguinte ou à precedente.

Indique quatro características a considerar na avaliação de soluções interativas.

Indique quatro requisitos a considerar no estudo prévio necessário para o desenho de soluções
interativas. Exclusivo
AIB12 O Porto Editora

do Professor
Indique três ferramentas que podem ser utilizadas na criação de soluções interativas no âmbito da
realidade virtual.

Solução
Conceitos
Básicos
de Multimedia
1 10 Conceitos Básicos de Multimédia

Exercício
1. Conceito de multimédia
De uma forma genérica, o conceito de multimédia pode ser definido como a utilização

LIONPT ONO O TIQIV


de diversificados meios para a divulgação da mensagem.

Hoje em dia, a designação multimédia é utilizada frequen-


temente em variados contextos, como, por exemplo,
tecnologia multimédia, placa multimédia, rede
multimédia, serviço multimédia, produto
multimédia, resultando uma dificuldade
acrescida na definição do
conceito de multimédia.

Através do estudo etimo-


lógico da palavra multimédia,
conclui-se que esta é composta
por duas partes, multi e media,
ambas resultantes de palavras lati-
nas. Multi tem origem na palavra mul-
tus, significando múltiplo ou numeroso.
Media é o plural da palavra medium e sig-
nifica meio ou centro. Tendo em atenção a
origem da palavra multimédia e o significado
de cada uma das suas partes, pode-se afir-
mar que significa múltiplos meios. Pode-se,
então, definir multimédia como a utilização diver-
sificada de meios, entre o emissor e o rece-
e tor, para a divulgação da mensagem.
Nesta definição são considerados como
produtos multimédia os jornais, as revistas, os
Fig. 1.1. Multimédia. livros e as emissões de televisão. No entanto,
no âmbito das tecnologias de informação e comunicação, define-se multimédia ou multimé-
dia digital como a utilização diversificada de meios, tais como texto, gráficos, imagens, vídeo
e áudio, que vão ser processados por computador e que, depois, podem ser armazenados e
transmitidos.

Segundo vários autores, podem existir diversas definições do conceito multimédia de


acordo com o âmbito em que estas estão inseridas.

“Multimédia designa a combinação, controlada por computador, de texto, gráficos, imagens, vídeo,
áudio, animação e qualquer outro meio, pelo qual a informação possa ser representada, armaze-
nada, transmitida e processada sob a forma digital, em que existe pelo menos um tipo de media
estático (texto, gráficos ou imagens] e um tipo de media dinâmico (vídeo, áudio ou animação).”
Fluckiger, 1995 e Chapman & Chapman, 2000

“Multimédia não pode ser experimentada sem a tecnologia, pois é a tecnologia que cria a expe-
riência - multimédia não se limita à mensagem, mas é igualmente uma função do meio, isto é, da
tecnologia.”
Gonzalez, 2000
2. Tipos de media 111

2. Tipos de media Jogo

Os textos, os gráficos, as imagens, os vídeos, as animações e o áudio são tipos de


media que servem de base à criação de sistemas e aplicações multimédia. Estes podem
ser classificados através de várias propriedades.

2.1. Quanto à sua natureza espaciotemporal

2.1.1. Estáticos
Os tipos de media estáticos, discretos ou espaciais, agrupam elementos de informa-
ção independentes do tempo, alterando apenas a sua dimensão no espaço, tais como,
por exemplo, textos e gráficos.

Imagem
As imagens e os gráficos estão para as aplicações multimédia como as fotografias e
os desenhos estão para as revistas, os jornais e os livros. As imagens e os gráficos
podem ser considerados, respetivamente, do tipo bitmap e do tipo vetorial quando são
utilizados em aplicações multimédia num sistema informático. Estes podem ser obtidos
por captura, através da utilização de um scanner ou de uma câmara digital, ou, ainda,
serem gerados no computador através da utilização de programas adequados.

Texto
O texto constitui a forma mais utilizada de divulgar informação em diversos meios e forma-
tos. O texto em formato digital pode ser criado através de editores de texto, como, por exem-
plo, o Bloco de notas do Windows” , dando origem a conteúdos não formatados denominados
plain text. De outra forma, pode ser criado através de processadores de texto, como, por
exemplo, o Microsoft? Word, dando origem a conteúdos formatados denominados rich text.

2.1.2. Dinâmicos
Os tipos de media dinâmicos, contínuos ou temporais, agrupam elementos de informa-
ção dependentes do tempo, tais como, por exemplo, o áudio, o vídeo e a animação. Nes-
tes casos, uma alteração, no tempo, da ordem de apresentação dos conteúdos conduz a
alterações na informação associada ao respetivo tipo de media dinâmico.

Áudio
O áudio corresponde à reprodução eletrónica do som nos formatos analógico ou digital.

O formato analógico corresponde ao áudio gravado nas cassetes ou discos de vinil. O digital
corresponde a um formato compatível com o processamento realizado pelos computadores.

O formato digital pode ser obtido por digitalização a partir de fontes sonoras, resul-
tando em ficheiros que, mesmo compactados, ocupam um espaço considerável e apre-
sentam perdas de qualidade do sinal capturado. Esta digitalização é obtida através da
conversão do sinal analógico em digital.

O formato digital pode, também, ser obtido diretamente, utilizando um sintetizador


ATB12 O Porto Editora

MIDI (Musical Instrument Digital Interface) da placa de som. Desta forma, os ficheiros ape-
nas guardam a informação do áudio a ser reproduzido, resultando ficheiros mais peque-
nos e de qualidade superior. O MIDI é um padrão internacional, que define as notas
112

produzidas por diferentes sintetizadores de forma que estas sejam iguais às dos respeti-

LIONPT ONO O TIQIV


Exercício vos instrumentos musicais. Permite também a ligação ao computador de diversos equipa-
mentos musicais concebidos para o efeito.

Vídeo
O vídeo corresponde ao movimento sequencial de um conjunto de imagens, também
conhecidas por fotogramas ou frames. O número de frames apresentadas por segundo
designa-se por frame rate.

Tal como no áudio, também o vídeo pode ser representado no formato analógico ou
digital. O formato analógico corresponde, por exemplo, ao vídeo criado por uma câmara
de vídeo analógica ou ao sinal da emissão de um canal de televisão analógico. Por outro
lado, o formato digital corresponde, por exemplo, ao vídeo criado por uma câmara de
vídeo digital ou ao sinal da emissão de um canal de televisão digital.

Animação
A animação corresponde ao movimento sequencial de um conjunto de gráficos, no for-
mato digital, que vão sofrendo alterações ao longo do tempo. Atualmente, a animação é
maioritariamente produzida no computador, através de software específico.

2.2. Quanto à sua origem


Quanto à origem dos media, ou seja, a forma como estes foram criados, podem-se
classificar em capturados e sintetizados.

2.2.1. Capturados
Os tipos de media capturados são aqueles que resultam de uma recolha do exterior
para o computador, através da utilização de hardware específico, como, por exemplo, os
scanners, as câmaras digitais e os microfones, e de software específico.

2.2.2. Sintetizados
Os tipos de media sintetizados são aqueles que são produzidos pelo próprio computa-
dor através da utilização de hardware e software específicos.

3. Modos de divulgação de conteúdos multimédia


De acordo com o modo de divulgação, ou seja, tendo em atenção a forma como são
distribuídos, os conteúdos multimédia podem-se classificar em online e offline.

3.1. Online
A divulgação online significa a disponibilidade de uso imediato dos conteúdos multimédia.
Esta pode ser efetuada através da utilização de uma rede informática local ou de um con-
junto de redes, tal como a World Wide Web. Também a divulgação de conteúdos multimédia,
através de monitores ligados a computadores que não estão ligados a redes informáticas,
cujos dados estão armazenados em disco, pode ser considerada uma divulgação online.
5. Tipos de produtos multimédia 113

3.2. Offline Jogo

Ao contrário da divulgação online, a divulgação offline de conteúdos multimédia é efe-


tuada através da utilização de suportes de armazenamento, na maioria das vezes do tipo
digital. Neste caso, os suportes de armazenamento mais utilizados na divulgação de con-
teúdos multimédia são do tipo ótico, CD e DVD.

4. Linearidade e não linearidade


A linearidade é a passagem de conteúdos de multimédia através de ações pré-progra-
madas. Por outro lado, a não linearidade é a passagem de conteúdos de multimédia em
que o utilizador interage com o desenrolar da ação.

Um telespectador de um programa de televisão de emissão analógica apenas pode alte-


rar o volume do som e o contraste, a cor e o brilho do ecrã. O desenrolar da ação classifica-
-se como linear porque o telespectador não a pode alterar. Por exemplo, não pode alterar a
ordem da programação ou a perspetiva dada por uma determinada câmara de filmar.

Por outro lado, o utilizador de um CD ou DVD, ao selecionar as informações que pre-


tende consultar de acordo com os seus objetivos, está a interagir com o desenrolar da
ação. Neste caso, esta classifica-se como não linear.

5, Tipos de produtos multimédia

5.1. Baseados em páginas


Os tipos de produtos multimédia baseados em páginas são desenvolvidos segundo
uma estrutura organizacional do tipo espacial. Esta é uma organização semelhante à uti-
lizada nos media tradicionais em suporte de papel como revistas, livros e jornais.

Em alguns produtos multimédia, os utilizadores podem consultar as suas páginas uti-


lizando as hiperligações existentes entre elas. Neste tipo de produtos, as componentes
interativa e temporal podem estar presentes através da utilização de botões, ícones e
scripts. Os scripts vão permitir a criação de pequenos programas para a execução de
ações em determinadas situações como, por exemplo, a visualização de um vídeo ao fim
de um determinado intervalo de tempo ou após um botão ter sido pressionado.

5.2. Baseados no tempo


Os tipos de produtos baseados no tempo são desenvolvidos segundo uma estrutura
organizacional assente no tempo. Esta é uma organização com uma lógica semelhante à
utilizada na criação de um filme ou animação. Durante o desenvolvimento deste tipo de
produtos multimédia os conteúdos podem ser sincronizados, permitindo, desta forma,
definir o momento em que dois ou mais deles estão visíveis. A interatividade neste tipo de
produtos é adicionada através da utilização de scripts.

A componente da organização espacial é também, neste caso, utilizada durante a fase


de desenvolvimento deste tipo de produtos.
AIB12 O Porto Editora

Em ambos os tipos de produtos multimédia (baseados em páginas ou no tempo) as


componentes espaço e tempo coexistem, distinguindo-se na estrutura organizacional uti-
lizada como ponto de partida para a disposição dos conteúdos.

AIB12 FO8
114 Conceitos Básicos de Multimédia

Exercício
6. Tecnologias multimédia

6.1. Representação digital


Através da representação digital é possível a utilização de programas para armazenar,

PIONPY ONO O TITIV


modificar, combinar e apresentar todos os tipos de media. É também possível realizar a
transmissão dos dados por meio de redes informáticas ou armazená-los em suportes,
tais como CD e DVD.

Numa representação digital, os dados assumem um conjunto de valores discretos, ou


descontínuos, processados em intervalos de tempo discretos.

A figura 6.1 mostra o exemplo de um sinal que assume uma gama de valores contí-
nuos no tempo. Este tipo de sinal é designado por sinal analógico, enquanto que os si-
nais que um computador processa são designados por sinais digitais.

Os sinais digitais que circulam nos circuitos eletrónicos de um computador são consti-
tuídos apenas por dois níveis de tensão elétrica. Ao nível mais baixo é associado o valor
lógico zero (0) e ao nível mais alto o valor lógico um (1).
Baseado no sistema de numeração binária, isto é, que utiliza apenas dois dígitos (0 e 1),
é possível conceber todo o funcionamento dos circuitos digitais. Nestes circuitos, o bit é a
unidade mínima de informação de um sinal, podendo assumir o valor O ou 1.

Se os sinais que circulam num computador ou os gerados por um teclado são digitais, o
sinal que um microfone produz é analógico. Assim, para obter este sinal no computador há
necessidade de digitalizá-lo, ou seja, convertê-lo para uma sequência de bits. A digitalização
de um sinal analógico é composta pelas fases de amostragem, quantização e codificação.
v
15
14
13
12
n
10
9
8
7
6
5
4 V
3
2
1 1
0 t t
Fig. 6.1. Representação gráfica Fig. 6.2. Representação gráfica
de um sinal analógico. de um impulso elétrico.

v v
E
15
:
12 12
11 11
10 10
9 9
8 8
7 7
6 6
5 5
4 4
3 3
2 2
1 1
0 : 0 ;

Fig. 6.3. Representação gráfica Fig. 6.4. Representação gráfica


de um sinal amostrado. de um sinal quantizado.
6. Tecnologias multimédia 115

6.1.1. Amostragem
Exercício
A amostragem é o processo que permite a retenção de um conjunto finito de valores
discretos dos sinais analógicos.

Como um sinal analógico é contínuo no tempo e em amplitude, contém um número


infinito de valores, dificultando o seu processamento pelo computador. Assim, há neces-
sidade de inicialmente amostrar o sinal analógico.
Na prática, para se amostrar um sinal analógico (fig. 6.1) multiplica-se (eletronica-
mente) este por um impulso elétrico (fig. 6.2) em intervalos de tempo iguais. Desta forma,
no instante do impulso é obtido o valor correspondente da amostra do sinal analógico.
Por exemplo, no instante de tempo zero tem-se: 12 (fig. 6.1) x 1 (fig. 6.2) = 12 (fig. 6.3).

O sinal amostrado da figura 6.3 é um sinal obtido por uma modelação, denominada modulação
PAM (Pulse-Amplitude Modulation]).

6.1.2. Quantização
Depois de amostrado o sinal analógico, sob a forma de amostras ou impulsos PAM, é
preciso quantizar ou quantificar a infinidade de valores que a amplitude do sinal apre-
senta (fig. 6.4). O circuito eletrónico que efetua esta conversão designa-se por conversor
analógico-digital (A/D ou do inglês ADC — Analog to Digital Converter).

Quantizar um sinal PAM significa atribuir-lhe um determinado valor numa gama de nf


veis que o conversor A/D apresenta. Assim, um sinal com uma amplitude de 8,3 V pode-
ria, por exemplo, ser quantizado para um valor inteiro acima ou abaixo dele. Devido a este
arredondamento, origina-se um erro de quantização resultante da diferença de amplitude
entre o valor quantizado e o valor real.

6.1.3. Codificação
Os valores das amplitudes dos impulsos PAM, depois de quantizados, precisam de ser
codificados para poderem ser representados por uma sequência de bits com valor O ou 1.

Uma das formas de codificar o sinal é através da modulação PCM (Pulse-Code Modulation),
utilizando impulsos de amplitude de duração constante e valores lógicos O ou 1.

O quadro 6.1 apresenta os valores da amostragem da quantização e da codificação do


sinal analógico e o sinal digital obtido do exemplo simples representado nas figuras 6.1,
6.2, 6.3 e 6.4. Neste caso, para a codificação dos valores quantizados foram utilizados
apenas quatro bits.

Quadro 6.1

Valor amostrado 12,0 10,8 9,3 3,2 1,7 0,8 0


Valor quantizado 12 1 9 3 2 1 0
Valor codificado 1100 1011 1001 0101 0010 0001 0000
o — a e aa
Sinal PCM digital

Quadro 6.1 (continuação)

Valor amostrado 1,2 3,3 4,6 11,1 11,9 12,7


AIB12 O Porto Editora

Valor quantizado 1 3 5 11 12 13
Valor codificado 0001 0011 0101 1011 1100 1101
Sinal PCM digital | [|
Conceitos Básicos de Multimédia

LIONPT ONO O TIQIV


Exercício Exercícios de aplicação 1

Defina o conceito de multimédia.

Indique os tipos de media que conhece.

A partir do quadro 1, escreva no seu caderno as ligações entre os tipos de media e a


correspondente classificação.

Quadro 1

Tipo de media Classificação


Imagem
Texto Estáticos
Áudio
Vídeo
Dinâmicos
Animação

Distinga os tipos de media estático de dinâmico.


E

Distinga os tipos de media vídeo de animação.


& a
ON

Indique as várias formas de obter áudio digital.

Classifique os tipos de media de acordo com a sua origem.

Distinga os tipos de media capturados dos sintetizados.

Classifique os tipos de media de acordo com o modo de divulgação dos seus conteúdos.
o

« Distinga os tipos de media online de offline.

11, Dê exemplos de formas de divulgação para conteúdos online e offline.

12. Diga o que entende por linearidade e não linearidade.

13. Identifique os tipos de produtos multimédia que existem, tendo em atenção a forma como estes são
desenvolvidos.

14. Distinga os tipos de produtos multimédia baseados no tempo dos baseados em páginas.

15. Classifique em verdadeiras (V) ou falsas (F) as seguintes afirmações.


(A) A conversão de um sinal analógico em digital envolve três fases denominadas: amostragem,
quantização e codificação.
(B) A representação digital de um sinal pode assumir um conjunto de valores contínuos no tempo.
(C) Um sinal digital utiliza conjuntos de 8 bits para representar todos os caracteres e símbolos
necessários à comunicação entre o computador e o utilizador.
(D) Os sinais analógicos gerados pelo teclado de um computador vão ser processados no
processador.
(E) Os dados enviados pelas redes informáticas e armazenados em suportes, como CD ou DVD,
encontram-se no formato digital.

16. Identifique as três fases necessárias ao processo de digitalização de um sinal analógico.

17. Distinga sinal digital de sinal analógico.

18. Diga em que consiste a amostragem de um sinal.


Exclusivo
19. Diga em que consiste a quantização de um sinal.
do Professor

20. Diga em que consiste a codificação de um sinal.

Solução
6. Tecnologias multimédia 117

6.2. Recursos necessários


Exercício

Para o desenvolvimento e a execução de conteúdos e aplicações multimédia, existe


um conjunto de recursos de hardware, software e suportes de armazenamento de informa-
ção que podem contribuir, de acordo com as suas características e capacidades, para um
acréscimo da sua qualidade. De seguida, são apresentados os principais recursos de
hardware e suportes de armazenamento de informação. A apresentação dos principais
recursos relacionados com o software será dada na unidade 4.

6.2.1. Hardware

Dispositivos de entrada
Os dispositivos de entrada permitem a comunicação no sentido do utilizador para o
computador.

No quadro 6.2 são apresentados os principais dispositivos de entrada através dos quais
o utilizador pode controlar ou mesmo interagir com a execução de aplicações multimédia.

Quadro 6.2

Designação Descrição Imagem

&
Os teclados são dispositivos que permitem digitar dados ou
instruções para o computador. Existem vários tipos de teclados com
Teclados
mais ou menos funções e com teclas multimédia, permitindo o acesso
mais fácil às aplicações.

-
Os ratos são dispositivos muito importantes pelas suas potencialidades
Ratos de utilização nos sistemas operativos gráficos. Permitem deslocar no
ecrã o ponteiro e realizar a introdução de ordens para o computador.

>
Dispositivos de apontar

Os touchpads são dispositivos que podem substituir os ratos nos


Touchpads
computadores portáteis.

do
Os joysticks são dispositivos utilizados essencialmente para jogar.
Podem assumir uma grande variedade de formas e funcionalidades,
Joysticks
no entanto, podem ser utilizados para controlar uma aplicação

,=
multimédia.

Os trackbal!s são dispositivos que substituem os ratos e podem assumir


Trackballs
uma grande variedade de formas, permitindo economizar espaço.

Os scanners ou digitalizadores são dispositivos que permitem capturar


Scanners e digitalizar, através de processos óticos, documentos impressos.
Existem diferentes tipos de scanners e em diferentes formatos.

Câmaras
digitais
As câmaras digitais, fotográficas ou de vídeo, são dispositivos que
captam imagens do exterior, através de uma objetiva, à semelhança das
câmaras tradicionais.
As webcams são câmaras digitais mais simples e de baixa resolução
a
que capturam imagens dinâmicas ou estáticas diretamente para o
computador.

'
Os microfones são dispositivos que podem assumir uma grande
AIB12 O Porto Editora

variedade de formas. Quando ligados a uma placa de som de um


Microfones computador, permitem capturar os sons do meio ambiente.
As câmaras digitais têm normalmente um microfone acoplado, para
permitir capturar, em simultâneo, sons e imagens.
118 Conceitos Básicos de Multimédia

Dispositivos de saída
Os dispositivos de saída permitem a comunicação no sentido do computador para o

PIONPT ONO O TIQIV


utilizador. No quadro 6.3 são apresentados os principais dispositivos de saída relaciona-
dos com a reprodução das aplicações multimédia.

Quadro 6.3

Designação Descrição Imagem

Os monitores são dispositivos que constituem o principal meio de


. comunicação entre o computador e o utilizador. Estes apresentam
Monitores . , na R
diferentes características que os permitem distinguir, como as suas
dimensões, resolução e frequência do varrimento.

As placas gráficas são os dispositivos responsáveis pela interligação


Placas do monitor com o processador. E possível distinguir as placas
gráficas gráficas entre si, de acordo com as suas características, tais como o
número de cores, a resolução e a capacidade de memória da placa.

As impressoras são dispositivos que permitem imprimir os


resultados das operações de processamento do computador.
Impressoras Cada impressora tem um conjunto de características associadas,
que as distingue das demais, como o número de páginas que
imprime por minuto [ppm], a tecnologia de impressão e a resolução
ou pontos por polegada (dpi).

Impressoras | São dispositivos que permitem a produção de objetos criados pela


3D colocação de sucessivas camadas de material.

Os projetores de vídeo são dispositivos que permitem projetar para


Projetores telas as imagens provenientes de computadores e outros
de vídeo equipamentos multimédia com possibilidade de estabelecer ligação
com eles.

As plotters ou traçadores de gráficos são dispositivos com uma o


finalidade semelhante à das impressoras, pois destinam-se à
Plotters impressão de informação proveniente do computador. Estas o
destinam-se principalmente à impressão, com elevada precisão, dos
desenhos de peças, dos projetos de habitações e dos desenhos de
painéis publicitários.

Os altifalantes são ligados à placa de som do computador e


. permitem a reprodução de sons no formato analógico. Neste caso, a
Altifalantes , Do Jo
placa de som converte os sinais do formato digital para o formato
analógico.

Os auscultadores podem ser ligados ao computador e permitem a


Auscultadores nn RS o
audição de sons de forma individual pelo utilizador.
6. Tecnologias multimédia 119

Dispositivos de entrada/saída
Exercício
Os dispositivos de entrada/saída permitem a comunicação em ambos os sentidos, do com-
putador para o utilizador e vice-versa. No quadro 6.4 são apresentados os principais dispositi-
vos de entrada/saída que permitem ao utilizador interagir com as aplicações multimédia.

Quadro 6.4

Designação Descrição

As placas de som são dispositivos que suportam áudio digital e


MIDI, permitindo aumentar, de forma considerável, a capacidade
Placas de um computador capturar e reproduzir sons com qualidade.
de som Estas permitem ligar ao computador vários dispositivos como o
microfone, os altifalantes, a unidade de leitura do CD áudio e a
aparelhagem hi-fi.

Dispositivos São dispositivos, como as placas de rede, modems e bluetooths,


de ligação que permitem a ligação de um computador a uma rede de
a redes computadores.

Os touchscreens são ecrãs que, para além de nos apresentarem


informação, são sensíveis ao toque do dedo ou de outros
Touchscreens | dispositivos adequados, substituindo o rato. São de fácil utilização
e resposta rápida, sendo utilizados em quiosques multimédia,
postos de vendas e equipamentos de utilização pessoal.

As placas de captura de TV são dispositivos que permitem fazer a


sintonia do sinal TV e normalmente também do sinal rádio. Para
além disso, permitem converter o sinal analógico recebido em
Placas de sinal digital, de forma a este poder ser processado pelo
captura de TV | computador. De acordo com a qualidade das placas e do software
utilizado, podem permitir realizar operações como a visualização
de vários canais no monitor em simultâneo, a gravação de
programas e a captura de imagens.

. São unidades internas ou externas que permitem a leitura e a


Cu ita de dados em dispositivos de armazenamento dos tipos
entrada/saída escrita de POSIN P
magnético, semicondutor e ótico.

Dispositivos de armazenamento
Os dispositivos de armazenamento permitem guardar dados de forma permanente ou
semipermanente. Estes dispositivos, de acordo com a tecnologia utilizada na leitura e es-
crita dos seus dados, podem ser classificados em magnéticos, semicondutores e óticos.

Magnéticos
Discos rígidos
Os discos rígidos (HD — Hard Disk), figura 6.5, assim designados por
serem constituídos por material metálico, utilizam a eletromagnetização
das partículas para a gravação e a leitura dos dados.

Estes dispositivos permitem armazenar grandes quantidades de infor-


AIB12 O Porto Editora

mação, que depois é acedida aleatoriamente. Os discos rígidos podem ser


designados por internos ou externos, conforme estão instalados dentro ou
fora do computador. A vantagem dos discos externos é permitir transportá-
los de forma mais fácil para outros computadores. Fig. 6.5. Disco rígido.
120 Conceitos Básicos de Multimédia

Bandas magnéticas
Exercício
As bandas magnéticas (fig. 6.6) utilizam a eletromagnetização das

BIONPA ONO] O TIAIV


partículas de uma fita magnética para a gravação e a leitura dos dados,
realizadas de forma sequencial. As bandas magnéticas continuam a ser
o suporte mais económico de armazenamento de grandes quantidades
de dados e, por isso, as mais indicadas para fazer cópias de segurança
Fig. 6.6. DAT — Digital (backups) da informação existente num computador.
Audio Tape.

Semicondutores

-B <& É | Cartões de memória

Os cartões de memória (fig. 6.7) servem para armazenar dados como


: & texto, fotos, vídeos e músicas. Estes são usados em diferentes tipos de

E
o as dispositivos de hardware como, por exemplo, câmaras fotográficas digi-
tais, telemóveis e leitores de MP3 e MP4.

De entre os vários tipos de cartões de memória, destacam-se os Com-


pactFlash, SmartMedia, SD (Secure Digital) e MMC (MultiMedia Card).
Fig. 6.7. Cartões de memória.
Pen drives

As pen drives (fig. 6.8) servem para armazenar dados e ligam-se ao


computador através de uma porta USB. Estas memórias constituem um
meio prático para transporte de dados entre computadores.

Relativamente ao seu tamanho e custo, pode-se considerar como boas


Fig. 6.8. Pen drive.
a capacidade de armazenamento, a fiabilidade e a taxa de transferência
dos dados.

Os discos SSD — Solid State Drive (fig. 6.9) são dispositivos de arma-
zenamento de dados constituídos por circuitos integrados semiconduto-
res. Estes são mais leves, compactos e rápidos que os discos rígidos
magnéticos.
Fig. 6.9. SSD — Solid State Drive.

Óticos
CD (Compact Disk)
e Para gravação
No quadro 6.5 são apresentados os principais formatos de CD, de acordo com as vá-
rias possibilidades de gravação.

Quadro 6.5

Formato Descrição

Os CD-R surgiram em 1990, procurando solucionar a necessidade de os


CD-R (Compact Disk
utilizadores gravarem os seus próprios CD. Permitem gravar dados apenas
Recordable)
uma vez. Estes CD têm uma capacidade de gravação de 650 MB ou 700 MB.
CD-RW (Compact Os CD-RW surgiram em 1995, permitindo a gravação e a regravação dos dados.
Disk Rewritable) Estes CD têm uma capacidade de gravação de 650 MB ou 700 MB.
A designação dos Mini-CD é devida à dimensão do seu diâmetro de 8 cm, ao
Mini-CD contrário dos CD, cujo diâmetro é de 12 cm. Estes discos têm uma capacidade
de gravação de 180 MB e formato R ou RW.
6. Tecnologias multimédia 121

e Formatos
Exercício
No quadro 6.6 são apresentados os principais formatos de CD para a organização do
tipo de informação áudio.

Quadro 6.6

Formato Descrição

O formato CD-Digital Audio (CD-DA] surgiu em 1982 e foi o primeiro formato de CD


indicado para a gravação de áudio com muita qualidade. Este, quando surgiu,
revolucionou a forma de gravação que, até à época, era realizada no formato analógico
em discos de vinil e fitas magnéticas.
Os sinais analógicos, ao serem gravados nestes CD, eram convertidos em sinais digitais.
Para a divulgação deste formato de CD contribuíram, na época, de forma determinante,
as seguintes características: qualidade superior do áudio digital gravado, tamanho dos
CD-Digital Audio
discos de 12 cm de diâmetro e capacidade para 74 minutos de música.
O formato CD-Digital Audio é um formato cujos ficheiros podem ser reproduzidos em
qualquer leitor de CD.
Quando os ficheiros de áudio estão num formato diferente do CD-DA, por exemplo, MP3,
MP3pro, WAV, VQF, WMA e AIF, estes são automaticamente convertidos no formato
CD-DA antes de serem gravados num CD de áudio através da utilização de software
adequado. À conversão do formato dos ficheiros pode atrasar o processo de gravação.

É utilizado para armazenar nos CD texto e áudio. Este texto pode consistir em
informação relacionada com os títulos e os intérpretes das músicas.
Atualmente, a maior parte das unidades de leitura CD-DA, existentes no mercado, não
suportam o formato CD-Text. Estas unidades podem reproduzi-los como se fossem CD
CD-Text de áudio, ignorando o texto. Para que isto não aconteça, é necessário utilizar uma
unidade de leitura CD-DA modificada.
Para criar um CD-Text, o gravador de CD tem de suportar este formato e gravá-lo no
modo de gravação DAO [Disc At Once - disco de uma vez), gravando uma ou várias pistas
do CD numa só operação e fechando-o depois.

Permite criar CD com áudio e dados segundo uma nova conceção. Neste formato as
pistas de áudio vão ser gravadas no início dos CD e a pistas de dados no fim.
Enhanced Estes discos são mais indicados como suporte multimédia do que os discos CD-DA que
Music CD apenas suportam áudio.
Neste formato, as unidades de leitura CD-DA apenas leem o áudio e ignoram os dados e
as unidades de leitura CD-ROM XA leem o áudio e os dados.

O formato Super Audio CD [SACD) reúne boas características de um padrão de som


digital, porque aperfeiçoa a frequência de amostragem e o nível de quantização do sinal,
Super = = O So
Audio CD melhorando a gravação e a reprodução dos sinais digitais.
Para além da qualidade sonora, também a quantidade de informação aumentou em
relação aos outros CD.

No quadro 6.7 são apresentados os principais formatos de CD para a organização do


tipo de informação vídeo e dados.

Quadro 6.7

Formato Descrição
AIB12 O Porto Editora

O formato CD-ROM XA (Compact Disc - Read Only Memory Extended Architecture) permite a
CD-ROM XA intercalação (interleaving] de dados de áudio, texto e imagem num disco ótico multimédia.
Os leitores do formato CD-ROM XA podem ser utilizados como periféricos do computador.
122 Conceitos Básicos de Multimédia

Quadro 6.7 (cont.)

BIONPA ONO, O TITIV


Exercício
Formato Descrição

O formato Photo-CD constitui a base para a criação de um suporte alternativo às fotografias e aos
slides convencionais, tornando possível o seu armazenamento no formato digital em discos CD-R.
Photo-CD
Os CD, neste formato, podem ser lidos em unidades de leitura Photo-CD e visualizadas na televisão
ou em unidades de leitura CD-ROM, CD-ROM XA e visualizadas no monitor do computador.

O formato Video CD [VCD] permite armazenar filmes que pudessem posteriormente ser
Video CD reproduzidos em computador. Este formato de CD é na realidade do tipo CD-ROM XA e pode
comportar 74 minutos de áudio e vídeo digitais, utilizando a compressão MPEG-1.

O formato Super Video CD (SVCD) foi concebido para ser o sucessor tecnológico do formato Video
CD, no entanto, ao nível técnico, está mais próximo do DVD do que do CD.
Super Video CD Os CD gravados no formato Super Video CD contêm sequências de vídeo MPEG-2 e, utilizando
a qualidade mais elevada, podem conter cerca de 35 minutos de filme num disco-padrão com
74 minutos de capacidade de armazenamento.

O formato CD Multissessão tornou possível superar os inconvenientes do formato Disc at once


utilizado inicialmente pelos CD-R. Nestes, os dados eram gravados de uma só vez e numa única
pista. Para concluir a gravação, o CD era fechado e não se podia acrescentar ou alterar dados ao
seu conteúdo. Com o formato CD Multissessão, os CD passaram a poder ser gravados em várias
sessões e em momentos definidos pelos utilizadores, até o disco ficar preenchido. Em cada sessão
CD Multissessão
de gravação, a tabela de conteúdo do CD [table of contents ou TOC] é atualizada para incluir as
novas informações. Para que um CD Multissessão seja tratado pelo computador como uma
unidade semelhante a uma das unidades internas, é necessário que o leitor de CD seja do tipo
multissessão. Se o leitor de CD não for multissessão, somente os dados gravados na primeira
sessão de gravação serão vistos e todos os demais serão ignorados.

DVD (Digital Versatile Disk)

e Para gravação
No quadro 6.8 são apresentados os vários formatos de DVD, de acordo com as possi-
bilidades de gravação que permitem aos utilizadores.
Quadro 6.8

Formato Descrição
DVD-R, +R Permitem a gravação de dados apenas uma vez. Estes DVD podem ter as capacidades de 4,7 GB
(Digital Versatile | [Single Layer) e 8,5 GB [Double Layer] no caso dos Single-sided e as capacidades de 9,4 GB (Single
Disk Recordable) | Layer) e 17 GB (Double Layer) no caso dos Dual-sided.
DVD-RW, +RW | Permitem a gravação e regravação de dados e podem ser utilizados para fazer cópias de
(Digital Versatile | segurança dos dados em computadores pessoais.
Disk Rewritable) | Estes DVD podem ter capacidades idênticas às do formato DVD-R, +R.
Permitem a gravação e regravação de dados de forma semelhante aos DVD-RW, mas mais
rapidamente do que estes. Estes DVD têm o disco protegido por uma estrutura de plástico
DVD-RAM semelhante às utilizadas nas disquetes. Os primeiros discos DVD-RAM têm capacidades de 2,6 GB
(Single-sided) ou 5,2 GB [Double-sidea). Os discos DVD-RAM, versão 2, têm capacidades de 4,7 GB
(Single-sided) ou 9,4 GB [Double-sidea).

A designação dos Mini-DVD é devida à dimensão do seu diâmetro de 8 cm, ao contrário dos DVD,
cujo diâmetro é de 12 cm. Existem em dois formatos principais, Single Layer Single Side e Dual
Layer Single Side, com capacidades, respetivamente, de aproximadamente 40 minutos de filme
Mini-DVD (1,46 GB] e de aproximadamente 75 minutos de filme [2,66 GB).
O tamanho destes DVD tornou-os mais adequados para determinados fins, como, por exemplo, no
envio por correio de material multimédia relacionado com apresentações e vídeos. Tem
aproximadamente o dobro da capacidade de um CD-ROM, sendo, porém, mais leve.
6. Tecnologias multimédia 123

e Formatos
Exercício
No quadro 6.9 é apresentado um formato de DVD para a organização do tipo de infor-
mação áudio.

Quadro 6.9

Formato Descrição

O formato DVD Audio é semelhante ao CD Audio, mas em DVD. Este formato


proporcionou à indústria discográfica um novo impulso de desenvolvimento,
DVD Audio permitindo armazenar áudio com muito alta qualidade, e, devido à sua
grande capacidade de armazenamento, incluir, além de música, informações
adicionais, tais como biografias dos artistas, letras das músicas e videoclips.
Podem ser reproduzidos num leitor de DVD Audio ou de DVD Video.

No quadro 6.10 são apresentados os principais formatos de DVD para a organização do


tipo de informação vídeo e dados.

Quadro 6.10

Formato Descrição

É o mais indicado para o armazenamento de filmes completos de longa-metragem


com alta qualidade de vídeo e audio surround. Proporciona alguma interatividade
ao permitir que os utilizadores mudem entre cenas através de menus, visualizem
cenas de diferentes ângulos e selecionem diferentes desfechos para o filme.
Este formato possibilita a utilização de DVD de duas camadas para filmes mais
DVD Video longos, permitindo a reprodução contínua de um filme ou o armazenamento de
um filme com duas versões.
As unidades de leitura/escrita de DVD Video permitem a utilização de CD nos
formatos CD-DA, Video CD, CD-R e CD-RW. Permitem, também, a utilização de
DVD nos formatos DVD-R e DVD-RW e nos formatos DVD+RW e DVD+R quando as
unidades o possibilitem.

Surgiu para substituir o formato CD-ROM, tendo mais capacidade de


armazenamento do que este e servindo de suporte aos formatos DVD Video e DVD
Audio.
Este formato é indicado para guardar diversas aplicações multimédia e jogos com
DVD-ROM mais realismo.
As unidades de leitura de DVD-ROM permitem ler CD com os formatos CD-DA e
CD-ROM e, atualmente, substituem as unidades de leitura dos CD-ROM nos
computadores. Estas unidades, quando equipadas com dois lasers podem,
também, efetuar a leitura dos formatos CD-R e CD-RW.

Permite ter em cada um dos lados de um DVD um formato diferente como


DVD hybrid DVD-ROM de um lado e DVD-RAM do outro. Estes DVD têm de permitir o seu
funcionamento dos dois lados.

É assim designado por utilizar uma tecnologia baseada num (aser azul-violeta.
Esta tecnologia utiliza um disco com 12 cm de diâmetro, tal como os CD e DVD
comuns. Mas, por outro lado, utiliza um laser com um comprimento de onda
menor que o dos CD e DVD. Desta forma, aumenta a precisão e permite focar
pontos mais pequenos e mais próximos na superfície do disco, conduzindo a um
Blue-ray
aumento na capacidade de armazenamento dos discos.
Os CD e os DVD podem ser lidos nas unidades de leitura e escrita deste tipo de
AIB12 O Porto Editora

discos.
Os discos neste formato podem ter a capacidade para armazenar 27 GB ou 54 GB,
conforme tenham uma ou duas camadas de gravação.
124 Conceitos Básicos de Multimédia

Sistemas de ficheiros
Exercício
Conforme o que foi descrito atrás, os discos óticos assumem diversos formatos para

PIONP OMOJ O TITIV


o armazenamento de diferentes tipos de informação digital.

Estes formatos dos CD e dos DVD são descritos em documentos denominados livros
e constituem normas internacionais.

Em relação aos CD, os livros são identificados pela cor da capa e designam-se por:
Red Book, Yellow Book, Green Book, Orange Book, White Book, Blue Book, Scarlet Book e
Purple Book (quadro 6.11).

Quadro 6.11

Livro Descrição

Especificação física para o disco ótico CD e em particular para o CD-DA. Constitui


Red Book uma norma internacional designada por ISO/IEC 60908. Foi reformulada de forma
a incluir o CD-Graphics e CD-Text.
Especificação do CD-ROM e da sua extensão CD-ROM XA. Constitui uma norma
fellow Book internacional designada por ISO/IEC 10149.
Especificação para o CD-i (CD-interactive), que esteve na origem do
Book . Do
fErseniioo desenvolvimento de aplicações Interativas para o DVD Video.

Orange Book Especificações para os CD graváveis e regraváveis em multissessão.

Especificação para o Video CD que é compatível com a norma ISO 9660.


rito Foi expandida de forma a incluir os discos Super Video CD.
Blue Book Especificação para o Enhanced CD.

Scarlet Book Especificação para o SACD (Super Audio CD).


Purple Book Especificação para o DDCD (Double Density CD).

Em relação aos DVD os livros são identificados por uma letra maiúscula e designam-se
por A, B,C,D, Ee F (quadro 6.12). Para cada formato o livro descreve o processo físico
de gravação, a organização lógica dos ficheiros e outras especificações.

Quadro 6.12

Livro Formato Sistema de ficheiros

A DVD-ROM UDF ou ISO 9660


B DVD Video UDF
C DVD Audio UDF
D DVD-R UDF ou ISO 9660

E DVD-RAM UDF ou ISO 9660

F DVD-RW UDF ou ISO 9660

No quadro 6.13 são apresentados os principais sistemas de ficheiros que permitem orga-
nizar e disponibilizar informação em CD e DVD.
6. Tecnologias multimédia 125

Quadro 6.13

no Exercício
Formato Descrição

A norma ISO 9660 (CDFS - Compact Disk File System) estabelece um conjunto de especificações
relacionadas com a organização lógica dos dados de um CD e permite a criação de um sistema de
ficheiros hierárquico, capaz de proporcionar a organização da informação contida num CD em
ficheiros e diretórios. O sistema de ficheiros concebido através das especificações desta norma visa
funcionar da forma mais compatível possível com todos os sistemas operativos. Este sistema de
ficheiros desenvolveu-se em três níveis:
- nível 1, permite utilizar no máximo 8 caracteres para o nome dos ficheiros e diretórios e 3
ISO 9660 (CDFS] caracteres para a extensão dos ficheiros. Os caracteres permitidos são A-Z, 0-9 e o carácter
de underscore [ ). Os ficheiros não podem ser fragmentados, ou seja, têm de ser gravados num
conjunto contínuo de bytes. A estrutura dos diretórios apenas se pode desenvolver ao longo de
8 níveis incluindo o diretório raiz;
- nível 2, permite utilizar no máximo 31 caracteres para o nome dos ficheiros e diretórios. Os
ficheiros, também, não podem ser fragmentados. Neste nível, a leitura dos nomes longos
apresenta alguns problemas;
- nível 3, não há restrições nos nomes dos ficheiros e dos diretórios.

A extensão Joliet foi desenvolvida para ultrapassar as limitações da norma ISO 9660 e dar
resposta às especificações dos sistemas operativos mais recentes, mantendo a compatibilidade
com o sistema operativo MS-DOS.
Extensão Joliet Das limitações apresentadas pelos sistemas de ficheiros ISO 9660, as especificações da
extensão Joliet permitem, entre outras:
- a utilização de nomes longos, até 64 caracteres Unicode, incluindo o espaço;
- a expansão da árvore de diretórios acima dos 8 níveis.

A extensão Rock Ridge estabelece um conjunto de especificações adicionais relativas à norma


ISO 9660, permitindo, desta forma, suportar as especificidades de sistemas operativos diferentes
do MS Windows. Destina-se a sistemas baseados no sistema operativo Unix/Linux.
Extensão Da extensão Rock Ridge destacam-se as seguintes características: suporte para diretórios ou
Rock Ridge pastas e o nome dos ficheiros com um máximo de 31 caracteres.
Ao ler um CD no Linux com as extensões Rock Ridge, todas as informações associadas aos
ficheiros, como proprietário, grupo, permissões e ligações simbólicas, são mostradas, à
semelhança do que acontece com o sistema de ficheiros do Unix.

A extensão El Torito é uma especificação para a criação de um CD de arranque de um


computador. Desta forma, evita-se a utilização de uma disquete ou de um disco rígido se o BIOS
Extensão
do computador estiver configurado para fazer arrancar o sistema operativo a partir de um CD.
El Torito
Ao criar um CD de arranque, utilizando a extensão El Torito, nos primeiros 1,44 ou 2,88 MB vai
ser criada uma imagem de uma disquete de arranque.

A ISO 13346 é uma norma que define o volume e a estrutura de ficheiros dos suportes de
ISO 13346 armazenamento que utilizam um funcionamento não sequencial para a transferência de
(ECMA-167) informação. Esta norma é equivalente ao standard ECMA-167 (European Computer Manufactures
Association Standard number 167), 2.º edição.

O UDF [Universal Disk Format) é um formato definido pela OSTA (Optical Storage Technology
Association] com base nos standards ISO 13346 e ECMA — 167 e constitui o sucessor do formato
ISO 9660. É um formato utilizado em todos os DVD e nos CD-R e CD-RW. Tem por base standards
abertos, permitindo a troca de informação entre sistemas operativos e entre suportes de
UDF armazenamento de informação.
Este formato permite a gravação de dados num CD de forma semelhante à gravação numa
unidade de disco rígido ou numa unidade de disquetes, suportando um grande número de
funções avançadas, como nomes de ficheiros longos, árvores de diretórios longas, ficheiros
pequenos, ficheiros grandes e acesso a listas de controlo.
AIB12 O Porto Editora

O formato Mount-rainier [Packet Writing Format) permite, de uma forma fácil e rápida, gravar,
regravar e criar backups de dados para um CD. Permite a inclusão de dados de um modo real
Mount-rainier
com drag-and-drop e a formatação on-the-fly na criação do CD, diminuindo a duração do
processo de formatação de um CD.
Conceitos Básicos de Multimédia

BIONP ONO] O TITIV


Exercício Exercícios de aplicação 2
1. Indique a finalidade dos dispositivos de armazenamento.

2. De acordo com a tecnologia de gravação/escrita utilizada nos dispositivos de armazenamento,


indique os tipos que conhece.

3. Copie o quadro 1 para o seu caderno e assinale (com x) os dispositivos de armazenamento


magnéticos, semicondutores e óticos.
Quadro 1

Dispositivo Magnético Semicondutor


Disco rígido
CD-RW
DVD-RAM
Pen drives
MMC
Bandas magnéticas
SmartMedia
DVD+RW
CD-R
SD
Mini-CD
CD-ROM =
CompactFlash (-:) (--) (-)

4. Copie o quadro 2 para o seu caderno e estabeleça a ligação entre a coluna dos formatos de CD para
gravação e a coluna da descrição.
Quadro 2

Formato de CD Descrição
(A) CD-R 1) Permitem gravar até 180 MB e existem com os formatos R ou RW.
(B) CD-RW 2) Permitem gravar dados apenas uma vez. Têm uma capacidade de
gravação de 650 MB ou 700 MB.
(C) Mini-CD 3) Permitem gravar e regravar dados. Têm uma capacidade de
gravação de 650 MB ou 700 MB.

5. Classifique em verdadeiras (V) ou falsas (F] as seguintes afirmações.


(A) O formato CD-DA foi o primeiro formato de CD indicado para a gravação de áudio com muita
qualidade.
(B) O formato CD-Text permite armazenar apenas texto nos CD.
(C) O formato Enhanced Music CD permite criar um CD de acordo com uma nova conceção, em que
os dados vão ser gravados nas pistas iniciais e o áudio nas pistas finais.
(D) O formato SACD permite criar um CD com boas características de um padrão de som digital.
(E) O formato CD-ROM XA permite a intercalação dos dados de áudio, texto e imagem num disco
ótico multimédia.
(F) O formato Photo-CD permite armazenar fotografias e slides no formato digital em discos
CD-R e CD-ROM.
(G) O formato VCD permite gravar filmes mas que não podem ser reproduzidos no computador.
(H) O formato Super Video CD permite gravar em CD sequências de vídeo MPEG-2, podendo guardar
Exclusivo 39 minutos de filme num disco com 74 minutos.
dojidroressor (I) O formato CD Multissessão permite a criação de CD gravados em várias sessões de gravação,
implicando em cada uma delas a atualização da tabela de conteúdo.

Solução
6. Tecnologias multimédia

Exercícios de aplicação 2 (cont.) Exercício

6. Copie o quadro 3 para o seu caderno e estabeleça a ligação entre os formatos de DVD para
gravação e a correspondente descrição.
Quadro 3

Formato de DVD Descrição


(A) DVD-R, +R 1) Têm o disco protegido por uma estrutura de plástico semelhante às
utilizadas nas disquetes.
2) Permitem a gravação e regravação de dados e podem ser utilizados
(B) DVD-RW, +RW o
para fazer cópias de segurança de dados em computadores pessoais.

(C) DVD-RAM 3) Permitem gravar dados apenas uma vez.


(D) Mini-DVD 4) Têm 8 cm de diâmetro, ao contrário dos DVD, cujo diâmetro é de 12 cm.

7. Classifique em verdadeiras (V) ou falsas (F] as seguintes afirmações.


(A) O formato Audio permite guardar com pouca qualidade, sendo um formato em tudo diferente do
CD-Audio.
(B) O formato DVD Video permite guardar pequenos vídeos, pois a sua capacidade de
armazenamento é muito limitada.
(C) O formato DVD-ROM permite guardar aplicações multimédia e jogos com mais realismo, tendo
surgido para substituir o CD-ROM.
(D) O formato DVD hybrid permite ter, em cada um dos lados do DVD, diferentes formatos como
DVD-ROM e DVD-RAM.
(E) O formato Blue-ray permite armazenar pequenas quantidades de dados, pois utiliza uma
tecnologia de laser com um comprimento de onda maior.

Copie o quadro 4 para o seu caderno e estabeleça a ligação entre os vários sistemas de ficheiros
que permitem organizar e disponibilizar informação em CD e DVD e a sua respetiva descrição.

Quadro4

Sistema de =
ficheiro Decio
(A) ISO 9660 1) Permite de uma forma fácil e rápida gravar, regravar e criar backups de
dados para um CD.
2) É um conjunto de especificações adicionais relativas à norma ISO 9660,
(B) Extensão permitindo, desta forma, suportar as especificidades de sistemas operativos
Joliet diferentes do MS Windows. Destina-se a sistemas baseados no sistema
operativo Unix/Linux.
3) Estabelece um conjunto de especificações relacionadas com a organização
(C) Extensão
lógica dos dados de um CD que permitiram a criação de um sistema de
Rock
ficheiros hierárquico, capaz de organizar a informação contida num CD em
Ridge
ficheiros e diretórios.
4) Foi desenvolvida para ultrapassar as limitações da norma ISO 9660 e dar
(D) Extensão
resposta às especificações dos sistemas operativos mais recentes,
El Torito
mantendo a compatibilidade com o sistema operativo MS-DOS.
5) Define o volume e a estrutura de ficheiros dos suportes de armazenamento que
(E) ISO 13346 - Do A
utilizam um funcionamento não sequencial para a transferência de informação.
6) Especificação para a criação de um CD de arranque de um computador.
Desta forma, evita-se a utilização de uma disquete ou de um disco rígido se
a o BIOS do computador estiver configurado para fazer arrancar o sistema
operativo a partir de um CD. Exclusivo
AIB12 O Porto Editora

e do Professor
(6) Mount- 7) Formato utilizado em todos os DVD e nos CD-R e CD-RW. Tem por base
o standards abertos, permitindo a troca de informação entre sistemas
-rainier . :. - VA
operativos e entre suportes de armazenamento de informação.
Solução
Utilização
do Sistema
Multimedia
130

1. Bases sobre a teoria da cor aplicada


aos sistemas digitais
Antes de serem abordados os vários modelos de cor serão feitas algumas considera-

LIONPY OO] O TITIV


ções básicas sobre a teoria da cor.

O conceito de cor está associado à perceção, pelo sistema de visão do ser humano,
da luz emitida, difundida ou refletida pelos objetos, sendo considerada um atributo dos
mesmos.

A cor de um objeto depende das características das fontes de luz que o iluminam, da
reflexão da luz produzida pela sua superfície e, por último, das características sensoriais
do sistema de visão humano, os olhos, ou de câmaras digitais.
A não existência de luz implica que nada se veja e, portanto, significa a não existência
de cor.

A luz contém uma variedade de ondas eletromagnéticas com diferentes comprimentos


de onda. Se o comprimento de uma onda eletromagnética pertencer ao intervalo de 380
a 780 nm (1 nanómetro = 10º m) é detetada e interpretada pelo sistema de visão do ser
humano. Estes diferentes comprimentos de onda constituem o espetro de luz visível do
ser humano e estão associados a diferentes cores (fig. 1.1).

Comprimentos de onda pequenos Comprimentos de onda grandes


dá W
«< >

Espetro visível

Azul Verde Vermelho


436 nm 546 nm 700 nm

|
400 nm 500 nm 600 nm 700 nm

Fig. 1.1. Espetro de luz visível do sistema de visão humano.

A interpretação das cores é feita pelo cérebro humano depois de a luz atravessar a íris
e ser projetada na retina. Desta forma, os olhos são os sensores de toda a visão e esta
pode ser do tipo escotópica e fotópica.

A visão escotópica é assegurada por um único tipo de bastonetes existentes na retina.


Estes são sensíveis ao brilho e não detetam a cor. Isto quer dizer que são sensíveis a
alterações da luminosidade, mas não aos comprimentos de onda da luz visível.

A visão fotópica é assegurada por um conjunto de três tipos diferentes de cones exis-
tentes na retina. Estes são sensíveis à cor e, portanto, aos comprimentos de onda da luz
visível, O número de cones da retina distribuem-se da seguinte forma: 64% são do tipo
vermelho (Red), 32% do tipo verde (Green) e 2% do tipo azul (Blue).

Como os bastonetes e os cones constituem dois tipos de sensores diferentes que


apreendem a intensidade da luz e as diferenças de cor, é usual associá-los, respetiva-
mente, aos conceitos de Iluminância e crominância. Estes conceitos estão, por sua vez,
relacionados com as diferentes formas de representar as cores.
1. Bases sobre a teoria da cor aplicada aos sistemas digitais 131

Depois de terem sido abordados os aspetos relacionados com a luz e a cor do ponto
de vista sensorial, coloca-se a questão de compreender como são geradas, armazena-
das, manipuladas e reproduzidas as imagens pelos diferentes dispositivos físicos que
utilizam a cor. Antes de mais, é necessário representar as cores através de modelos que
se aplicam a diferentes situações reais.
Exercício

1.1. Modelos aditivo e subtrativo


Os modelos de cor fornecem métodos que permitem especificar uma determinada cor.
Por outro lado, quando se utiliza um sistema de coordenadas para determinar os compo-
nentes do modelo de cor, está a criar-se o seu espaço de cor. Neste espaço cada ponto
representa uma cor diferente.

Antes de serem descritos alguns modelos, convém diferenciar modelo aditivo de sub-
trativo. O modelo utilizado para descrever as cores emitidas ou projetadas é considerado
aditivo e para as cores impressas é considerado subtrativo.

O quadro 1.1 exemplifica a aplicação dos modelos aditivo e subtrativo.

Quadro 1.1

Modelo aditivo Modelo subtrativo

Luz emitida e projetada num ecrã Luz refletida

| Mistura de cores emitidas por fontes de luz Mistura de cores de pintura ou impressão

Num modelo aditivo a ausência de luz ou de cor corresponde à cor preta, enquanto que
a mistura dos comprimentos de onda ou das cores vermelha (Red), verde (Green) e azul
(Blue) indica a presença da luz ou a cor branca (fig. 1.2).

O modelo aditivo explica a mistura dos comprimentos de onda de qualquer luz emitida.

Num modelo subtrativo, ao contrário do modelo aditivo, a mistura de cores cria uma cor
mais escura, porque são absorvidos mais comprimentos de onda, subtraindo-os à luz. A
ausência de cor corresponde ao branco e significa que nenhum comprimento de onda é
absorvido, mas sim todos refletidos (fig. 1.3).

O modelo subtrativo explica a mistura de pinturas e tintas para criarem cores que ab-
sorvem alguns comprimentos de onda da luz e refletem outros. Assim, a cor de um objeto
corresponde à luz refletida por ele e que os olhos recebem.
AIB12 O Porto Editora

Fig. 1.2. Modelo aditivo. Fig. 1.3. Modelo subtrativo.


132 Utilização do Sistema Multimédia

1.2. Modelo RGB

1.2.1. Caracterização do modelo

O modelo RGB é um modelo aditivo, descrevendo as cores como uma combinação das

PIONP ONO O TIAIV


três cores primárias: vermelha (Rea), verde (Green) e azul (Blue).
Em termos técnicos, as cores primárias de um modelo são cores que não resultam da
mistura de nenhuma outra cor.

Qualquer cor no sistema digital é representada por um conjunto de valores numéricos.


Por exemplo, cada uma das cores do modelo RGB pode ser representada por um dos se-
guintes valores: decimal de O a 1, inteiro de O a 255, percentagem de 0% a 100% e hexa-
decimal de 00 a FF.

O quadro 1.2 mostra a correspondência entre valores nos vários formatos.

Quadro 1.2

Correspondência entre valores

Decimal 0 0,2 0,4 0,6 0,8 1

Inteiro 0 51 102 153 204 255

Percentagem 0 20 40 60 80 100

Hexadecimal 00 33 66 99 CC FF

A figura 1.4 mostra um cubo que representa o modelo de cor RGB, usando um sistema
de coordenadas cartesianas para especificar as diferentes cores, que variam de 0 a 1.

Como o modelo RGB é aditivo, a cor branca corresponde à representação simultânea


das três cores primárias (1,1,1), enquanto que a cor preta corresponde à ausência das
mesmas (0,0,0).

A escala de cinzentos é criada quando se adicionam quantidades iguais de cada cor


primária, permanecendo na linha que junta os vértices preto e branco.

Azul /0,1) Ciano (0, 1,1)

Magenta
(1,0,1)

G Verde (0, 1,0)

Vermelho
: (1,0,0) Amarelo (1, 1,0)
Fig. 1.4. Representação do modelo RGB.
1. Bases sobre a teoria da cor aplicada aos sistemas digitais 133

O quadro 1.3 exemplifica várias cores do modelo RGB representadas por valores deci-
mais e inteiros. Jogo

Quadro 1.3

Cor Valor decimal Valor inteiro

Preto (0,0, 0) (0, 0,0)


Vermelho (R] (1,0,0) | (255, 0,0)
Verde (6) (0, 1,0) (0, 255, 0)
Azul (B] (0, 0,1) | 10,0, 255)
Branco (R+G+B) (1,1, )=(1,0,0)+(0,1,0)+(0,0,1) (255, 255, 255)
Amarelo (1, 1,0) =(1,0,0) + [0, 1,0) + (0,0,0) | (255, 255,0)
Ciano (0,1, 1) =[0,0,0)+(0,1,0)+(0,0,1) (0, 255, 255)
Magenta (1,0,1)=(1,0,0) + (0,0,0)+(0,0,1) | (255,0, 255)
90% de preto | (0.1, 0.1,0.1) | (25, 25, 25)
Azul-celeste | (0, 0.8, 1) | (0, 204, 255)
Castanho (0.6, 0.4, 0.2) (153, 102,51)

1.2.2. Aplicações

As aplicações do modelo RGB estão associadas à emissão de luz por equipamentos


como monitores de computador e ecrãs de televisão.

Por exemplo, as cores emitidas pelo monitor de um computador baseiam-se no facto


de o olho e o cérebro humano interpretarem os comprimentos de onda de luz das cores
vermelha, verde e azul. Por isso, estas são emitidas pelo monitor que, combinadas,
podem criar milhões de cores.

1.2.3. Resolução e tamanho

Uma imagem digital é uma representação discreta, isto é, constituída por


píxeis (pixel — picture element). O píxel, normalmente um quadrado, é a uni-
dade elementar de brilho e cor que constitui uma imagem digital (fig. 1.5).
Assim, a definição de resolução de uma imagem é entendida como a
quantidade de informação que a imagem contém por unidade de compri-
mento, isto é, o número de píxeis por polegada, ppi (pixels per inch). Fig. 1.5. Imagem constituída
A resolução da imagem pode também ser definida, de forma imprópria, pelo por um conjunto de píxeis.
seu tamanho, ou seja, pelo número de píxeis por linha e por coluna.

A resolução de uma imagem digital determina não só o nível de detalhe como os requi-
sitos de armazenamento da mesma. Quanto maior a resolução de uma imagem, maior
será o tamanho do ficheiro de armazenamento.

O nível de detalhe de uma imagem depende da informação de cada píxel. Cada píxel é
AIB12 O Porto Editora

codificado de acordo com a cor e o brilho que representa, isto é, ocupa em memória um
número de bits que varia de acordo com o número de cores, tons de cinza e brilho defi-
nido para uma determinada imagem.
134

1.2.4. Profundidade de cor

A profundidade de cor indica o número de bits usados para representar a cor de um

LIONPY OO] O TIAIV


píxel numa imagem. Este valor é também conhecido por profundidade do píxel e é definido
por bits por píxel (bpp).

O quadro 1.4 mostra a relação entre o número de bits e o número de cores que podem
ser produzidas. Mostra também os respetivos modelos de cor e padrões gráficos utiliza-
dos em monitores e placas gráficas.

Quadro 1.4

Profundidade de cor | N.º de cores . = E


(n.º de bits) produzidas Qualidade da cor Padrão gráfico

1 2'=2 Preto e branco Monocromática


(bit O ou 1)

2. CGA
2? 7 =4 Cores de 2 bits (Color Graphics Adapter)

4. EGA
4 2 = 16 Cores de 4 bits [Enhanced Graphics Adapter)

8 PB - 256 Escala de cinzas ou VGA


. cores de 8 bits (Video Graphics Adapter]
16 Cores de 16 bits XGA
16 2 =65 536 (High color] [Extended Graphics Array)
| 8 8 8 9
24 22x 22x 2º=22= | | Cores de 24 bits
: |
SVGA
= SuperVGA
=16 777 216 [True color)
Cores de 32 bits
32 2? = 4 294967 296 | (True color, 24 bits SVGA = SuperVGA
+ Alpha Channel, 8 bits]

A profundidade de cor das imagens varia com o número de cores presentes na ima-
gem. No modelo RGB, com a profundidade de 24 bits existe a possibilidade de escolher
16,7 milhões de combinações de cor (quadro 1.4). Embora o olho humano não possa
identificar estes 16,7 milhões de cores, este número de combinações permite variações
ténues que dão a impressão de imagens com aspetos muito reais.

Com uma profundidade de 32 bits, apenas são endereçadas 16 777 216 (22?) cores.
Este é um modo gráfico especial usado pelo vídeo digital, animação e jogos para levar a
cabo certos efeitos. Neste caso, os 8 bits extras (Alpha Channel) não são utilizados para
representar cores, mas, por exemplo, para indicar o grau de transparência que o píxel
deve ter quando a imagem, à qual ele pertence, é sobreposta com outra imagem.

1.2.5. Indexação de cor

A indexação de cor consiste em representar as cores dos píxeis por meio de índices de
uma tabela (Lookup Table) e que, em alguns formatos de imagem, é armazenada junta-
mente com a mesma num único ficheiro. As cores desta tabela são conhecidas como
cores indexadas, porque estão referenciadas pelos números de índice que são usados
pelo computador para identificar cada cor.
1. Bases sobre a teoria da cor aplicada aos sistemas digitais

Enquanto uma imagem RGB é definida separadamente por


valores de vermelho, verde e azul para cada píxel numa ima-
gem, uma imagem de cor indexada cria uma tabela que define
um determinado número de cores e cada píxel é definido por
um índice de cor dessa tabela.

A figura 1.6 mostra uma imagem e as respetivas caixas de


diálogo Colormap do GIMP com uma tabela (paleta) de 16
cores.

O quadro 1.5 compara a posição das cores preta, vermelha


e branca com os seus respetivos índices numa tabela corres- | | HummaS +.
pondente à da figura 1.6.

2 +
Quadro 1.5 Cok p o

Cor Índice RGB (inteiro) RGB (hexadecimal) BE cocmao (0)


Preto 0 0,0,0 00, 00, 00 o o.
1 Color index 15 -
Vermelho | 9 255,0,0 FF, 00, 00 pie -—

Branco 15 255, 255, 255 FF, FF, FF LB] +


Fig. 1.6. Caixas de diálogo
Colormap do GIMP

As cores indexadas reduzem o tamanho dos ficheiros de imagens.

No entanto, se a imagem for uma fotografia, esta pode originar um ficheiro de cores indexa-
das de tamanho grande.

As cores indexadas estão limitadas a 256 cores, podendo ser qualquer conjunto de
256 cores de 16,7 milhões de 24 bits de cor.

Se tivermos um gráfico a preto e branco e se este for guardado com um formato de cor
indexada, a tabela contém apenas as cores preta e branca necessárias para a imagem e
não precisa de conter as 256 cores.

1.2.6. Paleta de cores

Uma paleta de cores é a designação utilizada para qualquer subconjunto de cores do


total suportado pelo sistema gráfico do computador.

Uma paleta de cores pode também ser chamada de mapa de cor, mapa de índice, ta-
bela de cor, tabela indexada ou tabela de procura de cores (Lookup Table — LUT).
AIB12 O Porto Editora

Cada cor dentro da paleta é identificada por um número (índice).

Como foi visto no ponto anterior, a utilização de paletas permite diminuir o tamanho dos
ficheiros de imagens, porque apenas são armazenadas em memória as cores utilizadas.
136 Utilização do Sistema Multimédia

1.2.7. Complementaridade de cores


Jogo

Uma cor complementar de uma determinada cor primária é a cor que se encontra

LIONPT ONO O TIQIV


quando é efetuada uma rotação de 180 graus num anel de cor (fig. 1.7). No modelo RGB,
estas cores complementares são também chamadas cores secundárias ou cores primá-
rias de impressão.
Verde Amarelo

Ciano Vermelho

Azul Magenta Fig. 1.7. As cores primárias do modelo RGB


e as suas cores complementares.

Em termos técnicos, as cores secundárias ou complementares de um modelo são


cores que resultam da mistura de quantidades iguais de duas cores primárias adjacentes.

O quadro 1.6 identifica as cores primárias do modelo RGB e as suas respetivas cores
complementares.
Quadro 1.6

Primária Complementar

Vermelho (Red) Ciano (Cyan)


Verde (Green) Magenta (Magenta)
Azul (Blue) Amarelo (Yellow)

1.3. Modelo CMYK

1.3.1. Caracterização do modelo


O modelo CMYK é um modelo constituído a partir do modelo CMY em que foi acrescen-
tada a cor preta (black). O modelo CMY é um modelo subtrativo, descrevendo as cores
como uma combinação das três cores primárias ciano (Cyan), magenta (Magenta) e ama-
relo (Yellow) (fig. 1.8). A cor preta foi adicionada ao modelo por ser mais fácil a sua obten-
ção quando impressa em papel do que recorrendo à mistura de cores.

| Vermelho
Amarelo (0, 0, 1) (0, 1,1)

Verde (1,0,1)

Ciano (1,0, 0)
C

Fig. 1.8. Representação do modelo CMY.


1. Bases sobre a teoria da cor aplicada aos sistemas digitais 137

O modelo CMY baseia-se na forma como a Natureza cria as Luz refletida Luz incidente
suas cores quando reflete parte do espetro de luz e absorve
outros (fig. 1.9). Por isso, é considerado um modelo subtrativo,
porque as cores são criadas pela redução de outras à luz que
incide na superfície de um objeto.

A observação dos cubos de cor das figuras 1.4 e 1.8 mostra


que as cores primárias do modelo CMY são as cores secundá-
rias do modelo RGB e as cores primárias do RGB são as cores
secundárias do CMY.
Fig. 1.9. Criação de uma cor pela
reflexão da luz.

1.3.2. Aplicações

O modelo CMYK é utilizado na impressão em papel, empregando as cores do modelo


CMY e a tinta preta (K) para realçar melhor os tons de preto e cinza.

A impressão, utilizando o modelo CMYK, assenta na sobreposição de camadas de


tintas de ciano, magenta, amarelo e preto. Desta forma, as áreas em branco indicam ine-
xistência de tinta ou pigmentos e as áreas escuras indicam uma concentração de tinta.

Este modelo utiliza-se em impressoras, fotocopiadoras, pintura e fotografia, onde os


pigmentos de cor das superfícies dos objetos absorvem certas cores e refletem outras.

1.4. Modelo HSV


Tonalidade
Nos pontos anteriores foram vistos os modelos RGB e
CMYK, mas outros modelos podem ser criados baseados
nas suas aplicações ou utilizações e de acordo com as
seguintes categorias:
|EOil)
e standard (CIE-XYZ);
e percetual (Luv e Lab);
e linear (RGB e CMYK);
e artístico (Munsell, HSV e HLS); Saturação
e transmissão de sinais de televisão (YIQ e YUV).

0
1.4.1, Caracterização do modelo Fig. 1.10. Representação do modelo HSV.

O modelo HSV é definido pelas grandezas tonalidade (Hue), saturação (Saturation) e


valor (Value), onde este último representa a luminosidade ou o brilho de uma cor (fig.
1.10).

A tonalidade ou matiz (hue) é a cor pura com saturação e luminosidade máximas, por
exemplo, amarelo, laranja, verde, azul, etc. A tonalidade permite fazer a distinção das
várias cores puras e exprime-se num valor angular entre O e 360 graus (quadro 1.7). Por
exemplo, o valor O ou 360 graus corresponde ao vermelho.
AIB12 O Porto Editora

Quadro 1.7

Tonalidade Vermelho | Amarelo Verde Ciano Azul | Magenta


Graus 0 ou 360 60 120 180 240 300
138

A saturação (saturation) indica a maior ou menor intensidade da tonalidade, isto é, se

LIONPT ONO O TIQIV


Exercício a cor é pura ou esbatida (cinzenta). Uma cor saturada ou pura não contém a cor preta
nem a branca. A saturação é utilizada para descrever quão viva ou pura é a cor e em ter-
mos técnicos descreve a quantidade de cinzas numa cor. Exprime-se num valor percen-
tual entre 0% e 100%. O valor 0% indica a inexistência de cor ou a aproximação aos cin-
zentos e o valor 100% indica uma cor mais saturada ou pura.

O valor (value) traduz a luminosidade ou o brilho de uma cor, isto é, se uma cor é mais
clara ou mais escura, indicando a quantidade de luz que a mesma contém. O termo lumi-
nosidade está relacionado com a luz refletida, enquanto que o termo brilho está relacio-
nado com a luz emitida. Em termos técnicos, esta grandeza indica a quantidade de preto
associado à cor e exprime-se num valor percentual entre 0% e 100%. O valor 0% indica
que a cor é muito escura ou preta e o valor 100% indica que é saturada ou pura.

Por último, pode-se concluir que a tonalidade e a saturação são elementos de cromi-
nância, pois fornecem informação relativa à cor. Por outro lado, a perceção da luminosi-
dade (luz refletida) e do brilho (luz emitida) são elementos de luminância.

1.4.2. Aplicações

O modelo HSV baseia-se na perceção humana da cor do ponto de vista dos artistas
plásticos. Isto é, os artistas plásticos para obterem as várias cores das suas pinturas
combinam a tonalidade com elementos de brilho e saturação. Desta forma, o modelo HSV
é mais intuitivo de utilizar do que o modelo RGB. Do ponto de vista de um artista plástico,
é mais fácil manusear as cores em função de tons e sombras do que apenas como com-
binações de vermelho, verde e azul.

1.5. Modelo YUV

1.5.1. Caracterização do modelo


Os modelos anteriores apresentam objetivos específicos, como, por exemplo:
s o modelo RGB permite exibir imagens de cor em monitores;
* o modelo CMYK é utilizado na impressão;
e o modelo HSV é utilizado na mistura de cores do ponto de vista artístico.

Contudo, nenhum destes modelos tem em conta uma propriedade da visão humana.
Esta é mais sensível às mudanças de intensidade da luz (luminância) do que da cor (cro-
minância). O modelo YUV tem em conta esta característica.

O modelo YUV foi criado a par do desenvolvimento da transmissão de sinais de cor de


televisão. Este modelo baseado na luminância permite transmitir componentes de cor em
menos tempo do que seria necessário se fosse utilizado o modelo RGB. Ao mesmo tempo,
o modelo YUV permite transmitir imagens a preto e branco e imagens de cor de forma in-
dependente.

Nos modelos RGB e CMYK cada cor incluiu informação relativa à luminância, permi-
tindo ver cada cor independente de outra. No caso de se estar a guardar um píxel de
acordo com o modelo RGB e se o vermelho, o verde e o azul tiverem os mesmos valores
de luminância, isto significa que se está a guardar a mesma informação três vezes, au-
mentando a quantidade de informação.
1. Bases sobre a teoria da cor aplicada aos sistemas digitais 139

O modelo YUV guarda a informação de luminância separada da informação de cromi-


nância ou cor. Assim, o modelo YUV é definido pela componente luminância (Y) e pela Exercício
componente crominância ou cor (U e V).

Com este modelo é possível representar uma imagem a preto e branco utilizando ape-
nas a luminância e reduzindo bastante a informação que seria necessária noutro modelo.

1.5.2. Aplicações

o
O modelo YUV é adequado às televisões a cores, porque
permite enviar a informação da cor separada da informação
de luminância. Assim, os sinais de televisão a preto e
branco e de televisão a cores são facilmente separados. O Scanner Máquina fotográfica Câmara de vídeo
modelo YUV é também adequado para sinais de vídeo. RGB RGB po NYUvI
| |

Este modelo permite uma boa compressão dos dados, |f YUM |


/ para
porque alguma informação de crominância pode ser retirada / RGB |
Editor de
sem implicar grandes perdas na qualidade da imagem, pois imagem YUV RGB

a visão humana é menos sensível à crominância do que à RGB


Editor de Editor de
para vídeo vídeo
luminância. CMYK YUv |
para |
O modelo YUV é utilizado pelos sistemas de televisão RGB |
europeu PAL e francês SECAM e na compressão dos forma- 1
|

tos JPEG/MPEG. No sistema de televisão americano e asiá- | |

tico NTSC é utilizado um modelo de cor equivalente desig-


Ao

nado YIQ.

A figura 1.11 exemplifica a utilização de vários modelos Impressora Disco Monitor


CMYK RGB ou CMYK RGB
de cor por diferentes equipamentos e a necessidade das YUV
respetivas conversões. Por exemplo, a câmara de vídeo con- RGB YUV
CMYK
verte os dados RGB capturados pelos seus sensores em Gráficos
Vídeo

sinais YUV. O ecrã, para efetuar o rendering destes sinais, Fig. 1.11. Exemplificação da utilização de
precisa de voltar a convertê-los para RGB. vários modelos de cor por diferentes
equipamentos e as respetivas conversões.

1.6. Cores em HTML


As cores presentes em páginas Web utilizam normalmente o modelo RGB.

Inicialmente, os monitores apenas permitiam uma paleta limitada de 256 cores RGB.
Atualmente, com o aparecimento de monitores e placas gráficas que proporcionam uma
profundidade de 24 bits, o uso dos 16,7 milhões de cores não traz problemas para qual-
quer computador que tem capacidade para processar este número de cores. No entanto,
há outros dispositivos que permitem visualizar documentos de HTML e cuja capacidade
cromática é ainda limitada. Por isso, para o desenvolvimento de páginas web continua a
ser recomendável utilizar um conjunto de 216 cores, e não 256, que correspondem à pa-
leta de cores seguras utilizadas para a Web.

Este conjunto de 216 cores resultou inicialmente da necessidade de os sistemas ope-


rativos precisarem de reservar um conjunto de cores, das 256 iniciais, para o desenho
das suas interfaces gráficas.
AIB12 O Porto Editora

Para o desenvolvimento de páginas Web, estas 216 cores são consideradas cores
seguras para a Web, porque é garantido que sejam corretamente visualizadas em todos
os sistemas sem serem alteradas ou truncadas.
Utilização do Sistema Multimédia

PIONPY ONO O TITIV


A forma encontrada para criar uma paleta com as 216 (6 X 6 X 6) cores seguras foi
Exercício
defini-la a partir da combinação de vermelho, verde e azul com apenas os 6 códigos hexa-
decimais indicados no quadro 1.8.
Quadro 1.8

Correspondência entre valores

Inteiro 0 51 102 153 204 255

Hexadecimal 00 33 66 99 CC FF

O quadro 1.9 apresenta uma amostra de 6 cores retiradas de uma tabela de 216
cores, exemplificando a utilização dos códigos referidos no quadro 1.8.

Quadro 1.9

Exercícios de aplicação 1
1. Qual dos recetores, cones ou bastonetes, são:
a) responsáveis pela visão da cor;
b) sensíveis ao brilho;
c) responsáveis pela visão noturna;
d) sensíveis aos comprimentos de onda da luz.

Diga o que entende por modelo de cor.

Como é obtida a cor preta nos modelos de cor aditivo e subtrativo?

Represente a cor vermelho no modelo RGB, de acordo com os seguintes formatos:


a) decimal;
b) inteiro;
c) percentagem;
d) hexadecimal.

Dê exemplos da aplicação do modelo de cor RGB.

Observe as imagens das figuras 1 e 2.


a) Qual delas deverá apresentar uma maior resolução? Justifique a sua resposta.
b) Indique a unidade utilizada na medição da resolução de uma imagem.
c) Qual das duas imagens deverá ter um ficheiro de tamanho maior? Justifique a sua resposta.

Exclusivo
do Professor

Fig. 1. Fig. 2.

Solução
1. Bases sobre a teoria da cor aplicada aos sistemas digitais 141

Exercícios de aplicação 1 (cont.)


o Exercício

7. Observe as imagens das figuras 3 e 4.


a) Qual das duas imagens deverá ter um ficheiro de tamanho maior? Justifique a sua resposta.
b) Quala profundidade de cor na imagem da figura 4?

EE
Fig. 4.

Relacione os seguintes conceitos:


a) resolução, profundidade de cor e tamanho de um ficheiro;
b) indexação de uma cor, paleta de cores e tamanho de um ficheiro.

Defina os seguintes conceitos:


a) cor primária;
b) cor secundária;
c) cor complementar;
d) cor primária de impressão.

10. As impressoras de jato de tinta utilizam geralmente o modelo de cor conhecido por:
(A) CIE;
(B) YUV;
(C) RGB;
(D) CMYK.

11. Observe a figura 5. De acordo com o modelo HSV, quais as cores que apresentam maior saturação
e menor saturação? Justifique a sua resposta.

a) b) c)
Fig. 5.

12. Os modelos RGB e HSV são tridimensionais. Indique como pode ser cada um deles representado.

13. Quala propriedade do olho humano que o modelo YUV tem em atenção?

14. Qual a diferença entre luminância e crominância?

15. Diga por que razão o modelo YUV é usado na transmissão de sinais de televisão.
AIB12 O Porto Editora

Exclusivo
16. Explique como é criada a paleta de cores seguras para documentos HTML. do Professor

Solução
142

Jogo
2. Geração e captura de imagem

2.1. Formatos de ficheiros de imagem

2.1.1. Formatos mais comuns

Existe a necessidade muitas vezes de transferir uma imagem de um programa para

LIONPA ONO] O TIAIV


outro, quando um determinado trabalho precisa de ser elaborado por vários setores, onde
cada programa tem as suas capacidades, podendo vir a acrescentar à imagem aspetos
próprios de cada um. Assim, os vários programas devem poder importar e exportar as
imagens de uns para os outros de forma rápida e eficiente. Existem vários formatos para
guardar os ficheiros de imagens digitais e os vários programas devem ter capacidade para
ler e guardar nesses formatos.

Apesar de, muitas vezes, se guardar no formato que, por defeito, é apresentado pelo pro-
grama, é preciso conhecer os vários formatos e saber, em cada momento, qual deles é o me-
lhor. Assim como é importante saber qual o software mais adequado para o trabalho a realizar.

Os programas de computador que trabalham com imagens estão genericamente dividi-


dos em duas categorias: programas bitmap (imagem) e programas vetoriais (gráficos ou
desenho). O formato bitmap é baseado num mapa de bits e o formato vetorial baseia-se
em fórmulas matemáticas.

Formatos de ficheiros de imagens mais comuns


|
w w

Bitmap Vetorial
Consiste num mapa de bits Baseia-se em fórmulas matemáticas
(imagem) (gráficos ou desenho)

2.1.2. Tipos de formatos para imagens bitmap

A informação de uma imagem bitmap pode ser guardada numa grande quantidade de
formatos de ficheiros. A seguir são apresentados alguns deles.

BMP (Bitmap)
O BMP (bitmap) é um formato muito popular, devido ao programa de pintura do Win-
dows, o Paint. É o formato mais comum e não inclui, até ao momento, nenhum algoritmo
de compressão.

GIF (Graphics Interchange Format)


O GIF é um formato com compressão sem perdas, não perdendo a qualidade quando é
alterado o seu tamanho original. São ficheiros que ocupam um pequeno espaço no computa-
dor, sendo perfeitos para o desenvolvimento de páginas para a Internet. Este formato não
suporta mais do que 256 cores (8 bits de cor) e é lido por muitos programas.

O sucesso deste formato na Web deve-se a particularidades como a transparência, a


animação e o entrelaçamento.
2. Geração e captura de imagem 143

O formato GIF permite definir uma cor de fundo como transparente, resultando daí ima-
gens sem limites e preenchimento, que se inserem nas páginas Web. Igualmente, um fi-
cheiro GIF pode ser animado quando aceita várias imagens que se abrem com um certo
movimento. Uma imagem entrelaçada (interlace) no formato GIF é visualizada no browser
com uma resolução crescente à medida que vai sendo carregada. Todos os browsers su-
portam este formato, não havendo necessidade de instalar software específico para usu-
fruir destas animações.

JPEG (Joint Photographic Experts Group)


A extensão JPEG, JPG ou JFIF (JPEG File Interchange Format) é um formato com vários
níveis de compressão com perdas, muito popular para compressão de ficheiros, mas que
implica a perda de informação diminuindo a qualidade da imagem. A compressão deste
formato baseia-se na eliminação de informações redundantes e irrelevantes, isto é, na
repetição da mesma cor em pontos adjacentes ou de cores semelhantes não diferencia-
das a olho nu. Pode-se, no entanto, escolher compressões menores para atenuar a perda
de qualidade da imagem em cada descompressão.

É um formato especial para trabalhar em páginas Web, apesar da perda de qualidade da imagem,
pois são ficheiros que ocupam pequenos espaços e, às vezes, menores do que os do formato GIF.

PCX (PC Paintbrush)


O PCX é um dos formatos bitmap mais antigos criado para o programa Paintbrush da
Microsoft. E um formato que continua a ser usado pelas aplicações da Zsoft, utilizando a
compressão com e sem perdas e podendo ser lido por vários programas.

PDF (Portable Document Format)


O PDF é um formato criado com o programa Adobe Acrobat. Este formato é muito
usado para converter e comprimir de forma substancial documentos de texto e imagens,
quando existe a necessidade de enviar, para leitura, esta informação para outros compu-
tadores, por rede ou por outro suporte, bastando que o outro computador tenha instalado
o Adobe Reader ou outro programa que permita a leitura deste formato.

PNG (Portable Network Graphics)


O PNG é um formato com compressão sem perdas, que substitui o formato GIF para a
Web, suportando uma profundidade de cor até 48 bits, mas não comportando animação.

XCF (eXperimental Computing Facility)


O formato XCF é utilizado na aplicação GIMP.

TIFF (Tagged Image File Format)


O TIFF é um formato sem compressão muito utilizado em programas bitmap de pintura
e edição de imagem e com software de digitalização. É o maior em tamanho e o melhor em
qualidade de imagem. É o formato ideal para o tratamento da imagem antes de esta ser
AIB12 O Porto Editora

convertida para qualquer outro formato.

Geralmente, os programas de desenho não utilizam este formato, no entanto, progra-


mas de composição de texto permitem a importação de ficheiros com esta extensão.
144 Utilização do Sistema Multimédia

2.1.3. Tipos de formatos para imagens vetoriais


Exercício

A informação de uma imagem vetorial pode ser guardada numa grande quantidade de

LIONPA 00d O TIJIV


formatos de ficheiros. A seguir são apresentados alguns deles.

SVG (Scalable Vetor Graphics)


O SVG tende a ser um formato-padrão para a Web, especificado pela W3C e definido
sob a linguagem XML.

SXD (OpenOffice.org DRAW)


O formato SXD do OpenOffice.org DRAW permite de forma simples o desenho vetorial
em trabalhos.

PS (PostScript) e EPS (Encapsulated PostScript)


Os formatos PS e EPS são reconhecidos por quase todos os programas de edição de
texto ou de imagem que suportam imagem vetorial.

CDR (CorelDRAW)
O formato CDR é utilizado na aplicação CorelDRAW.

WMF (Windows Meta File)


O formato WMF é reconhecido pela maioria dos programas de edição de texto ou de
imagem do Microsoft Office.

Exercícios de aplicação 2
1. Classifique em verdadeiras (V) ou falsas [F) as seguintes afirmações.
(A) Os desenhos vetoriais são definidos por fórmulas matemáticas que descrevem formas
geométricas.
(B) Um desenho do tipo vetorial é definido pelo conjunto de coordenadas que identificam os pixeis.
(C) O formato TIFF é um formato do tipo bitmap que cria ficheiros de tamanho muito pequeno.
(D) É possível redimensionar um desenho do tipo vetorial sem perder a qualidade dos seus
detalhes.
(E) O formato CDR do CorelDRAW é um formato do tipo bitmap.

Dos exemplos seguintes, quais os que deveriam ser produzidos como mapa de bits ou como gráfico
vetorial?
a) logótipo publicitário;
b) imagem de uma cidade;
c) diagrama de um circuito elétrico;
d) fotografia de uma paisagem.

Exclusivo
do Professor

Solução
2. Geração e captura de imagem 145

2.2. Gráficos vetoriais


Jogo

2.2.1. Noções e características


As imagens criadas com programas vetoriais, ou de desenho, baseiam-se em fórmulas
matemáticas e não em coordenadas dos píxeis. Os gráficos ou desenhos vetoriais são
descritos por equações matemáticas que representam uma série de elementos bidimen-
sionais (2D), como linhas, retângulos, polígonos, curvas, etc., ou tridimensionais (3D),
como sólidos ou outros volumes (fig. 2.1).

Fig. 2.1. Uma imagem do tipo vetorial, quando é ampliada, não perde a sua
qualidade porque esta não depende da sua resolução.

Os elementos contidos em desenhos vetoriais podem ser facilmente deslocados e re-


dimensionados. Muitas das vezes, basta clicar e arrastar o objeto que o computador
torna a recalcular a nova posição.

Quando se trabalha com um programa vetorial (ou de desenho), não se mexe na reso-
lução da imagem (fig. 2.1). A qualidade de uma imagem vetorial não é baseada na resolu-
ção da imagem (ppi), mas na resolução do dispositivo de saída (dpi — dots per inch).

Como a qualidade da imagem criada com programas vetoriais não se baseia na reso-
lução, estes geram ficheiros muito mais pequenos do que os criados em programas bit-
map. Para se obter uma imagem com uma boa resolução de impressão, basta ter uma
impressora de alta resolução e criar a imagem num programa vetorial.

O Adobe Illustrator, o CorelDRAW, o Freehand, o AutoCad e o Inkscape são exemplos


de programas que criam e manipulam imagens em formato vetorial.

Para se reproduzir uma imagem vetorial num monitor ou numa impressora, é utilizada
uma operação designada por rendering.

O rendering é uma operação que transforma os dados gráficos em dados de imagem,


isto é, interpreta as equações matemáticas, que descrevem os objetos e os gráficos, e
gera os píxeis da imagem bitmap correspondente.
AIB12 O Porto Editora

Os desenhos vetoriais podem ser guardados no formato bitmap mas, depois de convertidos, não
podem ser trabalhados como vetores. Portanto, é aconselhável ter sempre a versão vetorial do
mesmo.

AIB12 F10
146

>» 2.2.2. Uso de um programa de desenho


Vídeo

O ambiente de trabalho

O Inkscape é um software livre, de código aberto e gratuito. É um programa de desenho

LIONPT ONO O TITIV


que trabalha com imagens vetoriais, que resultam de um conjunto de fórmulas matemáti-
cas, indicando ao computador como obtê-las através da construção e modelação de obje-
tos. Com linhas retas ou curvas, unidas por pontos, formam-se círculos, retângulos, elip-
ses, letras e outras formas. Para além destes elementos, e da definição da sua localização
e tamanho, outros podem ser definidos, como a cor, o contorno e o preenchimento.

O Inkscape usa o formato SVG (Scalable Vector Graphics) para guardar os seus dese-
nhos vetoriais. É possível importar e exportar para formatos de imagens, assim como
guardar em formatos como PDF e PNG.

Uma das formas de iniciar o Inkscape é selecioná-lo em Todos os programas, quando


se clica no botão Iniciar do Windows. Numa versão portable deve-se selecionar o seu fi
cheiro executável. Surge, depois, a janela principal do programa (fig. 2.2).

O dra document3 - Dâcapo Co e qtas Barra de título


Barra de menus eee e e
Barra de comandos - Gê 90 se “0 0800 096 ZE GTaBt sy
UU GRASS USP ; a =] mm E Barra de controlos
' ” ” 3 ms nã o O e À de ferramenta
Ro ' "a sy
RN IR E .
Caixa de ferramentas “£ ; Réguas
a b|| Barra de controlos
(gi de encaixe
o uh
Área de desenho e O
, + |
o sá Doca - Área dos
» 1 diálogos acopláveis

Página de desenho Hp + 2
v o
A
me. 7 Barras de
» deslocamento

e
/
e 4H j tt

R-, - E— b Selecionar paleta


Paleta de cores > vo ooo" de cores
a" = a E <
Barra de deslocamento —— & na O À tem! [=| Cat chat to ente in rea dig to emo vt ; AR cl to ent ends | paga 1 e — Barra de estado
horizontal da paleta Fig. 2.2. Janela do programa Inkscape 0.48 em que o retângulo central é
efetivamente a página de desenho, onde é possível criar todos os trabalhos.
A área de desenho permite, por sua vez, dispor todo um conjunto de objetos,
que poderão ser facilmente acedidos e fazer parte do desenho a criar.

O ambiente de trabalho do Inkscape é constituído pelos seguintes elementos princi-


pais, que podem surgir quando o programa abre ou selecionando-os nos menus.
* Barra de menus (Menu Bar) — contém vários menus que permitem o acesso aos co-
mandos do programa.
e Barra de comandos (Commands Bar) — contém ícones que são atalhos rápidos para
comandos presentes nos menus e podem dar acesso a várias caixas de diálogo.
2. Geração e captura de imagem 147

* Caixa de ferramentas (Toolbox) — contém um conjunto de ferramentas que permitem


criar, pintar e transformar os objetos no desenho.
Barra de controlos de ferramenta (Tool Controls Bar) — contém comandos relaciona-
dos com uma ferramenta ou um objeto ativos, tornando-se desta forma uma ferra-
menta interativa e alterando-se com a ferramenta ou tarefa a realizar.
Barra de controlos de encaixe (Snap Controls Bar) — contém ícones que permitem
alinhar, ajustar e encaixar objetos na área de desenho.
Paleta de cor (Color Pallete) — apresenta, em linha, as cores associadas com a paleta
selecionada.
Barra de estado (Status Bar) — apresenta várias informações relacionadas com o objeto
e a área de desenho.
Diálogos acopláveis (Dockable Dialogs) — surgem do lado direito da janela do pro-
grama quando determinados comandos são ativados na barra de menus. As várias
caixas de diálogos podem ser organizadas e redimensionadas na doca. Com o botão
esquerdo do rato sobre a barra de título da caixa de diálogo, é possível arrastá-la
para a área de desenho. Para a caixa de diálogo regressar à sua posição na doca
efetua-se a operação inversa. A área da doca pode ser ativada ou desativada quando
se seleciona o comando Show/Hide Dialogs do menu View, mas só se torna visível
com uma caixa de diálogo ativa ou com a ajuda do rato alargando a área da doca da
direita para a esquerda.

À barra de menus

No Inkscape, os comandos podem ser selecionados: nas barras de menus, de coman-


dos e de controlos; na caixa de ferramentas; nas caixas de diálogos; etc.

A barra de menus dá acesso a um conjunto de menus, tais como: File, Edit, View,
Layer, Object, Path, Text, Filters, Extensions e Help (figs. 2.3, 2.4 e 2.5). Os vários menus
permitem organizar os comandos, agrupando-os de acordo com uma determinada lógica.

€ Undo Ctrl+Z
O Redo Shift+ Ctrl Z View
€? Undo History... Shift+ Ctri+H Zoom »
Display mode »
se Cut CtrlX
| le à EE Grid £
ms 5 E) Copy Ctrl+C É
Open. Cu. o O Paste CtrleV +im Guides |
Open Recent , Paste In Place Ctri+ARt+V Snap %
O Pere (E) Paste Styie Shifte CtrleV view
(BD Color-managed
Ea see Cute $ Paste Size » Show/Hide +»

e Save
ser»eCopy e
Gt é Cinto AROS
E “ End. Carte Fo Show/Hide Dialogs Fiz
a Cade T) Duplicate Chi+D FM, Swatches... Shift+ Crie W

Site Coto E Clone , E] Messages...


(3 tor Bamap
2 ti E (Ê Make a Btmap Copy AR+B E) Previous Window Tab
Sahel

& 8 Delete Delete [E] Net Window CtrieTab


Vaca Dets

(B) Select AM Ctri+ A E) Icon Preview...


Z Document Propertres Sit e Corte D uni Ê
ES dec sentem FE! Select All in All Layers Chri+AR+A Duplicate Window
[FÊ Inert Selecti |
&e Inkscape Preferences. Sit e Crrte P S o &» Fuliscreen Fu
my Dev Deselect
AIB12 O Porto Editora

= im . e Default
K Jow Cult Guides Around Page Cs

q qu Crie Q [3] XML Editor... Shift+ Ctrte X Wide


Fig. 2.3. Menus File, Edit e View, com os respetivos comandos visíveis.
148

O menu File contém comandos que permitem efetuar várias operações relativas a fi

LIONPT ONO O TIQIV


cheiros, como: criar um novo documento a partir de várias opções; fechar um documento;
guardar um documento; guardar um documento com outro nome, tipo ou localização; im-
portar ou exportar ficheiros; imprimir; configurar o programa; etc.

O comando Inkscape Preferences permite no separador Interface alterar o idioma a


utilizar no programa. Para tornar visível a alteração é necessário sair e iniciar novamente
o programa.

O menu Edit contém comandos que permitem efetuar operações básicas sobre um
documento, como: anular uma operação; copiar, mover, duplicar, clonar, eliminar e sele-
cionar objetos; etc.

O menu View contém comandos que permitem visualizar o documento de diferentes


modos; ativar ou desativar grelhas e linhas-guia; ativar barra de controlos de encaixe
(snap); mostrar ou esconder réguas, barras do programa, caixa de ferramentas, paletas e
caixas de diálogo; mostrar modelos de cores; etc.

Dtyect Path
(7 Em und Stroke Site CuioF | QL Objectto Path Shift+ Ctrl+C
(Bl Otyect Propertes Share Cuio O | gE- Stroke
to Path Creio Alt+C
8 Group iG É Irace Bitmap... Shift+ Alt+ B
Rá Ungroup A-CM6 | | 10) ion Culee
hp E [&y Difference Ctrle-
Mask , :
Pultema . q Intersection Ctrt+
Otgects to Marter (É Exclusion Ctrl+*
— Obyects to Guades Share G Division Ctrl/
+, Sd4 Logos amu | Ee Pagelp (O) CutPath Chrte Alto
Duplicate Cusvent| P Dowm
- da 8 Lower e [ÉP Combine CtrlK
4 Fepame Lover Fr Rene to Top Home
: [O Break Apart Shifte Ctri+ K
> Swdch
to Lopes Abovg Che Page Up 4H Lower
to Bottom ing
E Sevtci
to Lopes Belo Cate Page Down & Es" Cu Be, Inset Ctrl(
Move Selection
to Layer Above SutePageUp | 4), Rotate
MJ" CCW Ba Outset Chris)
di Move Selection
to Layer Belga Sit Page Down A meus ne no 8 Dynamic Offset Crie)
im) Bone Lover Sir = Cred Page Up É Mp vertical v BA Linked Offset Chris A+)
im Lower Loyer Sind « Chote Page Down as 2 Simplity CuteL
B Lento Top Side Cro icone Undock AS Es
Reverse
ta) Usperto Borom Sidto Crato End >: a *
E UN unsos o Path Effect Editor. ShifteCtrls7
A Qeinte Comment Laçer Ep Augr ans Detruse Sind + Cristo À Paste Path Effect Ctrls7

Ugo Sid o Cro SE Pows


and Cobameu Remove
Path Effect

Fig. 2.4. Menus Layer, Object e Path, com os respetivos comandos visíveis.

O menu Layer contém comandos que permitem: adicionar, duplicar, eliminar ou reno-
mear camadas; organizar e realizar operações com as diferentes camadas, assim como,
mover objetos entre as mesmas.

O menu Object contém comandos que permitem manipular objetos de um documento,


como: agrupar ou desagrupar objetos; bloquear objetos; combinar objetos; transformar a
forma dos objetos; etc.

O menu Path contém comandos que permitem aplicar ou remover diferentes caminhos
a um objeto ou traço, assim como, efetuar várias operações com as formas dos objetos.
Neste menu é possível selecionar a opção que permite abrir a caixa de diálogo Path Effect
Editor. Este editor organiza os filtros aplicados a caminhos e permite configurar parâme-
tros nos mesmos.
2. Geração e captura de imagem 149
Lo

VIOLET
| Tet
T' IetandFont.. Shift+Ctri+T
SVG Font Editor...
ab) Glyphs...

PISO
Non realistic 3D shaders
s Put on Path
Overlays

IEL
SÉ Remove from Path Protrusions

[E] Flow into Frame AR+-W Ridges


Scatter
Shift+ Alto W

VETO
Shadows and Glows
Tesxtures
Transparency utilíties

Filter Editor...
Ctri+ AR+K Remove Filters

| Extensions
Previous Extension
Help
Inkscape Manual
Previous Extension Settings...
Keys and Mouse Reference
Arrange Ask Us a Question
Color Tutorials
Generate from Path
Command Line Options
Images FAQ
a

JessyInk New in This Version


Modify Path
Raster Report a Bug
Render SVG1.1 Specification
Tet
EB About Memory
e

Visualize Path
Web + É Aboutinkscape
Fig. 2.5. Menus Text, Filters, Extensions e Help, com os respetivos comandos visíveis.

O menu Text contém comandos que permitem: criar, editar ou eliminar objetos de
texto; aplicar estilos; colar texto num caminho; etc.

O menu Filters apresenta um conjunto de comandos que possibilitam aplicar diferen-


tes efeitos a um objeto, assim como, removê-los. Neste menu é possível selecionar a
opção que permite abrir a caixa de diálogo Filter Editor.

Este editor organiza os filtros aplicados e permite configurar parâmetros nos mesmos.

O menu Extensions apresenta um conjunto de opções que permitem melhorar o


AIB12 O Porto Editora

Estas extensões estão agrupadas por várias categorias.

O menu Help permite aceder a informação relacionada com o funcionamento do pro-


150 Utilização do Sistema Multimédia

Lo 4

A barra de comandos
A barra de comandos (fig. 2.6) surge, por defeito, quando se abre o programa. O qua-

BIONP ONO] O TITIV


dro 2.1 identifica os vários ícones que estão presentes nesta barra.

DO 0V00
000 0000
bBED8B DB dO 040 000 0048 Sã VTABEÊ Khy

Fig. OO o 2 O O

Quadro 2.1

Identificação
1 Create new document from de default template | Criar um novo documento a partir do modelo padrão
2 Open an existing document Abrir um desenho existente
3 Save document Guardar um documento
4 Print Document Imprimir um documento

o porta pap or SVG image into this Importar figura ou imagem SVG para o documento

6 Export this document or a selection as a Exportar o documento ou a seleção como uma imagem bitmap
bitmap image
Undo last action Desfazer a última ação
8 Do again the last undone action Refazer a última ação desfeita
Copy selection to clipboard Copiar a seleção para a área de transferência
10 | Cut selection to clipboard Cortar a seleção para a área de transferência
11 Paste objects from clipboard to mouse point, or | Colar objetos ou texto da área de transferência para a posição
paste text do rato
12 | Zoomto fit selection in window Ampliar para caber a seleção na janela
13 | Zoomto fit drawing in window Ampliar para caber o desenho na janela
14 | Zoomto fit page in window Ampliar para caber a página na janela
15 | Duplicate selected objects Duplicar os objetos selecionados
16 Create a clone (a copy linked to the original of Criar um clone dos objetos selecionados [uma cópia ligada ao
selected) original)
17 Cut the selected clones links to the originals, Cortar as ligações dos clones selecionados com os objetos
turning them into standalone objects originais, transformando-os em objetos independentes
18 | Group selected objects Agrupar os objetos selecionados
19 | Ungroup selected groups Desagrupar os grupos selecionados
20 Edit objects colors, gradients, stroke width, Editar cores dos objetos, degradês, largura do traço, pontas
arrowheads, dash patterns... das setas, padrões dos traços...
2 View and select from family, font size and other | Selecionar fonte, tamanho da fonte e outras propriedades do
text properties texto
22 | View layers Visualizar camadas
23 | View and edit the XML tree of the document Ver e editara árvore XML do desenho
24 | Align and distribute objects Alinhar e distribuir objetos
25 | Edit global Inkscape preferences Editar as configurações globais do Inkscape
26 | Edit properties of this document Editar as propriedades salvas com o desenho
2. Geração e captura de imagem 151

À caixa de ferramentas
A caixa de ferramentas (fig. 2.7) é um elemento importante no ambiente de trabalho no
Inkscape, pois contém as ferramentas essenciais para a realização de desenhos. Depen-
dendo da ferramenta selecionada, outras ferramentas específicas passam a ficar disponí-
veis na barra de controlos de ferramenta. Para se utilizar determinadas ferramentas é
necessário, em primeiro lugar, ativar o objeto pretendido, usando a ferramenta Select and
transform objects, e, só depois, selecionar a ferramenta a aplicar.

Se se pretender transformar objetos como retângulos, elipses, polígonos, espirais e


texto em formas mais elaboradas, primeiro tem que se converter o objeto ou o traço em
caminhos de nós editáveis, selecionando o comando Object to Path ou Stroke to Path no
menu Path. Por fim, recriar as formas utilizando a ferramenta Edit paths by nodes.

O quadro 2.2 identifica vários ícones que estão presentes na caixa de ferramentas.

Quadro 2.2

Identificação

MAP)
SPRESIPOPDL
1 Select and transform objects bicos e transformar

2 Edit paths by nodes Editar caminhos por nós


3 Tweak objects by sculpting or Ajustar objetos ao escupi-los ou
painting pintá-los

4 | Zoominorout Ampliar ou reduzir


5 Create rectangles and squares Criar retângulos e quadrados
6 Create 3D boxes Criar caixas 3D
7 Create circles, ellipses and arcs Criar círculos, elipses e arcos

8 Create stars and polygons Criar estrelas e polignos

9 Create spirals Criar espirais


10 | Draw freehand lines Desenhar linhas à mão livre (10)
11 Draw Bézier curves and straight Desenhar curvas de Bézier e
lines linhas retas
12 Draw calligraphic or brush Desenhar linhas caligráficas ou
strokes traços de pincel

13 | Create and edit text objects Criar e alterar objetos de texto


(4)
O
14 Spray objects by sculpting or Spray objetos ao esculpi-los ou
painting pintá-los

15 | Erase existing paths Apagar caminhos existentes


a 2
16 | Fillbounded areas
17 | Create and edit gradients
Preencher áreas fechadas
Criar e editar gradientes
“g
18 | Pick colors from image Escolher cores da imagem /
19 | Create diagram connectors Criar conectores de diagrama E (19)

Fig. 2.7. Ícones da caixa de ferramentas.


AIB12 O Porto Editora

A seguir apresenta-se a caixa de ferramentas e as barras de controlos de ferramenta


que surgem para cada uma delas.
152

* A ferramenta Select and transform objects permite selecionar caminhos, objetos ou

LIONPT ONO O TIQIV


grupos e arrastá-los na área de desenho. Utilizando os comandos da sua barra de
controlo (fig. 2.8), é possível mover, girar, inclinar, inverter, redimensionar, ordenar e
afetar a proporção dos traços e preenchimentos dos objetos. A barra de controlos
apresenta, também, identificadores que podem ser usados para transformar as di-
mensões do objeto selecionado. Com diferentes cliques no rato podem-se usar as
diferentes alças que surgem para redimensionar, rodar ou inclinar um objeto.

O SLAS SER xwmos: risca: wzsssa; A Hess tp [>] ame =[3[3/3] |

Fig. 2.8. Barra de controlo da ferramenta Select and transform objects.

e A ferramenta Edit paths by nodes permite editar os nós de um objeto. Utilizando os


comandos da sua barra de controlo (fig. 2.9), é possível recriar o objeto, manipu-
lando os nós dos vários caminhos da sua forma inicial.

ACE RAVOO LE GR cmsniniseocnl Em YO


Fig. 2.9. Barra de controlo da ferramenta Edit paths by nodes.

e Com a ferramenta Tweak objects by sculpting or painting e os seus comandos


(fig. 2.10) é possível remodelar um objeto, caminho ou forma. Primeiro, deve-se ati-
var o objeto clicando na ferramenta de seleção e, depois, selecionar a ferramenta
Tweak objects by sculpting or painting e, com o rato, empurrar, puxar, rodar ou pintar
o objeto.

nd
Largura:20
Fo [4 modo: BM DM E
Força 20 |, | a E E e] Um Pos
A me e 6 [o] rscose iso
; - =
camas (ns [e [0] Tere Preencher:

Fig. 2.10. Barra de controlo da ferramenta Tweak objects by sculpting or painting.

e Com a ferramenta Zoom in or out e os seus comandos (fig. 2.11) é possível ampliar
ou reduzir o desenho.

aa qga agaa aWR


Fig. 2.11. Barra de controlo da ferramenta Zoom in or out.

e A ferramenta Create rectangles and squares permite criar retângulos e quadrados


clicando e arrastando o rato pela página de desenho. Utilizando os comandos da sua
barra de controlo (fig. 2.12), é possível modificar o tamanho, os cantos, a cor do
preenchimento e a cor e largura dos traços dos objetos criados. Quando se cria uma
forma na página de desenho surgem duas alças quadradas e uma redonda. As alças
quadradas servem para redimensionar a altura e a largura e a alça redonda serve
para arredondar os cantos do objeto.

Change: W: 3542867 H: 2314297 Rx 0,000 É Ry 0,000 * px [=] +,


' —" o - E pu : Stroke: 286

Fig. 2.12. Barra de controlo da ferramenta Create rectangles and squares.


2. Geração e captura de imagem 153

e Com a ferramenta Create 3D boxes e os seus comandos (fig. 2.13) criam-se dese-
nhos ou objetos a três dimensões, clicando e arrastando o rato pela página de dese-
nho. Utilizando as alças que surgem, é possível implementar diferentes perspetivas
3D na caixa. É possível modificar a cor do preenchimento e a cor e largura dos traços
dos objetos criados.

Angle jex;X; 30000


30, > |] | Anglew b 90,000
) É
= AngleZ 3 RE | pr
p ole p E Stroke: 286

Fig. 2.13. Barra de controlo da ferramenta Create 3D boxes.

e A ferramenta Create circles, ellipses and arcs permite criar círculos, elipses e arcos,
clicando e arrastando o rato pela página de desenho. Utilizando os comandos da sua
barra de controlo (fig. 2.14), é possível modificar o tamanho, a cor do preenchimento
e a cor e largura dos traços dos objetos criados. Tal como na ferramenta de criar
retângulos, as alças quadradas servem para redimensionar a altura e a largura do
objeto. No entanto, as alças redondas servem para esculpir o círculo ou a elipse em
forma de arco.

FME
Change | Start 33,500 É End: 360,000 5 [s]o O
Stroke: 286

Fig. 2.14. Barra de controlo da ferramenta Create circles, ellipses and arcs.

A ferramenta Create stars and polygons permite criar estrelas e polígonos, clicando e
arrastando o rato pela página de desenho. Depois de definido o número de vértices
do objeto na sua barra de controlos (fig. 2.15), é possível criar uma variedade de
formas quando se deslocam as alças que surgem e se conjugam com as teclas
CTRL, SHIFT e SHIFT+ALT. É, também, possível modificar a cor do preenchimento e
a cor e largura dos traços dos objetos criados.

= = e E Fit
| Change: [é] Comers: 5 Spokeratio: 0,461 Rounded: 0,000 * Randomized: 0000 > & ra EE |
roke: i

Fig. 2.15. Barra de controlo da ferramenta Create stars and polygons.

e Com a ferramenta Create spirals e os seus comandos (fig. 2.16) é possível desenhar
espirais com diferentes parâmetros, clicando e arrastando o rato pela página de de-
senho. Utilizando as alças que surgem, pode-se controlar o desenho das espirais
com o auxílio das teclas CTRL, SHIFT e SHIFT+ALT. É possível modificar a cor e a
largura dos traços dos objetos criados, mas para efetuar o preenchimento deve-se
fechar o caminho.

Change: T ums 300


5/ . | Divergence: e 1000
1) =
, Innerradius: E O0000 * & dm nar
É stroxe HE:
Fig. 2.16. Barra de controlo da ferramenta Create spirals.

e Com a ferramenta Draw freehand lines e os seus comandos (fig. 2.17) é possível
desenhar linhas à mão livre com bordas mais ou menos suaves e com uma determi-
nada forma. É possível modificar a cor do preenchimento e a cor e largura dos traços
dos objetos criados.
AIB12 O Porto Editora

Smoothing: 4 Fit
[te [7] oo q 2 Shape: None [=] O |

Fig. 2.17. Barra de controlo da ferramenta Draw freehand lines.


154

e Com a ferramenta Draw Bézier curves and straight lines e os seus comandos

LIONPT ONO O TIQIV


(fig. 2.18), criam-se diferentes curvas de Bézier e linhas retas. Esta ferramenta é
muito semelhante à ferramenta de desenho de linhas à mão livre, mas oferece um
maior controlo e precisão no desenho dos gráficos vetoriais. É possível modificar a
cor, a largura e a forma dos traços dos objetos criados.

Fut None
| [rr]o RR re [] strote: EN :
Fig. 2.18. Barra de controlo da ferramenta Draw Bézier
curves and straight lines.

e Com a ferramenta Draw calligraphic or brush strokes e os seus comandos (fig. 2.19),
é possível imitar diferentes traços de caneta ou de pincel, funcionando, também,
como uma ferramenta de desenho à mão livre. É possível modificar a cor do preen-
chimento e a cor e largura dos traços dos objetos criados, assim como aplicar outras
configurações para obter diferentes tipos de traços.

No preset [»] "Ge Ejs Thinning: 10 É Angle 30 É À, Fixation: 90 É Caps: 0,00 É 0 e o e

Fig. 2.19. Barra de controlo da ferramenta Draw calligraphic or brush strokes.

e Com a ferramenta Create and edit text objects é possível criar e editar objetos do
tipo texto na área de trabalho. Na sua barra de controlos (fig. 2.20), encontram-se
alguns dos comandos mais utilizados como o tipo e o tamanho da letra, o estilo ne-
grito e os vários tipos de alinhamento, espaçamento, direção e orientação do texto.
É possível converter o texto digitado num caminho de nós editáveis, mas depois
desta operação já não é possível adicionar ou remover caracteres ao texto.

Sans [w] 40 [=]ia A E) ” x & 125 É AM 000 É du 000 É aa aa Ma 00 fe)

Fig. 2.20. Barra de controlo da ferramenta Create and edit text objects.

e A ferramenta Spray objects by sculpting or painting permite espalhar cópias ou clo-


nes de um objeto. Primeiro, deve-se ativar o objeto a espalhar clicando na ferra-
menta de seleção, depois, selecionar a ferramenta Spray objects by sculpting or
painting e, por fim, com o rato, espalhar cópias do objeto na área pretendida. Utili-
zando os comandos da sua barra de controlo (fig. 2.21), é possível escolher diferen-
tes modos e opções do spray a aplicar.

ao pr deseo q e fones epa


| vo [09]
Fig. 2.21. Barra de controlo da ferramenta Spray objects by sculpting or painting.

º Com a ferramenta Erase existing paths e os seus comandos (fig. 2.22) é possível
eliminar ou cortar objetos ou caminhos, ajustando a ferramenta a uma determinada
largura.

Width: 1 e O
O [9] Stroke: None

Fig. 2.22. Barra de controlo da ferramenta Erase existing paths.


2. Geração e captura de imagem

* Com a ferramenta Fill bounded areas e os seus comandos (fig. 2.23) é possível para-
metrizar o preenchimento de áreas fechadas com uma cor.

Fillby: Visible Cotors [»]


Threshold: 5
1) Growjshrink
by: 000 px [»] ciosegaps: None [=] & ee
Stroke: None

Fig. 2.23. Barra de controlo da ferramenta Fill bounded areas.

* Com a ferramenta Create and edit gradients e os seus comandos (fig. 2.24) criam-se
diferentes preenchimentos de gradiente entre duas cores.
Para utilizar esta ferramenta basta clicar em qualquer ponto do objeto e, em seguida,
arrastar o cursor do rato para outro ponto e criar o gradiente desejado.
Pode-se sempre voltar a editar as cores do gradiente.

| Ne ]O on] E em JH Edi. |
Fig. 2.24. Barra de controlo da ferramenta Create and edit
gradientes.

º Com a ferramenta Pick colors from image e os seus comandos (fig. 2.25) é possível
selecionar uma cor fora do desenho para ser usada como a cor atual.
Primeiro, deve-se ativar o objeto a colorir com a ferramenta de seleção.
A seguir, seleciona-se a ferramenta Pick colors from image e, com o rato, seleciona-
-se uma cor fora do objeto e este fica colorido com esta cor.
Se for pressionada a tecla SHIFT durante a última operação, será alterada a cor do
traço em vez do preenchimento do objeto.

| os
[rm Pos)
Fig. 2.25. Barra de controlo da ferramenta Pick colors
from image.

* Com a ferramenta Create diagram connectors e os seus comandos (fig. 2.26) é pos-
sível criar uma linha de ligação entre dois objetos ou diagramas.
Se a ligação ficar estabelecida, quando mover um dos objetos a ligação permanece
entre eles.

= % |] cunatue0 < spaúng3 5/0 length 1005 Y SI


Fig. 2.26. Barra de controlo da ferramenta diagram connectors.

À barra de estado
A barra de estado apresenta várias áreas com informação sobre as cores do preenchi-
mento e do traço, a largura do traço, a percentagem de opacidade, a visibilidade ou não
da camada atual, o bloqueio ou não da camada atual, a indicação da camada atual, as
descrições que contextualizam a ferramenta selecionada, as coordenadas da posição do
cursor e o nível de ampliação da página de desenho (fig. 2.27).
AIB12 O Porto Editora

cit z E É E É é X 308,57 ., E
Stroke: 191 0:38 5 vs 3 Layer 1 [>] Ctrk: click to select in groups; dra Alt: click to select under; dra Y 48571 Z 35%

Figura 2.27. Status Bar (Barra de estado).


156

A paleta de cores
A paleta de cores é uma coleção de múltiplas cores de acordo com o modelo selecio-

BIONP ONO O TITIV


nado. Os diferentes modelos de paletas de cor podem ser selecionados clicando na seta
no final da barra da paleta. No Inkscape a paleta de cores aparece, por defeito, na parte
inferior da janela do programa. Para se utilizar as restantes cores da paleta, deve-se
mover a sua barra de deslocamento horizontal. Pode-se, também, ter acesso aos mode-
los de cor se se optar por abrir a caixa de diálogo Swatches (fig. 2.28), que surge quando
este comando é selecionado no menu View. Esta caixa dá, também, acesso a outras
configurações.

O Suatches (shiteCriew) LE ES

[ gose |] Fig. 2.28. Caixa de diálogo Swatches


no modo de visualização grid.

Para se alterar o preenchimento de um objeto selecionado, clica-se na cor pretendida


ou arrasta-se a referida cor para o local pretendido. Se for para alterar o traço, deve-se
pressionar a tecla SHIFT.

A caixa de diálogo de preenchimento e traço


A paleta de cores permite alterar as cores dos preenchimentos e dos traços de uma
forma acessível e rápida, mas a caixa de diálogo Fill and Stroke (fig. 2.29), apresenta
mais opções de parametrização. Para abrir esta caixa de diálogo pode-se selecionar o
comando Fill and Stroke no menu Objects ou, na barra de estado, clicar duas vezes na
área da cor da opção Fill ou Stroke.

O fa ans Strote (Share Crrtef) E

Tra[ "Sancho posa | =*Strotue


saio
«“DoDBo? Do
Fist codor

eco pesa | com | trens | CMAS


o.
TT”
RR
CS

O EGBA, Coontom
Blur
) 0

Opocty
j Ro

Coe
U + Fig. 2.29. Caixa de diálogo Fill and Stroke.
2. Geração e captura de imagem 157

Exercícios de aplicação 3

1. Crie texto artístico apresentado na figura 2, seguindo os seguintes passos:


a) digite o texto;
b) desenhe a forma circular, definindo a opacidade do traço C4s
diferente de zero; e E
c) selecione os dois objetos, utilizando a tecla SHIFT e a
ferramenta Select and transform objects;
d) selecione o comando Put on Path, no menu Text;
e) ajuste o texto à forma circular conforme o apresentado na
figura 1, utilizando as alças que aparecem no objeto para Fig.
rodar e redimensionar o texto para o local e dimensões
pretendidas; SS
f) elimine a forma circular, colocando a zero a opacidade do “e E
seu traço.
Fig. 2.
2. Crie o efeito apresentado na figura 4, seguindo os seguintes passos:
a) importe uma imagem (fig. 3);
b) digite o texto em cima da imagem anterior (fig. 3);

Ai-B

E:
Fig. 4.

Fig. 3.

c) selecione o texto e a imagem, utilizando a tecla SHIFT e a ferramenta Select and transform
objects;
d) selecione a opção Set, do comando Clip, no menu Object.

3. Crieo gráfico apresentado na figura 5 de acordo com as indicações das alíneas seguintes.

Fig. 5.
a) Desenhe o quadrado exterior com a ferramenta Create rectangles and squares da barra
Toolbox e dimensione a largura, a altura e o arredondamento dos cantos tal como é mostrado
na figura 6. Este quadrado não apresenta preenchimento e tem um traço preto de 7 pixéis.

Change: W: 10,0005= H: 100,05 = Re 10,000 =!e Ry: 10,000 =


mm [»]| Filt
na
Stroke: Fig. 6.
b) Agora, desenhe o quadrado interior com os parâmetros tais como são apresentados na figura 7.
Este quadrado não apresenta preenchimento e tem um traço preto de 7 pixéis.

' , E E Fit
Change: W: 80,000 = H 80,000 5! Re 5000 | Ry 5000 Smm[v] 5
| = | Fig. 7.

c) Selecione os dois objetos com a ferramenta Select and transform objects da barra Toolbox.
Depois, combine as duas formas, selecionando o comando Combine do menu Path.
d) Depois dos objetos combinados, preencha o novo objeto com a cor azul, selecionando-a na
AIB12 O Porto Editora

paleta e arrastando-a para o desenho, depois de definir a sua opacidade a 100%.


e) Guarde o trabalho com o nome quadrado.
Utilização do Sistema Multimédia

BIONP ONO] O TITIV


Exercícios de aplicação 3 (cont.)
4. Crie o efeito de mistura apresentado na figura 10, seguindo a indicação das alíneas seguintes.
a) Selecione o gráfico da figura 5 e duplique-o, utilizando o comando Duplicate do menu Edit.
b) Utilizando a ferramenta Select and transform objects, redimensione os objetos tal como é
mostrado na figura 8.
c) Aplique as cores do preenchimento e do traço dos objetos conforme o apresentado na figura 8,
selecionando cada objeto e arrastando as respetivas cores da paleta para a área Fille Stroke na
barra de estado.

Fig. 8.
d) Aplique o efeito mistura, selecionando os dois objetos e, depois, a opção Interpolate, do
comando Generate from Path, do menu Extensions. Configure os vários parâmetros de acordo
com o indicado na figura 9, obtendo o efeito gráfico da figura 10.

À interpolste Es]
sm
o
Il HT
. 1

Fig. 9. Fig. 10.

e) Guarde o trabalho com o nome mistura.

5. A partir de duas estrelas reproduza o efeito de mistura de acordo com o apresentado na figura 11.
Guarde o trabalho com o nome estrelas.

Fig. 11.
2. Geração e captura de imagem

2.3. Gráficos bitmapped Jogo

2.3.1. Noções e características

As imagens criadas com programas bitmap são constituídas por uma grelha de peque-
nos quadrados chamados píxeis.

Cada quadrado é localizado de uma forma exata e representado pela interseção de


uma linha com uma coluna.

Neste formato as imagens são trabalhadas ao nível do píxel onde pode estar disponível
uma vasta gama de cores (fig. 2.30).

Quando uma imagem é criada num programa bitmap, não é fácil alterar partes da ima-
gem, isto é, não é possível clicar numa parte da imagem e movê-la.

Por outro lado, as imagens com qualidade dependem da resolução e da profundidade de


cor (fig. 2.30).

Desta forma, as imagens bitmap de alta resolução geram ficheiros de tamanho muito
grande.

Fig. 2.30. Uma imagem do tipo bitmap quando é ampliada perde


a sua qualidade ao mostrar os píxeis que a constituem.

O Photoshop, o Photo Paint, o PaintShop Photo Pro, o Microsoft Paint e o GIMP são
exemplos de programas que usam imagens bitmap.

2.3.2. Uso de um programa de pintura

O ambiente de trabalho
O GIMP (GNU Image Manipulation Program) é um programa que trabalha principalmente
com imagens bitmap e com camadas que se podem sobrepor, permitindo trabalhar em
AIB12 O Porto Ed itora

cada nível de forma separada.

Atualmente, o GIMP suporta os modelos de cores RGB (Rea, Blue, Green) e HSV (Hue,
Saturation, Value).
Utilização do Sistema Multimédia

Uma das formas de iniciar o GIMP é selecioná-lo a partir de Todos os programas,

BIONP ONO] O TITIV


Vídeo quando se clica no botão Iniciar do Windows.

Numa versão portable deve-se selecionar o seu ficheiro executável.

Surge, depois, a janela do programa.

O ambiente de trabalho do GIMP contém a barra de menus (Menu Bar) com diversos
comandos, a caixa de ferramentas (Toolbox) com botões de comando e as opções de
ferramenta (Tool Options) selecionada, as docas (Docks) com os diálogos acopláveis
(Dockable Dialogs) e a barra de estado (Status Bar) com informações sobre os comandos
e as ferramentas selecionadas.

Barra de Barra de Docas com Configurar


título menus diálogos acopláveis este separador

Caixa de
ferramentas

Opções de
ferramenta

Área de
imagem

s.
Barra de [me] e LÊ Cc mamy omg to pac a trepa custos
estado
Fig. 2.31. Janela do programa GIMP 2.8 em que o retângulo central é a janela onde é possível criar e editar
todas as imagens.

Para iniciar o trabalho é necessário criar uma nova imagem. Para tal, seleciona-se o
comando New no menu File, surgindo a caixa de diálogo Create a New Image (fig. 2.32),
onde se define o modelo ou o tamanho da imagem.

&J Create a New Image U.

Template: || | 640x480 [=]


Image Size
Width: EE É
Heghe 480 [per]
(D(E) Sage nos cor
| “* Advanced Options

(tip J[ neu || ox )[ came ]


Fig. 2.32. Caixa diálogo Create a New Image.
2. Geração e captura de imagem

Depois de criada a nova imagem, surge uma janela com o ambiente de trabalho do
programa semelhante à representada na figura 2.31, contendo os comandos e as ferra-
mentas necessários para criar, editar, imprimir e exportar imagens.

À barra de menus
A barra de menus dá-nos acesso a um conjunto de menus, tais como: File, Edit, Se-
lect, View, Image, Layer, Colors, Tools, Filters, Windows e Help (figs. 2.33 a 2.36).

O menu File contém comandos que permitem efetuar várias operações relativas a fi
cheiros, como: novo, criar, abrir, fechar, guardar e imprimir um documento; capturar obje-
tos do ecrã; digitalizar imagens; exportar ficheiros; etc.

O menu Edit contém comandos que permitem efetuar operações como: desfazer e re-
fazer uma operação; cortar, copiar e colar uma seleção; etc.

Neste menu, no comando Preferences é possível configurar vários itens do programa.

Por exemplo, alterar o idioma do programa a partir do separador Interface. Para tornar
visível a alteração anterior é necessário sair e iniciar novamente o programa.

O menu Select contém comandos que permitem efetuar operações como: inverter se-
leção; selecionar tudo; selecionar regiões com cores similares; abrir o editor de seleção;
distorcer; etc. Para rapidamente limpar a seleção ativa utiliza-se o comando None.

Eda
€ Undo Ctrl+Z
Eile & Redo Ctrl+Y
Dea €& Fade.
New... Ctrl+N Eca É
Crente p “) Undo History

E Open... Ctrl+ O * Cut Ctrl+X ' um


E, Open as Layers... Ctri+ AR+O 3 Copy Ctrl+C 1.4 AM CtrlA
O OpenLocation... Copy Visible Shift Ctrl+C X None Shift Ctrir A
Open Recent + D Paste Ctrl+V [7 Invest Ctrlel
E Pasteinto & Flost Shift CtrieL
E3 Save Ctrles pane » By Color ==
E Save As.. Shift+CtrteS Buffer »
Save a Copy. M FromPath ShifteV
EB Rever & Clear Delete [1] Selection Editor
ot BB Fill with EG Color Crri+, Fani
+= ne [) Fil with BG Color Cite. E
Export As... Shift+ Ctri+ E E Fa gith Pattem ns ana
Create Template... wa Shrink.
HP Stroke Selection “a
Page Setup &j Stroke Path ii
8 Print. Ctrl+P a
& Preferences Distort...
Properties “É Input Devices Rounded Rectangle...
X Close View Cite W (4) Keyboard Shortcuts Toggle Quick Mask ShifteQ
% Closeall Shift+ Ctrl+W & Modules %] Saveto Channel
€ Qui Ctrl+Q 4 Units Mi To Path
Fig. 2.33. Menus File, Edit e Select com os respetivos comandos visíveis.

O menu View contém comandos que permitem: visualizar o documento de diferentes


modos; ativar ou desativar régua, grelhas, linhas guia e ecrã; ajustar zoom; etc.

O menu Image contém comandos que permitem: efetuar operações como transformar,
AIB12 O Porto Editora

redimensionar e obter informações sobre uma imagem; configurar guias e grelhas; etc.

O menu Layer contém comandos que permitem efetuar operações relacionadas com
as camadas.

AIB12 F11
Utilização do Sistema Multimédia

pe
3 NewView
v Dotfor Dot
Zoom (100%)

& Shrink Wrap Cirilo)


[mma
Fuliscrgen
E Duplicate CriD|
«b Navigation Window Mode

BIONPA ONO O TITIV


Transform New Layer... Shift Crie IN
é Display Filter... New from Visible
M, Canyas Size... E3 New Layer Group...
» Show Selection CtrlT
Fit Canvas
to Layers € Duplicate Layer Shift+ Chris D
Y Show Layer Boundary
Fit Canvas
to Selection Ns Anchor Layer CirteH
v Show Guides Shift+Ctri+T
Print Size... SS! Merge Down
Show Grid
v Show Sample Points mM, Scalelmage... 89 Delete Layer
v Snapto Guides y Srop
to Selection
Snap to Grid Autocrop Image
Snap to Canvas Edges Zealous Crop Transparency
Transform
Snap to Active Path Merge Visible Layers... Ctrt+M
Padding Color Elatten Image HE, Layer Boundary Size...
Show Menubar Align Visible Layers. (O Layerto Image Size
«<<<

Show Rylers Shift+Ctrl+R Guides M, Scale Layer.


Show Scrolibars [E Configure Grid... 4 Cropto Selection
Show Statusbar O Image Properties Alt+Retum Autocrop Layer
Fig. 2.34. Menus View, Image e Layer com os respetivos comandos visíveis.

O menu Colors contém comandos que permitem alterar, por exemplo, o brilho, a satu-
ração e o contraste das cores num trabalho.

O menu Tools contém comandos que permitem utilizar ferramentas de seleção, de


pintura, de transformar, de cor e de texto, etc.

O menu Filters contém comandos que permitem aplicar diferentes efeitos a uma imagem.

Colors
[E] Color Balance...
[3] Hue-Saturation...
É Colorize...
(43 Brightness-Contrast...
É Repestlast Ctri+F
[Bs] Threshold... 8 Re-Show Last Shift Ctrl F
É8 Levels... O Reset
all filters
[7 Curves...

[B) Posterize...
EM Desaturate...
prece

a
CE

FZ Inver
Value Invert

Auto
a

Components
Map
Info
NE

ID e

Colorto Alpha...
SD

Colorify...
Filter Pack...
Hot... Toolbox to Logo
Ê

Madmum RGB... HM, Default Colors Python-Fu


Retinex... % Swap Colors Seript-Fu
Fig. 2.35. Menus Colors, Tools e Filters com os respetivos comandos visíveis.
2. Geração e captura de imagem 163

O menu Windows permite: aceder a um conjunto de comandos relacionados com a ja-


nela do programa e a visualização dos seus elementos; alternar entre janelas de imagem;
acionar o modo de janela única, etc.

O menu Help permite aceder a informação relacionada com o funcionamento do programa.

Help
E Help A
Windows E Context Help Shift+ FIL

| Recently Closed Docks , 9 Iipofthe Day


Dockable Dialogs + About
Toolbox Ctrt+B
de Plug-In Browser
[] (Untitied)-1.,0 Alt+1 Pocudaso jNouaar
Hide Docks Tab GIMP Online »
Y Single-Window Mode User Manual »
Fig. 2.36. Menus Windows e Help com os respetivos comandos visíveis.

As ferramentas de seleção
As várias ferramentas do comando Selection Tools do menu Tools permitem efetuar
operações de seleção de diferentes formas.

O quadro 2.3 identifica as ferramentas apresentadas na figura 2.37.

Tools
Selection Tools »| [3 Rectangle Select R
Paint Tools BS
Iransform Tools p | Sa Era
+» e Free Select F
Color Tools
& Paths B | & Foreground Select
£ Color Picker o | w FuzySeect U
e Zoom Z = By Color Select Shift+ O

À Measure shifteM | $$ Intelligent Scissors I


à Tex T
(5 GEGL Operation...
Toolbox Crri+B
E, Default Colors D
%, Swap Colors X

Fig. 2.37. Menu Tools com o comando Selection Tools ativado.

Quadro 2.3

Identificação Descrição

oi Rectangle Select Seleciona áreas quadradas ou retangulares.

Os Ellipse Select Seleciona áreas elípticas ou circulares.

Free Select Seleciona áreas à mão livre ou com segmentos poligonais.

Foreground Select Seleciona áreas contendo objetos do primeiro plano.

“% Fuzzy select Seleciona áreas contíguas com base na sua cor.


AIB12 O Porto Editora

By Color Select Seleciona áreas da imagem com cores similares.

Intelligent Scissors Seleciona formas utilizando o ajuste inteligente aos limites dos objetos.
164 Utilização do Sistema Multimédia

As ferramentas de pintura Tools


As várias ferramentas do co-
Selection Tools »
Paint Tools » | xê) Bucket Fill Shift.B

BIONPA ONO] O TITIV


mando Paint Tools do menu Tools ransform Tools »
permitem efetuar operações de pin- a » ed :
à Paths B / Pencil N
tura, utilizando ferramentas como o
lápis, o pincel, a borracha, a tinta, a É ColorPicker RR E
clonagem, etc. &, Zoom Z E Eraser SuReE

As ferramentas de clonagem 4 Measure Shift+M Xe birtrush E


fazem uso da tecla CTRL clicando- Ã Tx T & in E
-se com o rato na área que se pre- (S GEGL Operation... & eo E
tende duplicar. Depois, solta-se a Toolbox Chris B nb E
E, Default Colors 89 Perspective Clone
tecla CTRL e clica-se na área que
se deseja cobrir. % Swap Colors x | O Bhr/Sharpen SRU
| $ Smudge Ss
O quadro 2.4 identifica as ferra- É Docge/ Bum Shift+D
mentas apresentadas na figura
Fig. 2.38. Menu Tools com o comando Paint Tools ativado.
2.38.

Quadro 2.4

Identificação Descrição

rê Bucket Fill Preenche uma área selecionada com uma cor ou textura.

Blend Preenche uma área selecionada com um gradiente de cores.

2 Pencil Pinta linhas opacas com contornos serrilhados.

É Paintbrush Pinta linhas opacas com contornos mais suaves.

Eraser Apaga um área selecionada de uma imagem usando a cor de fundo ou a


transparência.
Pinta de forma gradativa controlando a intensidade da cor de acordo com o
x Airbrush tempo que o cursor se mantém numa determinada área ou não, isto é, do
mais opaco a menos opaco.

B Ink Pinta linhas de contornos suaves simulando o uso de uma esferográfica.

& Clone Copia partes de uma imagem para outra.

2 Heal Repara irregularidades de uma imagem, misturando cores a partir de uma


clonagem.
& Perspective Clone Faz a clonagem de uma imagem de acordo com uma perspetiva previamente
definida.

Só Blur/Sharpen Esbate ou realça uma área da imagem.

fas Smudge Esborrata uma área da imagem.

“XÁ Dodge/ Burn Clareia ou escurece uma área da imagem.


2. Geração e captura de imagem 165

Às ferramentas de transfo rmar

As várias ferramentas do comando Transform Tools do menu Tools permitem transfor-


mar uma seleção, camada ou outros objetos.

Para além das opções de configuração que surgem na caixa Tool Options, pode, tam-
bém, surgir uma janela com informações e outras opções de configuração associadas à
ferramenta ativa.

O quadro 2.5 identifica as ferramentas apresentadas na figura 2.39.

pEoois |
Selection Tools b
Paint Tools »|

Er 4 a
Iransform Tools bi Align Q

a q Shift+C
É Color Picker o de Dep E
T Rotate Shift+R
& Zoo e E Scale Shift+T
A . TO | Shear ShifteS
E . &, Perspective Shift+P
DÓ a E) Flip Shift+F
Toolbox Crrl+B faf Cage Transform Shift+G
HM, Default Colors D:
%, Swap Colors x
Fig. 2.39. Menu Tools com o comando Transform Tools ativado.

Quadro 2.5

Identificação Descrição

+ : “Align Alinha ou organiza camadas e outros objetos.

«o Move Move camadas, seleções e outros objetos.

yr Crop Remove margens da imagem ou da camada.

ES Rotate Roda a camada ativa, seleção ou caminho.

E Scale Aumenta ou diminui a camada ativa, seleção ou caminho.

EX, Shear Corta a camada ativa, seleção ou caminho.

a Perspective Altera a perspetiva da camada ativa, seleção ou caminho.

Flip Inverte a camada ativa, seleção ou caminho vertical ou horizontal.


AIB12 O Porto Editora

pt Cage Transform Deforma uma seleção utilizando uma gaiola poligonal.


Utilização do Sistema Multimédia

PIONPY ONO O TITIV


RR Exercícios de aplicação 4
1. Afigura 1 mostra uma janela do programa GIMP, contendo
informações sobre o ficheiro de uma imagem.
a) Quala extensão do ficheiro da imagem?
Sino
is pets 213 o 237 posts
b) Qualo espaço que o ficheiro ocupa no disco? Print das 75,14 » 8341 milimater
E E . Restam 77 - 77 pp
c) Indique o modelo de cor utilizado na imagem. Color pace: RG8 codes
d) Indique os valores, em píxel, da largura e da altura da e —
imagem. CS image
Vie Type: GRIP
Sire im memory 14 148
Undio step 1 078489
Rado stage 7 (0718)
Msemirer
04 pemeto “04
Mumdnes
04 layers 1
Dentes
of «arame
Nulos
of patta -

Cro] Com]
Fig. 2.

As ferramentas de cor Job


2 Selection Tools , |
As várias ferramentas do comando Paint Tools »
Color Tools do menu Tools permitem alte- Iransform Tools »
rar, ajustar, reduzir ou converter as cores rr - Color Balance...
de uma imagem. | [5] Hue-Saturation...
Estas ferramentas também podem ser | & Zoom ZÉ Brightness-Contrast..
selecionadas a partir do menu Colors. À Messure Shift+M Ihreshold...
e A Tex TE leves.
O quadro 2.6 identifica as ferramentas q, cegi Operation.. ha
apresentadas na figura 2.40. Ze
Toolbox Crrl+B Posterize...

%, Swap Colors x

Fig. 2.40. Menu Tools com o comando Color Tools ativado.


Quadro 2.6

Identificação Descrição

Color Balance Ajusta a distribuição da cor.

Hue-Saturation Ajusta a tonalidade, a saturação e a luminosidade.


JNEEAR

Representa uma imagem em escalas de cinza vista através de um vidro


Colorize colorido.

Brightness-Contrast | Ajusta o brilho e o contraste.

Threshold Reduz a imagem a duas cores, usando limites preto e branco.

Levels Ajusta os níveis de intensidade da cor da camada ativa ou seleção.

Ajusta a curva da cor, do brilho, do contraste ou da transparência,


Curves :
trabalhando com qualquer tonalidade.

EXCUISIVO Posterize Reduz o número de cores de uma imagem.


do Professor
Desaturate Converte todas as cores para os tons de cinza correspondente.

Solução
2. Geração e captura de imagem 167

Outras ferramentas do menu Tools


No menu Tools encontram-se outros comandos que possibilitam trabalhar com mais
ferramentas que se encontram identificadas no quadro 2.7.

Quadro 2.7

Identificação Descrição

b Paths Permite selecionar ou modificar caminhos.

2 Color Picker Seleciona uma cor a partir de pixéis de uma imagem aberta.

e Zoom Altera o nível de zoom da imagem.

Ê Measure Mede distâncias e ângulos.

à Text Cria ou edita camadas de texto.

À caixa de ferramentas

A Toolbox (fig. 2.41) é um instrumento importante no ambiente de trabalho no GIMP,


pois contém um acesso rápido aos comandos fundamentais para selecionar, pintar, dese-
nhar, cortar, digitar texto e outras operações relacionadas com a criação e a edição de
imagens.

Os comandos desta caixa foram descritos anteriormente quando foram abordadas as


várias ferramentas presentes no menu Tools.

Todos o

Dse tAdEn/GRALUSSURAEKACE//0xasngase
E
Fig. 2.41. Caixa Toolbox, mostrando na sua parte inferior o botão Foreground and background colors.

A partir do botão Foreground and background colors, presente na parte inferior da caixa
Toolbox, tem-se acesso rápido à caixa de diálogo Change Foreground Color (fig. 2.42) ou
Change Background Color, conforme se clica no quadrado superior ou inferior, possibili-
tando redefinir as cores de primeiro plano e de fundo do trabalho.

dad <ronge Foregeoas Coto ttim

.—
À gal! 9 -
5 ss o :
, — .
.—e
o. a É

n HTM potatom cf “ |

—ouá nn nm
AIB12 O Porto Editora

ter fem oa Cancel

ho + a

Fig. 2.42. Caixa de diálogo Change


Foreground Color.
168

A caixa opções de ferramenta Tool Options [E]

LIONPT ONO O TIQIV


A caixa Tool Options surge, por defeito, quando se abre o 70] Too! Options s
programa. Rectangie Select |
Mode (7) lh E [x
Esta caixa adapta os seus botões e comandos de acordo pntetadro
com a ferramenta ativa na Toolbox. [7] Fezther edges

A figura 2.43 apresenta esta caixa quando a ferramenta DD


Rectangle Select está selecionada. ES neem
[D) Fixes: Aspect raso [=]
No caso da caixa Tool Options não estar visível, deve-se 11 (m =
selecionar a opção Tool Options do comando Dockable Dialogs Po
no menu Windows. a = a|

see
0 2 o =

[) Highághe
No guídes [=]

[) Shrink merged
A barra de estado Due:
A Status Bar (fig. 2.44) contém informações relativas à fer- , . .
Fig. 2.43. Caixa Tool Options
ramenta selecionada, à posição do cursor e à imagem. com a ferramenta Rectangle
Select selecionada.
Zoom da imagem

| 2329,1920 10056
[9] (9f Click to dodge (try Shift for a straight line, Ctrl to bum)

Coordenadas Informação sobre a imagem ou ferramenta ativa


do cursor

Fig. 2.44. Barra Status Bar.

Os diálogos acopláveis
Uma das características do GIMP são as docas preenchidas com diálogos acopláveis.
Estes contêm opções para uma ferramenta ou são dedicados a uma tarefa particular e
posicionam-se lateralmente na janela da imagem.

Selecionando o comando Single-Windows Mode no menu Windows, pode-se alterar o


seu posicionamento para janelas independentes.

Os diálogos acopláveis podem ser inseridos e removidos das docas utilizando as op-
ções do comando Dockable Dialogs do menu Windows ou clicando no botão Configure this
tab (configurar este separador) e, de seguida, no comando Add Tab.

Os diálogos acopláveis podem funcionar fora das docas, em modo de janela única, se
forem arrastados pelo separador para a janela da imagem e da mesma forma regressa-
rem às docas.

A partir dos diálogos acopláveis é possível aceder a funções, informações e operações


sobre as imagens.

A figura 2.45 mostra o menu Windows com o comando Dockable Dialogs selecionado.

A seguir serão apresentadas algumas destas caixas de diálogo.


2. Geração e captura de imagem

Recently Closed Docks Bio


Dockable Dialogs » | Fã] Tool Options
Toolbox Cri+B fá Device Status

[E] [Untitied]-10 AR+1 g o


Hide Docks Tab a Channels
Y Single-Window Mode d Paths

BB Colormap
[ie] Histogram
[3 Selection Editor
& Navigat

*$) Undo History


À Pointer
<i Sample Points
E; Colors
é Brushes Shift+ Ctri+ B
Mg Paint Dynamics
KÊ, Pattems Shifte Ctrl+P
E) sradients Ctrl+G
FB Paletes
bB Fonts
fé Tool presets
D Buffers
8) Images
o Document History
[5) Templates
ÀS Error Console
Fig. 2.45. Menu Windows com o comando Dockable Dialogs selecionado.

e A partir da caixa de diálogo Layers é possível observar, organizar e realizar operações


com as diferentes camadas de uma imagem, assim como ajustar elementos nas
mesmas (fig. 2.46).

º A caixa de diálogo Channels é uma interface para editar, modificar e gerir os canais
de cores (fig. 2.47) de uma imagem.
AIB12 O Porto Editora

Fig. 2.46. Caixa de diálogo Layers. Fig. 2.47. Caixa de diálogo Channels.
170 Utilização do Sistema Multimédia

e A caixa de diálogo Histogram mostra informações sobre a distribuição dos valores

LIONPT ONO O TIQIV


dos vários canais de cores de uma imagem (fig. 2.48). Se se pretender corrigir al-
guma cor deve-se, por exemplo, utilizar a ferramenta Levels (fig. 2.49), selecionando-
-a no menu Tools, no comando Color Tools ou no menu Colors.

= Leveis

qe Color Levels
E
Pregets: =] +o
Chagnet [Bfed [+] [Reset Channel De
Input Levels

TT o.
L
[4)o = 100 É [2)2s -
Output Levels
RR

255 [29] Edit these Settings as Curves |


Mean: 1737 Pimais: 436500
[9] Preview
Std dev. 533 Count: 436500
Median: 1710
—— —
-——
Percentile: 1000 Lote Jl fee )l o ]| cama]
Fig. 2.48. Caixa de diálogo Histogram. Fig. 2.49. Caixa de diálogo Levels.

e A partir da caixa de diálogo Navigation (fig. 2.50) é possível circular pela imagem
ativa e utilizar o zoom.
* Na caixa de diálogo Undo History (fig. 2.51) estão listadas todas as ações efetuadas
sobre o trabalho atual, mostrando as mudanças produzidas. A partir desta lista é
possível desfazer ou repor as ações pretendidas.

Fig. 2.50. Caixa de diálogo Navigation. Fig. 2.51. Caixa de diálogo Undo History.
2. Geração e captura de imagem 171

Watercolor

CMYK Palette

A partir da caixa de diálogo FG/BG GIMP Wheel Scales


Color (fig. 2.52), é possível definir as
cores de primeiro plano ou de fundo.
€3
Esta caixa permite utilizar os modos
GIMP, CMYK, Watercolor, Wheel, Pa- Coto a|
lette e Scales, apresentando, também,
um seletor (Eyedropper) para capturar
a 260 8 E
uma cor em qualquer lugar da imagem.
Como foi dito anteriormente, a partir do

E TB
botão Foreground and background
color da caixa Toolbox, tem-se acesso
à caixa de diálogo Change Foreground

mn
Color (fig. 2.42) ou Change Back-

o
ground Color que permite, também, de-
finir as cores de primeiro plano e de
fundo do trabalho.
Eyedropper
FG/BG color

Fig. 2.52. Caixa de diálogo FG/BG Color.

A partir da caixa de diálogo Brushes (fig. 2.53) é possível selecionar um pincel para
ser usado com as ferramentas de pintura (fig. 2.38).

Na caixa Tool Options é, também, possível selecionar um pincel, a partir de uma lista,
quando se seleciona uma ferramenta de pintura.

e Os padrões existentes na caixa de diálogo Patterns (fig. 2.54) são usados com as
ferramentas Bucket Fill, Clone e Perspective Clone.

Brushes o

. teres =

«00:
es. o:
48409298
RRESSC 1.1.8
Vo .rães
ser 8$%4- 0.
AIB12 O Porto Editora

ba

Fig. 2.53. Caixa de diálogo Brushes. Fig. 2.54. Caixa de diálogo Patterns.
172 Utilização do Sistema Multimédia

* A caixa de diálogo Gradients (fig. 2.55) apresenta uma paleta de gradientes.

LIONPT ONO O TIQIV


Cada paleta é um conjunto de cores dispostas linearmente.

Para aplicar um gradiente utiliza-se a ferramenta Blend, clicando e arrastando o rato entre
dois pontos de uma seleção.

e A caixa de diálogo Palettes (fig. 2.56) apresenta várias paletas formadas por um
conjunto de cores discretas.

A caixa de diálogo Palette Editor (fig.2.57) surge quando se seleciona uma cor na paleta.

* Na caixa de diálogo Fonts (fig. 2.58) é possível selecionar a fonte a utilizar com a
ferramenta Texto.

EM Horizon 2

BD) inconsescer: E
«| m b

enter togs vw

2 s 2 g
Fig. 2.55. Caixa de diálogo Gradients.

Palette Editor Em

Fig. 2.57. Caixa de diálogo Palette Editor. Fig. 2.58. Caixa de diálogo Fonts.
2. Geração e captura de imagem 173
2]

Exercícios de aplicação 5

1. Aplique os seguintes efeitos a uma imagem inicial (fig. 1).


a) Imagem envelhecida (fig. 2);
b) Imagem em relevo (fig. 3);
c) Imagem néon (fig. 4).

Fig. 2.

Fig. 3. Fig. 4.

2. Abrao ficheiro JO287641.JPG (fig. 5) que se encontra no caminho


CiNProgramasAMicrosoft OfficeYCLIPARTIPUB60COR.
Preencha o quadro 1 de acordo com as operações propostas.
Quadro 1

Operação a realizar sobre o ficheiro J0287641.JPG Tamanho do ficheiro


Guardar o ficheiro no formato BMP.
Reduzir para metade as dimensões da imagem.
Alterar o modelo de cor para uma escala de cinzas.
Aplicar 60% de tonalidade, -40% de saturação e 10% de brilho.
AIB12 O Porto Editora
174

LIONPT ONO O TIQIV


Abra a imagem da figura 6 (CiANProgramasMicrosoft OfficeYCLIPARTIPUB60CORIPH030411.JPG),
ou outra da sua preferência, utilizando o programa de pintura GIMP. De acordo com os passos
indicados nas alíneas seguintes, pretende-se alterar a escala de cores da imagem para cinzentos,
mantendo colorido um dos elementos da mesma (fig. 6).
j

Fig. 6. Fig. 7.
a) Copie a imagem inicial duas vezes, utilizando os comandos Duplicate do menu Image.
b) Selecione uma das duas imagens anteriores e altere as suas cores para uma escala de
cinzentos, utilizando a opção Grayscale, do comando Mode, do menu Image.
c) Selecione a imagem cinzenta, utilizando a ferramenta Rectangle Select Tool, e copie-a para
cima da imagem colorida, colando-a como uma nova camada.
d) De seguida, utilizando a ferramenta Rectangle Select Tool, crie um retângulo sobre o elemento
que se pretende manter colorido e pressione a tecla Delete para eliminar o retângulo cinzento
da camada superior (fig. 7).
e) Guarde o trabalho com o nome janela, utilizando o tipo BMP.

Abra a imagem da figura 8 (CAProgramasAMicrosoft OfficelCLIPARTIPUB60COR1J0387604.JP6G),


ou outra da sua preferência. De acordo com os passos indicados nas alíneas seguintes, pretende-se
obter um efeito semelhante ao exemplificado na figura 9, resultante da transformação da imagem
da figura 8.
a) A partir da imagem da figura 8, obtenha a imagem da figura 9, utilizando o comando Posterize
do menu Colors.
b) Guarde o ficheiro como nome posterize.
c) A partir da imagem da figura 9, e utilizando a ferramenta Color Picker Tool, selecione as cores
pretendidas a partir da imagem. De seguida, com cada cor selecionada e utilizando a
ferramenta Airbrush Tool, proceda ao retoque da imagem de forma a reproduzir o aspeto da
figura 10.
d) Guarde o trabalho com nome airbrush.
2. Geração e captura de imagem 175

2.4. Compressão de imagens Exercício

Tendo em conta a grande quantidade de informação que, às vezes, se encontra asso-


ciada aos ficheiros de imagem, as técnicas de compressão de imagem permitem muitas
vezes reduzir o espaço de armazenamento das mesmas.

As técnicas de compressão de imagem podem ser de dois tipos:


* compressão sem perdas, quando a compressão, seguida pela descompressão, pre-
serva integralmente os dados da imagem;
* compressão com perdas, quando a compressão, seguida da descompressão, leva à
perda de alguma informação da imagem.

A técnica RLE (run-length encoding) é uma técnica simples de compressão sem perdas
e é utilizada na compressão de imagens que apresentam grandes áreas com o mesmo
tom, eliminando a redundância. Esta técnica é suportada pelos formatos de imagem como
TIFF e BMP.

A compressão sem perdas LZW (Lempel-Ziv-Welch) é utilizada no formato GIF.

A codificação de comprimento variável e a codificação baseada em dicionários podem


ser consideradas técnicas mais complexas de compressão sem perdas.

As técnicas de compressão com perdas, por exemplo, a codificação através de trans-


formadas, eliminam alguma informação da imagem original, para obterem uma represen-
tação desta mais compacta. Uma vez eliminada esta informação, nunca mais poderá ser
recuperada. A imagem descomprimida terá, pois, uma qualidade inferior à da imagem
inicial, que aumenta a cada compressão e descompressão que se faça a mais. Mas, por
outro lado, permite taxas de compressão muito mais elevadas do que na compressão
sem perda. Esta técnica é suportada pelo formato de imagem JPG.

2.5. Retoques de imagem

2.5.1. Alterações dos atributos da imagem

Alterações das dimensões e da resolução


A figura 2.59 mostra a caixa de diálogo Create New Image |“
do GIMP que surge quando se cria uma nova imagem e se | Juss ts
clica no comando New, do menu File. a ES

Nesta caixa, é possível selecionar um modelo predefinido none o É jm]


e, também, dimensionar a altura e a largura, a resolução, o 8 uia
espaço de cor e as características de preenchimento da ja- Adam
cd Opte
nela da imagem. Emmtatom (10900
resoldion xo . (nisto

É possível alterar as dimensões de uma imagem e a sua Color space RGB codes
resolução, modificando as dimensões do píxel, como mostra Bluits (Socigreund cotas
a caixa de diálogo Scale Image do GIMP (fig. 2.60). Para abrir RR e
esta caixa, clica-se no comando Scale Image, do menu Image.
AIB12 O Porto Editora

Na caixa de diálogo Scale Image pode-se, também, sele- nes tee os


cionar o processo de interpolação a ser aplicado e que vai
determinar a qualidade do resultado do redimensionamento Fig. 2.59. Caixa de diálogo Create a New
da imagem Image do GIMP
176

Por outro lado, no GIMP, pode-se alterar as dimen-

LIONPT ONO O TIQIV


sões de uma imagem se forem redimensionadas as
margens da sua área de imagem.

Para tal, seleciona-se, no menu Image, o comando


Canvas Size, surgindo a respetiva caixa de diálogo
(fig. 2.61).
Nesta caixa de diálogo pode-se definir a largura e
a altura das margens, mantendo ou não a proporcio-
nalidade; os valores de deslocamento da imagem se- ve tea e Camcet
gundo o eixo dos xx ou dos yy ou centrá-la na camada |
e aplicar, ou não, os parâmetros das configurações Fig. 2.60. Caixa de diálogo Scale Image
do GIMP
do redimensionamento às camadas, selecionando-se
a opção pretendida.

Pode-se, também, ajustar automaticamente as margens da área da imagem às dimen-


sões das camadas (Fit Canvas to Layers) ou de uma seleção (Fit Canvas to Selection).

O GIMP permite utilizar outros comandos para redimensionar as margens da área de


uma imagem. O comando Crop to Selection elimina as margens até à seleção definida.

O comando Autocrop Image remove margens vazias.

O comando Zealous Crop remove tanto as margens como as áreas do meio que, em
princípio, têm a mesma cor que as margens.
No Inkscape, quando se inicia um novo trabalho (comando New, do menu File), pode-
-se selecionar um dos vários formatos, que o programa disponibiliza para desenhar.

A alteração das dimensões e das margens da área de desenho pode ser feita selecio-
nando o comando Document Properties (fig 2.62), do menu File.

Mas, ao fazer a exportação do desenho para uma imagem do tipo bitmap, quando se
seleciona o comando Export Bitmap (fig. 2.63), do menu File, pode-se, também, alterar as
dimensões e a resolução dessa imagem, criando um novo ficheiro.

, Export Bamap (Shit «Crrt o E) =

Expor area

falam) trema | setecten | cutom


É cmo Mom ” Wade 144 04

o cmo > vd 1052 12 * Heghe 1052 62

Umas oe [5]
Brtmap uze
ga 9 - prelo 1192 - dp

Henge 1 - peeisat

Filename
tomem, am & frowsa..
femca page to Mame vo eme

levem Beador
+ dera page bond
Perco mer. tema - |
Reader cr top cd Some)

re, tem tree tamos |


= Pow bontm thados
OO É lpoa
' ——— a E a h a

Fig. 2.61. Caixa de diálogo Fig. 2.62. Caixa de diálogo Fig. 2.63. Caixa de diálogo Export Bitmap
Set Image Canvas Size do Document Properties do do Inkscape.
GIMP Inkscape.
2. Geração e captura de imagem

Alteração do formato do ficheiro


Para alterar o formato de um
ficheiro basta guardá-lo ou ex-
portá-lo para o tipo que se pre-
tende.

A figura 2.64 mostra os vá-


rios tipos de formatos em que
é possível guardar um trabalho
no Inkscape.

Para tal, pode-se selecionar


o comando Save As (fig. 2. 64)
ou Save a copy do menu File.

No Inkscape, pode-se tam-


bém selecionar a opção Expor- |
tar Bitmap para gravar o ficheiro Fig. 2.64. Caixa de diálogo resultante do comando Save As do Inscape, com a lista

com a extensão PNG (fig. 2.63). Guardar com o tipo aberia.


A figura 2.65 mostra os vários tipos de formatos em que é possível exportar um traba-
lho no GIMP, selecionando o comando Export ou Export As do menu File.

| Nome ]

Save folder 11 [Conte fes |

Pleces | Nome * SucModind - presmm


— Senac
O Recerasy
j

« Deco Loc
AF Urudade
» OMIGA Po resetar
lomega

E Putures Ei E

E Select File Type qu AS 5

o
AM umages

Alas Pi some (* qem, *umutttos, * mah, * alpha, )


E teles LIC pimatico (9, * e) ma
bep erciuve
(* acibed, * cfba?)
€ soueçe code (*.<) '

€ source
code header (*h)
Cotoured XMTIMA (* atammá)

Degatal imagung and Comuna atons mn Meda me amage (* dem * dicom)


Enc apudated PoutScret umage (* eps)
Plenibie Image Tramapos System (* da, * fas)
GE emage
(* qa)
X BaMap image (*abem,
“icon, “Jitmapi
AIB12 O Porto Editora

A Pesiap emage ( xpm)


1 wendos dump * red)
TSett PCX image [* pex * pec) -

Fig. 2.65. Caixa de diálogo resultante do comando Export As do menu File.

AIB12 F12
178

Alteração da profundidade de cor


Exercício
Quando se altera a profundidade de cor de uma imagem altera-se a qualidade da ima-

BIONPA ONO] O TIAIV


gem e o tamanho do ficheiro.

O GIMP permite uma profunfidade de cor de 24 bits, isto é, num píxel utiliza 8 bits para
representar cada cor do modelo RGB, num total de 16 777 216 cores (2º x 28 x 2º =
256 x 256 x 256).
Permite, também, converter uma imagem para uma escala de cinzas de 256 cores, utili-
zando uma profundidade de cor de 8 bits.

Para alterar a profundidade de cor no GIMP, seleciona-se o comando Mode, do menu


Image, e escolhe-se a opção RGB, Grayscale ou Indexed (fig. 2.66).

Na caixa de diálogo, resultante da opção Indexed, pode-se escolher diferentes submode-


los RGB com diferentes valores de profundidade de cor.

Quando se faz a exportação de uma imagem para um formato do tipo BMP, existem dife-
rentes profundidades de cor que podem ser selecionadas em Advanced Options (fig. 2.67).

&D tuo image as EMP esti

= Compottdty, Option,
O InSeses Coto Comersos mem
E

fm — a
Do met wrte cobos pace ndormataca

Advanced Optrom
Codes map

O CGenesste cptrrum palete ——


Mae murmibes
of colour: 2% Des
Use wet opterard palete
Use black and wiute (1-tat) palette
sos
Use < ustom palette
24 tits
o]
uam

32 tits
Dethoes rey

Color germe e)
, mr
ca
Enabie Sthenng
cf tramparency

ho
2» mm) (cem a L
2 [nr[= 4

Fig. 2.66. Caixa de diálogo resultante da opção Fig. 2.67. Caixa de diálogo de uma
Indexed, do comando Mode do menu Image. exportação para o tipo BMP, do
comando Export As, do menu File.

Alteração do modelo de cor


Um modelo de cor é a maneira como uma cor é descrita ou definida, enquanto que um
espaço de cor corresponde a um determinado intervalo ou gama (gamut) de cores de um
modelo, que podem ser reconhecidas ou exibidas por dispositivos como impressoras,
scanners, monitores, máquinas fotográficas, etc.

Assim, para além de trabalhar segundo um determindao modelo de cor, cada disposi-
tivo trabalha, também, dentro de um espaço específico de cor desse modelo de cor.

Desta forma, as cores de um trabalho podem sofrer alterações na sua aparência con-
forme, por exemplo, seja visualizado num monitor antigo ou num recente, impresso num
papel de jornal ou de revista, transferido para outro software, etc.
2. Geração e captura de imagem 179

Nas impressoras de pequeno porte, que utilizam tinteiros com as E a


quatro cores CMYK, os drivers instalados permitem automaticamente |[” bo | a
traduzir uma imagem RGB para CMYK no momento da impressão.
Mode Normal -

Mas, num grande volume de impres- qua os


ad]
sões, em que se utiliza a sobreposição | passe CuiD ve 4
de cores, o ficheiro produzido deve per- e y o EO c
e r cm +
“4. .

mitir a impressão em cores separadas


d e acordod com o modelo
delo CMYK E Cons Sim Lora
acento » DR):
O Inscape e o GIMP permitem ver os ias ú E
valores das cores do trabalho segundo as cusimeg
vários modelos (figs. 2.52 e 2.59), não > EN.
permitindo, no entanto, imprimir as Astouep luogs já
cores CMYK em separado. Para tal, Zestows Crop A
deve-se utilizar outros programas. Merge Vinillo Loyen Corto D +48 48
Fistten Image

Contudo, no GIMP, depois de insta- Algo Vistido Lama Fig. 2.68. Caixa de diálogo
Guides , Layers do GIMP
lada a extensão separate, é possível
. Contuqure (qu
mostar uma imagem RGB em CMYK. O image Puga am

Esta é representada por quatro ca- separate +! 1 Ductom


madas de cor quando se seleciona a “ mo
opção Separate, do comando Separate, Ea
do menu Image (fig. 2.69). Fig. 2.69. Menu File, do GIMP com o comando

A figura 2.68 mostra a caixa de diá- Separate selecionado.


logo Layers com as várias camadas criadas.
Depois, escolhendo camada a camada, em separado e tornando-a visível, pode-se ex-
portá-la para um formato pretendido, selecionando o comando Export as, do menu File.

Alteração de brilho, contraste e saturação


Os programas de imagem e desenho possuem ferramentas que permitem alterar o
brilho, o contraste e a saturação das cores num trabalho.

No Inkscape estas alterações podem ser obtidas de imediato, aplicando as opções do


comando Color, dos menus Filters e Extensions.
O te Seturatos tt

TE Ape Ha / Lightnons / Saturation


emas CMETE SE 67 Jonas CMITK fm
2 As figuras 2.70 e 2.71 mostram duas caixas de diá-
suma + € logo do GIMP, Hue-Saturation e Brightness-Contrast,
Sebect Primas y Camus to Adgust que surgem quando são selecionados os respetivos
aR comandos, no menu Colors.
' “
po,
ma ' : Ea O emgrress Contrast —
ç

Ea € Adpust and Contrast


Brighiness 2
map? GraCA fg
: Prezem 145
Apt retrato (ente

bue 6 .
Corfret o
Lghtness | 0
Smatuus atm j 0 . = aa mese Sets
as Levei
Pesa é ctoma 7 Presew
AIB12 O Porto Editora

é Preses
tetp tem a Gancei |
teto Bea ue Gomcei
L j Fig. 2.71. Caixa de diálogo
Fig. 2.70. Caixa de diálogo Hue-Saturation do GIMP Brightness-Contrast do GIMP
180

2.5.2. Adequação dos atributos da imagem ao tipo de documento


Exercício

Apresentações gráficas e páginas Web


Com o aparecimento do audiovisual, do computador e das redes informáticas, mais

LIONPY OO] O TITIV


propriamente a Internet, a imagem e o desenho passaram a ter outros objetivos. Surgiram
novas ferramentas de criação, tratamento e publicação da imagem, de forma que, no
mundo atual, somos completamente invadidos por ela — é a televisão, o cinema, a publi
cidade, os livros, as revistas, os produtos comerciais, etc.

Atualmente, com o avanço das tecnologias de informação e comunicação, todos os


organismos e até muitas pessoas passaram a ter publicadas páginas Web. Nestas pági-
nas é imprescindível que se combine o texto com a cor e a imagem. A importância peda-
gógica, do marketing e da estética das imagens no ambiente da Internet é igual ou maior
do que nos outros meios de divulgação.

Na criação de imagens e gráficos para a Web vários aspetos devem ser observados,
como:
* a resolução, o tamanho e o formato do ficheiro. Desta maneira, otimizam-se as ima-
gens, diminuindo o seu tempo de carregamento;
e a forma, a cor e os efeitos que se pretendem obter;
* a interatividade e a navegação rápidas existentes através das ligações.

Para criar imagens otimizadas para a Web, deve-se guardar o ficheiro nos formatos
GIF, JPEG, PNG ou PDF. Embora o formato GIF seja um padrão mais antigo, o JPEG produz
ficheiros mais pequenos. No entanto, os ficheiros GIF permitem criar imagens com a
opção interlace para a Web, parecendo que surgem de uma forma mais rápida no site. O
formato PNG substitui o formato GIF para a Web, suportando uma profundidade de cor até
48 bits.

Documentos impressos
A cor é importante nos documentos impressos pois permite conferir-lhes qualidade e
destaque. A introdução da cor na impressão foi ganhando cada vez mais importância em
documentos de empresas, revistas, livros, manuais, fotografias e cartazes. Estudos esta-
tísticos concluem que os documentos impressos a cores são 60% mais valorizados e os
leitores mantêm a atenção durante mais 82% do tempo de leitura.

Há vários atributos que contribuem para a qualidade dos documentos impressos e


para a obtenção de imagens mais realistas, como a resolução da impressão, o número de
combinações de cores possíveis, a utilização de cores nítidas e precisas, a utilização de
uma escala de cinzas completa desde o branco ao preto, a quantidade e a forma de dis-
tribuição dos pontos de cor no documento e o tipo de papel e tintas que garantam um
maior desempenho e durabilidade da impressão.

Vídeos
Hoje em dia, as imagens vídeo são amplamente utilizadas em computadores, televi-
são, câmaras de filmar, leitores de CD e DVD e redes informáticas. Em todo o caso, para
uma boa e agradável visualização de uma imagem vídeo, é muito importante a sua quali-
dade. Esta depende de fatores como a quantidade de cores reproduzidas, o controlo da
luminosidade, a redução de sinais de ruído, a capacidade de produzir contrastes e som-
bras e a reprodução perfeita do preto. Desta forma obtêm-se imagens nítidas, luminosas,
subtis e com um alto contraste.
2. Geração e captura de imagem 181

2.6. Captura de imagens Exercício

Os dispositivos de captura de imagem digital mais comuns são os scanners e as má-


quinas digitais. Estes dispositivos de digitalização convertem fotografias, trabalhos de
arte e outros materiais do mundo real em dados digitais, que podem, depois, ser edita-
dos por programas bitmap.

A imagem digital proveniente de um scanner é constituída por uma série de pontos ar-
mazenados sob a forma de linhas e colunas, onde cada ponto representa a intensidade
luminosa recebida pelo scanner.

Entretanto, podemos fotografar os objetos desejados utilizando máquinas digitais e


transferindo os ficheiros resultantes para o computador.

2.6.1. Por scanner

Embora o funcionamento básico dos scanners seja idêntico, há uma grande variedade
de tipos e modelos no mercado e a escolha deve ser definida pelo tipo de tratamento que
vai ser dado às imagens por eles obtidas.

Para obter uma boa imagem digitalizada, é preciso partir de um bom original, apesar
de os programas de imagem poderem melhorar a qualidade da imagem digital. E, para
obter uma boa qualidade de digitalização, é conveniente partir, se possível, de um scan-
ner de boa qualidade.

Os scanners baseiam-se no princípio da reflexão da luz, isto é, a imagem a digitalizar é


iluminada de forma que a luz refletida seja captada por sensores que transformam este
sinal de luz num sinal elétrico. Existem três tipos de sensores: Photo Multiplier Tube
(PMT), Charge Coupled Device (CCD) e Contact Image Sensor (CIS).

O Photo Multiplier Tube (PMT) é usado em scanners de tambor, que são mais sofistica-
dos e mais caros. Este tipo de scanner é usado principalmente na indústria gráfica, para
impressões de alta qualidade.

O Charge Coupled Device (CCD) é usado em quase todos os scanners domésticos. Este
tipo de sensor transforma a luz refletida em sinais elétricos que, por sua vez, são conver-
tidos em bits através de um circuito denominado conversor analógico-digital. Os scanners
de mesa, geralmente, possuem vários sensores CCD colocados em linha reta.

O número de CCD está diretamente relacionado com a resolução ótica do scanner, que
determina quantos píxeis por polegada pode capturar.

O Contact Image Sensor (CIS) usa uma série de LED vermelhos, azuis e verdes para
produzir a luz branca, substituindo os espelhos e as lentes usados nos scanners com
sensores CCD.

Assim, na aquisição de um scanner é importante conhecer qual a sua resolução ótica,


medida em dpi.

O software que acompanha o scanner permite escolher a resolução a utilizar numa digi-
talização e configurar outros parâmetros, como clarear, escurecer, equilibrar as cores, etc.

2.6.2. Por máquina fotográfica digital


AIB12 O Porto Editora

Em muitos aspetos, uma máquina fotográfica digital é semelhante a um scanner, com


a exceção de que, quando uma imagem é capturada, a máquina fotográfica não emite
mas recebe uma luz. A máquina fotográfica digital baseia-se num conjunto de sensores
182

(CCD), que capturam a luz e produzem determinadas cargas elétricas, dependendo das

LIONPT ONO O TIQIV


Exercício diferentes intensidades de luz, e num conversor analógico-digital que transforma as car-
gas elétricas em dados digitais. Ao contrário do scanner, a máquina fotográfica captura a
imagem inteira de uma só vez.

3. Formatação de texto

3.1. Conjuntos de caracteres

3.1.1. ASCII
A tabela de código ASCII (American Standard Code for Information Interchange) surgiu
nos anos 60 do século XX, devido à necessidade de criar um padrão que fosse utilizado por
todos os computadores, tornando mais fácil a comunicação entre eles e a troca de dados.

A tabela ASCII utiliza conjuntos de 7 bits para representar 128 caracteres (2' caracte-
res), muitos deles adequados apenas à língua inglesa, por ter sido desenvolvida nos Es-
tados Unidos.

A ISO (Internacional Standards Organization) adotou o código ASCII como norma inter-
nacional, com a designação ISO 646, e ampliou-o, passando a incluir um conjunto de ca-
racteres de outros idiomas. Para conseguir esta ampliação, tiveram de ser utilizados
conjuntos de 8 bits (1 byte), permitindo representar 256 caracteres (2º caracteres), ou
seja, aos 128 caracteres iniciais foram acrescentados mais 128. No entanto, estes 256
caracteres continuavam a ser insuficientes para englobar todos os caracteres dos vários
idiomas, sendo, por isso, necessário criar variantes regionais.

Através da norma ISO 8859, foram normalizados os conjuntos de caracteres de 8 bits,


agrupando as variantes de idiomas relacionados geograficamente. Esta norma é consti-
tuída por várias partes, desde a ISO 8859-1 até à ISO 8859-10, destinadas aos diversos
idiomas, tais como: ISO 8859-1, conhecida por ISO Latin1 para a maioria dos países da
Europa Ocidental, ISO 8859-8 para o hebreu e a ISO 8859-7 para o grego moderno.

A norma ISO 8859 não pode ser considerada uma norma universal, devido às limita-
ções que apresenta na representação, em simultâneo, dos caracteres de vários idiomas.
Para resolver este problema, a ISO introduziu em 1991 a norma ISO 10646 com 32 bits,
representando 4 294 967 296 caracteres diferentes.

Para se obter um carácter ASCII num processador de texto, a partir do teclado, pressiona-se a
tecla ALT e, simultaneamente, no teclado numérico, digita-se o código da tabela ASCII correspon-
dente ao carácter pretendido.

3.1.2. Unicode

O Unicode é também um código que define todos os caracteres da maior parte das
línguas do mundo. Foi desenvolvido, em simultâneo, por um consórcio industrial, in-
cluindo, entre outras companhias, a Adobe, a Apple, a Microsoft, a HP, a IBM, a Grae/e,
a SAP, a SUN e a Unisys. Permite utilizar conjuntos até 4 bytes (32 bits) para codificar os
caracteres, sendo mais extenso que a tabela de código ASCII.
3. Formatação de texto 183

Os códigos disponibilizados pela Unicode permitem representar os caracteres utiliza-


dos pelos idiomas modernos e as formas clássicas de alguns idiomas. Codificam, entre Jogo
outros, caracteres acentuados, símbolos de pontuação, símbolos técnicos e matemáticos
e outros símbolos gráficos também conhecidos por dingbats (por exemplo, estrelas e ou-
tras formas).

Esta norma é compatível com a norma ISO 10646.

3.1.3. EBCDIC

O EBCDIC (Extended Binary Coded Decimal Interchange Code), desenvolvido pela IBM,
é um código de 8 bits utilizado em texto e na maioria das operações relacionadas com as
comunicações e o controlo das impressoras.

Este código surgiu com o System/360 IBM e continua a ser utilizado por esta empresa
nos computadores de grande porte (mainframes) e na maioria dos computadores de
médio porte.

3.2. Fontes
As fontes são conjuntos de caracteres que podem corresponder a letras, números ou
símbolos. Estas são armazenadas em ficheiros de fontes onde são descritas as suas
características físicas, ou seja, como vão ser visualizadas no ecrã e impressas. As fontes
são identificadas por nomes e classificadas segundo determinadas famílias.

Designa-se por família um agrupamento de caracteres cujos traços são semelhantes,


isto é, com características e detalhes idênticos que se repetem por todos eles.

3.2.1. Caracteristicas das fontes

Um tipo de fonte descreve um conjunto de características, como o desenho, o tama-


nho, o espaçamento e a largura dos seus caracteres. Para além destas características,
um tipo de fonte tem associados estilos como o itálico, o negrito e o negrito itálico.

Os tipos de fontes são utilizados para reproduzir texto no ecrã e na impressão.

O tamanho de uma fonte utiliza como unidade de medida o ponto (pt) que corresponde
aproximadamente a 0,3528 mm. Cou rie

Existem dois tipos de fontes: bitmapped e escaladas. Estes dois sisustar: k imnopqrstuver
tipos são semelhantes, respetivamente, em termos de conceção, às ussaserss.s.stueldo)
imagens bitmap e vetoriais. o À raDido For
= À rápida rap
3.2.2. Fontes bitmapped A ráp ida
2 o
As fontes bitmapped são guardadas como uma matriz de píxeis e, por Ê, ra E 1
conseguinte, ao serem ampliadas, perdem a qualidade.
*
São concebidas com uma resolução e um tamanho específicos para = A | a É
uma impressora específica, não podendo ser escaladas. Se uma impres-
AIB12 O Porto Ed itora

sora não suportar estas fontes, estas não serão impressas. 7 a

As cinco fontes bitmapped são: Courier (fig. 3.1), MS Sans Serif, MS


Serif, Small e Symbol. Fig. 3.1. Fonte Courier.
184

3.2.3. Fontes escaladas (Type 1, TrueType e OpenType)


Exercício

As fontes escaladas, ao contrário das fontes bitmapped, são definidas matematica-

LIONPY OO] O TIAIV


mente e podem ser interpretadas (rendering) para qualquer tamanho que forem requisita-
das. Estas fontes contêm informação para construir os seus contornos através de linhas
e curvas que são preenchidas para apresentarem um aspeto sólido de formas contínuas.
Desta forma, podem ser ampliadas sem perder a qualidade das suas formas.

As fontes Type 1, TrueType e OpenType são consideradas fontes escaladas.

As fontes Type 1 foram desenvolvidas pela Adobe e são o formato nativo do PostScript.
Entende-se por PostScript a linguagem de programação que coloca texto e gráficos numa
página.

Estas fontes são dimensionadas e concebidas para trabalhar com dispositivos


Post-Script, como impressoras, em que o detalhe conseguido cumpre os padrões de qua-
lidade estabelecidos na indústria tipográfica.
As informações das fontes Type 1 são guardadas, no Windows, em dois ficheiros:

Baramond (TrueType) e PFB (Printer Font Binary) — extensão do ficheiro para o tipo da fonte
PostScript Type 1. Contém informação sobre os contornos dos ca-
racteres;
e PFM (Printer Font Metric) — extensão do ficheiro com informações
A va apo camara na sobre a métrica da fonte impressa. Contém informação sobre as
A
F
rápida
k
ra vosa castanha características do espaço horizontal e vertical dos caracteres, no-
« A rápida raposa cas meadamente do kerning. Entende-se por kerning os valores utiliza-

- À rápida rap: dos entre as distâncias dos caracteres de forma a ajustar o espaço
entre eles, criando a aparência de uma distribuição uniforme dos

A rápida mesmos, para uma leitura mais fácil.

As fontes TrueType foram inicialmente criadas pela Apple. Posterior-


à A E d mente, foram desenvolvidas conjuntamente pela Apple e pela Microsoft,
rapi na tentativa de concorrer com as fontes da Adobe, tendo sido incluídas a
partir do Windows 3.1 e do Mac OS 7.

À rápi Cada fonte TrueType contém o seu próprio algoritmo para converter
as linhas de contorno em bitmaps. Estas fontes são dimensionáveis
Fig. 3.2. Fonte Baramond. para qualquer altura e podem ser impressas exatamente como apare-
cem no ecrã.
Arial (OpenType) Estas fontes não são compatíveis com o código PostScript e, por
isso, é necessário convertê-las em fontes Type 1, tornando a im-
pressão lenta e com erros. Devido a esta incompatibilidade, este
abcdefgnjdmnoparstuvaxyz
ABCDEFGHIJKLMNOPORSTUVWXYZ tipo de fonte acaba por não ser muito utilizada em impressoras
123456789.:,(:*17)
PostScript.
A rápida raposa castanha saita em cima d
A rápida raposa castanha salta « As informações das fontes TrueType são guardadas, no Win-
- À rápida raposa cast; dows, apenas num ficheiro com a extensão TTF (TrueType File). O

- À rápida raposa Windows fornece um conjunto de fontes TrueType, como Baramond


(fig. 3.2), Bitstream Vera Sans Mono, Bookshelf Symbol 7 e Dus-
A rápida rap tismo Roman.

A rápida rz
As fontes OpenType foram criadas pela Microsoft e Adobe para
melhorar a portabilidade e a independência dos documentos entre
Fig. 3.3. Fonte Arial.
diferentes plataformas, simplificando as operações de gestão de
fontes uma vez que apenas existe um ficheiro por fonte, compatível
3. Formatação de texto 185

com ambas as plataformas (Windows e Mac). Trata-se de um padrão de codificação de


texto que suporta praticamente todos os idiomas, tendo sido uma tentativa de construir
uma ponte entre as fontes TrueType e PostScript.

Estas fontes podem ser corretamente dimensionadas para qualquer tamanho. São
fontes transparentes e legíveis em todos os tamanhos e suportadas pelo Windows em
todos os dispositivos de saída.

O Windows fornece um conjunto vasto de fontes OpenType, como Arial (fig. 3.3),
Courier New, Lucida Console, Times New Roman, Symbol e Wingdings.

3.2.4. Uso de um gestor de fontes

Os programas gestores de fontes permitem ao utilizador contro-


lar as fontes instaladas, em cada momento, no sistema operativo,
podendo, por isso, ser utilizadas na realização de trabalhos. As in- | es. Br nms .0-
formações relativas às características de uma fonte são guardadas a = a e 3» :
num ficheiro, o qual vai ocupar espaço de armazenamento no com- | mem aim um Bat trt
putador, pelo que é necessário gerir a quantidade de fontes que se dd ad õ 9
instala no computador.

O Windows disponibiliza o programa Tipos de letra (fig. 3.4), º s ss 3.8 o


acessível no Painel de controlo, através do qual é possível, por
Fig. 3.4. Janela do programa Tipos
exemplo, gerir e visualizar os tipos de letra instalados.
de letra do Windows 8.1.
O Extensis Suitcase (fig. 3.5) e o Typograf (fig. 3.6) são exemplos de programas gesto-
res de fontes que permitem, entre outras operações, instalar, visualizar e organizar fontes.

ad MM =).

vis Ç
o o = Y
a too Comme micos [anciro efe
Jimi E | metge " WTw Cen MT Negrito ltálico S Tr vrindo Sample Tom ABC abc
fo Opera terá ABCDE Ulverdana Se 750%&* LET ER TO - EKETTAE
o Es * Verdana Itálico Sampl Twvide Latin S:
2 abcdef... w Verdana Negrito Sa W+XE2X8%+ 450
] ; wir a 2 T -

n Verdana Negrito Itá FSDI94aDSao O


ves 1 23456... w Viner Hand ITO Sample Mm sosososV
* Vil Shui Qhunpl Tor. [Wi EYPOVAOCUDAGIA À
W Cadimis Torga! Tomado Tovt rs e Vê EYYOUAOOUDAOYA qi
» « x

Fig. 3.5. Janela do programa Suitcase. Fig. 3.6. Janela do programa Typograf.

3.2.5. Uso racional de fontes

Existem alguns limites, que devem ser considerados, à instalação de fontes num com-
putador e à sua utilização num documento. Relativamente à sua instalação, as fontes são
guardadas no computador em ficheiros que normalmente ocupam pouco espaço. Con-
tudo, quando estas existem no computador em elevado número, e dadas as limitações de
AIB12 O Porto Editora

espaço que este possa apresentar, devem ser geridas de acordo com as necessidades
do utilizador e com a capacidade de armazenamento do computador. Por outro lado, um
número elevado destas pode atrasar as operações de processamento pela necessidade
de uma maior utilização da memória RAM.
186

As fontes podem ser copiadas para o computador de várias formas. Por exemplo, o

BIONPA OO] O TIAIV


Exercício CorelDRAW e o Illustrator vêm com dezenas ou centenas de fontes gratuitas que podem
ser instaladas. Para os trabalhos profissionais, a Adobe tem um conjunto de fontes pró-
prias, como o Font Folio 11.1., que é uma coleção de fontes PostScript e OpenType. Outra
forma fácil de obter fontes é através da Internet em endereços como www .dafont.com e
Exercício
www.1001freefonts.com.

É incorreto afirmar que a compressão no formato JPEG:


a) elimina toda a informação de luminância da imagem;
b) altera as coordenadas RGB para HSV na imagem;
c) divide a imagem em blocos de 8 píxeis;
d) reduz a resolução das componentes de cor da imagem.

Na compressão sem perdas de um formato pode dizer-se que:


a) astaxas de compressão são mais pequenas;
b) o resultado da compressão aumenta o tamanho do ficheiro;
c) a imagem comprimida não é uma réplica do original;
d) é muito utilizada nos formatos JPEG.

Qual das siglas seguintes não é utilizada como um formato de ficheiro na Web?
(A) SWF; (B) RGB; (C) JPG; (D) GIF.

Suponha que se digitaliza uma fotografia para guardar no computador e pretende-se que a imagem
tenha qualidade fotográfica. Qual dos formatos seguintes escolheria?
(A) O formato GIF, porque permite armazenar imagens com 256 cores.
(B) O formato JPEG, porque utiliza uma compressão com perdas.
(C) O formato BMP, porque tem uma grande profundidade de cor.

Distinga os códigos ASCII, Unicode e EBCDIC.

Defina fonte e explique a forma como são armazenadas no sistema informático.

Distinga fontes bitmapped de escaladas, indicando dois exemplos para cada uma delas.

8. Qual a unidade utilizada para medir o tamanho das fontes?

9. Estabeleça a ligação entre a coluna das fontes e a coluna da sua descrição.


Quadro 1

Fonte Descrição

1) Criadas pela Microsoft e pela Adobe para melhorar a portabilidade e a


(A) Type 1 independência dos documentos entre diferentes plataformas, simplificando as
operações de gestão de fontes, uma vez que apenas existe um ficheiro por fonte.

2) Inicialmente criadas pela Apple e posteriormente desenvolvidas conjuntamente


(B) TrueType pela Apple e pela Microsoft. Contêm o seu próprio algoritmo para converter as
linhas de contorno em bitmaps.

(C) OpenType 3) É o formato nativo do PostScript, desenvolvido pela Adobe.

10. Classifique em verdadeira ou falsa cada uma das seguintes afirmações.


Exclusivo
(A) As fontes escaladas não podem ser ampliadas, pois perdem a qualidade das suas formas.
do Professor (B) O tipo de fonte enumera um conjunto de características, como o desenho, o tamanho, o
espaçamento e a largura dos seus caracteres.

Solução
4. Aquisição e reprodução de som 187

Exercícios de aplicação 6 (cont.)


o Exercício

(C) As fontes Type 1, Small, TrueType e OpenType são consideradas fontes escaladas.
(D) Quando uma impressora não suporta as fontes do tipo bitmapped estas não são impressas.
(E) As fontes TrueType são guardadas no Windows em ficheiros com as extensões PFM e PFB.

11. Defina programa gestor de fontes.

12. Copie para o seu caderno e preencha o quadro 2, utilizando as informações existentes no gestor de
fontes do Windows 8.1, conhecido por Tipos de letra.
Quadro 2

Nome da fonte Nome do ficheiro Tipo de fonte

13. Indique dois aspetos relacionados com o uso racional das fontes.

4. Aquisição e reprodução de som


A aquisição de som equivale a gravar um som analógico para digital, obtendo um con-
junto de amostras do sinal analógico por segundo. Quanto maior for este número de
amostras por segundo maior será a fidelidade do som, isto é, maior será, depois, a seme-
lhança entre o som reproduzido e o som original.

Amostrar um sinal significa obter valores dele em determinados pontos, geralmente


em intervalos constantes, segundo uma determinada frequência, designada por taxa de
amostragem e medida em Hertz (Hz). As taxas de amostragem standards podem ser de 8;
11,025; 44,1; 48; 96; 192 e 2822,4 kHz. Por exemplo, as taxas de 44,1 kHz e 192 kHz
são utilizadas, respetivamente, para áudio com qualidade de CD e DVD. É de realçar, o
superáudio CD (SACD) que é um disco ótico de leitura, que fornece alta qualidade com
uma taxa de amostragem de 2822,4 kHz.

Tal como a imagem, o áudio digital pode ser quantizado com diferentes resoluções,
isto é, cada amostra pode ser quantificada com mais ou menos bits. Quanto maior for a
resolução, maior será a profundidade de bits utilizada, melhor será a qualidade de som e
maior será o ficheiro armazenado.

O quadro 4.1 apresenta a quantidade de valores que é possível usar para quantificar
uma determinada amostra de acordo com o número de bits utilizados.

Quadro 4.1

Profundidade de bits por amostra Quantidade de valores possíveis

8 256
16 65 536
AIB12 O Porto Editora

16 777216 Exclusivo
24 do Professor

Solução
188

Portanto, a qualidade de reprodução de um som é determinada pelo tamanho das

LIONPT ONO O TIQIV


Jogo amostras em bits e pela sua taxa de amostragem em Hz.

Quanto maiores forem estes valores, maior será a qualidade do som reproduzido,
assim como o tamanho do ficheiro de áudio armazenado.

Quanto maior for o tamanho de um ficheiro de áudio, mais espaço este ocupará em
disco, ao ser armazenado, e mais tempo levará o seu carregamento através da Internet
ou através de outra rede informática.

Por exemplo, para se obter a qualidade de um CD digital de música, utilizam-se


44 100 amostras por segundo e cada amostra tem uma profundidade ou resolução de 16
bits. Se o som reproduzido for estéreo (2 canais), tem-se, aproximadamente:

44 100 x 16 x 2=1 400 000 bits por segundo ou 1400 kbps ou 1,4 Mbps

O valor 1,4 Mbps indica que a quantidade de informação a debitar é grande e, por con-
seguinte, o ficheiro áudio será grande.
Desta forma, surge a necessidade de aplicar algoritmos de compressão para reduzir
os ficheiros de áudio.

4.1. Formatos de ficheiros


Os ficheiros de áudio, se não estiverem comprimidos, apresentam um tamanho grande
porque contêm uma enorme quantidade de dados.

Estes ficheiros, para além dos dados de áudio relativos ao som que se pode ouvir,
podem incluir outros dados, como o nome do ficheiro de som, o seu tamanho, a duração,
o número de canais, a resolução ou o tamanho da amostra (em bits), a taxa de amostra-
gem (em kHz), o tipo de compressão, a informação acerca do streaming, outros textos ou
gráficos, etc.

Os ficheiros de áudio digital podem assumir os formatos não comprimidos ou compri-


midos, resultando ficheiros diferentes em tamanho e qualidade do áudio gravado.

4.1.1. Não comprimidos

Depois do sinal amostrado e quantizado, utiliza-se a técnica de codificação PCM (Pulse


Code Modulation) na gravação dos ficheiros de música em CD áudio.

Esta codificação faz-se sem recurso a algoritmos de compressão e aplica-se tanto a


ficheiros gravados em CD como aos ficheiros wave dos computadores, onde se utiliza
uma resolução de 16 bits e uma taxa de amostragem de 44,1 kHz. Estes ficheiros apre-
sentam grandes tamanhos.

A maior parte dos formatos de ficheiros não comprimidos é nativa de sistemas opera-
tivos específicos, apresentando-se de seguida alguns deles.

O Waveform Audio é, por defeito, o formato de áudio digital nativo do sistema operativo
Windows. Foi desenvolvido pela Microsoft e pela IBM para o Windows 95. Os ficheiros
neste formato utilizam a extensão wav. Na pasta Media do Windows existe um conjunto
de ficheiros wav que são associados a determinados acontecimentos do Windows. Atra-
vés do Painel de controlo, é possível definir as propriedades de sons e dos dispositivos de
áudio (fig. 4.1).
4. Aquisição e reprodução de som 189

O Audio Interchange File Format é o formato de áudio utili-


zado pelo sistema operativo da Apple. A extensão destes fichei- Exercício
ros pode ser aiff ou aif. im enquemado cora é vam conjunto do cons asfcadas 0 vast

O Audio é, por defeito, um formato utilizado pela Sun e pelo sea


sistema operativo Unix. A extensão destes ficheiros é au. ne

O Sound é um formato semelhante ao formato au e utilizado na mobi sore cha nm ereto de ogia na mpi
inicialmente pela Apple. A extensão destes ficheiros é snd. E

O Musical Instrument Digital Interface é um standard que eso


. . . 2. o ses boca
permite conectar sintetizadores, teclados eletrónicos e outros O Mame do buicio cui
e o Naa º
instrumentos eletrónicos ao computador. Os ficheiros midi não 2
são propriamente um formato de ficheiro de áudio, mas, por
armazenarem notas musicais, encontram-se dentro desta cate- , ae eb
goria e têm a extensão mid ou midi. Por outro lado, por ocupa- (5 Comes )( dom
rem pouco espaço, são guardados não comprimidos. Fig. 4.1. Caixa de diálogo Som do

O Compact Disc Digital Audio é um formato usado para codi- Windows 8.1.
ficar música em discos comerciais. Este formato não é armazenado nos computadores e,
por isso, é necessário convertê-lo para outro formato para o conseguir. A extensão destes
ficheiros é cda.

4.1.2. Comprimidos

Quando se pretende ter um arquivo de música próprio ou portátil, o mais conveniente


é ter ficheiros áudio comprimidos. Designa-se por compressão um conjunto de algoritmos
que tanto comprime como descomprime um ficheiro de som. Os codecs (COmpression/
DECompression) permitem comprimir o ficheiro num gravador ou permitem ouvir o som
num leitor de música.

A compressão de ficheiros áudio tem em conta as características do ouvido humano e


as suas limitações na perceção dos sons, resultando algoritmos de codificação que per-
mitem reduzir a quantidade de dados armazenados num ficheiro. Para obter áudio compri-
mido utilizam-se algoritmos como o ADPCM, True Speech, MP3 ou MPEG.

Os ficheiros de áudio comprimidos podem ser obtidos através de operações semelhan-


tes às utilizadas para outros tipos de ficheiros, como de imagem ou texto. Estes ficheiros
ocupam menos espaço do que os ficheiros iniciais e resultam da eliminação de informação
redundante e outras informações do áudio com pouca influência na qualidade do mesmo.

No áudio, tal como nas imagens, os ficheiros podem ser compactados até um certo
ponto sem que haja perda de qualidade.

Numa compressão com perdas existe uma perda da informação original para criar um
ficheiro menor, enquanto que, numa compressão sem perdas, não é afetada a qualidade
da informação original, mas resulta um ficheiro de tamanho maior, embora não tão grande
como um ficheiro não comprimido.

Na compressão de áudio com perdas são rejeitadas determinadas frequências do es-


petro e removidos dados desnecessários, utilizando uma técnica designada por codifica-
ção percetual. O ouvido humano geralmente não percebe que a informação foi perdida.
AIB12 O Porto Editora

Na compressão sem perdas os dados são “apertados” sem haver rejeição de informa-
ção. Alguns dados são removidos temporariamente, mas são recolocados mais tarde, de
acordo com o algoritmo de descompressão. Isto produz um som com maior qualidade,
mas cria um ficheiro maior.
190

Formatos de compressão com perdas


Exercício
Para muitos utilizadores o som de um ficheiro comprimido é aceitável, mas para outros

BIONP ONO] O TIAIV


a compressão representa uma alternativa inaceitável à reprodução de som de alta-fideli-
dade.

Hoje em dia, o formato mais popular da compressão com perdas é o MP3, embora
haja outros formatos que trabalham da mesma maneira. Apresentam-se, a seguir, alguns
formatos de ficheiros com uma compressão com perdas.

O Motion Picture Experts Group (MPEG) refere-se a uma família de standards para
áudio e vídeo que inclui o MPEG-1, o MPEG-2, o MPEG-1 Layer 3 (MP3) e o MPEG-4, ba-
seados na complexidade das fórmulas de compressão (quadro 4.2).

Quadro 4.2

Formato Descrição

MPEG-1 Standard para vídeo e CD-ROM.

MPEG-2 Standard para DVD e TV digital.

Tornou-se o formato de áudio digital mais usado hoje em dia. Os ficheiros


apresentam tamanhos pequenos e com um som de qualidade. A sua
característica principal é a sua universalidade, pois, ao contrário da maior
parte de outros formatos, permite que sejam lidos pela maioria dos leitores de
música digital e programas.
Este formato é muito utilizado nas transmissões de música pela Internet.
O seu processo de compactação funciona através da eliminação de
frequências sonoras não audíveis pelo ouvido humano. Desta forma, torna os
MPEG-1 - Layer 3
ficheiros de áudio mais pequenos: por exemplo, 40 MB de música gravada
(conhecido como podem-se transformar em 4 MB, no formato MP3.
MP3)
O MP3 VBR [MP3 Variable Bit Rate) é um formato MP3 mais avançado que
permite a compressão de áudio a taxas variáveis, de acordo com a
complexidade do áudio.
A compressão é determinada instante a instante. Por exemplo, o silêncio fica
muito mais comprimido do que uma passagem de música complexa.
O mp3PRO ([MP3) é uma versão melhorada do formato original MP3,
introduzido em 2001, mas não muito utilizado hoje em dia.
Usa as mesmas extensões (mp3) que um normal ficheiro MP3.

O MPEG-4 é o standard mais recente, que permite introduzir áudio e vídeo na


Internet ou noutra rede, em telemóveis, em consolas de jogos e em aparelhos
sem fios.
MPEG 4 Audio AAC | Este standard permite capturar, editar, codificar, distribuir, tocar e arquivar e é
[Advanced Audio baseado no formato QuickTime de áudio e vídeo da Apple.
Coding) O AAC, também conhecido como MPEG-4 AAC, é um formato proprietário do
iTunes e iPod da Apple e suporta acima de 48 canais de frequência (som
surround) e acima de 96 kHz de taxa de amostragem.
A extensão dos ficheiros é mp4.

O Adaptive TRansform Acoustic Coding 3 (ATRAC3) é sustentado pela Open Magic Gate
(OMG), que detém os seus direitos. O ATRAC3 e o mais recente formato ATRAC3plus ofe-
recem um som e uma compressão razoáveis. É um formato compatível com os produtos
da Sony. A extensão dos ficheiros é omg.
4. Aquisição e reprodução de som 191

O Liquid Audio é um concorrente do MP3 que foi muito popular nos anos 90 do século
XX, mas não muito usado hoje em dia. A extensão dos ficheiros é Igt. Exercício

O 0GG Vorbis é uma tecnologia de codificação de código aberto (open source) para o
sistema operativo Linux, originalmente conhecido como Squish. O OGG Vorbis foi dese-
nhado para substituir o MP3 e o WMA. Os seus ficheiros têm a extensão ogg.

O QuickTime Audio é essencialmente a tecnologia MPEG-4, suportando áudio, vídeo e


o formato MP3. A extensão dos ficheiros é qt ou mov.

O RealAudio Media é um formato proprietário da Real Networks, desenhado especial-


mente para a reprodução de áudio em tempo real numa rede. Necessita de um leitor
próprio para reproduzir o som, suportando também o formato MP3. A extensão dos fichei-
ros é ra ou ram,
O Windows Media Audio é um formato de áudio digital da Microsoft, desenvolvido como
um formato alternativo ao MP3. A extensão dos ficheiros é wma.

O TwinVQO (Transform-domain Weighted Interleave Vector Quantization) foi criado pela


Yamaha e é um formato de áudio compactado cada vez mais divulgado, pois utiliza um
algoritmo de compactação mais eficiente do que o formato MP3, originando ficheiros 30%
mais pequenos e com uma qualidade superior.

Este formato, para as operações de descompressão associadas à reprodução do


áudio, necessita de um processador com uma boa capacidade de processamento devido
à complexidade do seu algoritmo. Esta situação está a dificultar um pouco a sua popula-
rização. A extensão dos ficheiros é vga.

Formatos de compressão sem perdas


Para se criar um repositório de alta-fidelidade digital, a melhor solução é usar um for-
mato de compressão sem perdas. Estes formatos trabalham de forma idêntica a uma
compressão zip. Os bits redundantes são eliminados para ser criado um ficheiro compri-
mido.

Com certeza, esta compressão não cria ficheiros tão pequenos como numa compres-
são com perdas e, por isto, não é recomendada para leitores de música portáteis, onde o
espaço de armazenamento é limitado. De seguida, apresentam-se formatos de compres-
são sem perdas, que não são tão conhecidos como os formatos de compressão com
perdas.

O Apple Lossless Audio Codec é um formato disponível para ser usado com o Apple's
iTunes e o iPod. A extensão dos ficheiros é mda.

O Free Lossless Codec é um formato de código aberto, aceite por muitas empresas de
eletrónica e usado com a maior parte dos sistemas operativos, incluindo Windows e Linux.
Tem uma qualidade de som semelhante ao MP3 e não rejeita informação. Pode ser to-
cado na maior parte dos sistemas operativos e tem a extensão flac.

O Windows Media Audio Lossless é um formato da Microsoft, disponível nas versões 9


e 10 do Windows Media Player. E uma boa opção para compressão sem perdas. Usa a
mesma extensão do formato wma de um ficheiro normal do Windows Media Audio.

O WavPack (WV, WVC) é um formato livre semelhante ao formato flac, mas não é
muito usado. A extensão dos ficheiros é wv.
AIB12 O Porto Editora

O Shorten é um esquema de compressão sem perdas que oferece uma compressão de


2 para 1. Ganhou popularidade entre as pessoas que gravam os concertos e os partilham
na Internet. A extensão dos ficheiros é shn,
192 Utilização do Sistema Multimédia

4.2. Software
Exercício

Existe muito software para trabalhar com som e que pode efetuar operações de cap-

BIONP ONO] O TITIV


tura, reprodução, edição, conversão de formatos e gravação em suporte ótico.

Para realizar a captura de som é necessário ter um software de captura ligado à placa de
som e ao microfone do computador. Por outro lado, a captura também pode ser realizada
através da utilização de software MIDI (Musical Instrument Digital Interface), permitindo a
ligação de outro tipo de hardware, como teclados musicais e outros instrumentos digitais.

Para efetuar a reprodução de som é necessário ter um software de reprodução ligado


à placa de som e às colunas.

O software de edição de som possibilita a sua modificação.

O software de conversão de formatos permite alterá-los, possibilitando que sejam guar-


dados em formatos diferentes dos iniciais.

Estes tipos de software podem ser facilmente obtidos na Internet, como shareware, free-
ware ou pago. Os exemplos apresentados no quadro 4.3 são maioritariamente freeware.
Quadro 4.3

E
1 o u o
U- 4] oÚ

Ss o LS o Formatos a
Software 2 Cm i2 sgG Descrição Localização
a o SE De : suportados é
vo
UV [us
Tio
VU uv
Ls
o o
vo vv os
ooaa aan

Gravador de áudio
[esse ato E = Permite gravar
O gutntuaçto, cama es || x som a partir do wma Windows
microfone.

SwiffRec Voice-to-Flash
pr | Permite criar um
meus <E ficheiro swf a http://swiffrec-
seres as eme cr 2) CEO partir do .
. voice-to-flash.
insana amenas À | X microfone ou de Swf, wav
mr rmrsreme Pegai aca “o software.
ya à cametero um ficheiro de :
informercom
som no formato
wav.

Permite importar,
editar e combinar wav, alff, http://audacity.
ficheiros de som flac, mp2,
XIX|X|X com outros ou mp3 ou o sourceforge.
po ou 099 net/?lang=pt-PT
com novas Vorbis
gravações de som.

Editor de ficheiros
de som,
permitindo a Wav, mp3,
x x xx abertura de ogg, aiff, iff, http://www.
a au, snd, vox, | wavosaur.com
ficheiros de som,
. VOC, WVV
nos formatos mais
utilizados.
4. Aquisição e reprodução de som 193

Quadro 4.3 (cont.)

E
19 o u o
o Ss q 19 e F
tm Rg = . =
Software 3 e g o 5 o Descrição ormatos Localização
2 o SS ElnE suportados
o vu TT ol Ls
UV tm U VU o o
v vv vl os
aa a a an

Windows Media Player Permite cda aif wma


== = reproduzir Po
o mpeg, mid, au,
músicas e
sintonizar mp3, snd, ai,
A X X X - a: alft, midi, rmi, Windows
o estações de rádio
, m3u, mp2, mpa,
através da
. wmv, wm, aiff,
Internet e criar wav
CD de música.

Permite a
xi x|x x reprodução de ra, ram, rm, wav, | http://www.
ficheiros em mp3, cda, aif, aiff | real.com
muitos formatos.

| aac, aif,aiff, apl,


asf, au, avi, cda,
. it, m3u, mid,

ea reprodução de MPa MPS, http:/Anww.


X X os mp4, mpeg, mpg,
ficheiros em winamp.com
. mtm, nsa, 099,
muitos formatos. .
rmi, snd, stm,
vlb, voc, wav,
wma, wmv, xm
mp1, mp2, mp3,
Permite mpc/mp+, aac,
reproduzir ac3, 0gg, flac,
xx x x ficheiros de som, | ape, wavpack, http://mww.
fazer a leitura e speex, wav, cda, aimp2.us
gravação de rádio | wma, s3m, xm,
online, gravar CD mod, it, mo3,
mtm,umx

Power Sound Editor Free


: Permite importar http:/Anenar
- e editar som e wav, mp3, 0 free-sound-
i XIXIXIX| X |efetuara wma Po, 099 editor com/
E gravação em CD download html
e DVD. ,

Ashampoo Burning Studio


EEE aa https:/Avww.
Permite efetuara ashampoo.
- com/en/eur/
X gravação em CD, | wma, wav, mp3, dtd/7110/
AIB12 O Porto Editora

DVD e cda
Blu-ray Ashampoo-
, Burning-
Studio-FREE

AIB12 F13
194 Utilização do Sistema Multimédia

LIONPT ONO O TIQIV


Exercício Exercícios de aplicação 7

Defina taxa de amostragem, indicando qual a sua unidade de medida.

Classifique em verdadeira ou falsa cada uma das seguintes afirmações.


(A) A qualidade do áudio digital, obtido a partir de um sinal analógico, depende da taxa de
amostragem.
(B) A taxa de amostragem utiliza como unidade de medida o watt.
(C) Quanto maior for a taxa de amostragem menor é a qualidade do som reproduzido.
(D) Quanto maior for o tamanho de um ficheiro de áudio mais tempo levará a ser carregado através
da Internet.

Considerando um sinal de música com uma qualidade de 54 100 amostra/s, uma profundidade de
16 bits e reproduzido em 4 canais, calcule a quantidade de informação a ser reproduzida,
apresentando o resultado em Mbps.

Qual a finalidade da compressão de ficheiros de áudio?

Distinga ficheiros de áudio não comprimidos de ficheiros comprimidos.

Estabeleça a ligação entre a coluna dos formatos de ficheiros não comprimidos e a coluna da sua
descrição.

Quadro 1

Formato Descrição

1) Formato semelhante ao formato au e utilizado inicialmente


IR R pela Apple. A extensão destes ficheiros é snd.

(B) Audio Interchange 2) Formato usado para codificar música em discos comerciais.
File Format A extensão destes ficheiros é cda.

3) Não são propriamente um formato de ficheiro de áudio, mas,


(C) Audio por armazenarem notas musicais, encontram-se nesta
categoria.
4) Formato de áudio digital nativo do sistema operativo
(D) Sound Windows.
Os ficheiros neste formato utilizam a extensão wav.

(E) Musical Instrument 5) Formato utilizado pela Sun e pelo sistema operativo Unix.
Digital Interface A extensão destes ficheiros é au.

(F) Compact Disc 6) Formato de áudio utilizado pelo sistema operativo da Apple.
Digital Audio A extensão destes ficheiros pode ser aiff ou aif.

Distinga compressão com perdas de compressão sem perdas num ficheiro de áudio.

Utilizando o microfone e o programa Gravador de áudio do Windows 8.1, grave um ficheiro com
um texto lido por si e guarde-o com o nome texto lido.wav.

Reproduza o ficheiro texto Lido.wav no programa Windows Media Player.

10. Converta o formato do ficheiro texto lido.wav para texto lido.mp3, utilizando o programa
Windows Media Player.
Exclusivo
do Professor

Solução
4. Aquisição e reprodução de som 195

Exercícios de aplicação 7 (cont.)


o Exercício

11. Estabeleça a ligação entre a coluna dos formatos de ficheiros comprimidos com perdas e a coluna
da sua descrição.
Quadro 2

Formato Descrição

(A) Motion Picture 1) Tecnologia de codificação de código aberto [open source) para
Experts Group o sistema operativo Linux. Os seus ficheiros têm a extensão ogg.

2) É sustentado pela Open Magic Gate [OMG] que detém os seus


(B) QuickTime Audio
direitos. A extensão dos ficheiros é omg.

3) É um formato de áudio compactado cada vez mais divulgado,


(C) RealAudio Media pois utiliza um algoritmo de compactação mais eficiente do que
o formato MP3. A extensão dos ficheiros é vga.
(D) Adaptive
4) É, essencialmente, uma tecnologia MPEG-4, suportando áudio,
TRansform
vídeo e o formato MP3. A extensão dos ficheiros é qt ou mov.
Acoustic Coding 3

5) Concorrente do MP3 e muito popular nos anos 90 do século XX,


(E) 0GG Vorbis
mas não muito usado hoje em dia. A extensão dos ficheiros é lat.

6) Formato proprietário da Real Networks. A extensão dos ficheiros


(F) Liquid Audio
é ra ou ram.

(G) Windows 7) Família de standards para áudio e vídeo que inclui o MPEG 1,
Media Audio o MPEG 2, o MPEG 1 Layer3 (MP3] e o MPEG 4.

(H) TwinVQ 8) Formato de áudio digital da Microsoft desenvolvido como um


formato alternativo ao MP3. A extensão dos ficheiros é wma.

12. Estabeleça a ligação entre a coluna dos formatos de ficheiros comprimidos sem perdas e a coluna
da sua descrição.
Quadro 3

Formato Descrição

1) Esquema de compressão sem perdas que oferece uma


(A) Shorten
compressão de 2 para 1. A extensão dos ficheiros é shn.

(B) Apple Lossless 2) Formato da Microsoft disponível nas versões 9 e 10 do Windows


Audio Codec Media Player. Usa a mesma extensão do formato wma.

(C) Windows Media 3) Tem uma qualidade de som semelhante ao MP3. A extensão dos
Audio Lossless ficheiros é flac.

(D) Free Lossless 4) Formato disponível para ser usado com a Apple's iTunes e o iPod.
Codec A extensão dos ficheiros é m4a.

(E) WavPack 5) Formato livre semelhante ao formato FLAC, mas não muito
(WY, WVC) usado. À extensão dos ficheiros é wv.
AIB12 O Porto Editora

Exclusivo
do Professor

Solução
196

Jogo
5. Aquisição, sintese, edição e reprodução de vídeo
Tal como já foi referido, a visualização de um vídeo corresponde a um movimento se-

PIONPT ONO O TIQIV


quencial de um conjunto de imagens, também conhecidas por fotogramas ou frames.

Designa-se por frame rate o número de frames por segundo (fps). Os valores de 24, 25
e 30 frames por segundo são os mais utilizados pelas diferentes indústrias relacionadas
com a produção e a edição de imagens em movimento.

A televisão mostra imagens com uma frame rate de 25 ou 30 fps, enquanto a maior
parte dos filmes mostra 24 fps. Por outro lado, um vídeo web mostra imagens com uma
frame rate de 15 fps ou menos.

Uma imagem, para ser visionada numa televisão ou num monitor, tem de ser cons-
truída ponto a ponto, segundo linhas horizontais e varrendo o ecrã de cima para baixo, de
maneira a formar cada uma das frames.

Outro aspeto a considerar nas imagens de vídeo é o aspect ratio, que corresponde à
razão entre a largura e a altura das imagens mostradas.

O aspect ratio 4:3 é a razão entre a largura e a altura da maioria das televisões e mo-
nitores dos computadores. Vídeos com as resoluções de 640 x 480 ou 320 x 240 píxeis
são exemplos desta razão.

O aspect ratio 16:9 é a razão entre a largura e a altura encontrada em filmes, DVD e na
televisão de alta definição. Nestes casos, a resolução natural das imagens de vídeo é de
720 x 480 píxeis.

O entrelaçamento é o método de mostrar imagens num ecrã CRT (Cathode Ray Tube).
Este método mostra imagens mais estáveis do que os métodos não entrelaçados. Neste
caso, as imagens são formadas pelo desenho alternado das linhas pares e das linhas
ímpares. No entrelaçamento de 2:1 significa que, por cada trama, são apresentados dois
campos: o das linhas ímpares e o das linhas pares.

A aquisição, a síntese, a edição e a reprodução são as principais operações relaciona-


das com a manipulação de vídeo.

Na aquisição, as imagens de vídeo são capturadas diretamente de uma câmara de


vídeo digital ou analógica. No primeiro caso obtemos diretamente um vídeo digital e no
segundo é necessário depois digitalizá-lo através de uma conversão analógico-digital.
Através da síntese em computador é possível animar um conjunto de imagens e obter,
também, uma sequência de imagens de vídeo digital. Na edição, qualquer vídeo pode ser
modificado ou transformado noutros formatos e na reprodução pode ser visualizado.

5.1. Standards
Existem vários formatos, criados pela indústria de equipamentos, destinados a operar
com sinais de vídeo. Alguns destes, pela sua utilização e divulgação massivas, foram re-
conhecidos como standards. Os standards, de acordo com o seu funcionamento, podem
ser analógicos ou digitais.

5.1.1. Analógicos

Os standards analógicos são mais antigos e referem-se aos sinais utilizados anteriormente
pela televisão.
5. Aquisição, síntese, edição e reprodução de vídeo 197

São três os standards analógicos dominantes: o PAL, o NTSC e o SECAM. Estes foram
desenvolvidos em diferentes locais do mundo, resultando da evolução constante na forma
de capturar, gravar e reproduzir imagens e da forte concorrência entre as empresas do
setor.

A unificação dos formatos foi sempre uma tarefa muito complicada devido ao elevado Exercício
número de televisões e câmaras de vídeo analógicas existentes.

PAL
O formato PAL (Phase Alternation Line) é uma norma de televisão utilizada na Europa
Ocidental e em alguns países da Ásia e define os sinais de vídeo composto com 25 fps,
625 linhas de varrimento horizontal, um aspect ratio de 4:3 e um entrelaçamento de 2:1.
Neste formato, a informação do brilho, da cor e da sincronização é codificada num único
sinal.

NTSC
O formato NTSC (National Television Systems Committee) é uma norma de televisão
utilizada nos EUA, América Central e Japão e define os sinais de vídeo composto com
30 fps, 525 linhas de varrimento, um aspect ratio de 4:3 e um entrelaçamento de 2:1.
Neste formato, tal como no formato PAL, a informação do brilho, da cor e da sincronização
é codificada num único sinal, mas a forma de codificação da cor é diferente da do PAL.

SECAM
O formato SECAM (Sequential Couleur Avec Memoire) é uma norma de televisão desen-
volvida em França e utilizada na Europa de Leste, na Rússia, no médio oriente e nas Ca-
raíbas. Este formato define os sinais de vídeo composto com 25 fps, 625 linhas de varri-
mento, um aspect ratio de 4:3 e um entrelaçamento de 2:1. Codifica num único sinal a
informação do brilho. Utiliza um método diferente do utilizado pelo formato PAL para a
codificação da cor, baseando-se na transmissão de diferentes cores em linhas alterna-
das.

5.1.2. Digitais

Os standards digitais são mais recentes e referem-se aos formatos utilizados na digita-
lização e na reprodução de sinais vídeo, que é semelhante à digitalização e à reprodução
do áudio digital, utilizando, também, a amostragem, a quantização e a codificação.

O vídeo digital é construído tendo por base as sequências de tramas que são imagens
digitais. Para além da sequência de tramas, tem também informação adicional de natu-
reza temporal, essencial para indicar as durações de apresentação de cada trama.

AVI
O AVI (Audio Video Interleaved) é um formato de ficheiros de vídeo desenvolvido pela
Microsoft para armazenar som e filmes no formato RIFF (Resource Interchange File For-
mat).
AIB12 O Porto Editora

Um ficheiro AVI pode utilizar diferentes métodos de compressão ou codecs. Este é o


formato utilizado pelo Windows para conjugar áudio e vídeo, sincronizando-o. A extensão
destes ficheiros é avi.
198

MOV
O MOV é um formato de ficheiros da Apple Computer, Inc., e permite criar, editar, pu-

BIONPA ONO] O TIAIV


blicar e visualizar ficheiros de multimédia, suportando vídeo, animação, gráficos 3D e
realidade virtual. As extensões destes ficheiros são mov, moov e qt.

FLA
O FLA (Flash Movie Authoring Files) é um formato de ficheiro utilizado pela Adobe. Os
ficheiros neste formato incluem imagens vetoriais para utilizar em animações, timelines
para controlar a reprodução destas animações e áudio. Podem ainda incluir conteúdos de
vídeo bitmapped e ActionScripts (semelhantes ao JavaScript) para permitirem interativi-
dade. Estes ficheiros são editáveis e podem ser guardados no formato swf, que é um
formato executável para a Internet.

Devido à sua grande divulgação e ao sucesso das normas de compressão mais recen-
tes, o vídeo digital pode atualmente ser apresentado e manipulado em computadores, por
exemplo, utilizando os formatos MPEG (Motion Pictures Expert Group) e o DivX, codec de
vídeo bastante difundido e usado para distribuição de filmes via rede.

0.2. Compressão

5.2.1. Necessidade da compressão

A necessidade da compressão de ficheiros de vídeo decorre da sua crescente divulga-


ção por diversos meios, como suportes digitais, Intemet e comunicações móveis. Qual-
quer um destes meios tem capacidades de armazenamento ou transmissão limitadas em
relação ao tamanho de um ficheiro de vídeo com uma duração razoável. A compressão de
vídeo, à semelhança da compressão de áudio, pode ser realizada com ou sem perdas.
Embora a compressão de vídeo sem perdas seja possível, na prática não é usada e todos
os standards de compressão de vídeo envolvem alguma perda de dados. Apesar da perda
de qualidade, a compressão surge como inevitável para criar ficheiros de vídeo com um
tamanho menor. Os ficheiros comprimidos permitem o seu armazenamento e transmis-
são de forma mais rápida e fácil.

A compressão pode ser concretizada de duas formas distintas:


— na criação do vídeo, ao ser selecionado um formato de vídeo comprimido;
— através da conversão de um vídeo num formato não comprimido para um formato
comprimido.

A compressão é realizada através da utilização de software conhecido por codecs.

5.2.2. Codecs

Os codecs (Compression/Decompression) são algoritmos implementados sob a forma


de programas especiais que permitem codificar e descodificar os ficheiros de áudio e
vídeo. Os ficheiros são codificados pela eliminação de dados redundantes ou desneces-
sários e são descodificados durante a sua reprodução.

Ficheiros codificados com um codec específico requerem o mesmo codec para a des-
codificação. Alguns dos codecs que podem ser utilizados em produções de vídeo são,
entre outros: MPEG-1, MPEG-2, MPEG-4, DivX, Ogg (Theora) e Sorenson.
5. Aquisição, síntese, edição e reprodução de vídeo 199

MPEG-1
Exercício
O MPEG-1 é um standard de compressão de média qualidade e média taxa de transmissão
para vídeo e média compressão de áudio. Permite comprimir vídeo com taxas de compressão no
intervalo de 50:1 até 100:1, dependendo do tipo de sequência de imagens e da qualidade preten-
dida. Uma taxa de compressão de 50:1 significa que o tamanho ocupado pelo ficheiro comprimido
fica 50 vezes menor do que o ficheiro original.

A taxa de codificação dos dados efetua-se a 1,5 Mbps, que é uma taxa de transferência razoá-
vel para um leitor de CD-ROM 2X. Este standard tinha como objetivo a gravação de conteúdos
audiovisuais em suporte CD-ROM. Os ficheiros de vídeo do MPEG-1 têm a extensão mpg ou mpeg.

MPEG-2
O MPEG-2 é um standard de compressão desenvolvido como uma extensão do MPEG-1. Este é
direcionado para o formato broadcast com altas taxas de dados, destinando-se principalmente à
televisão digital de média e alta definição. Permite um número crescente de suportes para codificar,
de forma eficiente, vídeo entrelaçado.

Suporta, também, um vasto conjunto de taxas de transmissão e permite o som surround multi
canal codificado com o PCM, Dolby Digital e MPEG áudio. Permite reduzir entre 100 e 200 vezes o
espaço necessário para a gravação de vídeo, com perdas de qualidade praticamente impercetíveis.

Os ficheiros de vídeo do MPEG-2 têm a extensão mpg ou mpeg.

MPEG-4
O MPEG-4 é mais um standard de compressão desenvolvido pelo grupo MPEG e permite a cria-
ção de vídeo interativo em CD-ROM, DVD e televisão digital. Este standard é o resultado de um
esforço internacional, envolvendo centenas de recursos e engenheiros de todo o mundo. O
MPEG-4 foi finalizado em outubro de 1998 e tornou-se num standard internacional em 1999.

O MPEG-4 foi o primeiro standard a permitir a codificação audiovisual, utilizando um conjunto


de objetos audiovisuais que apresentam um determinado comportamento no espaço e no tempo,
para fazer a representação do conteúdo. Este modelo, baseado na composição de objetos audio-
visuais, constitui a base de funcionamento do standard MPEG-4 e distingue-o dos standards
MPEG-1 e MPEG-2.

É um standard que não visa especificamente uma única classe de aplicações.

Os ficheiros de vídeo do MPEG-4 têm a extensão mp4.

DivX
O DivX (Digital Video EXpress) é um formato que está para o vídeo digital tal como o formato
MP3 está para a música digital. Este formato foi criado pela DivXNetworks, Inc. O codec DivX é
baseado no standard de compressão MPEG-4. Este codec é tão avançado que pode reduzir um
MPEG-2 vídeo para 10% do seu tamanho original.

Os ficheiros de vídeo do DivX têm a extensão divx.

Ogg
O Ogg (Theora) é um formato de compressão de vídeo desenvolvido pela Xiph.org Foundation.
AIB12 O Porto Ed itora

Este formato é open source para o sistema operativo Linux e foi projetado para competir com os
formatos de vídeo MPEG-4, RealVideo e Windows Media Video.

Os ficheiros de vídeo do Ogg têm a extensão ogs.


200 Utilização do Sistema Multimédia

Sorenson
Jogo
O Sorenson (Sorenson Video Codec 3 ou SVQ3) da Apple Computers é um formato de

PIONP OMOJ O TITIV


compressão de vídeo que oferece alta qualidade comparativamente ao tamanho pequeno
apresentado pelos seus ficheiros, permitindo a sua aplicação em ficheiros de vídeo para
a Internet.

Através da Internet é possível encontrar codecs para download que, depois, devem ser
instalados no computador para funcionarem.

Os codecs instalados no Windows 8.1 podem ser visualizados na janela Informações


de sistema (fig. 5.1). Esta pode ser acedida a partir do botão Iniciar, opção Acessórios e,
depois, opção Ferramentas do sistema.

fcreso (dam er Magda

Resumo do ustema Codec fabricante Esa facheso versho Tamanho Data


de cração
& Recursosde hardaae Ciwndows systemINimeodec dE fox Mage Softmare OK Camindowsisyst. 1000 F600 KB... 19/08/2008 01
Componsatos cosandoss systemiZucorddê Reader irc o Camindowssyst. 110012 S200KB. 26/07/2012 03
Masimido He ndoS sy MeMIZASO 12 68 Microsoft Corporst. OK Camindowsisys. 629200.. ESOKB(. 26/07/2012 03
Codecs de fudo Cuando system m Zur 1º » di Microsoft Corporsti. e
OK É
Camindowssyst. 4»
629200. 46S0KB. ” 0015 03
26/07/2012
Codecs de vidro R " E a 2 e
CNNASOWT Eye MIZUNLCI7 E MTOSOR Corpo OK CAWINdONTSA. 4103900 MAOS K. WyNAONO
CD-ROM
Cuando sytemiDunsrie 32 di Microsoft Corporsti. Ox Camindowsisyst. 629200. 1400KB. 26/07/2012 03
Deposêno de som
CusndowsyemIZUnsAdcI7 A] MrosoR Corporst OK Caindo. 629200.. 200KB.. 24/07/2012 03
vrsaahização
mtravermedios, CC wndow syntemIDumsyiasdi Microsol Cormporst. OK Camindowsisyst. 629200. Z200KB.. 26072012 03
& Gourado Counters SE Macrosof Corpors e Cumvindossiyst.. 629200 1. 50c* EA 012 03

Modem

- Rede
“ Portas

+ Armarenamento

e me
Omposênos com problemas
usa

» hmiberte Se sofre

Localgar Fechar Locakzação

Procurar apenas
na categona Procurar apenas nos nomes das categonas
seseconada

Fig. 5.1. Janela Informações de sistema do Windows 8.1.

Na janela Informações de sistema selecionam-se as opções Componentes, Multimédia


e, por fim, Codecs de vídeo.

5.3. Software
Existe diverso software para trabalhar com vídeo e que pode efetuar operações de edi-
ção, de conversão de formatos, de reprodução e de gravação em suporte ótico.

O software de edição de vídeo permite editá-lo, possibilitando a sua alteração.

Para efetuar a reprodução de vídeo é necessário ter um software de reprodução ligado


à placa de vídeo e esta a um monitor, a uma televisão, etc.

O software de conversão de formatos de vídeo permite convertê-lo, possibilitando que


seja guardado em formatos diferentes dos iniciais.

O software de gravação de vídeo permite guardá-lo num suporte ótico com o formato de
vídeo.

O software de vídeo pode ser disponibilizado juntamente com as placas de vídeo ou


outro hardware. Pode também ser facilmente obtido na Internet, como shareware, free-
ware ou pago (quadro 5.1).
5. Aquisição, síntese, edição e reprodução de vídeo 201

Quadro 5.1

Exercício
o É
om Us
“o vv ou
o[E|3|'S5 Formatos
Software mi S e gq Descrição Localização
s E a DÊ suportados
vd É ias
vio uu E
ao a an

Windows Movie Maker Permite importar


E ms vídeos de câmaras
migo ao e CD Ss digitais e analógicas ast avi
para o computador. À mv m )
partir de um conjunto m N P o
” XIXIX X de videoclips, o no ' » “+ Windows
utilizador pode DD
manualmente ou PvA, '
, - wmv
através da opção
AutoMovie criar um
filme.

Free Video Converter


TT TTTTTTT—ee—— cádad

ii E adia avi mp4 http://www.


= Permite editare 3 ' ara koyotesoft.com/
XX converter de forma dm video-software/
“ a rápida um vídeo. ut mov free-video-
emem lê e , converterhtml

VirtualDub Permite, entre outras

o operaçoes, www.virtualdub.
X comprimir, importar, avi or
processar e exportar 9
ESP, vídeo.

Divx Player )
Reproduz vídeos de avi divx
alta qualidade, , ' http://www .divx.
mkv, mp4,
X programas de TV e mov wmv com/pt-br/
clipes de vídeo da ' ' software/player
Web vob

Divx Convert

Converte para divx avi, vob, http://www divx.


co com/pt-br/
X vários formatos de wmv, mpeg,
, . software/
vídeo. divx
converter

Windows Media Player

; Permite reproduzir avi, WDM,


AIB12 O Porto Editora

X vídeos mpeg, vob, Windows


. swf
202

Quadro 5.1 (cont.)

LIONPT ONO O TIJIV


Exercício

De gravação em
De reprodução
De conversão

suporte ótico
Formatos
Software Descrição Localização

De edição
suportados

Permite ler vários


formatos de vídeo,
divx, mpeg, http://wnww.videolan.
assim como
wmv, avi org/vlc
converter ficheiros
noutros formatos.

Di minimo cem) vjvim

RealPlayer Cloud

Permite a
flv, wmv,
t
reprodução de
mkv, divx,
ficheiros de vídeo http://nww.real.com
xvid, mov,
em muitos
avi, mp4
formatos.

VSDC Free Video Editor


avi, Mp4,
Permite a aplicação http:/Avww.
mkv, mpg,
de efeitos e filtros videosoftdev.com
wmv, 39P,
predefinidos. free-video-editor
fly

Jahshaka

Inclui módulos para mp3, wav,


http:/Anww.
animação, mpeg, avi,
jahshaka.com/
composição, edição mov, Jpg, download
e efeitos especiais. gif

1. Estabeleça a ligação entre a coluna dos formatos de vídeo analógico e a coluna da sua descrição.

Formato Descrição
1) Norma de televisão utilizada nos EUA, América Centrale Japão que
(A) PAL define os sinais de vídeo composto com 30 fps, 525 linhas de varrimento,
um aspect ratio de 4:3 e um entrelaçamento de 2:1.
2) Norma de televisão utilizada na Europa Ocidental e em alguns países da
(B) NTSC Ásia que define os sinais de vídeo composto com 25 fps, 625 linhas de
varrimento horizontal, um aspect ratio de 4:3 e um entrelaçamento de 2:1.
Exclusivo 3) Norma de televisão desenvolvida em França que define os sinais de vídeo
do Professor (C) SECAM composto com 25 fps, 625 linhas de varrimento, um aspect ratio de 4:3 e
um entrelaçamento de 2:1.

Solução
5. Aquisição, síntese, edição e reprodução de vídeo 203

Exercícios de aplicação 8 (cont.) Exercício

2. Estabeleça a ligação entre a coluna dos formatos de vídeo digital e a coluna da sua descrição.

Formato Descrição

1) Formato de ficheiros de vídeo desenvolvido pela Microsoft para


tA) Avi armazenar som e filmes, no formato RIFF.

2) Formato de ficheiros da Apple Computer que permite criar, editar,


(B) FLA publicar e visualizar ficheiros de multimédia, suportando vídeo,
animação, gráficos 3D e realidade virtual.

(Cc) MOV 3) Formato de ficheiro utilizado pela Adobe.

3, Classifique em verdadeira ou falsa cada uma das seguintes afirmações.


(A) Os ficheiros comprimidos ocupam menos espaço de armazenamento do que os ficheiros não
comprimidos.
(B) Os ficheiros comprimidos demoram mais tempo a serem transmitidos pela Internet do que os
ficheiros não comprimidos.
(C) A compressão de vídeo, ao contrário da de áudio, é sempre um processo sem perdas.
(D) A compressão de um vídeo é um processo que envolve sempre a sua conversão de um formato
não comprimido para um formato comprimido.
(E) A compressão de áudio e som assume cada vez maior importância pela crescente necessidade
de armazenar e transmitir quantidades cada vez maiores de informação.

4. Defina codec, indicando a origem da palavra e para que servem.

o Dê dois exemplos de nomes de codecs específicos.

6. Estabeleça a ligação entre a coluna dos codecs de áudio e a coluna da sua descrição.

Codec Descrição

1) Formato recente que está para o vídeo digital tal como o formato MP3 está
A) Sorenson para a música digital.

2) Standard de compressão desenvolvido pelo grupo MPEG que permite a


(B) MPEG-4 criação de vídeo interativo em CD-ROM, DVD e televisão digital.

3) Formato de compressão de vídeo que oferece alta qualidade


(C) DivX comparativamente ao tamanho pequeno apresentado pelos seus ficheiros,
permitindo a sua aplicação em ficheiros de vídeo para a Internet.

7. Copie para o seu caderno e preencha o quadro 1, indicando o nome dos codecs instalados no
computador através do gestor de dispositivos do utilitário Sistema.
Quadro 1

Codecs de som Codecs de vídeo


AIB12 O Porto Editora

Exclusivo
8. Utilizando o programa Windows Movie Maker reproduza um ficheiro com a extensão wmv. do Professor

Solução
204

Jogo
6. Animação 2D - Técnicas de animação em
computador
O conceito de animação é um conceito antigo e teve a sua origem muito antes do apa-

BIONP ONO] O TIAIV


recimento dos computadores. Durante muito tempo, a animação era apenas utilizada na
indústria de entretenimento e requeria muito tempo, trabalho, material diverso e equipa-
mento variado. Entretanto, com o aparecimento do computador tornou-se mais simples
obter uma animação, tendo substituído toda a complexidade de outrora, permitindo criar
grandes avanços nas técnicas utilizadas.

A animação por computador pode ser definida como a produção do movimento de ima-
gens utilizando o computador. Na animação 2D, as imagens são criadas num espaço bidi-
mensional e na animação 3D as imagens são criadas num espaço tridimensional, como
se fossem filmadas por câmaras virtuais. Os desenhos animados e algumas animações
em páginas web são exemplos de animação 2D. Por outro lado, jogos de vídeo, filmes de
animação, desenvolvimento de aplicações de realidade virtual e efeitos especiais são
exemplos de animação 3D, onde os objetos animados apresentam texturas, sombras,
transparências e brilhos que lhes conferem volume e profundidade.

6.1. Captura e geração de sequências de imagens


Na criação de uma animação podem ser usadas imagens que são previamente captu-
radas ou produzidas por programas de pintura, desenho e outros. Na captura de imagens
podem ser usados equipamentos de vídeo, fotografia ou digitalização (scanner).

A aquisição destas imagens pode ser analógica ou digital. Na aquisição analógica é


necessário, depois, efetuar a digitalização das mesmas para o computador. No entanto,
na animação 3D existem outras técnicas que permitem também capturar o movimento
propriamente dito de um objeto do mundo real, assim como os seus efeitos óticos tridi-
mensionais, como sombras e luz.

Uma técnica muito utilizada para produzir animação, principalmente 3D, é a captura de
movimento ou Motion Capture (MoCap). Esta técnica consiste em colocar marcadores espe-
ciais no objeto durante o processo de captura do seu movimento e registar as coordenadas
desses marcadores (fig. 6.1). Através da digitalização e com o auxílio de um software ade-
quado, esses pontos são depois animados num modelo no computador (fig. 6.2).

Fig. 6.1. Exemplificação da captura de movimento através de


marcadores.

Fig. 6.2. Exemplificação da aplicação


dos pontos de movimento capturados
no modelo.
6. Animação 2D - Técnicas de animação em computador 205

Uma outra forma de captura de imagens para a animação,


principalmente 3D, é através do uso de um scanner a laser (fig. Exercício
6.3), que permite criar modelos de imagem realísticos. A cons-
trução da geometria da superfície é feita através da criação de
uma nuvem de pontos quando o scanner se move em torno do
objeto. Com o auxílio do computador e de um software ade-
quado, os diversos pontos são combinados, formando uma ima-
gem do modelo do objeto, constituída por um conjunto de polígo-
Fig. 6.3. Exemplificação da captura de
nos (fig. 6.4). Depois, com a utilização de um programa com imagens 3D através de um scannera
capacidade de rendering, é produzida a imagem final. Com o laser.
rendering é possível criar imagens com elevado grau de realismo
a partir da geometria dos objetos e da sua interação com a luz.

Depois de obtidas as imagens, os movimentos ou os efeitos óticos


que farão parte de uma animação, é preciso gerar a sequência que vai
criar o movimento de imagens, modelos ou objetos. Desta forma, a ani-
mação é a apresentação de uma sequência de imagens, designadas
por frames (quadros), a uma taxa que um observador entende a suces-
são discreta de imagens como sendo um movimento contínuo. Para que
esta ilusão de movimento seja considerada adequada, a taxa situa-se
normalmente entre 20 e 30 frames por segundo e é determinada pelo
meio onde vai ser guardada, isto é, filme, vídeo ou animação.
Fig. 6.4. Exemplificação da
Para criar uma animação 2D ou 3D existem programas de computa- criação da imagem de um
dor que disponibilizam ferramentas próprias para cada tipo de anima- modelo constituída por uma
malha de polígonos.
ção. Como exemplos de programas para animação 2D podem ser indi-
cados, entre outros, os seguintes: Adobe AfterEffects, Animator-9, AniS, Jumpwel, Adobe
Flash, Adobe Director, Sqgjirlz Lite, Sqgirlz Morph, Gif Animator, Gif Construction e Synfig
Studio.

6.2. Layers
Na animação 2D de computador, as imagens não contêm formas ou fenómenos óticos
tridimensionais, como luz, sombras, reflexão e refração.

No entanto, estas imagens ou efeitos podem ser simulados em múltiplas camadas


(layers) empilhadas, numa determinada ordem, de forma a criar a noção de perspetiva e
profundidade. A ordem das camadas é determinada pela distância a que o objeto ou o
efeito deve estar de um observador.

Este conceito de camada está também presente nas diversas áreas artísticas ou de
animação, utilizando diferentes sobreposições de tinta, papel ou filme e podendo ser opa-
cas ou transparentes.

A utilização de camadas pelos programas de computador permite ao utilizador editar,


ver ou imprimir qualquer camada sem afetar as outras. Por esta razão, elas são utilizadas
em muitos programas editores de imagem, gráficos e animação.

Assim, as layers são camadas que podem representar imagens, gráficos, texto, vídeo,
áudio e animação.
AIB12 O Porto Editora

As camadas permitem sobrepor objetos ou efeitos sem alterar nada do que está por
baixo, isto é, em qualquer momento se pode apagar, mudar de cor, desenhar, etc., uma
ou mais partes da imagem sem alterar a parte restante do desenho ou animação.
206

Exercício
6.3. Sprites
Os sprites são gráficos ou imagens que podem ser integrados numa animação e movi-

BIONPY ONO] O TIAIV


mentados no ecrã.

São frequentemente utilizados em jogos de vídeo, sob a forma de naves e persona-


gens, para poderem ser movidos de uma forma rápida e simples pelos utilizadores.

Nestes casos, quando a ilusão funciona corretamente, os utilizadores nem se aperce-


bem que o sprite pode ser plano, mantendo-se como o centro da visão e da atenção.

Os sprites são também utilizados para representar fenómenos como incêndios, fumos,
pequenos objetos e plantas ou símbolos especiais.

Nestes casos, existem durante um determinado período de tempo e têm sempre uma
aparência semelhante quando observados em diferentes perspetivas.

Na figura 6.5 é apresentado um exemplo de um sprite retirado da Internet, no endereço


http://www .remcodraijer.nl/quintus/images/player.png. Tal como este, existem inúme-
ros sprites disponíveis na Internet.

a
45) 4.9 s
va) 9
Fig. 6.5. Exemplificação da constituição de um sprite.

Para criar novos sprites, por parte dos utilizadores, podem-se retirar da Internet progra-
mas como o Cutter.

6.4. Animação em Flash


O Adobe Flash, ou Flash, é um programa que permite a criação de animações digitais
2D, geralmente, utilizadas e visualizadas em páginas Web.

O Flash faz uso de várias técnicas para criar as suas animações, através da utilização
de frames e de keyframes.

Os keyframes (quadros-chave) são frames especiais onde o utilizador pode especificar


as características de um movimento a apresentar por um objeto ou definir uma ação por
programação a ser executada. Por outro lado, uma animação desenrola-se ao longo de
um conjunto de frames (quadros), mais ou menos numerosos, conforme a duração desta
animação.

A utilização de keyframes no Flash permite a criação de animações com técnicas co-


nhecidas por frame-by-frame (quadro a quadro), motion tweening (interpolação de movi-
mento) e shape tweening (interpolação de formas).
6. Animação 2D - Técnicas de animação em computador 207

A técnica frame-by-frame permite definir cada mudança efetuada no movimento de uma


animação quadro a quadro. Nesta técnica, todos os frames necessários à animação têm
de ser keyframes. Esta técnica permite o controlo de todos os movimentos e a criação de
diversos efeitos para animações complexas, sendo, por isso, mais trabalhosa.

A figura 6.6 exemplifica a criação de uma animação, utilizando a técnica frame-by-


“frame, através da colocação da representação de um objeto em cada um dos keyframes.

Keyframe 1 Keyframe 2 Keyframe 3 Keyframe 4 Keyframe 5

Fig. 6.6. Exemplificação da criação de uma animação utilizando a técnica frame-by-frame.

A técnica motion tweening permite a movimentação de objetos num intervalo de tempo,


sendo obtida pela colocação da representação de um objeto num keyframe inicial e num
keyframe final e o movimento intermédio, entre estes, calculado pelo programa por inter-
polação.

As figuras 6.7 e 6.8 exemplificam, respetivamente, a criação e a demonstração de


uma animação, utilizando a técnica motion tweening.

Keyframe 1 Frame 2 Frame 3 Frame 4 Keyframe 5

Fig. 6.7. Exemplificação da criação de uma animação utilizando a técnica motion tweening.

Keyframe 1 Frame 2 Frame 3 Frame 4 Keyframe 5


AIB12 O Porto Editora

Fig. 6.8. Demonstração da execução de uma animação utilizando a técnica motion tweening.
208

A técnica shape tweening permite animar a transformação de objetos num intervalo de

LIONPT ONO O TIQIV


Exercício tempo, pela colocação da representação de um objeto num keyframe inicial e a represen-
tação de outro objeto num keyframe final e calcular o movimento e a transformação inter-
médios, entre estes, por interpolação.

As figuras 6.9 e 6.10 exemplificam, respetivamente, a criação e a demonstração de


uma animação, utilizando a técnica shape tweening.

Keyframe 1 Frame 2 Frame 3 | Frame 4 Keyframe 5

Fig. 6.9. Exemplificação da criação de uma animação utilizando a técnica shape tweening.

Keyframe 1 Frame 2 Frame 3 Frame 4 Keyframe 5

Fig. 6.10. Demonstração da execução de uma animação utilizando a técnica shape tweening.

6.5. GIF animados


O GIF (Graphics Interchange Format) é um tipo de formato de compressão sem perdas,
reduzindo as informações da imagem e, desta forma, diminuindo o tamanho dos ficheiros.
É muito utilizado em páginas Web, porque a sua visualização num browser pode ser feita
de forma crescente e, por outro lado, pode ser configurado para apresentar uma cor de
fundo como transparente.

O formato GIF permite, também, criar imagens animadas.

Estas são designadas por GIF animados e mais não são do que uma sequência rápida
de um conjunto de imagens estáticas que se alteram no tempo.

Há vários programas de animação inteiramente dedicados à construção de GIF anima-


dos, e outros que, para além de outras funcionalidades, permitem também construir GIF
animados.

Como exemplos destes, o Corel PHOTO-PAINT e o Adobe ImageReady oferecem um


ambiente de trabalho com ferramentas de desenho e efeitos e uma área de trabalho orga-
nizada para a criação de animação frame-by-frame.

Muitos outros podem ser encontrados na Internet, como é o caso do programa Falco
GIF Animator, que possui, inclusivamente, um assistente de criação de GIF animados (fig.
6.11).
6. Animação 2D - Técnicas de animação em computador 209

Fe da Vw Tot image Tosts Eliects Image improvements indo Naty Exercício

PUDE IDÓO FINO


HEM 4 AS»
ol
De.
2a: dd,
A =
A 9 15 = 5 16

47º 0
« N us.

ms T
O
oe
- Fig. 6.11. Janela do programa Falco GIF
Me - E Animator mostrando um ficheiro com os
Ei Ri frames da animação.

Exercícios de aplicação 9
1. Diga o que entende por animação por computador.

2. Distinga animação 2D de animação 3D.

3. Dos equipamentos seguintes, assinale os que podem ser utilizados na captura de imagens.
(A) Plotter;
(B) Scanner;
(C) Máguina fotográfica;
(D) Câmara de vídeo;
(E) Impressora;
(F) Modem.

4. Dê dois exemplos de técnicas utilizadas na animação 3D.

5. Dê dois exemplos de programas para animação 2D.

6. Digao que entende por layers.

7. Diga o que entende por sprites.

8. Dê exemplos das principais aplicações dos sprites.

9. Utilizando a Internet, faça o download de alguns sprites a seu gosto.

10. A partir de um dos sprites anteriores, crie os quadros correspondentes às imagens do mesmo,
utilizando o Paint, e guardando-os em ficheiros separados.

11. Diga o que entende por keyframes.

12. Diga o que entende pelas seguintes técnicas:


a) frame-by-frame; b) motion tweening; c) shape tweening.
AIB12 O Porto Editora

13. Explique o que são GIF animados. Exclusivo


do Professor
14. Através de uma pesquisa na Internet, indique dois exemplos de programas para criar GIF animados.

Solução
AIB12 F14
210 Utilização do Sistema Multimédia

IE ideo
6.6. Uso de um programa de animação - Synfig

Introdução
Exercício O Synfig Studio é um programa de animação vetorial 2D, baseado em frames, de có-

BIONPA ONO O TITIV


digo livre e gratuito. Ao guardar um documento, o Synfig cria um ficheiro com a extensão
sifz e permite a renderização para formatos de imagem e vídeo.

O ambiente de trabalho
Uma das formas de iniciar o Synfig é selecioná-lo a partir de Todos os programas,
quando se clica no botão Iniciar do Windows, surgindo a sua janela de abertura (fig. 6.12).

Barra de menus Barra de ferramenta


y —ee

8 Syd Aeimatioo 1. Sta indo e o e RS]


[em toa rem Vostro logos Papiro ind tp |
BOT “e 8
. Tosíbos 3 Sopolg Antmt 1 E sou j
Caixa de mesa TES
ferramenta é é u Plácud RT
neveceii
AL “
í T E + e—e
——
Área de mu ú
trabalho " | Risip “a Diversos
Composto (e) [pr painéis
Lo E verticais
0Cemçes J

om sa
aaa. ,

Barra do
tempo
. Rr
TECH
& > do MEM cia = , as j
hide (Lot rerdermy tamo O JMBAS voc) O 0] puta * Zi =
Barra de - -
estado ES|2 “0ua
ema ana Painel de
controlo
Painel
A de d o tempo
parâmetros
“uso -

Fig. 6.12. Ambiente de trabalho do Synfig Studio 0.65.0.

O ambiente de trabalho do Synfig é constituído pelos seguintes elementos principais,


que surgem quando o programa abre.
e Área de trabalho (Canvas) — onde gráficos, vídeos, texto e som aparecem durante a
execução da animação.
e Barra de menus (Menubar) — com diversos menus e comandos.
e Barra de ferramenta (Toolbar) — com diversos ícones de acesso rápido a alguns co-
mandos.
* Caixa de ferramenta (Toolbox) — onde se encontram as ferramentas de desenho, pin-
tura e texto.
e Docas (Docks) - com diferentes painéis, dispostos vertical ou horizontalmente, que
contêm ferramentas e informações sobre elementos do trabalho. Tal como nos pro-
gramas anteriores, os painéis podem ser arrastados das docas para a área de traba-
lho e vice-versa.
e Barra do tempo (Timebar) — onde se indica o momento em que vários elementos do
projeto aparecem.
* Barra de estado (Status Bar) — com informações sobre a renderização.
6. Animação 2D - Técnicas de animação em computador 211

À barra de menus
A barra de menus dá-nos acesso a um conjunto de menus, tais como: File, Edit, View,
Canvas, Toolbox, Layer, Plug-Ins, Window e Help (figs. 6.13, 6.14 e 6.15).

| New|
v Show Menubar
Y Show Toolbar
Show/Hide Handies +
Preview Quality »
Low-Res Pixel Size b

Play CtrlsP
13 Pause Escape

- Show Grid Ctrl+G


File
— Snap to Grid Chris
+ New Cui+N Y Show Guides

3 Open... Ctri+ O Snap to Guides


Open Recent » Use Low-Res Chloe”
Show Onion Skin AR+O
El Save Ctrl+S
E Save As... Q Zoomin Ctrle=
“&! Save All - Q, Zoom Qut Ctrt+-
E Rever ER, Q Best Fit ShifteCurlsZ
E Undo Cutez | | A Normal Size
CVS Update & Redo Ctr+R &, Zoom In on Timeline Chrle+
CVS Commit %é Cu ChrleX Q, Zoom Out on Timeline Ctrl+

E à Sopy Crie C %4 Seek to Previous Keyframe Ctrl+[


Import... Ctrlsl D Paste CtrleV E Seek to Next Keyframe Ctrl]
Import Sound File... Select All Layers Shift+Ctri+ A H Seek to Previous Frame Ctri+,
18 Preview... Fu Unselect All Layers Shift+ Ctrl+D bb Seek to Next frame Ctrl.
E Render... F9 Select All Handles Ctrl A & Seek Backward Ctrle<
Unselect All Handiles Ctrl+D w Seek Forward Ctrle>
d5 Com Document a Input Devices... Ki Seek to Begin Home
€ Quit Ctrl+Q Preferences... ii Seekto End End
Fig. 6.13. Menus File, Edit e View com os respetivos comandos visíveis.

O menu File contém comandos que permitem efetuar várias operações relativas a fi-
cheiros, importar imagens e ficheiros no formato svg, pré-visualizar a animação, entre
outras opções.

O menu Edit contém comandos que permitem efetuar operações como repor e anular
uma operação, cortar, copiar, colar, selecionar ou desmarcar camada, etc. Com o co-
mando Preferences, no separador Misc., pode-se alterar o idioma a utilizar no programa.

O menu View contém comandos que permitem ativar ou desativar grelhas, linhas-guia
e alças de manipulação nos objetos; ajustar o zoom da área de trabalho ou da barra do
tempo; avançar ou retroceder na animação, etc.

O menu Canvas contém o comando Properties que permite, por exemplo, no separador
Time, configurar o número de frames por segundo (fps) e a duração da animação.

O menu Toolbox contém ferramentas de transformar, desenhar, preenchimento, texto,


AIB12 O Porto Editora

entre outras.

O menu Layer contém comandos que permitem realizar operações com camadas. Com
o comando New Layer é possível criar uma nova camada com determinados efeitos.
Utilização do Sistema Multimédia

Toolbox
bk Transform Tool ARA |
4 SmoothMove Tool Alt+V | Layer

vIONPI OMOd O TIAIV


?5 Scale Tool ARS | | oia O E
E? Rotate Tool AR+T “+ Increase Amount Ctri+ Alt+)
ES Mirror Tool AR+M = Decrease Amount Ctri+ Alte (
O Circle Tool AR+C [9 Add Layers
to Set
L] Rectangle Tool AR+R [9 Remove Layers from a Set
%7 Star Tool AR+Q Make New Frame
& Polygon Tool AR+P Simple Copy Layer
E Gradient Tool AR+G & Duplicate Layer
A Spline Tool AR+B EB Group Layer
Q. DrawTool AR+D Group Layerinto Switch
R Width Tool anew | | 9 Delete Layer Ctrl+ Delete
1 Fill Tool AR+F [E Set Layer Description
É Tai ARE Disable Layer Rendering
À TetTool ARt+X % Lower Layer Shift+ Page Down
Sanvas £ Sketch Tool AR+K * Cut Ctrlex
TP Properties... “Bm * Brush Tool [3 Copy Ctrl+C
Options... F12 & Zoom Tool AR+Z O Paste Ctrl+V
Fig. 6.14. Menus Canvas, Toolbox e Layer com os respetivos comandos visíveis.

O menu Plug-Ins permite correr scripts, em python, se forem instalados no programa.

O menu Window contém comandos que permitem ativar os painéis do programa.

O menu Help contém comandos que permitem aceder à ajuda do programa.

Preview Window
Toolbox
Tool Options
History
Canvas Browser
Keyframes
Layers
Parameters
Canvas MetaData Help |
[eseeee
Info Ei Help Ctrl+H
Navigator E) Tutorials
Timetrack B Reference

| Plug-ins | mea [ES Frequently


Asked Questions

Add Skeleton (Simple) Palette Editor E) Get Support


Unhide All Layers Synfig Animation 1 À About Synfig Studio
Fig. 6.15. Menus Plug-Ins, Window e Help com os respetivos comandos visíveis.
6. Animação 2D - Técnicas de animação em computador 213

À barra Toolbar
A barra Toolbar (Fig. 6.16) permite criar um novo projeto, abrir ou guardar um projeto,
desfazer ou refazer uma ação e mostrar as configurações de renderização e visualização.

New Save Save All Redo Preview

4 +

Open Save As Undo Render

Fig. 6.16. Barra Toolbar.

O comando Render permite converter a animação para os formatos de imagem bmp,


gif, jpeg e png. Permite, também, converter para diferentes formatos de vídeo.

Para tal, por exemplo, ao clicar no comando Render, na caixa de diálogo Render Set-
tings, no item Target, seleciona-se a opção ffmpeg (programa de conversão).

Depois, clica-se no botão Parameters, surgindo a caixa de diálogo Target Parameters


(fig. 6.17) e seleciona-se uma das várias opções disponíveis de conversão para vídeo.

O comando Preview permite efetuar a pré-visualização da animação de acordo com os


parâmetros definidos na caixa de diálogo Preview Options, que surge quando se clica
neste comando.

6 Teget Prsmetes —
Avadabie
Vidro Codecr
Cuntom Video Code: is)
Flash Video FLV Soremon Sport 'Soremon HM)

4263 / 14263-198 / 54.263 versos 2

apso (RAT TU

litheora Thecea

MDA 14.264 / AVC / MPEGA AVC / MPEG-4 pan 10

MUIPEG (Moton IPEG


raw MPEG
1 vudeo

raw MPEG) video

MPEG 4 part2. D/DesX

MADEO, 4 por D Micros arara corso |

MPEG 4 por 2 Mrosolt


vanart vermon|

MPEG 4 part
2 Mecrosoft vanant verson 2
Windows Medusa Video 7

Wunsows Medusa Video8

Custom Vadeo € odec

Fig. 6.17. Caixa de diálogo Target Parameters com


as várias opções de conversão para vídeo visíveis.
AIB12 O Porto Editora
214 Utilização do Sistema Multimédia

À caixa de ferramenta Toolbox


A caixa de ferramenta Toolbox (fig. 6.18) contém ferramentas para manipu-

PIONP OMOJ O TITIV


lar, criar e editar diferentes objetos no trabalho. Para as utilizar é necessário
manusear as diferentes alças de manipulação que surgem quando um objeto
está selecionado. Por outro lado, quando se ativa uma ferramenta surge, geral-
mente, uma caixa de diálogo vertical. Deve-se ter em atenção os vários parã-
metros existentes na mesma, pois estes permitem configurar o seu funciona-
mento.

Na parte inferior da caixa é possível configurar, por defeito, as cores de con-


torno e preenchimento, o gradiente de cores, o método de mistura de cama-
das, o valor da opacidade, o tipo de interpolação a aplicar na animação e o ta-
manho do pincel.
O Clamped
O quadro 6.1 identifica os botões da caixa de ferramentas Toolbox, assina-
17,50pt lados na figura 6.18.
q || Fig. 6.18. Caixa de ferramentas Toolbox.

Quadro 6.1

Identificação Descrição

R Transform Permite selecionar objetos e movê-los, girá-los ou dimensioná-los.

SmoothMove Permite mover suavemente um objeto selecionado.

Scale Tool Permite alterar a escala de um objeto.


O B/9|/F

Rotate Tool Permite mover e girar em torno da origem de um objeto selecionado.


|/“

Mirror Tool Permite girar segundo um eixo vertical ou horizontal.

Circle Tool Permite criar um círculo.

Rectangle Tool Permite criar um retângulo.


PIS B|/7|R|ID

Star Tool Permite criar uma estrela.


PINPIN|B

Polygon Tool Permite criar um polígono através da definição de pelo menos três pontos.

Gradient Tool Preenche um objeto com um gradiente de cores.

Spline Tool Permite criar objetos com curvas e interceções.

Draw Tool Ferramenta de desenho.

Width Tool Aumenta ou diminui a largura da linha.

Fill Tool Preenche um objeto selecionado com uma cor ou textura.

Eyedrop Tool Seleciona uma cor a partir de pixeis de um objeto.

Text Tool Cria ou edita camadas de texto.

Sketch tool Ferramenta de desenho à mão livre.

Zoom Tool Altera o nível de zoom de um objeto.


6. Animação 2D - Técnicas de animação em computador

A partir dos botões Outline Color e Fill Color, presentes na parte inferior da caixa Tool-
box, tem-se acesso à caixa de diálogo Colors (fig. 6.19), possibilitando alterar as cores de Exercício
contorno e preenchimento. E, a partir do botão Default Gradient, tem-se acesso à caixa de
diálogo Gradient Editor (fig. 6.20), possibilitando alterar as cores do gradiente.

Fig. 6.19. Caixa de diálogo Colors. Fig. 6.20. Caixa de diálogo Gradient Editor.

Exercícios de aplicação 10

1. Legende cada um dos itens assinalados na figura 1, preenchendo o quadro 1 no seu caderno.
(1)—— dem
tg 1 |À
Cm qa ver Coma Tones Logos Pragins indo et

(mw)+

(a)

6)

O— O
Fig. 2.

Quadro 1

Número | Nome Número | Nome

(:-) (A) Painel de parâmetros (-] (E) Barra de menus


(=) (B) Barra de ferramenta [E] (F) Barra do tempo
AIB12 O Porto Editora

(-) (C) Área de trabalho (-) (G) Caixa de ferramenta Exclusivo


do Professor
(D) Painel de controlo do tempo

Solução
216 Utilização do Sistema Multimédia

BIONP ONO] O TITIV


ERRO Exercícios de aplicação 10 (cont.)

2. Qualé a extensão de um ficheiro de documento criado no Synfig?

3. Quais as extensões que um ficheiro em Synfig pode assumir depois de uma renderização?

4. Identifique o menu e o comando para realizar cada uma das operações indicadas nas alíneas
seguintes:
a) inserir uma nova camada Rotate;
b) efetuar uma renderização;
c) definir o End Time de uma animação;
d) visualizar linhas guia;
e) visualizar uma animação;
f) agrupar camadas.

5. Identifique cada uma das ferramentas da caixa Toolbox apresentadas no quadro 2, transcrevendo-o
para o seu caderno.
Quadro2

Identificação Descrição Identificação Descrição

1. [R] (-) [a] (-)

2 [0] (.) 2. [RJ [-:)


. 0) (-) 10. [--)
A. [7] (-) 11. [==]

5. (-.) 2. [A] (=)


=) (-) 13. [++]
7. |] [-:)

À barra Timebar
A barra do tempo (Timebar) (fig. 6.21) é uma barra onde é possível controlar o con-
teúdo de um trabalho no tempo.
Uma animação é dividida em pequenos “comprimentos” de tempo, os frames, e orga-
niza-se em camadas.

Estas são empilhadas umas sobre as outras, onde cada uma representa um elemento
diferente da animação.
Na parte de cima da janela da área de trabalho, encontram-se vários botões que permi-
tem ativar ou desativar o manuseamento das alças que aparecem nos objetos, aumentar
ou diminuir a resolução e qualidade da imagem, mostrar ou ajustar à grelha, visualizar o
Exelsio rasto anterior e posterior da animação em determinado momento e ativar as configura-
dolicoiessor ções de renderização e pré-visualização da animação.

Solução
6. Animação 2D - Técnicas de animação em computador 217

Manipulação Resolução e Mostrar Rasto da Render


de alças qualidade ouajustar animação
à grelha
. Preview

Zoom aaqaa+
45 13

K<« Db DEM <l


(Last rendering
time 0,366211 sec)

Status bar Refresh

Indicador do Indicador do Timebar Stop


momento atual modo de edição
Turn off animate
Fig. 6.21. Janela da área de trabalho com os principais elementos assinalados. editing mode

Na parte de baixo do indicador do momento atual, aparecem uns botões que permitem
rapidamente avançar ou retroceder com o cursor do tempo pelas posições dos frames e
keyframes (fig. 6.22) de uma animação.

Seek to previous frame

Seek to next frame


Seek to begin Seek to end

a e
a MM MDDO DE Di
Seek to previous keyframe
| Play Seek to next keyframe

Fig. 6.22. Botões de navegação pelas frames e keyframes de uma animação.

A barra do tempo fica acima dos painéis Parameters, Keyframes, Timetrack e Layers
ATB12 O Porto Editora

(fig. 6.23), que surgem horizontalmente na parte inferior da janela do programa.

Nestes painéis é possível identificar, para cada camada, os diferentes frames, e as


ações e as animações que ocorrem num trabalho.
218 Utilização do Sistema Multimédia

Parameters painel Timetrack painel


Exercício
Keyframes painel Layers painel

BIONP ONO] O TITIV


o us o
Es|2 . kom Mame
* ZOegth +
Name vabe Type “ Tame Tent *
7 Mrs cum
TIuem 2 00008 res
7 O smsco 107000
KR amour 1 900000 res
É tens menos cmpo:tr & uteger
& come [om cobce E
HR rosas 3 750000 res!
EX resmer O 900000 res
2 O osga LSGOODO O 195 IFP reco 0 GH
O mm Doci
6 ramo mes nteger - ++ ma »

Fig. 6.23. Painéis Parameters, Keyframes, Timetrack e Layers, que surgem horizontalmente na parte inferior
da janela do programa.

Dock Panel [=] O painel Parameters


| o
(us)
E L
Do
o
É no painel Parameters (fig. 6.24) que são
Name Value Type 4 Time Track editados todos os parâmetros relacionados
7 zDepth 0,000000 real com as camadas criadas, mostrando em cada
7 amount 1,000000 real
momento os parâmetros da camada atual.
a Blend Method Composite integer

B Cotor E cos Se forem selecionadas várias camadas ao


O Point1 -1,500000u,0,766667u vector mesmo tempo, apenas são apresentados os
O Point 2 0,183333u,0,383333u vector
parâmetros comuns. Neste painel pode-se, al-
7 Expandamount 0,083333u real
terar diretamente o valor de vários parâme-
(1) Invert the rectangie 7] bool
tros.
Fig. 6.24. Painel Parameters.
Por exemplo, pode-se alterar a cor de um
objeto criado, clicando sobre a cor na coluna
Value, do parâmetro Color, surgindo a caixa de
diálogo Colors (fig. 6.19).
Keyframe Timebar Time cursor

O painel Timetrack
Dock Panel B
O painel Timetrack (fig. 6.25) é um painel
onde ocorrem as ações da animação.

Os principais elementos que fazem parte


deste painel são a Timebar (barra do tempo),
os símbolos gráficos Waypoints (pontos de
passagem), os Keyframes que são representa-
dos por linhas verticais castanhas e o Time
cursor (cursor do tempo) representado por
uma linha vertical de cor azul.
Fig. 6.25. Painel Timetrack.
Waypoint

No Synfig, um Keyframe guarda as informações dos valores de todos os parâmetros de


cada camada nesse frame. Com estas informações é possível reutilizar os dados para
outro frame. Um frame só pode conter um único keyframe e vice-versa. Por sua vez, cada
Waypoint guarda apenas o valor alterado de um parâmetro numa determinada camada
nesse frame.
6. Animação 2D - Técnicas de animação em computador 219

ooo

A figura 6.26 mostra, para uma determinada camada, dois parâmetros animados,
Color e Origin, em dois frames diferentes. Cada waypoint guarda apenas o valor de um
desses parâmetros nesse frame.

Deh Panel “o

= o
teamo vabue Type € Tema Tuck
TM 2 desen o oooomo rest
TF amour 1 000000 rest
6 tuens Method Comporte ate ger
. DB coor E cummaO O | Waypoints em
Os parâmetros Mess 0933333 veas e dois frames
Color e Origin M restrer O OO rest diferentes
LAO com 1040000 O 1 FISIDa vetomad 4
OD tes [a]
S mon Comme nteger

Fig. 6.26. Painel Parameters mostrando dois


parâmetros animados.

O painel Keyframes
É no painel Keyframes (fig. 6.27) que se criam, duplicam, removem e configuram os
keyframes da animação.

Estes encontram-se assinalados no painel Timetrack e dispõem-se ao longo da barra


do tempo (Timebar).

Para cada keyframe é indicado o estado de seleção, momento do tempo, “compri-


mento”, jump e descrição.

Se se clicar no valor JMP de um keyframe, o cursor do tempo salta para a posição


desse keyframe, apresentando a área de trabalho desse momento.

De acordo com o estado dos keyframes, pode-se visualizar setas indicadoras dos dife-
rentes estados na barra de tempo.

O quadro 6.2 exemplifica os estados que os keyframes podem assumir e a figura 6.28
identifica as respetivas setas indicadoras dos mesmos na barra Timebar.

Quadro 6.2

Dock Panel va
0s0f | Normal
mn iPa » oi
Time t LengthJump Description Time * LengthJump Description 4
0f 2s UMP) 2s0f | Selecionado of 2s MP)
2s 1s1f (JMP)

W] 35H Of UMP)
Du o UMP) 3s1f | Desativado
+%8 7
Add new keyframe Keyframe properties

Duplicate keyframe Remove keyframe

Fig. 6.27. Painel Keyframes.

Normal Selecionado Desativado


AIB12 O Porto Editora

Fig. 6.28. Timebar com as setas indicadoras dos diferentes estados dos keyframes.
220 Utilização do Sistema Multimédia

Dock Panel O painel Layers

JE)
O painel Layers (fig. 6.29) apre-

PIONP OMOJ O TITIV


Doo
senta a hierarquia das camadas do
Icon Name t ZDepth trabalho.

+
EB Fundo 0,000000 É possível efetuar operações
O Amarelo 1,000000 sobre as camadas como, por exem-
plo, determinar a ordem de sobre-
| +45 bBHAS SUB Paste posição dos diferentes objetos num
; trabalho; duplicar, agrupar ou remo-
Lo =
Raise Copy ver camadas, entre outras opções.
Layer cut

Lower
Layer Delete
Layers
Duplicate
Layer Select All
Child Layers
Group
Layer
Fig. 6.29. Painel Layers.

O painel Navigator
Através do painel Navigator (fig. 6.30) é possível am-
pliar, reduzir ou movimentar a área de trabalho.

Fig. 6.30. Painel Navigator.

O painel History
Dock Panel
i ») Do
o| No painel History (fig. 6.31) aparecem registadas
Q todas as ações que vão sendo realizadas durante o
trabalho.
Jump * Action
(UMP) Raise Layer 'Amarelo' Várias operações podem ser feitas sobre cada
(JUMP) Lower Layer 'Amarelo' uma destas ações quando se clica nos ícones que
aparecem no fundo da caixa.
(IMP) Lower Layer 'Fundo'
Este painel está vazio quando se cria um novo
(UMP) Raise Layer 'Fundo'
ficheiro ou se abre um ficheiro já existente.

vexrxa Clear the undo and the redo stacks

Clear the redo stack

Clear the undo stack

Redo the previously undone action

Undo the previous action


Fig. 6.31. Painel History.
6. Animação 2D - Técnicas de animação em computador 221

O painel Palette Editor


A partir do painel Palette Editor (fig. 6.32) é possível adicionar, alterar ou remover
cores.
Quando se clica com o botão esquerdo do rato sobre uma determinada cor da paleta,
altera-se a cor de preenchimento na caixa Toolbox.

Para se substituir uma cor da paleta, clica-se com o botão direito do rato sobre a cor e
surge um menu de contexto com os comandos Color e Delete.

Ao selecionar o comando Color, surge a caixa de diálogo Colors (fig. 6.19), a partir da
qual é possível redefinir a nova cor.

Por outro lado, ao selecionar o comando Delete, a cor é eliminada.

Quando se clica no ícone Add current outline color to the palette, é adicionada uma
nova cor que corresponde à cor de contorno ativa na caixa Toolbox.

Load default palette

- Load a saved palette

Save the current


palette

Add current outline


color to the palette

Fig. 6.32. Painel Palette Editor.


ATB12 O Porto Editora

Através deste painel é possível guardar uma paleta de cores, clicando no ícone Save
the current palette; repor a paleta predefinida, clicando no ícone Load default palette, e
obter mais paletas, clicando no ícone Load a saved palette, carregando ficheiros com o
formato spal do Synfig ou gpl do GIMP.
222 Utilização do Sistema Multimédia

BIONP ONO] O TITIV


Ro Exercícios de aplicação 11

1. Diga o que entende por Timetrack.

Jogo 2. Façaa legenda da figura 1, preenchendo o quadro 1 no seu caderno. (1) (2)
*amarelosifz - Synfig Studio e
*amarelo.sifz X oºo
a
v[Z) QUiwrs A ss ED Ooiro: rs
2

MK DD DE <l m a) +
die (Last rendering time 0,366211 sec) I o

Fig. 1. 5 6

Quadro1

Número | Nome

(:::) (A) Timebar


(:::) (B) Indicador do momento atual

(::) (C) Turn off animate editing mode


(::) (D) Render
(::) (E) Zoom
(::) (F) Indicador do modo de edição

(:::) (G) Preview

3. Diga qual é o objetivo do painel Parameters.

4. Diga qual é o objetivo do painel Layers.

As técnicas de animação
O Synfig usa as técnicas de animação Morphing e Cutout. A técnica Morphing permite
criar uma transformação entre duas imagens.

Por sua vez, a técnica Cutout permite dividir a imagem em partes e aplicar-lhes trans-
formações em diferentes momentos no tempo como mover, rodar e alterar a escala.

O Synfig permite elevar a complexidade da animação se forem conjugadas estas técni-


raueno cas com as possibilidades fornecidas pela utilização das várias ferramentas e, também,
o Frotessor op apa - . - .
a possibilidade de reutilização de dados, importante para a construção de grandes proje-
tos de animação.

Solução
6. Animação 2D - Técnicas de animação em computador 223

A animação Morphing
Para ilustrar a técnica de animação Morphing, será exemplificado o processo de cria-
ção de uma animação simples, com a duração de dois segundos. Isto é, um quadrado
inicial de cor amarela vai transformar-se num quadrado final de cor vermelha, apresen-
tando uma rotação em torno do seu eixo central.
O equi mpeg =
—— mas,

neu ums
ee pica

me “o 1
tel tp
Gunnguemend em
Vet fumo ”
né tm
im |

” mt .-

Fig. 6.33. Caixa de diálogo Properties.

Começa-se por criar um novo trabalho e guardá-lo com a extensão sifz. De seguida,
deve-se selecionar o comando Properties, do menu Canvas, para configurar o parâmetro
End Time com o valor 2s (fig. 6.33). No fim, seleciona-se o botão Apply e, depois, Close.

Antes de iniciar qualquer ação na área de trabalho, é conveniente ativá-la para o modo
de edição, clicando no ícone Turn on animate editing mode. Surge um contorno vermelho
na janela da área do trabalho como indicador dessa ativação.

Em primeiro lugar, posiciona-se o cursor do tempo no momento zero segundos e no


frame O ou digita-se 0s0Of no indicador do momento atual. Começa-se por desenhar um
quadrado com a ferramenta Rectangle e com uma cor de preenchimento amarela, tal
como é apresentado na figura 6.34. Automaticamente é criada uma camada, que é reno-
meada para Quadrado.
—e— = ; O leis
[eme quam ra Cumas Toctios paços Praga da paety
vBgar . “ss
Vestica Come pegado eo
me ve uu BRO vZ alema +. sos o»: mr
A e 4 4 2 E a E E á
nar os “L aaa aa nana
a + * mma
= 1 sas U

. | = a D
Unte - lata D movimgat:
“ [ms
=
O cunçes - |.
o
Se Aa ao ,

y 4 qe - .
1
Last remdereny ts É UL6 DO soe e. as

=“
o o «TD +
Es; 3 Zerou
tusma vam ne * Vem oa
R roqem o es oa
KR imeuá tones pa
É medios Composte utoça
& com [ E)
O mms NT vetos Amma +
O tes imita Cmt wine O
R iosd mas amamos ea
O tese tre costonço vos
,* “mos

Fig. 6.34. Área de trabalho após a criação do quadrado.


AIB12 O Porto Editora

De seguida, posiciona-se o cursor do tempo no momento 2s. Para tal, pode-se digitar
o valor ou clicar no ícone Seek to end. Neste frame, arrasta-se o quadrado para o lado di-
reito da área de trabalho e inverte-se a posição das alças de manuseamento representa-
das pelos círculos verdes.
Utilização do Sistema Multimédia

Entretanto, nesta posição, altera-se a cor do quadrado de amarelo para vermelho (fig.

PIONPY ONO O TITIV


6.35), clicando sobre a cor na coluna Value, do parâmetro Color, do painel Parameters.

se e (ais De
o? ko Mme + Tg +
2.» TE quatado
mm

+* umas »

Fig. 6.35. Área de trabalho após a alteração da cor e da posição do quadrado.

Automaticamente são criados os pontos de mudança (waypoints), nos momentos Os e


2s, aquando das transformações introduzidas nos parâmetros Color, Point 1 e Point 2,
que identificam a alteração do preenchimento e da posição das duas alças do objeto, na
camada Quadrado.

Por fim, o Synfig cria as interpolações necessárias no intervalo de tempo entre O e 2


segundos, como se pode observar nas figuras 6.36 e 6.37 quando se coloca o cursor do
tempo nos momentos 0s15f e 1s15f, respetivamente.

Fig. 6.36. Área de trabalho no momento 0s15f da animação.


6. Animação 2D - Técnicas de animação em computador

“morphing.sifz - Synfig Studio e « e


*morphing.sitz % ço
Or 118
(3 |
7 *

TF ca

Qqaaa-. Ç '
1s15f

MK DDD <l m |»
Idie (Last rendering time 0,330078 sec) 1 Ivo

Fig. 6.37. Área de trabalho no momento 1815f da animação.

Para visualizar toda a animação, seleciona-se o comando Preview, do menu File, ou o


ícone Preview presente barra Toolbar ou na área de trabalho, surgindo a caixa de diálogo
Preview Options (fig. 6.38).

Nesta caixa pode-se, por exemplo, configurar os tempos de início e fim da animação se
assim se pretender. Por fim, clica-se no botão Preview.

Fig. 6.38. Caixa de diálogo Preview


Options.

Utilizando o trabalho anterior, vai exemplificar-se a aplicação de keyframes, começando


por gravar o trabalho com um novo nome.

No exemplo anterior, o quadrado movimentava-se apenas da esquerda para a direita.

Agora, pretende-se que o objeto tenha uma animação da esquerda para a direita e da
direita para a esquerda, isto é, que volte à posição inicial.

No menu Canvas, começa-se por selecionar o comando Properties para configurar, no


AIB12 O Porto Editora

separador Time, o valor de End Time igual a 5s.

Desta forma, a barra do tempo terá um “comprimento” de cinco segundos, para permi-
tir visualizar melhor as linhas verticais castanhas correspondentes às keyframes.

AIB12 F15
226

Digita-se Os na área indicadora do tempo e, no painel Keyframe, clica-se no botão Add

LIONPT ONO O TIQIV


New Keyframe, se por acaso esta keyframe não estiver já criada.

De seguida, digita-se 4s ou clica-se sobre o valor 4 na barra Timebar, depois, sele-


ciona-se a keyframe anterior, e, por fim, clica-se no botão Duplicate Keyframe.

Surge um novo keyframe conforme o apresentado na figura 6.39.

Se for feita a visualização da animação, verifica-se que o objeto tem uma animação da
esquerda para a direita e da direita para a esquerda.

Desta maneira, foram reutilizadas as informações armazenadas na primeira keyframe.

|
SEjZTime Lengthlump Description
Solo
«| E
Ja ;
o|
of as MP)
[MI 4s o (JUMP) (Duplicate)

+% 9 uv
Fig. 6.39. Painéis Keyframes e Timetrack com as keyframes e os waypoints criados.

A animação Cutout
Para ilustrar a técnica de animação Cutout, será exemplificado o processo de criação
de um movimento de rotação de uma roda, em torno do seu eixo, e com uma deslocação
da esquerda para a direita (fig. 6.40).

t boo a40
/“a

Fig. 6.40. Janela Preview com o exemplo de uma


roda que se movimenta em torno do seu eixo e da
esquerda para a direita.

Começa-se por gravar um novo ficheiro e configurar a área de trabalho para uma anima-
ção com a duração de 4s e 24 fps. Ao iniciar o trabalho, é necessário ativar o modo de
edição da animação.

No momento 0soOf, desenha-se uma roda utilizando a ferramenta Circle. Depois, dese-
nham-se os dois eixos utilizando a ferramenta Rectangle.

A seguir, no painel Layers, selecionam-se estas três camadas e clica-se no botão


Group Layer.
6. Animação 2D - Técnicas de animação em computador 227

Renomeia-se este grupo, atribuindo-lhe a designação Roda (fig. 6.41).

Com a ferramenta Transform seleciona-se o grupo Roda. De seguida, no menu Layer,


no comando New Layer, na opção Transform, seleciona-se primeiro Rotate e, depois,
Translate.

Observa-se que serão criadas duas novas camadas.

No painel Layers, selecionam-se estas duas últimas camadas e o grupo Roda e clica-se
no botão Group Layer.

Renomeia-se este novo grupo, atribuindo-lhe a designação Movimento (fig. 6.41).

Ainda no momento 0soOf, é necessário fazer coincidir a alça verde da camada Rotate
com o centro da roda (fig. 6.42).

Utilizando a ferramenta Gradient, cria-se uma nova camada, que será colocada por trás
dos objetos já criados e fora dos grupos Roda e Movimento, respeitando a organização e
a hierarquia das camadas, como é apresentado na figura 6.41.

Dock Panel 8
, O
24º
Icon Name 4 ZDepth 4
Wa (E Movimento 0,000000
“e Translate 0,000000
MP Rotate 1,000000
NNE

& 0 Roda 2,000000


EB Rectangieoz1 0,000000
E Rectangieo2o 1,000000
O Circicor 2,000000
E Gradientoo3 1,000000
+: 608898 “0a

Fig. 6.41. Painel Layers mostrando a


organização e a hierarquia das camadas
da animação.

No momento 1so0f, seleciona-se a camada Translate e desloca-se a alça verde para a


direita com a medida aproximada a um quarto do comprimento da área de trabalho.

Depois, seleciona-se a camada Rotate e roda-se a alça azul no sentido horário com um
ângulo aproximado de 45 graus (fig. 6.42).
Para os restantes momentos repetem-se os passos descritos anteriormente (fig. 6.42).
Por último, visualiza-se a animação e observa-se que a roda se movimenta em torno do
seu eixo e da esquerda para a direita.

0s0f 1s0f 2s0f 3s0f 4s0f

poda
AIB12 O Porto Editora

Fig. 6.42. Exemplificação da posição da camada Rotate nos diferentes momentos do tempo.
Utilização do Sistema Multimédia

BIONP ONO] O TITIV


Ro Exercícios de aplicação 12

1. Indique a ferramenta que usaria para criar um objeto com um número qualquer de pontos e curvas.
(A) Spline
(B) Eyedrop
(C) Rectangle
(D) Fill

2. Para mudar a posição de um objeto, utiliza-se a alça de manuseamento de cor:


(A) Amarela
(B) Verde
(C) Azul
(D) Castanha

3. Crie uma animação, em que uma estrela percorre um trajeto, conforme o apresentado nas figuras
2 a 6, tendo em atenção as indicações seguintes.
Configure a animação para uma duração de 2s e com 24 frames por segundo. Mude o programa
para o modo de edição.
Crie um gradiente de cores como o apresentado na figura 2. Depois, crie o objeto estrela na
keyframe 0. De seguida, posicione o cursor do tempo em cada um dos momentos 0512f, 1s, 1s12f e
2s, e, em cada um deles, acrescente um novo keyframe (fig. 1) e desloque a estrela para a nova
posição, conforme o apresentado nas figuras 2 a 6. Por último, visualize a animação.

Dock Panel 8
o
& 2.º
Time * LengthJump Description 4

of 12 (JUMP)
12f 12º (JMP)
1s 12 (IMP)
1s12f 128 (JMP)
2s Of (JUMP)

+%8 ur
Fig. 1.

qarrvo za ams iz
Exclusivo CRER.
do Professor - - =
Fig. 2. Animação no momento Os. Fig. 3. Animação no momento 0s12f.

Solução
6. Animação 2D - Técnicas de animação em computador

Exercícios de aplicação 12 (cont.)

Fig. 4. Animação no momento 1s.

Fig. 6. Animação no momento 2s.

4. Crie uma animação, em que um quadrado azul se desloca para a direita e se transforma numa flor
vermelha, tendo em atenção as indicações seguintes.
Configure a animação para uma duração de 2s e com 24 frames por segundo. Mude o programa
para o modo de edição.
AIB12 O Porto Editora

Utilizando a ferramenta Spline, no momento 0s0f, crie um quadrado azul (fig. 7), clicando apenas
uma vez na posição de cada vértice. Para fechara forma, clique novamente em cima do primeiro
vértice e com o botão direito do rato, no menu de contexto, que surge, selecione a opção Loop Spline.
Utilização do Sistema Multimédia

PIONPY ONO O TITIV


Exercícios de aplicação 12 (cont.)

Fig. 7.
No momento 2s, arraste a forma anterior para o lado direito da janela, utilizando a alça de
manuseamento verde.

Neste momento, altere a cor do quadrado para vermelha.

Altere, também, a forma inicial do quadrado para um círculo (fig. 8), manipulando as alças castanhas.

De seguida, clique, com o botão direito do rato, em cada alça castanha e no menu de contexto, que
surge, selecione Split Tangents.

Deste modo, pode manusear de forma independente cada metade da linha tangente num ponto.

“Synlig Animation 1 - Synfig Studio | T. ei


—]
o o
po.
1 Es

KM E DD DE <l
(Last rendering time 0,179688 sec) E se Q
6. Animação 2D - Técnicas de animação em computador

Exercícios de aplicação 12 (cont.)


Crie a forma representada na figura 9, manuseando as alças castanhas e amarelas para obter o efeito
desejado. Por último, visualize a animação.

PM SM DDD DE DA <l m E
|die (Last rendering
time 0,414062 sec) L 10

Fig. 9.

5. Crie uma animação, em que uma imagem alterna com outra.

Para tal, vai ser necessário configurar, no painel Parameters, o parâmetro Amount, que permite
controlar a visibilidade de uma camada, em que o valor 1 significa que a camada é visível e o valor O
significa que a camada é invisível.

Configure a animação para uma duração de 5s e com 24 frames por segundo.

Mude o programa para o modo de edição e tenha em atenção as indicações seguintes.

Importe duas imagens com as mesmas dimensões.

No momento Os (fig. 10), selecione o grupo da primeira imagem.

Clique com o botão direito do rato sobre o parâmetro Amount e, no menu de contexto, que surge,
selecione o comando Convert, opção Timed Swap, como método de mistura a utilizar.

Surgem, depois, os subparâmetros: Before, After, Time e Length.

Configure o subparâmetro Before com o valor 1, indicando que antes a camada é visível; o
subparâmetro After com o valor 0, indicando que depois a camada se torna invisível; o
subparâmetro Time com o valor 3s, indicando o tempo durante a qual a camada está ativa; e o
subparâmetro Lenght com o valor 1s, indicando o tempo de transição entre as camadas.
AIB12 O Porto Editora
Utilização do Sistema Multimédia

PIONPY ONO O TITIV


Exercícios de aplicação 12 (cont.)
Poderá visualizar o ecrã da figura seguinte:

= 2! so 0) 8 O — a
Marra vobo Type * Te Tad | y as o?
R roma e oem vem Lero mr — =
o R mu om umas e e | >
A te 1 cec00e teu | ,
Ke o omsoo mma O 4 | + 18 = 5 quero 1umemmo
O tm » mia O e. >
O cmg 1 vma | =:
É tens ritmos (Composto À ug A + bue -

Fig. 10.

No momento 3s (fig. 11), configure os subparâmetros anteriores com os mesmos valores, à exceção do
subparâmetro Time para o valor 5s.

aaaa+
n
ms a Dib MEmA «E E) ,
Pote cia rentereng teme DUPIOZS sec)

Ema
Mara vem Type
R rom, e mano vem
o mu 1 omoooe mas e e
Aee + 000006 eai
Ka o momoos vm dmmnea
O tm s um ta O
O ema ts tme
[e] Composto À uuga
7. Divulgação de vídeos e som via rede 233

7. Divulgação de vídeos e som via rede Jogo

A Internet é um meio por excelência para a divulgação de todo o tipo de informação


que possa existir.

Antes de surgir a Internet, a divulgação de informação poderia demorar anos e até


nunca chegar a ser conhecida.

Os cientistas, com a sua grande necessidade de trocar informações entre si, sobre os
seus estudos científicos, foram a grande força impulsionadora para o aparecimento da
Internet.

A capacidade de a Internet divulgar informação continua a ser uma das razões para o
seu crescimento.

Por sua vez, o seu rápido crescimento deve-se à sua aplicação massiva por parte dos
utilizadores e à introdução das novas tecnologias em ligação com os meios de transmis-
são.

A Internet é cada vez mais utilizada para a divulgação de aplicações multimédia com
vídeo, áudio, texto e imagem, necessitando de transmitir grandes quantidades de dados,
como, por exemplo, na transmissão de videoconferências, rádio e TV pela Internet.

Para que tudo isto seja possível, foi necessário desenvolver diferentes métodos de
transmissão de dados.

7.1. Métodos

7.1.1. Streaming

O streaming é um processo de transmissão de dados para aplicações em tempo real,


através da Internet (fig. 7.1).
Este processo permite a execução de ficheiros de áudio ou de vídeo enquanto estes
são descarregados da Internet.

Durante a execução deste processo, os ficheiros são comprimidos e divididos em pa-


cotes de dados, que são depois enviados através da Internet.

Quando chegam ao computador de destino são guardados num buffer, em fila de es-
pera, alguns segundos antes de serem reproduzidos pela ordem correta.

Após a sua reprodução, os dados não são guardados de forma permanente no compu-
tador.

O streaming pode ser utilizado na transmissão em tempo real de emissões de áudio ou


de vídeo.

O RealAudio, desenvolvido pela Real Networks em 1995, foi o primeiro software a utili-
s
zar o streaming apenas para o som.
ATB12 O Porto Ed itor

Os inconvenientes deste processo são a dependência em relação à taxa de compres-


são e à largura de banda disponível na Internet, podendo ocasionar situações de diminui-
ção da qualidade de reprodução ou mesmo de interrupção momentânea.
234 Utilização do Sistema Multimédia

Bo

BIONP ONO] O TITIV


Instruções de
Jogo
descodificação dos
pacotes de dados de
vídeo e de áudio

Carregamento da
memória buffer

(Es]
Es
CLIENTE

Eme]
E INTERNET

— Um
Fig. 7.1. Representação gráfica do processo de transmissão por streaming.

Existem dois tipos de streaming:


* streaming a pedido, VOD (Video On Demand) e AOD (Audio On Demand), em que os
conteúdos estão armazenados em bibliotecas e são enviados, pela rede, quando
estes são requisitados por software-cliente (player);
* streaming ao vivo, em que os conteúdos são transmitidos de forma contínua, permi-
tindo a transmissão ao vivo e a videoconferência.

7.1.2. Download

O download (fig. 7.2) é um processo de transmissão de dados a partir de um servidor


da Internet para o computador do utilizador. O processo inverso, isto é, o envio de dados
do computador do utilizador para o servidor da Internet designa-se por upload.

O processo de download, quando concluído, resulta num ficheiro guardado no compu-


tador do utilizador e que pode, depois, ser executado ou reproduzido.

O ficheiro original manteve-se no servidor da Internet, apenas tendo sido realizada uma
cópia deste para o computador do utilizador.

Download

Cliente Web Server

| A
Upload
Fig. 7.2. Representação gráfica dos processos de transmissão por download
e upload.
7. Divulgação de vídeos e som via rede 235

A principal vantagem é o facto de o utilizador poder copiar, da Internet, ficheiros de


qualquer formato, como, por exemplo, de áudio ou vídeo. Jogo

A principal desvantagem do download é o tempo que o utilizador tem de esperar para


executar ou reproduzir um ficheiro, enquanto este não estiver totalmente descarregado.

7.1.3. Download progressivo

O download progressivo permite também aos utilizadores visualizarem ou ouvirem uma


aplicação multimédia enquanto decorre o seu download, a partir de um servidor da Internet
para o computador do utilizador.

Este método não utiliza buffer e funciona melhor com aplicações multimédia pequenas,
pois o tamanho dos ficheiros que pode reproduzir é limitado.

Ao contrário do streaming, que envia somente pequenas porções do conteúdo em cada


momento, este método descarrega todo o ficheiro e começa a reproduzi-lo logo que a
parte já transferida permita a sua reprodução de forma ininterrupta.

A reprodução é de alta qualidade, independentemente da velocidade da ligação à Inter-


net, contudo, os utilizadores com ligações de baixo débito têm de esperar mais tempo
antes de começar a reprodução da aplicação.

Por exemplo, este método constitui a forma mais simples e barata de distribuir um
vídeo Flash numa página web.

Apesar de este método não ser mais poderoso e flexível do que o verdadeiro strea-
ming, simula-o bem e a maioria dos utilizadores não se apercebe da diferença.

Contudo, este método apresenta as seguintes limitações:


e não pode ser utilizado na transmissão de eventos em direto, mas apenas para fichei-
ros de vídeo armazenados;
é menos eficiente que o verdadeiro streaming;
º não se ajusta automaticamente à velocidade da ligação do utilizador;
* não é seguro, porque no final os ficheiros são guardados no computador do utilizador;
o utilizador final, ao visionar o vídeo, não pode avançar na sua reprodução sem que
o seu download esteja completo.

7.2. Recursos necessários

Os recursos necessários para a divulgação de vídeos e som via rede são os servidores
de conteúdos multimédia, ligados aos utilizadores preferencialmente através de ligações
de alto débito.

Os computadores dos utilizadores têm de ter software necessário para a reprodução


dos conteúdos multimédia, como, por exemplo, o Windows Media Player.

Para realizar o download e a descompressão dos ficheiros de forma a permitir reprodu-


zir vídeo e áudio por streaming através da Internet é necessário instalar plug-ins próprios,
isto é, software especial que trabalha com o browser.

Estes podem ser obtidos através da Internet, em sites relacionados com o áudio e o
AIB12 O Porto Ed itora

vídeo.

Existem várias aplicações destinadas à captura, à transmissão e à reprodução de mul-


timédia em tempo real, sendo algumas delas gratuitas.
236 Utilização do Sistema Multimédia

No quadro 7.1, são apresentadas algumas aplicações que permitem suportar o serviço

BIONP ONO] O TITIV


Exercício de videoconferência, reproduzir áudio e vídeo e transferir ficheiros.

Quadro 7.1

Programas Endereço

Ivisit http:/Avww.ivisit.com/products presenter

Camfrog http:/Anww.camfrog.com/en

Real Player http:/Avww.real.com

7.3. Codecs específicos

Para que uma aplicação instalada num computador consiga executar um conteúdo
multimédia codificado é necessário que tenham sido instalados previamente codecs espe-
cíficos. Por exemplo, no Windows Media Player, para reproduzir um ficheiro de vídeo com
o formato AVI e codificado com o codec Divx, é necessário ter instalado no computador o
Windows Media Player Codecs Pack, que corresponde a um conjunto de codecs para vá-
rios formatos de conteúdos. Os codecs podem ser instalados individualmente ou a partir
da instalação de um conjunto designado por packs (pacotes).

Há codecs mais utilizados do que outros. Alguns deles, de acordo com o seu algoritmo,
são mais indicados para determinadas aplicações.
7. Divulgação de vídeos e som via rede 237

Por exemplo, alguns são mais específicos para aplicações de voz, outros para trans-
missão de áudio pela Internet e outros para música. Exercício

Como o Windows tem vários codecs instalados, a maioria dos ficheiros de vídeo e de
áudio de programas multimédia ou da Internet pode ser visualizada.

Mas, mesmo assim, podem-se encontrar formatos de ficheiros de vídeo e de áudio


para os quais não existe no Windows um codec instalado, bastando, para tal, efetuar o
seu download da Internet.

7.4. Produção
A produção de aplicações multimédia consiste inicialmente no desenvolvimento dos
conteúdos multimédia e, a partir daqui, no desenvolvimento das aplicações multimédia
propriamente ditas.

Para o desenvolvimento de conteúdos multimédia é utilizado software que permite tra-


balhar com imagem, som e vídeo.

Para o desenvolvimento de aplicações multimédia são utilizadas linguagens de progra-


mação ou software de autor, evitando, desta forma, a escrita do código.
O RealProducer Basic (fig. 7.3) é um exemplo de um programa que permite converter
áudio e vídeo, preparando os ficheiros para poderem ser utilizados com a tecnologia de
streaming ou download.

Fig. 7.3. Janela da aplicação RealProducer Basic.

O TwinPlayer (fig. 7.4) permite, sem recurso à programação, criar aplicações multimé-
dia interativas de qualidade.

Estas podem ser distribuídas por diversos meios como CD, e-mail e Internet.
AIB12 O Porto Editora

Os projetos criados no programa TwinPlayer integram e organizam, numa grelha de 61


linhas por 20 colunas, uma série de conteúdos como som, vídeo, imagens, textos, anima-
ções e caracteres.
Utilização do Sistema Multimédia

ão:

BIONP ONO] O TITIV


Exercício

Fig. 7.4. Janela da aplicação TwinPlayer.

7.5. Uso de software servidor e cliente


Para que seja possível disponibilizar conteúdos multimédia pela Internet, é necessária
uma arquitetura do tipo cliente/servidor, em que ambos estão interligados por uma rede.
O cliente faz os pedidos e o servidor responde, realizando-os.

Um servidor multimédia é um computador com capacidade para armazenar, transmitir


e integrar todos os conteúdos multimédia envolvidos, especializado na transmissão rá-
pida dos dados, enquanto que o computador-cliente, através de um browser e de outro
software, é especializado na interpretação e na melhor reprodução dos dados.

Um servidor multimédia pode fisicamente corresponder, ou não, ao servidor Web. Este,


para além do sistema operativo, deve possuir software com capacidade para gerir com
segurança infraestruturas de aplicações e websites.

O quadro 7.2 apresenta alguns exemplos deste tipo de software para implementar um
servidor Web.

Quadro 7.2

Designação Sistema operativo Endereço

IIS (Internet Information Server] Windows http:/Awnww.microsoft.com


Linux
Apache Windows http:/Anww.apache.org

Linux
a Windows a
Xitami Open MVS http://www .xitami.com

Mac OS
BRS Web Weaver Windows http:/Aynww.brswebweaver
com
Linux
Windows
Cherokee Solaris http://cherokee-project.com
BSD
Mac OS
7. Divulgação de vídeos e som via rede 239

Num servidor multimédia tem de existir software com capacidade para transmitir con-
teúdos, utilizando determinadas tecnologias.

Existe no mercado software comercial de servidor para streaming de vídeo e áudio. De


seguida, apresentam-se alguns deles.

O Flumotion é um software de código aberto para implementar um servidor multimédia


em plataformas Linux, permitindo transmitir conteúdos de áudio e vídeo em vários forma-
tos em tempo real e a pedido.

O Helix Universal Media Server, o Wowza Streaming Engine, entre outros, são softwares
multiplataforma que permitem implementar um servidor multimédia e transmitir conteú-
dos de áudio e vídeo em vários formatos em tempo real e a pedido, para uma ampla gama
de clientes como, por exemplo, smartphones, tablets, televisores ligados à intemet e com-
putadores.

Do lado do cliente é também necessário ter software que permita reproduzir os conteú-
dos multimédia, nomeadamente áudio e vídeo.

Este software já foi referido em pontos anteriores.

Exercícios de aplicação 13

1. Indique os três métodos que podem ser utilizados para a divulgação de vídeo e som via rede.

2. Distinga os seguintes métodos:


a) streaming de download;
b) download de download progressivo;
c) download progressivo de streaming.

3. Identifique o tipo de arquitetura utilizada para ser possível disponibilizar conteúdos multimédia pela
Internet.

4. Diga o que entende por servidor multimédia.


AIB12 O Porto Editora

5. Dê dois exemplos de software que permitam a implementação de um servidor de websites.

6. Indique dois exemplos de software com capacidade para efetuar o streaming de vídeo.

Exclusivo
do Professor

Solução
Livros

BRUCE, Fries; MARTY, Fries — Digital Audio Essentials. O'Reilly, 2005.


BRUCE, Fries; MARTY, Fries — The MP3 and Internet Audio Handbook. TeamCom
Books, 2000.
CARDOSO, Bernardo — Vídeo digital no PC. FCA — Editora de Informática, 2008.
CAWSEY, Alison — The Essence of Artificial Intelligence. Prentice Hall Europe, 1998.
DUNN, Jason — Aprender Mais Vídeo Digital. McGraw-Hill, 2008.
GUMSTER, Jason Van — Gimp Bible. John Wiley and Sons Ltd, 2010.
HAWKINS, Jeff, BLAKESLEE, Sandra — On Intelligence. Owl Books, 2005.
KIRSANOV, Dmitry — The Book of Inkscape. No Starch Press, US, 2009.
KURZWEIL, Raymond — The Age of Intelligent Machines. The MIT Press, Rep edition,
1992.
MAYER, Richard E. — The Cambridge Handbook of Multimedia Learning. Cambridge
University Press, 2014.
NETTO, António Valério; MACHADO, Liliane dos Santos; OLIVEIRA, Maria Cristina
— Realidade Virtual: Fundamentos e Aplicações. Editora Visual Books, 2002.
RIBEIRO, Nuno Magalhães — Multimédia e Tecnologias Interativas. FCA — Editora de
Informática, 2012.
STUART, Rory — The Design of Virtual Environments. Barricade Books, 2001.
ZEIGLER, Bernard P. — Theory of Modeling and Simulation. Academic Press, 2000.

Sites

http:/Av
ww .colorcube.com
http://www .dafont.com
http://www .multimedia-downloads.com
http:/Avww .oddcast.com
http:/Avww.pcmag.com/encyclopedia index
http:/Awvww .cartoonsmart.com/cs index.php5
http://animation.about.com
http://vrlab.epfl.ch
http://training.tspi.swri.org
http://microsoft.com/express/windows
http://inkscape.org
http://www .gimp.org
http:/Awww .synfig.org/ems
Aplicações Informáticas B
Aplicações Informáticas B
12º ano

Autores
Dalila Fonseca
Deolinda Pacheco
Fernando Marques
Ricardo Soares

Design
Porto Editora

Editora
Porto Editora

ISBN
978-972-0-85336-3

2019

E Porto
Editora
Rua da Restauração,
365
4099-023 Porto | Portugal

www.portoeditorapt

Você também pode gostar