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
| Grupo | Formas | Uso |
|---|---|---|
| Aritmética | + - * / | Operações básicas. |
| Potência e resto | puiss, mod | Potência e módulo. |
| Comparação | = != > < >= <= | Compara valores numéricos ou textos. |
| Lógica | et ou xou | Conjunçã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.
| Grupo | Operações documentadas | Uso |
|---|---|---|
| Matemática | carré, cube, racine, abs, arrondi | Potências simples, raiz, módulo absoluto e arredondamento. |
| Trigonometria e exponenciais | sin, cos, tan, asin, acos, atan, exp, log, logn | Cálculos trigonométricos, exponenciais e logarítmicos. |
| Texto | inverser(), minuscule(), majuscule(), capitaliser() | Inverter ou alterar a capitalização. |
| Busca e recorte | remplacer(), 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
- Repositório oficial de Linotte, mantido pelo projeto.
- Exemplos oficiais de boas-vindas, variáveis, entrada, condições, laços, matemática e funções.
- Wiki do projeto e site oficial.