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"><!-@import 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