Linguagens Lógicas. Introdução
|
|
- Giovanni Damásio Valente
- 8 Há anos
- Visualizações:
Transcrição
1 Linguagens Lógicas 1 Introdução Em LPs imperativas um programa é composto por uma sequência de comandos que representam as atividades computacionais que serão executadas. O programador deve portanto especificar claramente como realizar o processamento desejado, ou seja, como é o algoritmo. Em LPs lógicas um programa consiste na definição de relações lógicas que devem ser satisfeitas pela solução procurada. A busca por uma solução acontece automaticamente através de regras de inferência. mleal@inf.puc-rio.br 2
2 Introdução Programar em uma LP lógica consiste em: Declarar fatos primitivos sobre um domínio; Definir regras que expressam relações entre os fatos de um domínio; Fazer perguntas sobre um domínio. O processo de dedução através do qual encontram-se respostas às perguntas é executado automaticamente pelo sistema. mleal@inf.puc-rio.br 3 1. Aves botam ovos. Exemplo 2. Mamíferos não botam ovos. 3. Baleias são mamíferos. 4. Baleias botam ovos? Não. 5. Quem bota ovos? Aves. mleal@inf.puc-rio.br 4
3 Fatos Uma forma de declarar um fato como uma baleia é um mamífero é: mamifero (baleia). Para representar o fato Bruno gosta de Ana podemos escrever: gostar(bruno, ana) Repare que este fato é diferente de Ana gosta de Bruno : gostar(ana, bruno) Nas expressões acima gostar é o predicado do fato, representando uma relação entre os argumentos. mleal@inf.puc-rio.br 5 Fatos Outros exemplos de fatos campeao(flamengo). vender(marcelo,carro,carlos). chuva. Esta sintaxe não corresponde a invocação de uma função!!! mleal@inf.puc-rio.br 6
4 Regras A declaração de regras (axiomas) em LPs lógicas segue um padrão conhecido como cláusulas de Horn: H A 1,A 2,..., A n se todos os A i são verdadeiros, então H é verdadeiro. Na expressão acima, H é denominado a cabeça da cláusula e A 1,A 2,..., A n é o seu corpo. Através de regras pode-se estabelecer relações entre fatos. mleal@inf.puc-rio.br 7 Resolução Para descobrir novas relações uma LP lógica utiliza um processo conhecido como resolução. O corpo de uma cláusula é equivalente a sua cabeça, e ambos podem ser substituídos livremente em outras cláusulas para formar novas regras. C A,B D C D A,B Através do processo de resolução uma LP lógica é capaz de provar a validade de proposições. mleal@inf.puc-rio.br 8
5 Banco de Dados O conjunto de fatos e relações contidos em um programa lógico é denominado banco de dados, e representa o conhecimento sobre um ou mais domínios. O objetivo de um programa lógico é inferir e validar novos fatos ou relações a partir do banco de dados. mleal@inf.puc-rio.br 9 Prolog Foi desenvolvida no início da década de 70 para ser usada na prova de teoremas. Ainda hoje é a mais popular e principal LP lógica. É bastante utilizada em sistemas especialistas. Em Prolog um programa é composto por fatos e regras. mleal@inf.puc-rio.br 10
6 Fatos em Prolog Fatos em Prolog são representados através de átomos ou estruturas. Átomos são strings que começam sempre com letra minúscula: esta_chovendo. dinheiro. joao. 11 Fatos em Prolog Estruturas são átomos seguidos de uma lista de argumentos entre parânteses: pred (arg1, arg2,..., argn). onde: pred - nome de um predicado arg1,... argn - argumentos N - número de argumentos (aridade). - final sintático de qualquer cláusula Prolog mleal@inf.puc-rio.br 12
7 Fatos em Prolog Os argumentos de uma estrutura podem ser átomos, estruturas, variáveis e números. Exemplos: caro(diamente). amigo(joana, patricia). arvore_bin(valor1, arvore_bin(valor2, valor3)). quantidade(24). Estruturas representam relações entre os argumentos, ou seus predicados. mleal@inf.puc-rio.br 13 Variáveis Em LPs imperativas variáveis são instanciadas através de operações explícitas de atribuição. Em LPs lógicas variáveis geralmente são instanciadas implicitamente pelo sistema durante o processo de resolução. São usadas basicamente para extrair informações do banco de dados, e para expressar relações entre fatos. Variáveis em Prolog são representadas por strings que começam com uma letra maiúscula. mleal@inf.puc-rio.br 14
8 Exemplos offroad(x):- carro(x),tracao4x4(x), suspensaoreforcada(x). frio(groelandia).?-frio(x). x=groelandia. 15 Questões Questões são representados por fatos precedidos por -?.?-gostar(bruno, ana). Informalmente: : Bruno gosta de Ana? Formalmente: : É possível provar a partir dos fatos conhecidos pelo programa que a relação gostar(bruno, ana) é verdadeira? mleal@inf.puc-rio.br 16
9 Exemplos animal (cachorro) animal (gato)?-animal(cachorro). yes?-animal(x) X = cachorro; X = gato; yes mleal@inf.puc-rio.br 17 Unificação Para tentar provar um fato Prolog precisa estabelecer a equivalência entre fatos. Dois fatos equivalentes são ditos unificáveis. Dois átomos são unificáveis apenas se são idênticos. Duas estruturas são unificáveis se o seu predicado é idêntico, e se seus argumentos são unificáveis. mleal@inf.puc-rio.br 18
10 Unificação Uma variável é unificável a qualquer coisa. Durante o processo de resolução, uma variável é instanciada com um valor que permite a sua unificação com um símbolo correspondente de um outro fato. O símbolo = em prolog representa unificação. mleal@inf.puc-rio.br 19 Exemplos fruta(manga).?-fruta(x). X = manga X foi unificada com manga gostar(bruno,ana).?-gostar(bruno,x). X = ana X foi unificada com ana?-x=sol. X=sol X foi unificada com sol?-sol=sol. yes sol foi unificado com sol mleal@inf.puc-rio.br 20
11 Regras em Prolog Regras são representadas como cláusulas de Horn seguindo a sintaxe: pred(x1,...,xn):- pred1(x1,...,xn),...,predn(x1,...,xn). se os predicados 1 a n são verdadeiros para as variáveis Xi, então o predicado pred é verdadeiro para as variáveis Xi. A variável representa portanto o símbolo para o qual a regra é verdadeira. mleal@inf.puc-rio.br 21 Exemplos pai(joao,joaquim). pai(joaquim,manuel). avo(x,y):-pai(z,y),pai(x,z).?-avo(joao,z). Z=manuel?-avo(joao,manuel). yes. mleal@inf.puc-rio.br 22
12 Conjunções Conjunções permitem a especificação de questões com múltiplas condições que devem ser satisfeitas simultaneamente. Conjunções são representadas por uma vígula (, ). Exemplo:?- localizacao(x,cozinha), comida(x), gostoso(x). Existe alguma comida gostosa na cozinha? mleal@inf.puc-rio.br 23 Disjunções Disjunções permitem a especificação de questões com múltiplas condições na qual ao menos uma delas deve ser satisfeita. Disjunções são representadas por um ponto-e- vírgula ( ; ). Exemplos:?-amigos(X,Y); parentes(x,y). inverno(x):- nevando(x); gelado(x). É inverno se está nevando ou está gelado. mleal@inf.puc-rio.br 24
13 Fluxo de Controle Prolog possui um fluxo de controle implícito através do qual busca responder uma questão. Este fluxo é determinístico, ou seja segue sempre uma mesma ordem: O banco de dados é percorrido sequencialmente na ordem em que os fatos\regras foram declarados. Para cada predicado correto encontrado, os argumentos são testados em ordem. Para cada regra,, as condições são testadas sempre da esquerda para a direita. mleal@inf.puc-rio.br 25 Exemplo tropical(caribe). (1) tropical(havai). praia(havai). praia(caribe). (2) bonito(havai). bonito(caribe). (3) paraiso_tropical(x):-tropical(x),praia(x), tropical(x),praia(x), bonito(x).?-paraiso_tropical(x). X=caribe; X is caribe true X is caribe true X is caribe tropical praia bonito true mleal@inf.puc-rio.br 26
14 Fluxo de Controle Variáveis são instanciadas implicitamente com valores que permitem a unificação da estrutura. Assim que uma associação válida for encontrada, os valores com os quais as variáveis foram instanciadas são impressos. Apenas a primeira associação válida é impressa. Para que todas as associações válidas possam ser encontradas basta digitar um ; após cada resultado apresentado por Prolog. mleal@inf.puc-rio.br 27 Fluxo de Controle Implícito Para provar questões mais complexas Prolog pode ser obrigado a testar várias vezes a mesma condicão, instanciando uma mesma variável com diferentes valores. A sequência com que os fatos e regras são testados portanto não é necessariamente linear, e segue um caminho semelhante a uma árvore. O processo de retornar para uma condicão e testá-la novamente é denominado backtracking. mleal@inf.puc-rio.br 28
15 Exemplos surf(vitor). surf(renan). surf(teco). skate(vitor). skate(teco). moto(renan). moto(teco). radical(x):-surf(x),skate(x),moto(x).?-radical(x). teco. 29 Exemplo radical(x):-surf(x),skate(x),moto(x). radical(x) surf(x) skate(x) moto(x) X is vitor X is renan X is teco X is vitor X is renan X is teco X is vitor x is teco surf true skate false skate true moto false moto true mleal@inf.puc-rio.br 30
16 Modificando o Fluxo de Execução Prolog oferece dois comandos que permitem alterar o fluxo natural de execução. cut:! fail Usado para impedir o backtracking. Ao ser ultrapassada, não permite retorno. Faz com que a busca sempre falhe, provocando backtracking. Usado em combinação com! para gerar um not. mleal@inf.puc-rio.br 31 Exemplos not(p):- call(p),!,fail;true. gosta(maria,x):- cobra(x),!, fail; animal(x). statement:- condition,!, then_part; else_part. filosofo(x) :-: intelectual(x),grego(x). intelectual(platao). intelectual(socrates). grego(platao). grego(socrates). listar_filosofos:- write( Filosofos: ), nl, filosofo(x),write(x),nl, fail. mleal@inf.puc-rio.br 32
17 Igualdade Em Prolog existem quatro operadores que representam igualdade: 1. X == Y Relação de identidade. É verdadeiro apenas se X e Y são idênticos (representam a mesma variável ou o mesmo símbolo). 2. X = Y - Unificação. É verdadeiro se X é unificável com Y. 3. X =:= Y Significa calcule X, calcule Y e teste sua igualdade. X e Y devem ser expressões aritméticas. 4. X is Y - Significa ``calcule Y e unifique X com Y''. Y deve ser uma expressão aritmética. mleal@inf.puc-rio.br 33 Aritmética O operador is é o mais utilizado em operações aritméticas, e força a instanciação de variáveis. Exemplos?- X is 1+2 X = 3?-1+2 is 4-14 no fib(0,1). fib(1,1). fib(x,r):- A is X-1, X B is X-2, X fib(a,r1), fib(b,r2), R is R1+R2. mleal@inf.puc-rio.br 34
18 Listas Prolog suporta uma notação especial para representar listas. Uma lista genérica tem a seguinte sintaxe: [elem1, elem2,..., elemn] Para manipular uma lista pode-se utilizar a notação [H T] onde H representa o primeiro elemento da lista e T os demais elementos. member(x, [X T]). member(x, [H T]):- member (X, T). last(x,[x]). last(x, [H T]):- last (X, T). mleal@inf.puc-rio.br 35 Predicados da Linguagem asserta(x) - adiciona a cláusula X no início do banco de dados. assertz(x) - adiciona a cláusula X no final do banco de dados. retract(x) - remove a cláusula X do banco de dados. call(x) tenta satisfazer a cláusula X. mleal@inf.puc-rio.br 36
19 I/O see(arq arq) redireciona o input para o arquivo arq. seeing(arq arq) unifica arq com o input corrente. seen - fecha o input corrente. tell(arq arq) redireciona o output para o arquivo arq. telling(arq arq) unifica arq com o output corrente. told - fecha o output corrente. mleal@inf.puc-rio.br 37 I/O read(term) lê o próximo termo (string) do arquivo corrente. Retorna end_of_file se eof. write(term) imprime Term no output corrente. get0(n) lê o próximo caracter do input corrente e unifica o seu código ASCII com N. Retorna 11 se eof. get(n) lê o próximo caracter não nulo do input corrente e unifica o seu código ASCII com N. Retorna 11 se eof. put(n) imprime o caracter correspondente ao ASCII N no output corrente. nl imprime um newline. tab(n) imprime N espaços. mleal@inf.puc-rio.br 38
20 Gramáticas de Cláusulas Definidas Gramáticas de Cláusulas Definidas (definite clause grammars - DCGs) estendem gramáticas livres de contexto permitindo o uso de argumentos ou procedimentos embutidos nas produções (cláusulas). Prolog suporta diretamente a definição de DCGs através de uma sintaxe especial. Através deste mecanismo é fácil construir parsers para qualquer gramática livre de contexto. mleal@inf.puc-rio.br 39 Exemplo Considera a seguinte gramática: <frase> ::= <sintagma nominal > <predicado>. <sintagma nominal > ::= <artigo> <substantivo> <predicado> ::= <verbo> <verbo> <sintagma nominal > <artigo> ::= a o <substantivo> ::= menino menina gato cachorro <verbo> ::= viu mordeu dormiu chamou mleal@inf.puc-rio.br 40
21 Exemplo A partir da frase o cachorro mordeu o gato. podemos criar o seguinte grafo: o cachorro mordeu o gato Para respresentar um sintagma nominal podemos usar a regra: sintagmanominal(k,l) :-: artigo(k,m), substantivo(m,l). sintagmanominal(1,3) :-: artigo(1,2), substantivo(2,3). onde os argumentos indicam os nós do grafo. mleal@inf.puc-rio.br 41 Exemplo frase(k,l) :-: sintagmanominal(k,m), predicado(m,n), period(n,l). sintagmanominal(k,l) :-: artigo(k,m), substantivo(m,l). predicado(k,l) :-: verbo(k,m), sintagmanominal(m,l). predicado(k,l) :-: verbo(k,l). artigo(k,l) :-: o(k,l). artigo(k,l) :-: a(k,l). substantivo(k,l) :-: menino(k,l). substantivo(k,l) :-: menina(k,l). substantivo(k,l) :-: gato(k,l). substantivo(k,l) :-: cachorro(k,l). verbo(k,l) :-: viu(k,l). verbo(k,l) :-: mordeu(k,l). verbo(k,l) :-: dormiu(k,l). verbo(k,l) :-: chamou(k,l). mleal@inf.puc-rio.br 42
22 Exemplo o(1,2). cachorro(2,3). mordeu(3,4). o(4,5). gato(5,6). ponto(6,7).?- frase(1,7). yes?- frase(x,y). X = 1 Y = 7 yes <frase> <predicado> <sintagma nominal > <sintagma nominal > o cachorro mordeu o gato mleal@inf.puc-rio.br 43 DCG Para representar uma DCG deve-se definir as cláusulas usando o operador -- -->. Os terminais são indicados entre colchetes ( [ ]). Terminais podem conter argumentos. Pode-se especificar rotinas a serem executadas durante a validação de uma cláusula através de chaves ({ }). mleal@inf.puc-rio.br 44
23 Exemplo frase --> > sintagmanominal, predicado, ['.']. ']. sintagmanominal --> > artigo, substantivo. predicado --> > verbo, sintagmanominal. predicado --> > verbo. artigo --> > [o]; [a]. substantivo --> > [menino] ; [menina] ; [cachorro] ; [gato]. verbo --> > [viu] ; [chamou] ; [dormiu] ; [mordeu]. mleal@inf.puc-rio.br 45 Exemplo frase(fr(n,p)) --> > sintagmanominal(n), predicado(p), ['.']. sintagmanominal(sintagn(d,n)) --> > artigo(d), substantivo(n). predicado(pred(v,n)) --> > verbo(v), sintagmanominal(n). predicado(pred(v)) --> > verbo(v). artigo(art(o)) --> > [o]. artigo(art(a)) --> > [a]. substantivo(sub (menino)) --> > [menino]. substantivo(sub (menina)) --> > [menina]. substantivo(sub (gato)) --> > [gato]. substantivo(sub (cachorro)) --> > [cachorro]. verbo(verb(viu)) --> > [viu]. verbo(verb(mordeu)) --> > [mordeu]. verbo(verb(dormiu)) --> > [dormiu]. verbo(verb(chamou)) --> > [chamou]. mleal@inf.puc-rio.br 46
24 Exemplo?- frase(f, [o,cachorro,mordeu,o,gato,'.'], []). F = fr(sintagn(art(o), sub (cachorro)), pred(verb(mordeu), sintagn(art(o), sub(gato)))) yes?- predicado(f, [mordeu,o,gato], []). F = pred(verbo(mordeu), sintagn(art(o), sub(gato))) yes mleal@inf.puc-rio.br 47 Scanner <num> ::= <digito> <digito><num>. <num> ::= <digito> <restnum>. <restnum> ::= ε <digito><num>. getnum(c,n) :-: digit(c), get0(d), restnum(d,lc), name(n,[c Lc]). restnum(c,[c Lc]) :-: digit(c), get0(d), restnum(d,lc). restnum(c,[]). mleal@inf.puc-rio.br 48
25 Scanner scan([t Lt]) :-: getch(c), gettoken(c, T, D), restprog(t, D, Lt),!. getch(c) :-: get0(c), (endline(c),nl; endfile(c), nl ; put(c)). restprog(eop, C, []). restprog(t, C, [U Lt]) :-: gettoken(c, U, D), restprog(u, D, Lt). mleal@inf.puc-rio.br 49 Invocando Rotinas scanp :-: nl, write('scan & Parse'), nl, nl, write('enter name of source file: '), nl, getfilename(filename), nl, see(filename), scan(tokens), seen, write('scan ok'), nl,!, write(tokens), nl, nl, parse(parsetree,tokens), write('parse ok'), nl,!, write(parsetree), nl, nl. getfilename(w) :-: get0(c), restfilename(c,cs), name(w,cs). restfilename(c,[c Cs]) :-: filechar(c), get0(d), restfilename(d,cs). restfilename(c,[]). mleal@inf.puc-rio.br 50
Linguagens Lógicas. Alunos: Josiane Novais Cláudio Moisés
Linguagens Lógicas Alunos: Josiane Novais Cláudio Moisés Declarativos em vez de baseados em procedimentos Sintaxe diferente das linguagens imperativas e funcionais. Semântica é pouco semelhante a linguagem
Leia maisObjetos Estruturados Listas Recursão Exercícios. Inteligência Artificial
Prolog Objetos Estruturados Objetos Estruturados Listas Recursão Exercícios Inteligência Artificial Exercícios Relembrando a introdução: 1. Escreva um programa Prolog para representar: João nasceu em Campos
Leia maisLinguagens Lógicas. Aluno: Victor Rocha
Linguagens Lógicas Aluno: Victor Rocha Roteiro Introdução Cálculo de Predicados Proposições Conectores Lógicos Variáveis Tipos de Cláusulas fatos regras Banco de Dados Prolog Fatos em Prolog Questões Unificação
Leia maisSintaxe e Semântica. Fases da Compilação. programa fonte
Sintaxe e Semântica mleal@inf.puc-rio.br Fases da Compilação programa fonte tokens parse tree árvore anotada ou outra forma intermediária código intermediário código objeto código objeto otimizado scanner
Leia maisPráticas de Programação em Lógica. José Romildo Malaquias
Práticas de Programação em Lógica José Romildo Malaquias 9 de março de 2010 2 Sumário 1 Execução de programas em Prolog 1-1 1.1 Objetivos........................................ 1-1 1.2 Conceitos........................................
Leia maisCurso: Ciência da Computação Disciplina: Construção de Compiladores Período: 2010-1 Prof. Dr. Raimundo Moura
UFPI CCN DIE Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: 2010-1 Prof. Dr. Raimundo Moura O projeto Desenvolver um compilador de um subconjunto básico da linguagem PORTUGOL.
Leia maisLinguagem Lógica Prolog
Linguagem Lógica Prolog Linguagens de Programação Departamento de Computação Universidade Federal de Sergipe Conteúdo O que é diferente na Programação Lógica Cláusulas, Fatos, Regras e Predicado Objetos
Leia maisLinguagem algorítmica: Portugol
Programação de Computadores I Aula 03 Linguagem algorítmica: Portugol José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/34 Introdução I Lógica A lógica é usada
Leia maisResolução de problemas e desenvolvimento de algoritmos
SSC0101 - ICC1 Teórica Introdução à Ciência da Computação I Resolução de problemas e desenvolvimento de algoritmos Prof. Vanderlei Bonato Prof. Cláudio Fabiano Motta Toledo Sumário Análise e solução de
Leia maisALGORITMOS PARTE 01. Fabricio de Sousa Pinto
ALGORITMOS PARTE 01 Fabricio de Sousa Pinto Algoritmos: Definição 2 É uma sequência de instruções finita e ordenada de forma lógica para a resolução de uma determinada tarefa ou problema. Algoritmos 3
Leia maisIntrodução à Programação
Introdução à Programação Introdução a Linguagem C Construções Básicas Programa em C #include int main ( ) { Palavras Reservadas } float celsius ; float farenheit ; celsius = 30; farenheit = 9.0/5
Leia maisAlgoritmo. Linguagem natural: o Ambígua o Imprecisa o Incompleta. Pseudocódigo: o Portugol (livro texto) o Visualg (linguagem) Fluxograma
Roteiro: Conceitos básicos de algoritmo, linguagem, processador de linguagem e ambiente de programação; Aspectos fundamentais da organização e do funcionamento de um computador; Construções básicas de
Leia maisIntrodução a Algoritmos Parte 04
Universidade Federal do Vale do São Francisco Curso de Engenharia de Computação Introdução a Algoritmos Parte 04 Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br www.univasf.edu.br/~jorge.cavalcanti
Leia maisArmazenamento de Dados. Prof. Antonio Almeida de Barros Junior
Armazenamento de Dados Prof. Antonio Almeida de Barros Junior 1 Armazenamento de Dados Todos os dados que utilizamos até o momento, ficavam armazenados apenas na memória. Ao final da execução dos programas,
Leia maisInformática I. Aula 6. http://www.ic.uff.br/~bianca/informatica1/ Aula 6-12/09/2007 1
Informática I Aula 6 http://www.ic.uff.br/~bianca/informatica1/ Aula 6-12/09/2007 1 Ementa Noções Básicas de Computação (Hardware, Software e Internet) HTML e Páginas Web Internet e a Web Javascript e
Leia maisTabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008
Tabela de Símbolos Análise Semântica A Tabela de Símbolos Fabiano Baldo Após a árvore de derivação, a tabela de símbolos é o principal atributo herdado em um compilador. É possível, mas não necessário,
Leia maisLinguagem e Técnicas de Programação I Programação estruturada e fundamentos da linguagem C
Linguagem e Técnicas de Programação I Programação estruturada e fundamentos da linguagem C Prof. MSc. Hugo Souza Material desenvolvido por: Profa. Ameliara Freire Continuando as aulas sobre os fundamentos
Leia maisAluísio Eustáquio da Silva
1 Aluísio Eustáquio da Silva SciLab Programável Material didático usado em aulas de Programação de Computadores, Algoritmos e Lógica de Programação Betim Maio de 2012 2 PROGRAMAÇÃO O SciLab permite que
Leia maisOrientação a Objetos
1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou
Leia maisRoteiro 1: Dados, variáveis, operadores e precedência
1. Introdução Universidade Federal do ABC Disciplina: Processamento da Informação (BC-0505) Assunto: Dados, variáveis, operadores e precedência Roteiro 1: Dados, variáveis, operadores e precedência Nesta
Leia maisLicenciatura em Engenharia Informática Departamento de Engenharia Informática Instituto Superior de Engenharia do Porto
Licenciatura em Engenharia Informática Departamento de Engenharia Informática Instituto Superior de Engenharia do Porto Sandra Manuela Lemos Machado Versão 2 Março 2002 Criticas e sugestões: smachado@dei.isep.ipp.pt
Leia mais5 - Vetores e Matrizes Linguagem C CAPÍTULO 5 VETORES E MATRIZES
CAPÍTULO 5 5 VETORES E MATRIZES 5.1 Vetores Um vetor armazena uma determinada quantidade de dados de mesmo tipo. Vamos supor o problema de encontrar a média de idade de 4 pessoas. O programa poderia ser:
Leia maisAlgoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br
(Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br Introdução O computador como ferramenta indispensável: Faz parte das nossas vidas; Por si só não faz nada de útil; Grande capacidade de resolução
Leia maisProgramação Funcional. Capítulo 13. Mônadas. José Romildo Malaquias. Departamento de Computação Universidade Federal de Ouro Preto 2013.
Programação Funcional Capítulo 13 Mônadas José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2013.1 1/42 1 Mônadas 2 Entrada e saída 3 Expressão do 4 Computações que podem
Leia maisPARSER: UM ANALISADOR SINTÁTICO E SEMÂNTICO PARA SENTENÇAS DO PORTUGUÊS
Estudos Lingüísticos XXVI (Anais de Seminários do GEL) Trabalho apresentado no XLIV Seminário do GEL na UNITAU - Taubaté, em 1996 UNICAMP-IEL Campinas (1997), 352-357 PARSER: UM ANALISADOR SINTÁTICO E
Leia maisLógica Computacional. Argumentos válidos e sólidos. Métodos de Demonstração. Demonstrações formais. Regras de Inferência Igualdade
Lógica Computacional Argumentos válidos e sólidos Métodos de Demonstração Demonstrações formais Regras de Inferência Igualdade Não-consequências lógicas 6 Março 2013 Lógica Computacional 1 Argumentos Exemplo:
Leia maisGeração de código. Ivan Ricarte INTRODUÇÃO À COMPILAÇÃO
Geração de código Ivan Ricarte 2008 Sumário Geração de código intermediário Código de três endereços Notação pós-fixa Otimização de código Heurísticas de otimização Geração de código em linguagem simbólica
Leia maisLinguagens de Programação Aula 15
Linguagens de Programação Aula 15 Celso Olivete Júnior olivete@fct.unesp.br Na aula passada Linguagem Haskell 2 Na aula de hoje Paradigma Lógico Linguagem Prolog (PROgrammation en LOGique) 3 Introdução
Leia maisAlgoritmos I Aula 13 Java: Tipos básicos, variáveis, atribuições e expressões
Algoritmos I Aula 13 Java: Tipos básicos, variáveis, atribuições e expressões Professor: Max Pereira http://paginas.unisul.br/max.pereira Ciência da Computação Primeiro Programa em Java public class OlaPessoal
Leia maisIntrodução à Linguagem
Introdução à Linguagem Curso de Nivelamento do PPGMNE Janeiro / 2011 Juliano J. Scremin jjscremin@jjscremin.t5.com.br Um pouco de história Um pouco de história: Nascimento do Python Um pouco de história:
Leia maisVetores. Vetores. Figura 1 Exemplo de vetor com 10 elementos
Vetores Nos capítulos anteriores estudamos as opções disponíveis na linguagem C para representar: Números inteiros em diversos intervalos. Números fracionários com várias alternativas de precisão e magnitude.
Leia maisDiagrama de Classes. Um diagrama de classes descreve a visão estática do sistema em termos de classes e relacionamentos entre as classes.
1 Diagrama de Classes Um diagrama de classes descreve a visão estática do sistema em termos de classes e relacionamentos entre as classes. Um dos objetivos do diagrama de classes é definir a base para
Leia maisLP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br
LP II Estrutura de Dados Introdução e Linguagem C Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br Resumo da aula Considerações Gerais Introdução a Linguagem C Variáveis e C Tipos de
Leia maisGeração de código intermediário. Novembro 2006
Geração de código intermediário Novembro 2006 Introdução Vamos agora explorar as questões envolvidas na transformação do código fonte em uma possível representação intermediária Como vimos, nas ações semânticas
Leia maisA lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.
INTRODUÇÃO A lógica de programação é extremamente necessária para as pessoas que queiram trabalhar na área de programação, seja em qualquer linguagem de programação, como por exemplo: Pascal, Visual Basic,
Leia maisAnálise semântica. Análise Semântica. Estrutura de um compilador. Anotação da árvore sintática. Tipos de comunicação de atributos?
Estrutura de um compilador Análise semântica Tradução orientada pela sintaxe 1 2 Análise Semântica Anotação da árvore sintática Análise semântica: Tipos (& Declarações) Escopo Checagens estáticas: Idéia:
Leia maisProf. Esp. Adriano Carvalho
Prof. Esp. Adriano Carvalho O que é um Programa? Um arquivo contendo uma sequência de comandos em uma linguagem de programação especifica Esses comandosrespeitam regras de como serem escritos e quais
Leia maisSumário. INF01040 Introdução à Programação. Elaboração de um Programa. Regras para construção de um algoritmo
INF01040 Introdução à Programação Introdução à Lógica de Programação s Seqüenciais Sumário Elaboração de um programa/algoritmo Formas de representação de um algoritmo Elementos manipulados em um programa/algoritmo
Leia maisAula 4 Pseudocódigo Tipos de Dados, Expressões e Variáveis
1. TIPOS DE DADOS Todo o trabalho realizado por um computador é baseado na manipulação das informações contidas em sua memória. Estas informações podem ser classificadas em dois tipos: As instruções, que
Leia maisIntrodução a Java. Hélder Nunes
Introdução a Java Hélder Nunes 2 Exercício de Fixação Os 4 elementos básicos da OO são os objetos, as classes, os atributos e os métodos. A orientação a objetos consiste em considerar os sistemas computacionais
Leia maisConceitos básicos da linguagem C
Conceitos básicos da linguagem C 2 Em 1969 Ken Thompson cria o Unix. O C nasceu logo depois, na década de 70. Dennis Ritchie, implementou-o pela primeira vez usando o sistema operacional UNIX criado por
Leia maisAlgoritmos e Programação _ Departamento de Informática
16 ARQUIVOS Um arquivo corresponde a um conjunto de informações (exemplo: uma estrutura de dados-registro), que pode ser armazenado em um dispositivo de memória permanente, exemplo disco rígido. As operações
Leia maisCriar a classe Aula.java com o seguinte código: Compilar e Executar
Introdução à Java Prof. Bruno Gomes bruno.gomes@ifrn.edu.br Programação Orientada a Objetos Código Exemplo da Aula Criar a classe Aula.java com o seguinte código: public class Aula { public static void
Leia maisEstruturas de Dados Pilhas, Filas e Deques
Estruturas de Dados Pilhas, Filas e Deques Prof. Eduardo Alchieri Estruturas de Dados Pilhas Pilhas Lista LIFO (Last In, First Out) Os elementos são colocados na estrutura (pilha) e retirados em ordem
Leia maisUFERSA Universidade Federal Rural do Semi-Árido. R Project R Project Criando e manipulando objetos.
UFERSA Universidade Federal Rural do Semi-Árido R Project R Project Criando e manipulando objetos. Conteúdo 1 2 3 Iniciando o R Manipulando Objetos Objetos especiais Introdução O R é uma importante ferramenta
Leia mais3/19/2014. Compilador DEV C++ ENGENHARIAS LÓGICA DE PROGRAMAÇÃO Henry Lubanco/ Joelio Piraciaba
Compilador DEV C++ 101 Compilador DEV C++ 102 1 Compilador DEV C++ Compilar (Ctrl+F9) Executar (Ctrl+F10) Compilar e executar (F9) 103 Compilador DEV C++ Escolher a pasta Escolher o nome e o tipo de arquivo
Leia maisExemplo: programa --> regra; fato. Muito utilizada para definir gramáticas e para processamento de linguagem natural.
istemas Inteligentes, 2011-2 1 Utilização de DCGs DCG: Gramática de Cláusulas Definidas (Definite Clause Grammar) é uma linguagem formal para definicção de outras linguagens. Baseada em cláusulas de Horn.
Leia mais2. OPERADORES... 6 3. ALGORITMOS, FLUXOGRAMAS E PROGRAMAS... 8 4. FUNÇÕES... 10
1. TIPOS DE DADOS... 3 1.1 DEFINIÇÃO DE DADOS... 3 1.2 - DEFINIÇÃO DE VARIÁVEIS... 3 1.3 - VARIÁVEIS EM C... 3 1.3.1. NOME DAS VARIÁVEIS... 3 1.3.2 - TIPOS BÁSICOS... 3 1.3.3 DECLARAÇÃO DE VARIÁVEIS...
Leia maisRoteiro de Aula Prática
UNIVERSIDADE FEDERAL DE UBERLÂNDIA Disciplina: Programação Lógica Curso: Sistemas de Informação Professores: Elaine Ribeiro de Faria Créditos Roteiro de Aula Prática O material a seguir consiste de adaptações
Leia maisNOME SEXO CPF NASCIMENTO SALARIO
Tutorial SQL Fonte: http://www.devmedia.com.br/articles/viewcomp.asp?comp=2973 Para começar Os Sistemas Gerenciadores de Bancos de Dados Relacionais (SGBDr) são o principal mecanismo de suporte ao armazenamento
Leia maise à Linguagem de Programação Python
Introdução a Algoritmos, Computação Algébrica e à Linguagem de Programação Python Curso de Números Inteiros e Criptografia Prof. Luis Menasché Schechter Departamento de Ciência da Computação UFRJ Agosto
Leia maisOrganização de programas em Python. Vanessa Braganholo vanessa@ic.uff.br
Organização de programas em Python Vanessa Braganholo vanessa@ic.uff.br Vamos programar em Python! Mas... } Como um programa é organizado? } Quais são os tipos de dados disponíveis? } Como variáveis podem
Leia maisAlgoritmos com VisuAlg
Algoritmos com VisuAlg Prof Gerson Volney Lagemann Depto Eng de Produção e Sistemas UDESC - CCT Algoritmos com VisuAlg Introdução A linguagem VisuAlg é simples, seu objetivo é disponibilizar um ambiente
Leia maisEXERCÍCIOS DE LÓGICA DE 1ª ORDEM
QUANTIFICADORES EXERCÍCIOS DE LÓGICA DE 1ª ORDEM 1 {9.3} Tornar as frases verdadeiras. Abra Bozo s Sentences e Leibniz s World. Algumas das expressões não são wffs, algumas são wffs mas não são frases
Leia maisLógica e Bases de Dados. Prof. Elaine Faria e Hiran Nonato Programação Lógica UFU 2012
Lógica e Bases de Dados Prof. Elaine Faria e Hiran Nonato Programação Lógica UFU 2012 Bases de Dados Relacionais "Base de dados" Coleção de dados interrelacionados, armazenada de modo independente do programa
Leia maisIntrodução à Lógica de Programação
Introdução à Lógica de Programação Sistemas Numéricos As informações inseridas em um computador são traduzidos em dados, ou seja, em sinais que podem ser manipulados pelo computador. O computador trabalha
Leia maisProgramação Lógica (em uma aula!)
Paradigmas de Programação Programação Lógica (em uma aula!) Profª Andréa Schwertner Charão DLSC/CT/UFSM Programação lógica Paradigma baseado no Cálculo de Predicados (Lógica Matemática Dedutiva) Exemplo:
Leia maisINF 1005 Programação I
INF 1005 Programação I Aula 12 Cadeia de Caracteres (Strings) Edirlei Soares de Lima Caracteres Até o momento nós somente utilizamos variáveis que armazenam números (int, float ou
Leia maisProgramação de Computadores
Programação de Computadores INTRODUÇÃO AOS ALGORITMOS E À PROGRAMAÇÃO DE COMPUTADORES PARTE 2 Renato Dourado Maia Instituto de Ciências Agrárias Universidade Federal de Minas Gerais Exemplo Inicial Uma
Leia maisProf.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br
Programação com acesso a BD Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br 1 Agenda Estrutura Básica de consultas SQL: A cláusula SELECT; A cláusula FROM; A cláusula WHERE. Operação com cadeias
Leia maisIntrodução aos cálculos de datas
Page 1 of 7 Windows SharePoint Services Introdução aos cálculos de datas Aplica-se a: Microsoft Office SharePoint Server 2007 Ocultar tudo Você pode usar fórmulas e funções em listas ou bibliotecas para
Leia maisAULA 12 FUNÇÕES Disciplina: Algoritmos e POO Professora: Alba Lopes alba.lopes@ifrn.edu.br http://docente.ifrn.edu.br/albalopes
AULA 12 FUNÇÕES Disciplina: Algoritmos e POO Professora: Alba Lopes alba.lopes@ifrn.edu.br http://docente.ifrn.edu.br/albalopes FUNÇÕES E PROCEDIMENTOS Também chamados de subalgoritmos São trechos de algoritmos
Leia maisAMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS
UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIAS DA COMPUTAÇÃO BACHARELADO AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS Orientando: Oliver Mário
Leia maisCONVENÇÃO DE CÓDIGO JAVA
CONVENÇÃO DE CÓDIGO JAVA Eligiane Ceron - Abril de 2012 Versão 1.0 Conteúdo Considerações iniciais... 2 Introdução... 2 Extensão de arquivos... 2 Arquivos de código Java... 2 Comentários iniciais... 2
Leia maisAlgoritmos e Programação de Computadores
Algoritmos e Programação de Computadores Algoritmos Estrutura Sequencial Parte 1 Professor: Victor Hugo L. Lopes Agenda Etapas de ação do computador; TDP Tipos de Dados Primitivos; Variáveis; Constantes;
Leia maisCURSO B SICO DE PERL
CURSO BÁSICO DE PERL CURSO BÁSICO DE PERL ESTRUTURA: 12 aulas de 2 horas e meia totalizando 30 horas. 2 créditos. É necessário 75% de presença (com exceções). Precisamos pensar em um método de avaliação.
Leia maisProgramação WEB I Estruturas de controle e repetição
Programação WEB I Estruturas de controle e repetição Operadores de Incremento Operadores de incremento servem como expressões de atalho para realizar incrementos em variáveis Operadores de Incremento Vamos
Leia maisCurso: Técnico de Informática Disciplina: Redes de Computadores. 1- Apresentação Binária
1- Apresentação Binária Os computadores funcionam e armazenam dados mediante a utilização de chaves eletrônicas que são LIGADAS ou DESLIGADAS. Os computadores só entendem e utilizam dados existentes neste
Leia maisESTRUTURA CONDICIONAL
AULA 6 ESTRUTURA CONDICIONAL 130 Tem como objetivo executar um conjunto de comandos caso uma condição lógica seja atendida. Quando a resposta lógica for falsa, nada será executado. Sintaxe Se CONDIÇÃO
Leia maisFicha Prática 1. José Creissac Campos, António Nestor Ribeiro {jose.campos, anr}@di.uminho.pt PPIII (LESI) 2002/03
Ficha Prática 1 José Creissac Campos, António Nestor Ribeiro {jose.campos, anr}@di.uminho.pt PPIII (LESI) 2002/03 Objectivos 1. Aprender a trabalhar com o interpretador. 2. Fazer interrogações à informação
Leia maisAula 11 Introdução ao Pseudocódigo. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www3.ifrn.edu.
Aula 11 Introdução ao Pseudocódigo Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www3.ifrn.edu.br/~brunogomes Agenda da Aula Representação de Algoritmos em Pseudocódigo: Sintaxe;
Leia maisFalso: F = Low voltage: L = 0
Curso Técnico em Eletrotécnica Disciplina: Automação Predial e Industrial Professor: Ronimack Trajano 1 PORTAS LOGICAS 1.1 INTRODUÇÃO Em 1854, George Boole introduziu o formalismo que até hoje se usa para
Leia maisProcessamento de dados XML
Processamento de dados XML César Vittori cvittori@inf.ufrgs.br Outubro de 2000 Resumo Considerações no desenvolvimento de software para processar dados XML. Processamento de uma DTD para interpretar marcação
Leia maisAgentes Inteligentes segundo o Chimera
Agentes Inteligentes segundo o Chimera C Heuristic I M E R A No ambiente de desenvolvimento de Agentes Inteligentes Chimera, uma extensão do LPA Win-Prolog, um agente é funcionalmente composto por: Código,
Leia maisAULA 02. 1. Uma linguagem de programação orientada a objetos
AULA 02 TECNOLOGIA JAVA O nome "Java" é usado para referir-se a 1. Uma linguagem de programação orientada a objetos 2. Uma coleção de APIs (classes, componentes, frameworks) para o desenvolvimento de aplicações
Leia maisAMBIENTE DE PROGRAMAÇÃO PYTHON
Computadores e Programação Engª Biomédica Departamento de Física Faculdade de Ciências e Tecnologia da Universidade de Coimbra Ano Lectivo 2003/2004 FICHA 1 AMBIENTE DE PROGRAMAÇÃO PYTHON 1.1. Objectivos
Leia maisIntrodução. Manipulação de arquivos em C. Estrutura de Dados II Prof Jairo Francisco de Souza
Introdução Manipulação de arquivos em C Estrutura de Dados II Prof Jairo Francisco de Souza Manipulação de Arquivo em C Existem dois tipos possíveis de acesso a arquivos na linguagem C : sequencial (lendo
Leia maisAula 02 Excel 2010. Operações Básicas
Aula 02 Excel 2010 Professor: Bruno Gomes Disciplina: Informática Básica Curso: Gestão de Turismo Sumário da aula: 1. Operações básicas; 2. Utilizando Funções; 3. Funções Lógicas; 4. Gráficos no Excel;
Leia maisPesquisa Operacional na Tomada de Decisões. Conteúdos do Capítulo. Programação Linear. Lindo. s.t. Resolvendo Programação Linear Em um Microcomputador
ª Edição Pesquisa Operacional na Tomada de Decisões Resolvendo Programação Linear Em um Microcomputador Gerson Lachtermacher,00 Programação Linear Software Versão Windows e comandos Formulação do problema
Leia maisMatemática Discreta para Computação e Informática
Matemática Discreta para Computação e Informática P. Blauth Menezes blauth@inf.ufrgs.br Departamento de Informática Teórica Instituto de Informática / UFRGS Matemática Discreta para Computação e Informática
Leia maisOs objetivos indicados aplicam-se a duas linguagens de programação: C e PHP
AGRUPAMENTO DE ESCOLAS DE SANTA COMBA DÃO CURSO PROFISSIONAL DE TÉCNICO DE GESTÃO E PROGRAMAÇÃO DE SISTEMAS INFORMÁTICOS 2012-2015 PROGRAMAÇÃO E SISTEMAS DE INFORMAÇÃO MÓDULO 2 Mecanismos de Controlo de
Leia mais1.6. Tratamento de Exceções
Paradigmas de Linguagens I 1 1.6. Tratamento de Exceções Uma exceção denota um comportamento anormal, indesejado, que ocorre raramente e requer alguma ação imediata em uma parte do programa [GHE 97, DER
Leia maisCompiladores. Análise léxica. Plano da aula. Vocabulário básico. Motivação para análise léxica. Estrutura de um compilador
Estrutura de um compilador Compiladores Análise lexical (1) Expressões Regulares 1 2 Plano da aula 1. Motivação do uso de E.R. e definições Linguagens, tokens, lexemas... 2. Regras de formação e exemplos
Leia maisCapítulo 2: Introdução à Linguagem C
Capítulo 2: Introdução à Linguagem C INF1005 Programação 1 Pontifícia Universidade Católica Departamento de Informática Programa Programa é um algoritmo escrito em uma linguagem de programação. No nosso
Leia maisApostila de Fundamentos de Programação I. Prof.: André Luiz Montevecchi
Apostila de Fundamentos de Programação I Prof: André Luiz Montevecchi Introdução O mundo atual é dependente da tecnologia O uso intenso de diversos aparatos tecnológicos é parte integrante do nosso dia-a-dia
Leia maisOrientação a Objetos
Orientação a Objetos 1. Sobrecarga (Overloading) Os clientes dos bancos costumam consultar periodicamente informações relativas às suas contas. Geralmente, essas informações são obtidas através de extratos.
Leia maisNovas Tecnologias no Ensino da Matemática
UFF Novas Tecnologias no Ensino da Matemática 1 Novas Tecnologias no Ensino da Matemática Humberto José Bortolossi http://www.professores.uff.br/hjbortol/ Lista 8 ATIVIDADE 1 Uma outra maneira de se poupar
Leia maisTÉCNICAS DE PROGRAMAÇÃO
TÉCNICAS DE PROGRAMAÇÃO (Adaptado do texto do prof. Adair Santa Catarina) ALGORITMOS COM QUALIDADE MÁXIMAS DE PROGRAMAÇÃO 1) Algoritmos devem ser feitos para serem lidos por seres humanos: Tenha em mente
Leia maisEstruturas de Repetição
Estruturas de Repetição Lista de Exercícios - 04 Algoritmos e Linguagens de Programação Professor: Edwar Saliba Júnior Estruturas de Repetição O que são e para que servem? São comandos que são utilizados
Leia maisUNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA INFORMÁTICA APLICADA
Responda 1) Quem desenvolveu a linguagem C? Quando? 2) Existe alguma norma sobre a sintaxe da linguagem C? 3) Quais são os tipos básicos de dados disponíveis na linguagem C? 4) Quais são as principais
Leia maisParadigmas de Programação
Paradigmas de Programação Tipos de Dados Aula 5 Prof.: Edilberto M. Silva http://www.edilms.eti.br Prof. Edilberto Silva / edilms.eti.br Tipos de Dados Sistema de tipos Tipos de Dados e Domínios Métodos
Leia maisTreinamento em BrOffice.org Calc
Treinamento em BrOffice.org Calc 1 Índice I. INTRODUÇÃO...3 II. NÚMEROS, TEXTOS, FÓRMULAS E DATAS...4 III. MENUS BÁSICOS...5 1. Arquivo...5 2. Editar...5 3. Formatar...5 IV. FÓRMULAS...8 V. REFERÊNCIAS
Leia maisECD1200 Equipamento de Consulta de Dados KIT DE DESENVOLVIMENTO
Equipamento de Consulta de Dados KIT DE DESENVOLVIMENTO Versão do documento: 1.1 1. Introdução...3 2. Documentação...3 2.1. DOCUMENTAÇÃO DE REFERÊNCIA... 3 2.2. DESCRIÇÃO FUNCIONAL... 4 2.2.1. INTERFACE...
Leia maisProgramação de Computadores I Fluxogramas PROFESSORA CINTIA CAETANO
Programação de Computadores I Fluxogramas PROFESSORA CINTIA CAETANO Problemas & Algoritmos Para resolver um problema através dum computador é necessário encontrar em primeiro lugar uma maneira de descrevê-lo
Leia maisIntrodução ao FORTRAN (Parte I)
Programação de Computadores III Aula 7 Professor Leandro Augusto Frata Fernandes laffernandes@ic.uff.br Material disponível em http://www.ic.uff.br/~laffernandes/teaching/2011.1/tcc-03.063 Roteiro da Aula
Leia maisProgramação para web JavaScript
Programação para web JavaScript Professor: Harlley Lima E-mail: harlley@decom.cefetmg.br Departamento de Computação Centro Federal de Educação Tecnológica de Minas Gerais Belo Horizonte, 4 de maio 2016
Leia maisCAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES
CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES 3.1 - IDENTIFICADORES Os objetos que usamos no nosso algoritmo são uma representação simbólica de um valor de dado. Assim, quando executamos a seguinte instrução:
Leia maisAlgoritmo e Programação
Algoritmo e Programação Professor: José Valentim dos Santos Filho Colegiado: Engenharia da Computação Prof.: José Valentim dos Santos Filho 1 Ementa Noções básicas de algoritmo; Construções básicas: operadores,
Leia maisO que é o JavaScript?
JavaScript Introdução O JavaScript é utilizado por milhões de páginas na web para melhorar o design, validar forms, e muito mais O JavaScript foi inicialmente desenvolvido pela Netscape e é a linguagem
Leia mais