FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO
Mestrado Gestão de Informação
Exame, 5 de Julho 1999
DURAÇÃO MÁXIMA 3 horas
1
Internet (5.0 valores)
1.1 Em seu entender, que importância têm os RFCs (Request for Comments) para o desenvolvimento da
Internet?
1.2 Indique justificadamente duas razões que tenham contribuído significativamente para a afirmação da
Internet.
1.3 Afirma-se que a Internet é uma rede sem um nó central. O que significa esta afirmação e quais as
vantagens de tal arquitectura?
1.4 Pode afirmar-se que no início dos anos 70 surgiram as comunicações mediadas por computador e nos
anos 80 surgiram as primeiras comunidades virtuais. Justifique esta afirmação.
2
HTML (9.0 valores)
2.1 Explique o efeito do seguinte fragmento de código HTML:
<table border=5 cellpadding=10>
<tr>
<td align=center border=0>Europa</td>
</tr>
<caption align=bottom>A lenta construção.</caption>
<tr>
<td>De pequenino se chega a ...</td>
<td>... grande</td>
</tr>
<tr>
<td><table border=1>
<tr><td colspan="3" align=center>Benelux</td></tr>
<tr>
<td>Bélgica</td>
<td>Holanda</td>
<td>Luxemburgo</td>
</table></td>
<td>União Europeia</td>
</tr>
</table>
2.2 Considere que os três ficheiros seguintes (docVinho.html, estilo1.css, estilo2.css) se encontram no
mesmo directório. Explique qual o resultado de abrir o primeiro com um navegador.
Ficheiro docVinho.html:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
"http://www.w3.org/TR/REC-html40/loose.dtd">
<HTML>
<HEAD>
<TITLE>title</TITLE>
<LINK rel="stylesheet" type="text/css"
href="estilo1.css"
title="folhageral">
<STYLE type="text/css"><[email protected] url(estilo2.css);
H1 { color: silver; size: larger; }
--></STYLE>
</HEAD>
LÍGIA MARIA RIBEIRO
1/5
28-05-17 16:26
FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO
<BODY>
<H1>O <em>Vinho</em> do Porto</H1>
<P>O Vinho do Porto é produzido a partir das uvas cultivadas
no <em>Alto Douro</em>, entre a Régua e o Pocinho.</P>
<P style="color: yellow">Tradicionalmente, as uvas eram transportadas
para o Porto em <em>barcos rabelos</em>.</P>
<H2 class=actual>Século XX</H2>
<P class=actual>Actualmente, o mosto é enviado em <em>camiões</em>
depois de devidamente processado.</P>
<P>Percurso: <code>Pocinho - Tua - Pinhão - Régua - Gaia</code></P>
</BODY>
</HTML>
Ficheiro estilo1.css:
H1, H2, H3, H4, H5, H6 {color: red; font-style: italic}
P.actual {font-style: italic; font-size: 12pt; text-indent: 3em}
P {font-style: normal; color: green}
H1 EM { color: blue; }
EM { color: brown; }
Ficheiro estilo2.css:
CODE { font: 12pt Courier; color: black; }
2.3 Escreva o código HTML que lhe permitiria obter uma estrutura semelhante à da figura que se
apresenta em seguida. Justifique cada instrução principal.
LÍGIA MARIA RIBEIRO
2/5
28-05-17 16:26
FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO
2.4 O que entende por CGI (Common Gateway Interface)?
2.4.1. Explique, usando a figura, como funciona a interacção entre o navegador e os servidores nos
computadores B e C, quando o utilizador selecciona a ligação indicada no docu1.html. Indique a
sintaxe de um URL que possa traduzir esta ligação.
[responder a apenas uma das duas variantes da pergunta 3]
3 Ferramentas de Publicação na Web (6.0 valores)
3.1 Apesar de os documentos HTML serem documentos de texto ASCII, a sua criação e alteração através
de editores de texto começa a não ser viável, sobretudo para sítios Web de grande dimensão.
3.1.1. Comente esta afirmação;
3.1.2. Faça referência à ou às ferramentas que utilizou para criar as suas páginas no SiFEUP.
Relativamente a essa(s) ferramenta(s), que funcionalidades lhe parecem merecer destaque e que
deficiências notou.
3.2 Refira e justifique três regras de boa prática, que considere fundamentais, na criação de documentos
HTML.
3
Java (6.0 valores)
3.1 Explique os aspectos mais importantes do funcionamento do programa abaixo listado, o qual apresenta
a interface seguinte:
3.2 Como deverá ter reparado, falta o código da classe PainelData. Defina essa classe de forma a
constituir um elemento gráfico especializado na especificação de datas, facilmente utilizável numa
interface. Defina só o que for necessário para o programa TestaFicheiros.
LÍGIA MARIA RIBEIRO
3/5
28-05-17 16:26
FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
import java.awt.*;
import java.io.*;
import java.util.Date;
import java.text.SimpleDateFormat;
public class TestaFich extends java.awt.Frame {
int profundidadeMaxima= 10;
File ficheiro;
SimpleDateFormat formatoData= new SimpleDateFormat("yyyy-MM-dd");
Date dataMinima;
TextField enter;
TextArea saida;
PainelData especificaData;
public TestaFich() {
super("Ficheiros recentes");
setLayout( new BorderLayout() );
Panel defRaiz= new Panel();
Label etiq= new Label("Directório");
enter= new TextField( 40 );
Label etiq2= new Label("Data mínima");
especificaData= new PainelData();
saida= new TextArea( 20, 30 );
defRaiz.add( etiq );
defRaiz.add( enter );
defRaiz.add( etiq2 );
defRaiz.add( especificaData );
add( "North", defRaiz );
add( "Center", saida );
resize(700,400);
show();
}
public boolean action( Event e, Object o ){
if(e.target==enter){
saida.setText("");
dataMinima= especificaData.getData();
ficheiro = new File( o.toString() );
if ( ficheiro.exists() ) {
saida.appendText(ficheiro.getAbsolutePath() + "\n\n");
mostra( ficheiro, 0 );
}
else {
saida.appendText( o.toString() + " nao existe.\n" );
}
}
return true;
}
public boolean handleEvent( Event evento ){
if (evento.id == Event.WINDOW_DESTROY ) {
hide();
dispose();
System.exit( 0 );
return true;
}
return super.handleEvent( evento );
}
public static void main (String args[] ) {
TestaFich f = new TestaFich();
}
LÍGIA MARIA RIBEIRO
4/5
28-05-17 16:26
FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
/**
* mostra info de uma subarvore
*/
private void mostra ( File fich, int profundidade ) {
Date d= new Date(fich.lastModified());
if(d.after(dataMinima)){
for( int i=0; i<profundidade; i++ ){
saida.appendText( "\t" );
}
saida.appendText( fich.getAbsolutePath() +
(fich.isFile() ? "\t" : "/\t")+
formatoData.format(d) +
"\t" + fich.length() + "\n" );
}
if (profundidade < profundidadeMaxima && fich.isDirectory() ) {
String dir[] = fich.list();
for ( int i=0; i < dir.length; i++ ){
File filho= new File( fich, dir[i] );
mostra( filho, profundidade+1 );
}
}
return;
}
}
//TestaFich
LÍGIA MARIA RIBEIRO
5/5
28-05-17 16:26