SlideShare une entreprise Scribd logo
1  sur  19
Programação I
Variáveis, Portugol e G-Portugol
30/08/2011
Variáveis
● Áreas ou posições da memória do
computador que armazenam informações
ou dados que podem, ou não sofrer
alteração de seu estado ou valor durante
a execução do programa. Neste último
caso são chamadas de constantes.
● Dependendo da linguagem de
programação devem ser declaradas antes
do seu uso, ou mesmo antes de iniciar
qualquer processamento.
Variáveis
● Podem ser globais ou locais, dependendo
da sua “visibilidade” dentro do programa.
● Variáveis globais podem ser acessadas
durante todo o programa e geralmente
são declaradas no início do algoritmo;
● Variáveis locais são declaradas dentro de
blocos ou módulos do programa: funções,
sub rotinas...
Variáveis
● Variáveis são de tipos diferentes pois nem
toda informação pode ser tratada da
mesma forma. Ex.:
● Números inteiros determinam quantidades
(número de pessoas, de animais, cheques
emitidos, devolvidos, produtos em estoque,
etc.);
● Números reais, representam qualquer valor
contido no conjunto dos números reais,
inclusive com a parte fracionária, ou
decimal (valor a pagar, litros em tanque de
combustível, distância percorrida,etc)
Variáveis
● Lógico podem ter apenas dois valores:
verdadeiro ou falso. Armazenam o estado
de algo (porta aberta, luz acesa, cheque
com fundos, motor ligado);
● Caractere guarda apenas um caractere,
uma letra, número ou símbolo gráfico
disponível (opção de resposta em teste de
múltipla escolha – entre A e D, símbolo de
operação matemática, sinal de pontuação,
etc.)
Variáveis
● Cadeia de caracteres geralmente
armazenam vários caracteres, letras,
dígitos, símbolos... (nomes próprios,
endereços, telefones, etc...).
Definição de Variáveis
● A maneira como as variáveis são definidas
depende da linguagem.
● Podem ser definidas ou declaradas no
início do programa, da função ou em um
bloco específico;
● Obrigatoriamente devem ter um tipo
associado em sua declaração;
● Opcionalmente podem ter um valor
associado durante a sua definição;
Nomes de Variáveis
● Identificadores são os nomes das variáveis,
funções, subprogramas, subrotinas, etc...
● Normalmente iniciam com letras, mas
podem conter dígitos e alguns símbolos,
como o _ (sublinhado, subtraço, etc...)
● Como definir
Operadores Aritméticos
SÍMBOLO CÁLCULO
+ Soma de 2 números
- Subtração de 2 números
* Multiplicação entre 2 números
/ Divisão real entre 2 números reais ou
inteiros
% Resto da divisão inteira entre 2 números
inteiros
Operadores Aritméticos
● 8 * não faz sentido, falta operando à
direita
● 8/0 não faz sentido, divisão por zero
● 7.4#2 não faz sentido, # trabalha com
inteiros
● 7.2%2 não faz sentido, % trabalha com
inteiros
● % 3 falta operando à esquerda
Operadores Relacionais
OPERADOR RELAÇÃO
= Igual a
<> Diferente de
> Maior que
< Menor que
>= Maior ou igual a
<= Menor ou igual a
Operadores Relacionais
● Exs.:
● 3 > 4 é igual a falso
● 10 >= 9 é igual a falso
● -1 > -2 é igual a verdadeiro
● 7.3 <> 8.9 é igual a verdadeiro
● <15 falta operando
Operadores Lógicos
OPERADOR RELAÇÃO
e Conjunção de operação
ou Disjunção de operação
não Negação de operação
Tabela da Verdade
ou
a b a ou b
Falso Falso Falso
Falso Verdadeiro Verdadeiro
Verdadeiro Falso Verdadeiro
Verdadeiro Verdadeiro Verdadeiro
Tabela da Verdade
e
a b a e b
Falso Falso Falso
Falso Verdadeiro Falso
Verdadeiro Falso Falso
Verdadeiro Verdadeiro Verdadeiro
Tabela da Verdade
não
a não a
Falso Verdadeiro
Verdadeiro Falso
Operadores Lógicos
● Exs.:
● 8>3 e 10>4 é igual a verdadeiro
● 8>3 e 10<4 é igual a falso
● não 4=4 é igual a falso
● 8>3 ou 5=4 é igual a verdadeiro
Portugol
● Ou português estruturado é uma pseudo
linguagem baseada no Português que
utiliza algumas palavras deste idioma
para construção de algoritmos simples.
● Estabelece um rigor na construção de
algoritmos para evitar ambiguidades ou
dúvidas. Cada comando representa
apenas uma ação para o computador.
● O algoritmo torna-se uma lista ordenada
de comandos combinados, cuja execução
sequencial é a solução do problema.
G-Portugol
● É um dialeto do portugol.
● Implementa a linguagem, fornecendo
ferramentas que oferecem recursos para
edição, compilação, execução e
depuração de programas escritos nessa
linguagem.
● Software Livre distribuído sob a GPL-2
● Disponibilizado no site:
● http://gpt.berlios.de

