Esta é uma lista de exemplos de Euphoria, onde vários códigos em Euphoria são colocados, para ajudar no aprendizado nessa linguagem.

Exemplos Olá Mundo

puts(1, "Olá, Mundo!\n")

Testando o tipo de dado O exemplo a seguir testa o tipo de dado da variável “valor”, se é um integer (atom de valor inteiro), ou se é um atom fracionário.

object valor -- Declara a variável “valor” valor = 1 -- E atribui-lhe um valor

if integer(valor) then -- Se valor for integer puts(1, "A variável 'valor' é um integer.") -- Lance esta mensagem else puts(1, "A variável 'valor' é um atom.") -- Caso contrário, lance esta end if

Retornando elementos de sequences O exemplo a seguir declara uma variável e a atribui uma sequence, com três nomes de cores diferentes. Em seguida, joga-as na tela, porém, em uma ordem diferente:

object lista lista = {"Azul", "Preto", "Branco"} -- Atribui três elementos à “lista”

puts(1, lista) -- Põe na tela o elemento 1 de “lista” (Azul) puts(1, lista) -- Põe na tela o 1º elemento do elemento 2 (P) puts(1, lista[3..6]) -- Põe na tela o 3º, 4º, 5º e 6º elemento do elemento 3 (anco)

A variável lista também podia ser declarada como sequence, que o programa funcionaria da mesma forma.

Ordenando elementos de sequences O exemplo a seguir, ordena alfabeticamente os elementos de uma sequence, de forma automática, e depois os manda à tela:

include sort.e -- Biblioteca necessária para a função “sort()”

object lista lista = {"Azul", "Preto", "Branco"} lista = sort(lista) -- Atribui a lista, elementos de “lista”, ordenados -- “lista” agora vale a: {"Azul", "Branco", "Preto"}

puts(1, lista) puts(1, lista) puts(1, lista)

Atribuindo valores aleatórios O exemplo a seguir pega um valor de uma lista, aleatoriamente, e a joga na tela:

object lista, fortuito lista = {"Azul", "Preto", "Branco"} fortuito = rand(3) -- Gera um valor aleatório e o atribui a “fortuito”

puts(1, lista[fortuito]) -- Lança à tela, um dos elementos de “lista”

A cada execução do código, é lançada à tela uma palavra diferente (que estejam dentro da lista).

Esperando até que uma tecla seja pressionada O exemplo a seguir, aguarda até que uma tecla (qualquer tecla) seja pressionada, e depois encerra o programa imediatamente:

puts(1, "Pressione qualquer tecla...")

while get_key() = -1 do -- Repete, até que uma tecla seja pressionada end while

abort(0) -- Então, encerra imediatamente o programa

Manipulação de argumentos da linha de comando Mesmo sendo uma linguagem interpretada, Euphoria pode usar e manipular argumentos da linha de comando, como se fosse uma linguagem compilada, estando em forma de código, “coberto”, ou “encadernado”. Essa característica é útil na criação de compiladores, interpretadores, e outros programas que utilizem a linha de comando, para passar comandos para o programa. Exemplo:

object arg, cmd cmd = command_line() -- Associa “cmd” a função “command_line()” arg = find("-r", cmd) -- Agrega a função de procura o valor "-r" dentro -- de “cmd”, para “arg”

if arg <= 2 or arg = length(cmd) then puts(1, "Sem argumentos.") elsif arg >= 3 then if match("abc", cmd[arg+1]) then -- Se “cmd” contiver "-r" e "abc"… puts(1, "Argumentos -r e abc usados.") -- …Mandará esta mensagem elsif match("def", cmd[arg+1]) then puts(1, "Argumentos -r e def usados.") else -- Caso o argumento seja inválido, mandará estas mensagens: puts(1, "Terceiro argumento invalido: \"" & cmd[arg+1] & "\".") end if end if

Contando palavras O exemplo a seguir abre um arquivo de texto, conta e diz quantos caracteres, palavras e linhas, o arquivo possui:

object arquivo, fonte, caracteres, linhas, palavras, texto fonte = "" caracteres = 0 linhas = 0 palavras = 0 texto = ""

arquivo = open("arquivo.txt", "r") -- Abre o arquivo para leitura if arquivo = -1 then -- Se não conseguir abrir o arquivo abort(1) end if

while sequence(fonte) do -- Enquanto tiver uma linha fonte = gets(arquivo) -- Põe a linha dentro de “fonte” texto &= fonte -- E o adiciona ao fim de “texto” end while

if texto != -1 then -- Se houver algo na primeira linha linhas += 1 -- Contar a primeira linha for i = 1 to length(texto) do if i > 1 then if texto[i] = ' ' or texto[i] = '\t' or texto[i] = '\n' then if texto[i-1] != ' ' and texto[i-1] != '\t' and texto[i-1] != '\n' then palavras += 1 end if end if if i = length(texto) then if texto[i-1] != ' ' and texto[i-1] != '\t' and texto[i-1] != '\n' then palavras += 1 end if end if end if if texto[i] = '\n' then -- Se for um marcador de nova-linha linhas += 1 elsif texto[i] != '\t' and texto[i] != ' ' and texto[i] != -1 then caracteres += 1 end if end for end if

if linhas > 0 then -- Reporta quantos caracteres, palavras e linhas o arquivo possui printf(1, "O arquivo possui %d caracteres, %d palavras e %d linhas.\n", {caracteres, palavras, linhas}) else printf(1, "%s", {"O arquivo está vazio.\n"}) end if

A expressão letras += 1 é o mesmo que letras = letras + 1. Na linha 42 desse código, %d significa que o valor será colocado na tela como inteiro decimal. Essa mesma linha poderia ser escrita de forma diferente, que funcionaria do mesmo modo:

printf(1, "%s%d%s%d%s", {"O arquivo possui ", caracteres, " caracteres, ", palavras, " palavras e ", linhas, " linhas."})

Ou ainda:

puts(1, "O arquivo possui ") printf(1, "%d", caracteres) puts(1, " caracteres, ") printf(1, "%d", palavras) puts(1, " palavras e ") printf(1, "%d", linhas) puts(1, " linhas.")

Ver também Estruturas de controle e operadores de Euphoria Euphoria (linguagem de programação)

Categoria:Euphoria Euphoria