Referência · Linotte

Linotte

Esta referência detalha a sintaxe e os recursos documentados para Linotte 3.x: atores e papéis, expressões, coleções, funções, espécies, eventos e ferramentas do Atelier. Os termos de código permanecem em francês; as explicações mostram como interpretar cada construção sem traduzir a sintaxe.

Referência LinotteSintaxe Francês

01 · Visão geral

Sobre Linotte

Linotte é um projeto didático cuja sintaxe usa palavras e frases em francês. O projeto oficial apresenta um ambiente para aprender fundamentos de programação e mantém exemplos que percorrem variáveis, interação, condições, repetições, cálculos e funções.

O código desta referência permanece em francês para que os exemplos possam ser comparados com os arquivos originais. Traduzir palavras como affiche, prend ou ferme mudaria a sintaxe.

02 · Organização

Programa e comentários

Um programa Linotte é escrito como um conjunto de instruções no arquivo do projeto. Os exemplos introdutórios não exigem um bloco externo para envolver todo o programa. Uma instrução pode ocupar uma linha; blocos maiores são fechados com ferme.

Comentários de linha começam com //. Comentários de várias linhas ficam entre /* e */.

affiche "Bonjour !"
// Este comentário termina no fim da linha.

/*
Este bloco inteiro é ignorado
durante a interpretação.
*/

03 · Dados

Variáveis e valores

Linotte descreve variáveis como atores: cada ator tem nome, papel (seu tipo) e valor. O guia introdutório apresenta cinco papéis básicos: texte, nombre, drapeau, casier e espèce. Um papel pode ser declarado com est un; se a declaração for omitida, o tipo pode ser inferido pelo primeiro valor atribuído com prend.

prénom est un texte
prénom prend "Clément"
affiche prénom
prénom prend "Jade"

compteur est un nombre
compteur prend 10
compteur prend compteur + 1

actif est un drapeau
actif prend vrai

mois est un casier de textes valant "janvier", "février", "mars"

drapeau guarda um valor lógico, vrai ou faux. As palavras que indicam tipos e valores de texto são escritas em francês. Nomes de atores podem conter acentos, como prénom.

04 · Interação

Entrada e saída

affiche mostra uma expressão. demande solicita ao usuário um valor e o armazena na variável indicada; antes da leitura, a variável é declarada com seu tipo.

prénom est un texte
affiche "Quel est ton prénom ?"
demande prénom
affiche "Bonjour " + prénom

A forma questionne prénom sur "Quel est ton prénom ?" combina a pergunta e a leitura do valor em uma instrução.

Textos e expressões podem ser unidos com +. A exibição de números e textos segue o tipo dos valores e as conversões oferecidas pelo ambiente.

05 · Expressões

Operadores e matemática

GrupoFormasUso
Aritmética+ - * /Operações básicas.
Potência e restopuiss, modPotência e módulo.
Comparação= != > < >= <=Compara valores numéricos ou textos.
Lógicaet ou xouConjunção, disjunção e disjunção exclusiva.

Os exemplos oficiais também apresentam operações como carré, cube, racine, abs, arrondi, sin, cos, tan, exp, log, logn e hasard.

affiche carré 4
affiche 2 puiss 4
affiche (2 puiss 3 + 5 * 2) / 3
affiche vrai ou faux

06 · Decisões

Condições

si inicia uma condição e sinon introduz o caminho alternativo. Uma instrução simples pode seguir a condição na mesma linha; blocos com várias instruções terminam com ferme.

note est un nombre
age est un nombre
note prend 12
age prend 20

si note >= 10 affiche "Très bien !"
sinon affiche "Continue à pratiquer"

si age >= 18
    affiche "Adulte"
    affiche "Accès autorisé"
ferme
sinon
    affiche "Mineur"
ferme

As condições podem comparar valores ou testar um valor lógico. Os operadores relacionais mostrados nos exemplos são =, !=, >, <, >= e <=.

07 · Repetição