Contenu connexe

Tendances

Pseudocódigo ou Portugol (Lógica de Programação)
Pseudocódigo ou Portugol (Lógica de Programação)Pseudocódigo ou Portugol (Lógica de Programação)
Pseudocódigo ou Portugol (Lógica de Programação)Gercélia Ramos
 
Introdução a Algoritmos: Conceitos Básicos
Introdução a Algoritmos: Conceitos BásicosIntrodução a Algoritmos: Conceitos Básicos
Introdução a Algoritmos: Conceitos BásicosElaine Cecília Gatto
 
Lista de exercícios em portugol
Lista de exercícios em portugolLista de exercícios em portugol
Lista de exercícios em portugolGabriel Faustino
 
Exercicios resolvidos visu alg vetores
Exercicios resolvidos visu alg vetoresExercicios resolvidos visu alg vetores
Exercicios resolvidos visu alg vetoresWillians Miyabara
 
Aula 1 introdução a algoritmos
Aula 1   introdução a algoritmosAula 1   introdução a algoritmos
Aula 1 introdução a algoritmosAdilio Tavares
 
Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-Mauro Pereira
 
Fluxograma (Lógica de Programação)
Fluxograma (Lógica de Programação)Fluxograma (Lógica de Programação)
Fluxograma (Lógica de Programação)Gercélia Ramos
 
Algoritmos - Formas de Representação de Algoritmos
Algoritmos - Formas de Representação de AlgoritmosAlgoritmos - Formas de Representação de Algoritmos
Algoritmos - Formas de Representação de AlgoritmosElaine Cecília Gatto
 
Apostila Microsoft Office Word 2016
Apostila Microsoft Office Word 2016Apostila Microsoft Office Word 2016
Apostila Microsoft Office Word 2016Cibele Kanegae
 
Lógica de Programação e Algoritmos
Lógica de Programação e AlgoritmosLógica de Programação e Algoritmos
Lógica de Programação e AlgoritmosMario Jorge Pereira
 
Lista de exercicios algoritmos com pseudocodigo
Lista de exercicios   algoritmos com pseudocodigoLista de exercicios   algoritmos com pseudocodigo
Lista de exercicios algoritmos com pseudocodigoMauro Pereira
 

Tendances (20)

Algoritmos em portugol
Algoritmos em portugolAlgoritmos em portugol
Algoritmos em portugol
 
Pseudocódigo ou Portugol (Lógica de Programação)
Pseudocódigo ou Portugol (Lógica de Programação)Pseudocódigo ou Portugol (Lógica de Programação)
Pseudocódigo ou Portugol (Lógica de Programação)
 
Algoritmos: Tipos de Dados
Algoritmos: Tipos de DadosAlgoritmos: Tipos de Dados
Algoritmos: Tipos de Dados
 
Introdução a Algoritmos: Conceitos Básicos
Introdução a Algoritmos: Conceitos BásicosIntrodução a Algoritmos: Conceitos Básicos
Introdução a Algoritmos: Conceitos Básicos
 
Lista de exercícios em portugol
Lista de exercícios em portugolLista de exercícios em portugol
Lista de exercícios em portugol
 
Linguagem C - Ponteiros
Linguagem C - PonteirosLinguagem C - Ponteiros
Linguagem C - Ponteiros
 
Exercicios resolvidos visu alg vetores
Exercicios resolvidos visu alg vetoresExercicios resolvidos visu alg vetores
Exercicios resolvidos visu alg vetores
 
Algoritmos - Vetores
Algoritmos - VetoresAlgoritmos - Vetores
Algoritmos - Vetores
 
Aula 1 introdução a algoritmos
Aula 1   introdução a algoritmosAula 1   introdução a algoritmos
Aula 1 introdução a algoritmos
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Aula 07 - Visualg e Pseudocódigo
Aula 07 - Visualg e PseudocódigoAula 07 - Visualg e Pseudocódigo
Aula 07 - Visualg e Pseudocódigo
 
Algoritmo aula 01-f
Algoritmo   aula 01-fAlgoritmo   aula 01-f
Algoritmo aula 01-f
 
Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-
 
