Skip to content

Commit

Permalink
Atualização
Browse files Browse the repository at this point in the history
  • Loading branch information
gqueiroz committed Mar 17, 2024
1 parent f104206 commit c58c1a0
Show file tree
Hide file tree
Showing 15 changed files with 268 additions and 58 deletions.
Binary file added _images/op-st-touches.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
129 changes: 121 additions & 8 deletions _sources/introducao-programacao/expressoes-logicas.rst.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,28 +12,141 @@ Expressões Lógicas
==================


**Problema:** Escreva um programa que pergunte ao usuário o valor de um ano qualquer e que o informe se o ano é ou não bissexto.
**Problema 1:** Escreva um programa que pergunte ao usuário o valor de um ano qualquer e que o informe se o ano é ou não bissexto.


.. tip::

`Anos bissextos <https://pt.wikipedia.org/wiki/Ano_bissexto>`_ ocorrem a cada quatro anos, exceto anos múltiplos de 100 que não são múltiplos de 400.


**Solução:**
.. collapse:: Solução:


.. code-block:: python
.. code-block:: python
# a função input permite ao usuário inserir um valor durante a execução
ano = int(input("Ano: "))
# a função input permite ao usuário inserir um valor durante a execução
ano = int(input("Ano: "))
# a expressão lógica a seguir verifica se um número é bissexto
bissexto = ano % 4 == 0 and (ano % 100 != 0 or ano % 400 == 0)
# a expressão lógica a seguir verifica se um número é bissexto
bissexto = ano % 4 == 0 and (ano % 100 != 0 or ano % 400 == 0)
print("O ano", ano, "é bissexto?", bissexto)
print("O ano", ano, "é bissexto?", bissexto)
.. note::

Saber se um ano é bissexto é importante no contexto de Sensoriamento Remoto, pois isso impacta nas datas de aquisição das imagens pelos satélites.


-----


**Problema 2:** Considerando os elementos geométricos e os casos numerados de 1 a 6 na :numref:`Figura %s <fig:introducao-programacao:op-st-touches>`, construa expressões lógicas que ajudem a responder às seguintes perguntas:

.. rst-class:: open

- Os elementos geométricos dos casos 4 e 5 satisfazem o relacionamento espacial ``Touches``?

- Todos os casos apresentados envolvendo elementos geométricos lineares (casos 1, 2 e 3) representam de fato exeplos de relacionamento espacial ``Touches``?


.. figure:: ../img/introducao-programacao/op-st-touches.png
:alt: A geometria A toca a geometria B?
:width: 100%
:figclass: align-center
:align: center
:name: fig:introducao-programacao:op-st-touches

A geometria ``A`` toca a geometria ``B``?


.. collapse:: Solução:


.. note::

Para solução desse exercício, usaremos a biblioteca Python denominada `Shapely <https://shapely.readthedocs.io/en/latest/manual.html>`__. Veremos mais detalhes sobre os tipos geométricos e essa biblioteca na :numref:`Seção %s <sec_vetorial_shapely>`.


.. note::

Também iremos utilizar uma representação textual para os elementos geométricos conhecida por **WKT** ou **Well-known text** (:numref:`Seção %s <sec_vetorial_shapely>`).


Vamos considerar a seguinte representação WKT para as geometrias:

- Caso 4:

.. code-block:: text
POLYGON( ( 9 6, 9 8, 12 8, 12 6, 9 6 ) )
POLYGON( ( 12 7, 15 9, 15 5, 12 7 ) )
- Caso 5:

.. code-block:: text
POLYGON( ( 1 1, 1 3, 4 3, 4 1, 1 1 ) )
POLYGON( ( 4 2, 4 4, 6 4, 6 2, 4 2 ) )
Para responder à primeira pergunta, podemos construir o seguinte trecho de código:

.. code-block:: python
from shapely import from_wkt
pol1 = from_wkt('POLYGON( ( 9 6, 9 8, 12 8, 12 6, 9 6 ) )')
pol2 = from_wkt('POLYGON( ( 12 7, 15 9, 15 5, 12 7 ) )')
pol3 = from_wkt('POLYGON( ( 1 1, 1 3, 4 3, 4 1, 1 1 ) )')
pol4 = from_wkt('POLYGON( ( 4 2, 4 4, 6 4, 6 2, 4 2 ) )')
caso4 = pol1.touches(pol2)
caso5 = pol3.touches(pol4)
resultado = caso4 and caso5
print(resultado)
Para responder a segunda pergunta, considere a seguinte representação WKT para as geometrias:

- Caso 1:

.. code-block:: text
LINESTRING( 1 7, 1 9, 3 9 )
LINESTRING( 1 9, 3 7 )
- Caso 2:

.. code-block:: text
LINESTRING( 1 4, 2 6 )
LINESTRING( 2 6, 3 4 )
- Caso 3:

.. code-block:: text
LINESTRING( 5 6, 5 8, 7 8 )
LINESTRING( 6 6, 6 9 )
.. note::

Suponha que o exercício anterior solicitasse a escrita de uma mensagem diferente na tela dependendo do resultado verdadeiro ou falso dos testes. Exemplo:

- Os casos 4 e 5 são exemplos do relacionamento espacial Touches
- Pelo menos um dos casos (4 ou 5) não representa o relacionamento espacial Touches