Repetições

pour percorre uma sequência numérica com os limites inicial e final incluídos. Para um bloco com várias instruções, use a forma em linhas e feche com ferme. pour chaque percorre uma coleção e disponibiliza o item atual no ator especial joker.

compteur est un nombre
pour compteur de 1 à 5 affiche compteur

pour compteur de 1 à 3
    affiche compteur
    attends 200 millisecondes
ferme

mois est un casier de textes valant "janvier", "février", "mars"
pour chaque mois
    affiche joker
ferme

Escolha limites que correspondam à quantidade de passos pretendida. Em um percurso com pour chaque, use joker para consultar o item atual.

08 · Reuso

Funções e valores de retorno

Uma função é introduzida pelo nome seguido de dois-pontos e pelos parâmetros. O corpo pode declarar variáveis locais, executar condições e retornar um resultado com retourne. Funções também podem chamar a si próprias.

double : nombre
    retourne nombre * 2

fibonacci : n
    si n < 2 retourne n
    sinon retourne fibonacci(n - 1) + fibonacci(n - 2)

A chamada de uma função aparece após seu nome, com argumentos entre parênteses. Os exemplos oficiais usam funções para separar cálculos e compor mensagens.

09 · Organização de dados

Coleções e extensões

O casier agrupa valores para percorrê-los com pour chaque. Os recursos do ambiente Linotte vão além das construções centrais: o repositório oficial inclui exemplos visuais e bibliotecas adicionais. Esses recursos dependem do ambiente e não devem ser confundidos com instruções disponíveis em todos os contextos.

nombres est un casier de nombres valant 2, 4, 6
pour chaque nombres
    affiche joker * joker
ferme

Para compreender um recurso específico, confira o exemplo que o acompanha e a documentação do componente correspondente no projeto original.

10 · Exemplo integrado

Contagem e condição

limite est un nombre
compteur est un nombre

affiche "Jusqu'à quel nombre compter ?"
demande limite

pour compteur de 1 à limite
    si compteur mod 2 = 0
        affiche compteur + " est pair"
    sinon
        affiche compteur + " est impair"
    ferme
ferme

Este exemplo combina declaração, solicitação de entrada, repetição e decisão. Os termos de sintaxe continuam em francês.

11 · Coleções

Acesso a coleções e iteração

Um casier reúne valores com o mesmo papel e permite percorrê-los sem repetir instruções. Nos exemplos oficiais, os índices começam em zero: em um casier com três elementos, as posições são 0, 1 e 2. A forma com chaves lê o valor de uma posição; ajoute insere um resultado em outra coleção.

nomes est un casier de textes valant "Lia", "Caio", "Noa"
indice est un nombre
pour indice de 0 à 2
    affiche noms{indice}
ferme

quadrados est un casier de nombres
pour chaque nomes
    ajoute joker.taille() dans quadrados
ferme

Em um bloco pour chaque, joker representa o elemento visitado naquela iteração. Quando o tamanho não é conhecido previamente, esse percurso evita calcular manualmente o último índice.

12 · Escrita compacta

Atalhos e interpolação

Além das instruções por extenso, o tutorial oficial apresenta formas compactas para exibir, solicitar e atribuir valores. Elas tornam alguns exemplos menores, mas não mudam o papel da operação. A interpolação coloca o valor de um ator entre chaves no texto.

prénom est un texte
prénom ?                    // pergunta pelo valor
"Bonjour, {prénom} !" !     // mostra o texto interpolado
prénom = "Jules"            // forma compacta de prend
"Bonjour, " & prénom !

O símbolo & pode agrupar ações ou valores em formas abreviadas documentadas; § pode substituir ferme em alguns exemplos. Para explicar um algoritmo ou facilitar a leitura, prefira primeiro as formas completas.

13 · Operações prontas

Funções integradas

Os exemplos oficiais incluem operações numéricas e métodos para transformar ou consultar textos. A notação de algumas funções é prefixada, como carré 4; métodos de texto são chamados depois do valor, com ponto e parênteses.