Fluxograma (Lógica de Programação)
Fluxograma (Lógica de Programação)Fluxograma (Lógica de Programação)
Fluxograma (Lógica de Programação)
 
Algoritmos - Formas de Representação de Algoritmos
Algoritmos - Formas de Representação de AlgoritmosAlgoritmos - Formas de Representação de Algoritmos
Algoritmos - Formas de Representação de Algoritmos
 
Algoritmos: Variáveis e Constantes
Algoritmos: Variáveis e ConstantesAlgoritmos: Variáveis e Constantes
Algoritmos: Variáveis e Constantes
 
Apostila Microsoft Office Word 2016
Apostila Microsoft Office Word 2016Apostila Microsoft Office Word 2016
Apostila Microsoft Office Word 2016
 
Lógica de Programação e Algoritmos
Lógica de Programação e AlgoritmosLógica de Programação e Algoritmos
Lógica de Programação e Algoritmos
 
Lista de exercicios algoritmos com pseudocodigo
Lista de exercicios   algoritmos com pseudocodigoLista de exercicios   algoritmos com pseudocodigo
Lista de exercicios algoritmos com pseudocodigo
 
Visualg
VisualgVisualg
Visualg
 

Similaire à Variáveis, Portugol e G-Portugol para Programação I

Aula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdfAula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdfEizoKato
 
Aula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdfAula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdfEizoKato
 
Logica java ate slide 30
Logica java   ate slide 30Logica java   ate slide 30
Logica java ate slide 30hflandim
 
Linguagem de Programação Estruturada com Java-Aula2
Linguagem de Programação Estruturada com Java-Aula2Linguagem de Programação Estruturada com Java-Aula2
Linguagem de Programação Estruturada com Java-Aula2Elvis Araújo
 
53297189 apostila-algoritmo-e-logica-i
53297189 apostila-algoritmo-e-logica-i53297189 apostila-algoritmo-e-logica-i
53297189 apostila-algoritmo-e-logica-iEdvan Mateó
 
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃOCURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃOMicrosoft
 
Algoritmos e LP - Aula 02 - Tipos de Dados.pdf
Algoritmos e LP - Aula 02 - Tipos de Dados.pdfAlgoritmos e LP - Aula 02 - Tipos de Dados.pdf
Algoritmos e LP - Aula 02 - Tipos de Dados.pdfEnio Filho
 
Aula 02 - Tipos de dados, Variáveis, Constantes e Operadores Aritméticos
Aula 02 - Tipos de dados, Variáveis, Constantes e Operadores AritméticosAula 02 - Tipos de dados, Variáveis, Constantes e Operadores Aritméticos
Aula 02 - Tipos de dados, Variáveis, Constantes e Operadores AritméticosMessias Batista
 
Lógica parte 2 - Algoritmos
Lógica   parte 2 - AlgoritmosLógica   parte 2 - Algoritmos
Lógica parte 2 - AlgoritmosWallison Parreira
 
Cet P Sistemas Linguagem C Introducao
Cet P Sistemas Linguagem C IntroducaoCet P Sistemas Linguagem C Introducao
Cet P Sistemas Linguagem C Introducaommind
 
Aula01 introducao operacoes
Aula01   introducao operacoesAula01   introducao operacoes
Aula01 introducao operacoesYuri Passos
 
Henriquecristovao manual c-cpp
Henriquecristovao manual c-cppHenriquecristovao manual c-cpp
Henriquecristovao manual c-cppRUI VIEIRA
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem cvingue
 
Algoritmos e LP - Aula 01 - Introdução a Algoritmos.pdf
Algoritmos e LP - Aula 01 - Introdução a Algoritmos.pdfAlgoritmos e LP - Aula 01 - Introdução a Algoritmos.pdf
Algoritmos e LP - Aula 01 - Introdução a Algoritmos.pdfEnio Filho
 
Aula 4 - Programação 1
Aula 4 - Programação 1Aula 4 - Programação 1
Aula 4 - Programação 1Isaac Barros
 
Introdução à programação
Introdução à programaçãoIntrodução à programação
Introdução à programação12anogolega
 

Similaire à Variáveis, Portugol e G-Portugol para Programação I (20)

Aula 04
Aula 04Aula 04
Aula 04
 
Aula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdfAula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdf
 
Aula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdfAula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdf
 
Logica java ate slide 30
Logica java   ate slide 30Logica java   ate slide 30
Logica java ate slide 30
 
Linguagem de Programação Estruturada com Java-Aula2
Linguagem de Programação Estruturada com Java-Aula2Linguagem de Programação Estruturada com Java-Aula2
Linguagem de Programação Estruturada com Java-Aula2
 
