Aula 12 - IC/UFF

Propaganda
Informática I
Aula 12
http://www.ic.uff.br/~bianca/informatica1/
Aula 12 - 29/05/2006
1
Ementa
–
–
–
–
–
–
–
–
–
–
–
Histórico dos Computadores
Noções de Hardware e Software
Microprocessadores
Sistemas Numéricos e Representação de Dados
Estrutura e Organização da Informação
Linguagens de Programação
Sistemas Operacionais
Redes de Computadores e Internet
Engenharia de Software
Softwares Aplicativos
Aspectos Legais do Software
Aula 12 - 29/05/2006
2
Tipos de Linguagens de
Programação
• Linguagens de baixo nível: Assembler.
• Linguagens não estruturadas: Cobol e Basic.
• Linguagens procedurais: C, Pascal, Fortran,
Ada, Modula 2 e Modula 3.
• Linguagens orientadas a objeto: Simula,
Smalltalk, C++ e Java.
• Linguagens funcionais: Prolog, LISP e Scheme.
• Linguagens específicas: SQL, HTML, Perl.
• Linguagens visuais: Simulink, Visual Basic e
Delphi.
Aula 12 - 29/05/2006
3
Linguagens Procedurais vs.
Linguagens Funcionais
• Nas linguagens procedurais, a programação é
baseada na execução sequencial de comandos.
– Variáveis são definidas.
– Comandos alteram o valor das variáveis.
– Repetição é realizada através de comandos
explícitos (for, while).
• Nas linguagens funcionais, a programação é
feita somente através da definição de funções.
– Funções podem receber outras funções como
parâmetro.
– A repetição é feita através da recursão: uma função
chama a si mesma.
Aula 12 - 29/05/2006
4
Exemplo: Números de Fibonacci
• Os números de Fibonacci são uma
sequência definida recursivamente por:
• 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144,
233, 377, 610, 987, 1597, 2584, 4181,
6765, 10946, …
Aula 12 - 29/05/2006
5
Números de Fibonacci em
Linguagem Procedural (Pascal)
procedure Fibonacci(n:integer);
var F : array[1...n] of integer;
var i : integer;
begin
F[1] = 0;
F[2] = 1;
i := 3;
while (i<=n) do
begin
F[i] := F[i-1] + F[i-2];
i := i+1;
end;
end.
Aula 12 - 29/05/2006
6
Números de Fibonacci em
Linguagem Funcional (LISP)
(defun fib(n)
(if (<= n 2)
1
(+ (fib (- n 1))(fib (-n 2)))
)
)
Aula 12 - 29/05/2006
7
Exercício
• Programar a função fatorial em LISP:
(defun fatorial(n)
(if (<= n 1)
1
(* n (fatorial (-n 1)))
)
Aula 12 - 29/05/2006
8
Linguagem Lisp
• Foi inventada em 1958 por John McCarthy no MIT.
– Segunda linguagem de programação de alto nível, veio depois
de Fortran.
• O nome Lisp veio de “List Processing” = Processamento
de Listas.
– Listas são objetos básicos em Lisp.
– Trocadilho Lisp = “Lots of Irritant Stupid Parenthesis”.
• A linguagem foi muito utilizada em pesquisas na área de
Inteligência Artificial.
• Nos anos 80 e 90, vários dialetos de LISP foram
unificados no dialeto Common Lisp.
– Outro dialeto que sobrevive é o Scheme.
Aula 12 - 29/05/2006
9
Listas em Lisp
• Funções são chamadas através de listas.
– O primeiro elemento é o nome da função.
– Os outros elementos são parâmetros.
• (+ 3 4) ⇒ 7
• (* 5 (+ 2 5)) ⇒ 35
• (fatorial 4) ⇒ 24
• A função quote retorna os seus argumentos.
– (quote (1 2 3)) ⇒ (1 2 3)
– ‘(1 2 3) ⇒ (1 2 3)
• A função first retorna o primeiro elemento de uma lista.
– (first ‘(1 2 3)) ⇒ 1
• A função rest retorna a lista sem o primeiro elemento.
– (rest ‘(1 2 3)) ⇒ ‘(2 3)
Aula 12 - 29/05/2006
10
Prolog
• Foi criada em 1973 na França.
• O nome Prolog vem de “programmation
en logique”.
• É baseada na lógica de primeira de
ordem.
• O programa é uma declaração de fatos
lógicos formando uma base de
conhecimento à qual são feitas perguntas
(“queries”).
Aula 12 - 29/05/2006
11
Exemplo de programa Prolog
•
irmão(X,Y) :- mae(Z,X), mae(Z,Y).
irmão(X,Y) :- pai(X,Y), pai(Z,Y).
mãe(maria, felipe).
pai(joão, antonio).
pai(joão, guilherme).
pai(miguel, joão).
•
•
? irmão(antonio,guilherme)
? irmão(joão,guilherme)
Aula 12 - 29/05/2006
12
Números de Fibonacci
em Prolog
• Fib(0,0).
• Fib(0,1).
• Fib(n,F1+F2):-Fib(n-1,F1), Fib(n-2,F2).
• ? Fib(10, F).
F = 55.
Aula 12 - 29/05/2006
13
Linguagens Específicas
• São linguagens que tem uma finalidade
específica, ao contrário das linguagens de
propósito geral.
– Linguagens para banco de dados: Clipper e
SQL.
– Linguagens de simulação: Matlab,
Mathematica, R.
– Linguagens de scripts: Perl, TCL/TK.
– Linguagens de formatação de textos: HTML,
PostScript, PDF.
Aula 12 - 29/05/2006
14
HTML
• HTML = HyperText Markup Language
• É uma linguagem de marcação usada
para produzir páginas (estáticas) da web.
• Utiliza marcações conhecidas como “tags”
(etiquetas) que determinam a formatação
do texto, imagem e outros elementos.
• Foi definida por Tim Berners-Lee no início
dos anos 90.
Aula 12 - 29/05/2006
15
Tipos de Tag em HTML
• Marcação de apresentação:
– Define a aparência do texto
• <b>negrito</b> mostra a palavra negrito em negrito.
• <i>itálico</i> mostra a palavra itálico em itálico.
• Marcação de estrutura
– Define o propósito do texto
• <h1>Título</h1> indica para o browser que a palavra título
deve ser mostrada como um título de nível 1.
• Marcação de hiper-texto
– Define links para outras páginas
• <a href =http://www.ic.uff.br/~bianca>Minha Página</a>
Aula 12 - 29/05/2006
16
Tags Básicas
<html>: Define o início de um documento HTML.
<head>: Define o cabeçalho de um documento HTML.
<body>: Define o conteúdo principal do documento.
Dentro do cabeçalho (tag "<head>") podemos encontrar:
<title>: Define o título da página, que é exibido na barra de título dos browsers.
<style>: Define formatação em CSS.
<script>: Define programação de certas funções em página com scripts
<meta>: Define propriedades da página, como codificação de caracteres, autor, etc.
Dentro do corpo (tag "<body>") podemos encontrar outras várias tags, como por exemplo:
<h1>, <h2>,... <h6>: cabeçalhos e títulos no documento em diversos tamanhos.
<p>: novo parágrafo.
<br>: quebra de linha.
<table>:cria uma tabela (linhas são criadas com <TR> e novas células com <TD>).
<div>: determina uma divisão na página que pode possuir variadas formatações.
<font>: forma um texto (fonte, cor e tamanho) de um trecho do texto.
<b>, <i>, <u> e <s>: negrito, itálico, sublinhado e riscado, respectivamente.
<img>: imagem.
<a>: hiperlink para uma página, ou para um endereço de E-mail.
Aula 12 - 29/05/2006
17
Página simples
<html>
<head><title>Minha página</title></head>
<body>
<h1>Primeiro Título</h1>
<b>Negrito</b>
<h2>Segundo Título</h2>
<i>Itálico</i>
</body>
</html>
Aula 12 - 29/05/2006
18
Download