GrupoOperações documentadasUso
Matemáticacarré, cube, racine, abs, arrondiPotências simples, raiz, módulo absoluto e arredondamento.
Trigonometria e exponenciaissin, cos, tan, asin, acos, atan, exp, log, lognCálculos trigonométricos, exponenciais e logarítmicos.
Textoinverser(), minuscule(), majuscule(), capitaliser()Inverter ou alterar a capitalização.
Busca e recorteremplacer(), taille(), position(), extraire()Substituir, medir, localizar e extrair partes de um texto.
phrase prend "Bonjour la Terre"
affiche phrase.majuscule()
affiche phrase.remplacer("Terre", "Lune")
affiche phrase.taille()

mod, puiss, et, ou e xou também aparecem nos exemplos como operadores. Confira o tipo do valor e a forma de chamada no exemplo oficial associado à operação.

14 · Modelagem

Espécies e protótipos

Uma espèce define um tipo próprio de ator com atributos. A declaração lista os papéis dos atributos; a criação de um ator fornece seus valores. Para ler um atributo, os exemplos usam tanto a forma atributo de ator quanto atributo@ator.

espèces
    nom & famille est un texte
    pattes est un nombre
    espèce animal contient nom, famille, pattes

principal :
    chat est un animal, nom prend "Mimi", famille prend "félin", pattes prend 4
    affiche nom de chat
    affiche famille@chat

Uma espécie pode herdar de outra e acrescentar atributos. O ambiente também permite anexar funções a protótipos e criar instâncias com comportamento; esses recursos estendem o modelo simples de dados e devem ser lidos na seção avançada do tutorial.

espèces
    couleur est un texte
    espèce fleur hérite de point et contient couleur

15 · Recursos do Atelier

Eventos, gráficos e tarefas

O Atelier Linotte oferece recursos que dependem de sua interface: objetos como toile, cercle, rectangle, image e graffiti; posição, cor e colisão; eventos de mouse; e tarefas que podem ser iniciadas e observadas. Eles ampliam os exemplos, mas não são necessários para os algoritmos de texto desta página.

centre est un cercle, x prend 311, y prend 285, couleur prend "rouge", plein prend "oui", rayon prend 50
boule est un rectangle, largeur prend 40, hauteur prend 20, couleur prend "noir", plein prend "oui"
salle est une toile, couleur prend "blanc"

fais réagir boule & centre à "glisser-déposer" pour changement
tant que vrai temporise

changement :
    si boule.collision(centre)
        couleur@centre prend "jaune"
    ferme
    sinon couleur@centre prend "rouge"
    reviens

alarme :
    attends 2 secondes
    affiche "Temps écoulé."
    reviens

appelle alarme
observe alarme

Eventos comuns incluem clique, duplo clique e entrada ou saída do ponteiro. Consulte o projeto original para os atributos aceitos por cada objeto gráfico e para os detalhes do agendamento de tarefas.

16 · Diagnóstico

Erros e depuração

O tutorial do Atelier mostra um bloco essaie com uma alternativa sinon para tratar um erro durante a execução. A instrução débogue inicia o acompanhamento passo a passo na interface do Atelier.

  • Leia a mensagem de erro e identifique a instrução que estava sendo executada.
  • Avance uma instrução por vez e acompanhe os atores usados pela condição ou pelo cálculo.
  • Em uma repetição, confirme que o estado muda e que a condição de saída pode se tornar verdadeira ou falsa como esperado.
  • Teste coleções vazias, um único elemento e índices de início e fim.

O formato e a disponibilidade desses recursos dependem do Atelier Linotte. Os exemplos servem para explicar o ambiente de referência, não para pressupor uma interface gráfica em toda implementação.

17 · Leitura adicional

Referências

Volte ao Manual do Potoo IDE

Consulte as demais referências e informações do projeto.

Abrir o Manual