53297189 apostila-algoritmo-e-logica-i
53297189 apostila-algoritmo-e-logica-i53297189 apostila-algoritmo-e-logica-i
53297189 apostila-algoritmo-e-logica-i
 
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃOCURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
 
Logica de Programacao
Logica de ProgramacaoLogica de Programacao
Logica de Programacao
 
Algoritmos e LP - Aula 02 - Tipos de Dados.pdf
Algoritmos e LP - Aula 02 - Tipos de Dados.pdfAlgoritmos e LP - Aula 02 - Tipos de Dados.pdf
Algoritmos e LP - Aula 02 - Tipos de Dados.pdf
 
Aula 02 - Tipos de dados, Variáveis, Constantes e Operadores Aritméticos
Aula 02 - Tipos de dados, Variáveis, Constantes e Operadores AritméticosAula 02 - Tipos de dados, Variáveis, Constantes e Operadores Aritméticos
Aula 02 - Tipos de dados, Variáveis, Constantes e Operadores Aritméticos
 
Lógica parte 2 - Algoritmos
Lógica   parte 2 - AlgoritmosLógica   parte 2 - Algoritmos
Lógica parte 2 - Algoritmos
 
Cet P Sistemas Linguagem C Introducao
Cet P Sistemas Linguagem C IntroducaoCet P Sistemas Linguagem C Introducao
Cet P Sistemas Linguagem C Introducao
 
Aula01 introducao operacoes
Aula01   introducao operacoesAula01   introducao operacoes
Aula01 introducao operacoes
 
Henriquecristovao manual c-cpp
Henriquecristovao manual c-cppHenriquecristovao manual c-cpp
Henriquecristovao manual c-cpp
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem c
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem c
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem c
 
Algoritmos e LP - Aula 01 - Introdução a Algoritmos.pdf
Algoritmos e LP - Aula 01 - Introdução a Algoritmos.pdfAlgoritmos e LP - Aula 01 - Introdução a Algoritmos.pdf
Algoritmos e LP - Aula 01 - Introdução a Algoritmos.pdf
 
Aula 4 - Programação 1
Aula 4 - Programação 1Aula 4 - Programação 1
Aula 4 - Programação 1
 
Introdução à programação
Introdução à programaçãoIntrodução à programação
Introdução à programação
 

Plus de Carlos Wagner Costa (18)

Raspberry pi
Raspberry piRaspberry pi
Raspberry pi
 
Apresentacao dev ops
Apresentacao dev opsApresentacao dev ops
Apresentacao dev ops
 
Palestra semana pedagógica2
Palestra semana pedagógica2Palestra semana pedagógica2
Palestra semana pedagógica2
 
Ubuntu 13.04
Ubuntu 13.04Ubuntu 13.04
Ubuntu 13.04
 
Compiladores
CompiladoresCompiladores
Compiladores
 
História da computação
História da computaçãoHistória da computação
História da computação
 
Vetores
VetoresVetores
Vetores
 
Funções
FunçõesFunções
Funções
 
Lógica booleana e estruturas condicionais
Lógica booleana e estruturas condicionaisLógica booleana e estruturas condicionais
Lógica booleana e estruturas condicionais
 
Estrutura i o e operações mtm
Estrutura i o e operações mtmEstrutura i o e operações mtm
Estrutura i o e operações mtm
 
Linguagens de programação
Linguagens de programaçãoLinguagens de programação
Linguagens de programação
 
Paradigmas de programação
Paradigmas de programaçãoParadigmas de programação
Paradigmas de programação
 
Programação de computadores
Programação de computadoresProgramação de computadores
Programação de computadores
 
Software
SoftwareSoftware
Software
 
Organização de computadores
Organização de computadoresOrganização de computadores
Organização de computadores
 
Famílias de computadores
Famílias de computadoresFamílias de computadores
Famílias de computadores
 
Computador
ComputadorComputador
Computador
 
Computação Básica - Aula 1
Computação Básica - Aula 1Computação Básica - Aula 1
Computação Básica - Aula 1
 

