Lista de exemplos de código EuphoriaEsta é uma lista de exemplos de Euphoria, onde vários códigos em Euphoria são colocados, para ajudar no aprendizado nessa linguagem. ExemplosOlá Mundoputs(1, "Olá, Mundo!\n")
Testando o tipo de dadoO 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.[1] 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
Nota: Comentários de código iniciam com um hífen duplo (--) e o comentário se prolonga até o fim da linha. Ele não é um comentário multi-linha (não se propaga para outras linhas). Sua funcionalidade é equivalente à barra dupla (//) de C++.[2]
Retornando elementos de sequencesO 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:[3][4] object lista
lista = {"Azul", "Preto", "Branco"} -- Atribui três elementos à “lista”
puts(1, lista[1]) -- Põe na tela o elemento 1 de “lista” (Azul)
puts(1, lista[2][1]) -- Põe na tela o 1º elemento do elemento 2 (P)
puts(1, lista[3][3..6]) -- Põe na tela o 3º, 4º, 5º e 6º elemento do elemento 3 (anco)
A variável Ordenando elementos de sequencesO exemplo a seguir, ordena alfabeticamente os elementos de uma sequence, de forma automática, e depois os manda à tela:[5] 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[1])
puts(1, lista[2])
puts(1, lista[3])
Atribuindo valores aleatóriosO exemplo a seguir pega um valor de uma lista, aleatoriamente, e a joga na tela:[6] 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 pressionadaO exemplo a seguir, aguarda até que uma tecla (qualquer tecla) seja pressionada, e depois encerra o programa imediatamente:[7] 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 comandoMesmo 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.[8] 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
Nota: Os argumentos da linha de comando devem estar em minúscula. Porém, isso pode ser mudado, fazendo-se mudanças no código.
Contando palavrasO exemplo a seguir abre um arquivo de texto, conta e diz quantos caracteres, palavras e linhas, o arquivo possui:[9] 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] != -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 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.")
Nota: Neste código, se não existir um arquivo chamado “arquivo.txt”, no mesmo diretório, o programa será encerrado. Isso acontece por causa do código na linha 9, que diz para ele fazer isso. Se esse código e o arquivo, não existirem, o programa irá gerar um erro.
Referências
Ver também |
Portal di Ensiklopedia Dunia