Nesse caso, precisamos estruturar o programa dependendo de uma condição lógica. A próxima seção irá discutir uso das estruturas condicionais.
10 changes: 4 additions & 6 deletions _sources/visao-geral/cronograma.rst.txt
Original file line number Diff line number Diff line change
Expand Up @@ -27,19 +27,17 @@ Aulas Regulares
+------+------------+--------------------------------------------------------------------------------------------------------------+
| Aula | Data | Tópicos |
+======+============+==============================================================================================================+
| 01 | 04/03/2024 | Aula inaugural INPE |
| 01 | 06/03/2023 | Aula inaugural INPE |
+------+------------+--------------------------------------------------------------------------------------------------------------+
| 02 | 06/03/2024 | :ref:`Visão Geral do Curso <cap_visao_geral>` (assista ao `video <https://youtu.be/OQPeRrd81a8>`_) |
| 02 | 08/03/2023 | :ref:`Visão Geral do Curso <cap_visao_geral>` (assista ao `video <https://youtu.be/OQPeRrd81a8>`_) |
+------+------------+--------------------------------------------------------------------------------------------------------------+
| ... | ... | ... |
+------+------------+--------------------------------------------------------------------------------------------------------------+
| ... | 24/04/2023 | Prova |
| 03 | 03/05/2023 | Prova |
+------+------------+--------------------------------------------------------------------------------------------------------------+
| ... | ... | ... |
+------+------------+--------------------------------------------------------------------------------------------------------------+
| ... | 20/05/2023 | Apresentação de Trabalhos |
+------+------------+--------------------------------------------------------------------------------------------------------------+
| .. | 22/05/2023 | Apresentação de Trabalhos |
| 05 | 24/05/2023 | Apresentação de Trabalhos |
+------+------------+--------------------------------------------------------------------------------------------------------------+


Expand Down
7 changes: 7 additions & 0 deletions _static/prog-geo.css
Original file line number Diff line number Diff line change
Expand Up @@ -107,11 +107,18 @@ p.centered-paragraph {
text-align: center;
}

details.summary-solucao[open] > summary {
font-weight: bold;
padding-bottom: 1rem;
}

details.summary-solucao > summary {
font-weight: bold;
padding-bottom: 0rem;
}

details.summary-solucao {
background-color: #f3f6f6;
padding: 1rem;
margin-bottom: 1rem;
}
4 changes: 2 additions & 2 deletions introducao-programacao/consideracoes.html
Original file line number Diff line number Diff line change
Expand Up @@ -149,12 +149,12 @@
<span id="sec-introducao-programacao-consideracoes"></span><h1><span class="section-number">2.25. </span>Considerações Finais<a class="headerlink" href="#consideracoes-finais" title="Link permanente para este cabeçalho"></a></h1>
<p>Linguagens de programação (Seção <a class="reference internal" href="introducao.html#sec-introducao-programacao-introducao"><span class="std std-numref">2.1</span></a>):</p>
<ul class="simple">
<li><p>Aprendemos o que é uma linguagem de programação de alto nível. A <a class="reference internal" href="#introd-prog-fig-lp-high-low"><span class="std std-numref">Figura 2.23</span></a> mostra a diferença entre uma linguagem de alto nível e uma linguagem de baixo nível.</p></li>
<li><p>Aprendemos o que é uma linguagem de programação de alto nível. A <a class="reference internal" href="#introd-prog-fig-lp-high-low"><span class="std std-numref">Figura 2.24</span></a> mostra a diferença entre uma linguagem de alto nível e uma linguagem de baixo nível.</p></li>
</ul>
<figure class="align-center align-default" id="introd-prog-fig-lp-high-low">
<a class="reference internal image-reference" href="../_images/alto-nivel-x-baixo-nivel.png"><img alt="Linguagens de Alto Nível x Linguagens de Baixo Nível" src="../_images/alto-nivel-x-baixo-nivel.png" style="width: 80%;" /></a>
<figcaption>
<p><span class="caption-number">Figura 2.23 - </span><span class="caption-text">Linguagens de Alto Nível x Linguagens de Baixo Nível. <br/> <strong>Fonte:</strong> Schmalz <span id="id1">[<a class="reference internal" href="../referencias.html#id96" title="M. S. Schmalz. Organization of computer systems: 2: isa, machine language, and number systems. 2021. Online; acessado 07 de Março de 2021. URL: https://www.cise.ufl.edu/~mssz/CompOrg/CDA-lang.html.">66</a>]</span>.</span><a class="headerlink" href="#introd-prog-fig-lp-high-low" title="Link Permanente para essa imagem"></a></p>
<p><span class="caption-number">Figura 2.24 - </span><span class="caption-text">Linguagens de Alto Nível x Linguagens de Baixo Nível. <br/> <strong>Fonte:</strong> Schmalz <span id="id1">[<a class="reference internal" href="../referencias.html#id96" title="M. S. Schmalz. Organization of computer systems: 2: isa, machine language, and number systems. 2021. Online; acessado 07 de Março de 2021. URL: https://www.cise.ufl.edu/~mssz/CompOrg/CDA-lang.html.">66</a>]</span>.</span><a class="headerlink" href="#introd-prog-fig-lp-high-low" title="Link Permanente para essa imagem"></a></p>
</figcaption>
</figure>
<ul class="simple">
Expand Down
Loading

0 comments on commit c58c1a0

Please sign in to comment.