Skip to content

Commit

Permalink
feat (lab/template): fixes in the specification
Browse files Browse the repository at this point in the history
  • Loading branch information
santanche committed Apr 8, 2021
1 parent b6526b8 commit 02c3553
Showing 1 changed file with 32 additions and 35 deletions.
67 changes: 32 additions & 35 deletions notebooks/pt/c02oo-java/s02lab/s01lombriga/lab-lombriga.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"cells": [
{
"cell_type": "markdown",
"id": "round-edwards",
"id": "driving-notification",
"metadata": {},
"source": [
"# Lombriga no Aquário\n",
Expand Down Expand Up @@ -37,7 +37,7 @@
"\n",
"## Se Movendo pelo Aquário\n",
"\n",
"Note que a lombriga pode estar em qualquer posição do aquário, desde que ela caiba no espaço disponível.\n",
"Note que a lombriga pode estar em qualquer posição do aquário, desde que ela caiba no espaço disponível. A primeira posição no aquário é sempre 1 (e não 0 como em um vetor em Java).\n",
"\n",
"A lombriga pode se mover pelo aquário sempre para a direção para a qual ela está virada. No exemplo anterior, a lombriga daria um passo assim:\n",
"\n",
Expand All @@ -64,7 +64,7 @@
},
{
"cell_type": "markdown",
"id": "compatible-discretion",
"id": "animal-invalid",
"metadata": {},
"source": [
"# Tarefa\n",
Expand All @@ -77,24 +77,24 @@
"\n",
"## Métodos\n",
"\n",
"* `construtor` - no construtor é informado como parâmetro: o tamanho do aquário, o tamanho da lombriga e a posição da lombriga no aquário (a primeira posição é um);\n",
"* `construtor` - no construtor é informado como parâmetro: o tamanho do aquário, o tamanho da lombriga e a posição da lombriga no aquário;\n",
"* `crescer` - a lombriga cresce uma unidade dentro do aquário somente se houver espaço para ela crescer na direção oposta à cabeça -- a lombriga só cresce se houver espaço no aquário na direção do crescimento, caso contrário, ela não crescerá, mesmo que o método seja chamado;\n",
"* `mover` - a lombriga se move uma unidade na direção para a qual está virada à cabeça; se ela estiver no limite do aquário (para o lado que ela está virada a cabeça) e for chamado este método ela vira de lado em vez de andar;\n",
"* `virar` - a lombriga vira de lado;\n",
"* `apresenta` - retorna uma String contendo a apresentação da lombriga no aquário no estado atual, conforme foi descrito anteriormente."
"* `apresenta` - retorna uma String contendo a apresentação da lombriga no aquário no estado atual, conforme foi descrito anteriormente.\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "induced-confirmation",
"id": "subtle-competition",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "cloudy-ukraine",
"id": "pacific-contribution",
"metadata": {},
"source": [
"# Animando a Lombriga no Aquário\n",
Expand All @@ -107,12 +107,12 @@
"\n",
"* `AA` - é um número (sempre ocupando dois caracteres) representando o tamanho do aquário; por exemplo, `08` representa um aquário de tamanho 8;\n",
"* `LL` - é um número (sempre ocupando dois caracteres) representando o tamanho da lombriga; por exemplo, `04` representa uma lombriga de tamanho 4;\n",
"* `PP` - é um número (sempre ocupando dois caracteres) representando a posição inicial da lombriga no aquário -- a lombriga começa sempre virada para a direita, portanto trata-se da posição da ponta da cauda; por exemplo, `02` representa uma lombriga na posição 2.\n",
"* `PP` - é um número (sempre ocupando dois caracteres) representando a posição inicial da lombriga no aquário -- a lombriga começa sempre virada para a direita, portanto trata-se da posição da ponta da cauda; por exemplo, `03` representa uma lombriga na posição 3.\n",
"\n",
"A sequência:\n",
"\n",
"~~~\n",
"080402\n",
"080403\n",
"~~~\n",
"\n",
"Representa um aquário de tamanho 8, com uma lombriga de tamanho 4, na posição 3:\n",
Expand All @@ -127,23 +127,15 @@
" * `V` - a lombriga vira.\n",
"\n",
"~~~\n",
"080402MCMVM\n",
"080403MCMVM\n",
"~~~\n",
"\n",
"A lombriga do exemplo anterior os passos de animação são: se move, cresce, se move, vira e se move."
"A lombriga do exemplo anterior os passos de animação são: se move, cresce, se move, vira e se move.\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "czech-boost",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "pressing-popularity",
"id": "catholic-idaho",
"metadata": {},
"source": [
"# Tarefa\n",
Expand All @@ -162,11 +154,11 @@
"\n",
"Por exemplo, considere a animação do exemplo anterior:\n",
"~~~\n",
"080402MCMVM\n",
"080403MCMVM\n",
"~~~\n",
"\n",
"Considere que foi chamada a seguinte sequência de métodos:\n",
"* `construtor` - passa como parâmetro `080402MCMVM`;\n",
"* `construtor` - passa como parâmetro `080403MCMVM`;\n",
"* `apresenta` - retorna `##@@@O##`\n",
"* `passo` - executa primeira ação `M`\n",
"* `apresenta` - retorna `###@@@O#`\n",
Expand All @@ -177,54 +169,59 @@
"* `passo` - executa próxima ação `V`\n",
"* `apresenta`- retorna `###O@@@@`\n",
"* `passo` - executa próxima ação `M`\n",
"* `apresenta` - retorna `##O@@@@#`"
"* `apresenta` - retorna `##O@@@@#`\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "fuzzy-laser",
"id": "polished-publisher",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "failing-voluntary",
"id": "limiting-nothing",
"metadata": {},
"source": [
"# Programa\n",
"\n",
"Escreva um programa que use as suas classes para mostrar todos os passos da animação no console: `080402MCMVM`, conforme foi ilustrado anteriormente."
"Escreva um programa que use as suas classes para mostrar todos os passos da animação no console: `080403MCMVM`, conforme foi ilustrado anteriormente."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "faced-valley",
"id": "stainless-lightning",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "shaped-country",
"id": "metric-prototype",
"metadata": {},
"source": [
"# Versão Eclipse\n",
"# Versão Eclipse ou equivalente\n",
"\n",
"Adapte todo o código que você desenvolveu para o Eclipse seguindo os critérios:\n",
"Adapte todo o código que você desenvolveu para ser rodado em console fora do Jupyter, usando o Eclipse ou equivalente seguindo os critérios:\n",
"* todo o código deve estar no pacote: `mc322.lab03` -- não criar sub-pacotes;\n",
"* o programa principal (main) deve estar em uma terceira classe chamada `AppLab03`."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "automatic-national",
"cell_type": "markdown",
"id": "respiratory-meditation",
"metadata": {},
"outputs": [],
"source": []
"source": [
"# Observações Finais Importantes\n",
"\n",
"* O nome das classes e métodos deve ser rigorosamente como o especificado.\n",
"* Cada um tem a liberdade de decidir como tratar as condições excepcionais não especificadas, mas seguem sugestões de como tratá-las:\n",
"a. O que fazer se for especificada uma lombriga maior que o aquário? Aumentar o aquário para que a lombriga caiba.\n",
"b. O que fazer se a lombriga não couber na posição especificada no começo? Colocar a lombriga na posição 1."
]
}
],
"metadata": {
Expand Down

0 comments on commit 02c3553

Please sign in to comment.