Variáveis, Portugol e G-Portugol para Programação I

  • 1. Programação I Variáveis, Portugol e G-Portugol 30/08/2011
  • 2. Variáveis ● Áreas ou posições da memória do computador que armazenam informações ou dados que podem, ou não sofrer alteração de seu estado ou valor durante a execução do programa. Neste último caso são chamadas de constantes. ● Dependendo da linguagem de programação devem ser declaradas antes do seu uso, ou mesmo antes de iniciar qualquer processamento.
  • 3. Variáveis ● Podem ser globais ou locais, dependendo da sua “visibilidade” dentro do programa. ● Variáveis globais podem ser acessadas durante todo o programa e geralmente são declaradas no início do algoritmo; ● Variáveis locais são declaradas dentro de blocos ou módulos do programa: funções, sub rotinas...
  • 4. Variáveis ● Variáveis são de tipos diferentes pois nem toda informação pode ser tratada da mesma forma. Ex.: ● Números inteiros determinam quantidades (número de pessoas, de animais, cheques emitidos, devolvidos, produtos em estoque, etc.); ● Números reais, representam qualquer valor contido no conjunto dos números reais, inclusive com a parte fracionária, ou decimal (valor a pagar, litros em tanque de combustível, distância percorrida,etc)
  • 5. Variáveis ● Lógico podem ter apenas dois valores: verdadeiro ou falso. Armazenam o estado de algo (porta aberta, luz acesa, cheque com fundos, motor ligado); ● Caractere guarda apenas um caractere, uma letra, número ou símbolo gráfico disponível (opção de resposta em teste de múltipla escolha – entre A e D, símbolo de operação matemática, sinal de pontuação, etc.)
  • 6. Variáveis ● Cadeia de caracteres geralmente armazenam vários caracteres, letras, dígitos, símbolos... (nomes próprios, endereços, telefones, etc...).
  • 7. Definição de Variáveis ● A maneira como as variáveis são definidas depende da linguagem. ● Podem ser definidas ou declaradas no início do programa, da função ou em um bloco específico; ● Obrigatoriamente devem ter um tipo associado em sua declaração; ● Opcionalmente podem ter um valor associado durante a sua definição;
  • 8. Nomes de Variáveis ● Identificadores são os nomes das variáveis, funções, subprogramas, subrotinas, etc... ● Normalmente iniciam com letras, mas podem conter dígitos e alguns símbolos, como o _ (sublinhado, subtraço, etc...) ● Como definir
  • 9. Operadores Aritméticos SÍMBOLO CÁLCULO + Soma de 2 números - Subtração de 2 números * Multiplicação entre 2 números / Divisão real entre 2 números reais ou inteiros % Resto da divisão inteira entre 2 números inteiros
  • 10. Operadores Aritméticos ● 8 * não faz sentido, falta operando à direita ● 8/0 não faz sentido, divisão por zero ● 7.4#2 não faz sentido, # trabalha com inteiros ● 7.2%2 não faz sentido, % trabalha com inteiros ● % 3 falta operando à esquerda
  • 11. Operadores Relacionais OPERADOR RELAÇÃO = Igual a <> Diferente de > Maior que < Menor que >= Maior ou igual a <= Menor ou igual a
  • 12. Operadores Relacionais ● Exs.: ● 3 > 4 é igual a falso ● 10 >= 9 é igual a falso ● -1 > -2 é igual a verdadeiro ● 7.3 <> 8.9 é igual a verdadeiro ● <15 falta operando
  • 13. Operadores Lógicos OPERADOR RELAÇÃO e Conjunção de operação ou Disjunção de operação não Negação de operação
  • 14. Tabela da Verdade ou a b a ou b Falso Falso Falso Falso Verdadeiro Verdadeiro Verdadeiro Falso Verdadeiro Verdadeiro Verdadeiro Verdadeiro
  • 15. Tabela da Verdade e a b a e b Falso Falso Falso Falso Verdadeiro Falso Verdadeiro Falso Falso Verdadeiro Verdadeiro Verdadeiro
  • 16. Tabela da Verdade não a não a Falso Verdadeiro Verdadeiro Falso
  • 17. Operadores Lógicos ● Exs.: ● 8>3 e 10>4 é igual a verdadeiro ● 8>3 e 10<4 é igual a falso ● não 4=4 é igual a falso ● 8>3 ou 5=4 é igual a verdadeiro
  • 18. Portugol ● Ou português estruturado é uma pseudo linguagem baseada no Português que utiliza algumas palavras deste idioma para construção de algoritmos simples. ● Estabelece um rigor na construção de algoritmos para evitar ambiguidades ou dúvidas. Cada comando representa apenas uma ação para o computador. ● O algoritmo torna-se uma lista ordenada de comandos combinados, cuja execução sequencial é a solução do problema.
  • 19. G-Portugol ● É um dialeto do portugol. ● Implementa a linguagem, fornecendo ferramentas que oferecem recursos para edição, compilação, execução e depuração de programas escritos nessa linguagem. ● Software Livre distribuído sob a GPL-2 ● Disponibilizado no site: ● http://gpt.berlios.de