Skip to content

Commit

Permalink
Atualização
Browse files Browse the repository at this point in the history
  • Loading branch information
jandermoreira committed Jun 17, 2024
1 parent 7037869 commit e902b26
Show file tree
Hide file tree
Showing 24 changed files with 1,057 additions and 79 deletions.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8 changes: 4 additions & 4 deletions cap-linguagem-c/algoritmos-nocoes.html
Original file line number Diff line number Diff line change
Expand Up @@ -441,7 +441,7 @@ <h2 data-number="1.1" class="anchored" data-anchor-id="características-gerais-d
<li>A situação final.</li>
</ul>
<p> A situação inicial são as pré-condições, ou seja, o que tem haver antes da execução dos passos para que todas as ações possam ser seguidas de forma adequada. Os passos determinam as ações que devem ser executadas e uma ordem coerente para que aconteçam. As pós-condições caracterizam a situação final, ou seja, a completude do que o algoritmo se propôs a resolver.</p>
<p>Na <a href="#tbl-exemplos-condicoes-algoritmos" class="quarto-xref">Tabela&nbsp;<span>1.1</span></a> são apresentados esses elementos para dois exemplos específicos, ilustrando-os de forma simplificada.</p>
<p>Na <a href="#tbl-exemplos-condicoes-algoritmos" class="quarto-xref">Tabela&nbsp;<span class="quarto-unresolved-ref">tbl-exemplos-condicoes-algoritmos</span></a> são apresentados esses elementos para dois exemplos específicos, ilustrando-os de forma simplificada.</p>
<div id="tbl-exemplos-condicoes-algoritmos" class="quarto-float anchored">
<figure class="quarto-float quarto-float-tbl figure">
<figcaption class="quarto-float-caption-top quarto-float-caption quarto-float-tbl" id="tbl-exemplos-condicoes-algoritmos-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Expand Down Expand Up @@ -495,7 +495,7 @@ <h2 data-number="1.1" class="anchored" data-anchor-id="características-gerais-d
<p> Um algoritmo pode ser definido como uma sequência finita de passos que levam de uma situação inicial (pré-condições) a uma situação final (pós-condições) de forma bem definida. A partir desse conceito, é esperado que, a partir do mesmo estado inicial e seguidos os mesmos passos, o estado final seja atingido.</p>
</div>
</div>
<p>Esta definição não se aplica, em particular, à receita do pão indicada na <a href="#tbl-exemplos-condicoes-algoritmos" class="quarto-xref">Tabela&nbsp;<span>1.1</span></a>. O resultado tende a variar consideravelmente dependendo de uma variedade de situações não mencionadas, como o tipo e a qualidade da farinha, a temperatura ambiente que influencia no crescimento da massa e o forno usado, que pode aquecer mais ou menos que outro forno, por exemplo. Para se garantir um resultado sempre “igual”, todas essas variáveis deveriam entrar nas pré-condições. Felizmente, essas variações são toleradas no resultado final da receita, sendo até esperadas tais diferenças. As pré-condições e pós-condições podem, dependendo do caso, ter graus de especificidade variados.</p>
<p>Esta definição não se aplica, em particular, à receita do pão indicada na <a href="#tbl-exemplos-condicoes-algoritmos" class="quarto-xref">Tabela&nbsp;<span class="quarto-unresolved-ref">tbl-exemplos-condicoes-algoritmos</span></a>. O resultado tende a variar consideravelmente dependendo de uma variedade de situações não mencionadas, como o tipo e a qualidade da farinha, a temperatura ambiente que influencia no crescimento da massa e o forno usado, que pode aquecer mais ou menos que outro forno, por exemplo. Para se garantir um resultado sempre “igual”, todas essas variáveis deveriam entrar nas pré-condições. Felizmente, essas variações são toleradas no resultado final da receita, sendo até esperadas tais diferenças. As pré-condições e pós-condições podem, dependendo do caso, ter graus de especificidade variados.</p>
<p>Essa variação de resultados, porém, não é tolerada na atualização do saldo bancário. Dado o mesmo saldo inicial e as mesmas movimentações, o resultado não pode ser diferente sob nenhuma hipótese. Tem que haver uma previsibilidade do resultado. Neste caso, pré e pós-condições são bastante determinísticas.</p>
<!-- Há, portanto, algoritmos e algoritmos. Alguns são mais maleáveis, como o do pão: sove até obter uma massa lisa, o que certamente depende da experiência de quem executa a receita. Outros são mais rígidos: o saldo final tem que estar correto sempre, dadas as condições do problema. -->
<p>Os algoritmos com resultados e passos mais maleáveis, que toleram certas variações no resultado final, enquadram-se como algoritmos gerais. Entre eles estão as receitas, instruções de montagem de móveis, orientações para se chegar a um destino com GPS ou instruções de como inserir um novo contato na agenda do telefone. Em todos eles, até a vivência e experiências pessoais de quem os executa podem ter influência no resultado. Há pessoas com ótima mão para fazer bolos, por exemplo.</p>
Expand All @@ -520,7 +520,7 @@ <h2 data-number="1.2" class="anchored" data-anchor-id="algoritmos-computacionais
</div>
<section id="fluxogramas" class="level3" data-number="1.2.1">
<h3 data-number="1.2.1" class="anchored" data-anchor-id="fluxogramas"><span class="header-section-number">1.2.1</span> Fluxogramas</h3>
<p>Os fluxogramas são representações visuais com os passos que implementam cada algoritmo. Os símbolos (caixas) possuem formas específicas para cada função e setas as ligam indicando a ordem em que devem ser executadas. Na <a href="#fig-fluxograma-raizes-equacao" class="quarto-xref">Figura&nbsp;<span>1.1</span></a> é apresentado um fluxograma para o cálculo das raízes reais de equação de segundo grau e apresentação de mensagens de erro nos casos adequados.</p>
<p>Os fluxogramas são representações visuais com os passos que implementam cada algoritmo. Os símbolos (caixas) possuem formas específicas para cada função e setas as ligam indicando a ordem em que devem ser executadas. Na <a href="#fig-fluxograma-raizes-equacao" class="quarto-xref">Figura&nbsp;<span class="quarto-unresolved-ref">fig-fluxograma-raizes-equacao</span></a> é apresentado um fluxograma para o cálculo das raízes reais de equação de segundo grau e apresentação de mensagens de erro nos casos adequados.</p>
<div id="fig-fluxograma-raizes-equacao" class="quarto-figure quarto-figure-center quarto-float anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-fluxograma-raizes-equacao-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Expand All @@ -535,7 +535,7 @@ <h3 data-number="1.2.1" class="anchored" data-anchor-id="fluxogramas"><span clas
<section id="pseudocódigo" class="level3" data-number="1.2.2">
<h3 data-number="1.2.2" class="anchored" data-anchor-id="pseudocódigo"><span class="header-section-number">1.2.2</span> Pseudocódigo</h3>
<p>Como alternativa aos fluxogramas, é bastante comum o emprego do chamado pseudocódigo, o qual se assemelha a programas, mas é uma abstração da solução. O <a href="algoritmos-nocoes.html#alg-pseudocodigo-raizes-equacao">Algoritmo 1.1</a> é apresentado na forma de pseudocódigo.</p>
<p>O <a href="algoritmos-nocoes.html#alg-pseudocodigo-raizes-equacao">Algoritmo 1.1</a> se refere à mesma solução lógica da <a href="#fig-fluxograma-raizes-equacao" class="quarto-xref">Figura&nbsp;<span>1.1</span></a>.</p>
<p>O <a href="algoritmos-nocoes.html#alg-pseudocodigo-raizes-equacao">Algoritmo 1.1</a> se refere à mesma solução lógica da <a href="#fig-fluxograma-raizes-equacao" class="quarto-xref">Figura&nbsp;<span class="quarto-unresolved-ref">fig-fluxograma-raizes-equacao</span></a>.</p>
<div id="alg-pseudocodigo-raizes-equacao">
<figcaption class="figure-caption">
<p>Algoritmo 1.1: Pseudocódigo para o cálculo e apresentação das raízes reais de uma equação de segundo grau.</p>
Expand Down
8 changes: 4 additions & 4 deletions cap-linguagem-c/c-arquivos-texto.html
Original file line number Diff line number Diff line change
Expand Up @@ -668,7 +668,7 @@ <h2 data-number="14.3" class="anchored" data-anchor-id="sec-fluxo-de-leitura"><s
<span id="cb15-2"><a href="#cb15-2" aria-hidden="true" tabindex="-1"></a>R 0.0 0.0 5.5 2.0</span>
<span id="cb15-3"><a href="#cb15-3" aria-hidden="true" tabindex="-1"></a>T -1.0 1.0 3.0 4.5 4 -0.5</span>
<span id="cb15-4"><a href="#cb15-4" aria-hidden="true" tabindex="-1"></a>R -1.2 5.2 2.2 3.1</span></code><button title="Copiar para a área de transferência" class="code-copy-button"><i class="bi"></i></button></pre></div>
<p>Neste exemplo, o <code>3</code> indica que há três formas. A primeira é o retângulo <span class="math inline">\(R_1\)</span> da <a href="#fig-retangulos-e-triangulos" class="quarto-xref">Figura&nbsp;<span>14.1</span></a>; segue-se o triângulo <span class="math inline">\(T\)</span> e a última é o retângulo <span class="math inline">\(R_2\)</span>.</p>
<p>Neste exemplo, o <code>3</code> indica que há três formas. A primeira é o retângulo <span class="math inline">\(R_1\)</span> da <a href="#fig-retangulos-e-triangulos" class="quarto-xref">Figura&nbsp;<span class="quarto-unresolved-ref">fig-retangulos-e-triangulos</span></a>; segue-se o triângulo <span class="math inline">\(T\)</span> e a última é o retângulo <span class="math inline">\(R_2\)</span>.</p>
<div id="fig-retangulos-e-triangulos" class="quarto-figure quarto-figure-center quarto-float anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-retangulos-e-triangulos-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Expand Down Expand Up @@ -764,7 +764,7 @@ <h2 data-number="14.4" class="anchored" data-anchor-id="mais-sobre-a-abertura-e-
<h3 data-number="14.4.1" class="anchored" data-anchor-id="a-função-fopen"><span class="header-section-number">14.4.1</span> A função <code>fopen</code></h3>
<p>A função de associação entre o programa e o arquivo real é a <code>fopen</code>. Ela sempre possui dois parâmetros, sendo o primeiro a indicação do nome do arquivo e o segundo, o modo de abertura.</p>
<p>O nome do arquivo é uma cadeia de caracteres que pode ser somente o nome do arquivo, como <code>"figuras.txt"</code>, por exemplo. Nesse caso, o arquivo físico é considerado em relação ao diretório corrente. O nome pode indicar também o caminho: <code>"../figuras.txt"</code> indica o arquivo no diretório pai (isto é, um acima do atual) e <code>"/home/user/dados/figuras.txt"</code> dá o caminho absoluto e independe do diretório corrente<a href="#fn1" class="footnote-ref" id="fnref1" role="doc-noteref"><sup>1</sup></a>.</p>
<p>Em relação aos modos, como <code>"w"</code> ou <code>"r"</code> usados nos exemplos, a <a href="#tbl-modos-arquivo-texto" class="quarto-xref">Tabela&nbsp;<span>14.1</span></a> sumariza como funcionam.</p>
<p>Em relação aos modos, como <code>"w"</code> ou <code>"r"</code> usados nos exemplos, a <a href="#tbl-modos-arquivo-texto" class="quarto-xref">Tabela&nbsp;<span class="quarto-unresolved-ref">tbl-modos-arquivo-texto</span></a> sumariza como funcionam.</p>
<div id="tbl-modos-arquivo-texto" class="quarto-float anchored">
<figure class="quarto-float quarto-float-tbl figure">
<figcaption class="quarto-float-caption-top quarto-float-caption quarto-float-tbl" id="tbl-modos-arquivo-texto-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Expand Down Expand Up @@ -801,7 +801,7 @@ <h3 data-number="14.4.1" class="anchored" data-anchor-id="a-função-fopen"><spa
</figure>
</div>
<p>Arquivos texto são, via de regra, processados sequencialmente, do início ao fim ou do início até um ponto de interesse qualquer. Raramente são abertos para leitura e escrita, de forma que essa opção foi omitida da lista apresentada.</p>
<p>A <a href="#tbl-modos-arquivo-texto" class="quarto-xref">Tabela&nbsp;<span>14.1</span></a> também introduz um elemento importante, embora intuitivamente fácil de compreender: a posição corrente. Esse termo é aplicado ao local no arquivo onde as operações de leitura e escrita serão realizadas. Por exemplo, quando um arquivo é aberto em modo <code>"r"</code>, a posição corrente está no início do arquivo, que é o byte zero. A cada leitura, a posição corrente é ajustada para o próximo byte que será lido.</p>
<p>A <a href="#tbl-modos-arquivo-texto" class="quarto-xref">Tabela&nbsp;<span class="quarto-unresolved-ref">tbl-modos-arquivo-texto</span></a> também introduz um elemento importante, embora intuitivamente fácil de compreender: a posição corrente. Esse termo é aplicado ao local no arquivo onde as operações de leitura e escrita serão realizadas. Por exemplo, quando um arquivo é aberto em modo <code>"r"</code>, a posição corrente está no início do arquivo, que é o byte zero. A cada leitura, a posição corrente é ajustada para o próximo byte que será lido.</p>
<p>Embora a posição corrente não seja diretamente usada pelo programador no processamento sequencial do arquivo, um exemplo simples de programa ilustra esse conceito.</p>
<div class="runenv">
<div class="sourceCode cell-code" id="cb18"><pre class="sourceCode c code-with-copy"><code class="sourceCode c"><span id="cb18-1"><a href="#cb18-1" aria-hidden="true" tabindex="-1"></a><span class="co">/*</span></span>
Expand Down Expand Up @@ -1021,7 +1021,7 @@ <h2 data-number="14.6" class="anchored" data-anchor-id="leitura-até-o-fim-do-ar
<span id="cb27-4"><a href="#cb27-4" aria-hidden="true" tabindex="-1"></a>1.00</span>
<span id="cb27-5"><a href="#cb27-5" aria-hidden="true" tabindex="-1"></a>4.00</span>
<span id="cb27-6"><a href="#cb27-6" aria-hidden="true" tabindex="-1"></a>0.50</span></code><button title="Copiar para a área de transferência" class="code-copy-button"><i class="bi"></i></button></pre></div>
<p>O arquivo <code>figuras.txt</code> processado por esse programa contém o conteúdo seguinte. Comparativamente ao usado na <a href="#sec-fluxo-de-leitura" class="quarto-xref"><span>Seção 14.3</span></a>, o formado de descrição de cada forma é o mesmo, sendo que apenas a primeira linha contendo o número de formas não existe.</p>
<p>O arquivo <code>figuras.txt</code> processado por esse programa contém o conteúdo seguinte. Comparativamente ao usado na <a href="#sec-fluxo-de-leitura" class="quarto-xref"><span class="quarto-unresolved-ref">sec-fluxo-de-leitura</span></a>, o formado de descrição de cada forma é o mesmo, sendo que apenas a primeira linha contendo o número de formas não existe.</p>
<div class="sourceCode" id="cb28" data-from="figuras.txt"><pre class="sourceCode textfile terminal cell-output code-with-copy"><code class="sourceCode terminal"><span id="cb28-1"><a href="#cb28-1" aria-hidden="true" tabindex="-1"></a>R 0.0 0.0 5.5 2.0</span>
<span id="cb28-2"><a href="#cb28-2" aria-hidden="true" tabindex="-1"></a>T -1.0 1.0 3.0 4.5 4 -0.5</span>
<span id="cb28-3"><a href="#cb28-3" aria-hidden="true" tabindex="-1"></a>R -1.2 5.2 2.2 3.1</span>
Expand Down
2 changes: 1 addition & 1 deletion cap-linguagem-c/c-dados-com-struct.html
Original file line number Diff line number Diff line change
Expand Up @@ -972,7 +972,7 @@ <h3 data-number="23.4.1" class="anchored" data-anchor-id="sec-declaracao-struct-
<section id="sec-declaracoes-struct-iguais" class="level3" data-number="23.4.2">
<h3 data-number="23.4.2" class="anchored" data-anchor-id="sec-declaracoes-struct-iguais"><span class="header-section-number">23.4.2</span> Declarações “iguais”</h3>
<p>Em C, ao se encontrar a definição do registro como um tipo, o compilador adiciona esse novo <code>struct</code> a uma tabela interna de novos tipos. Se duas definições são idênticas, porém criadas em momentos diferentes, elas não são compatíveis.</p>
<p>Segue um exemplo no qual duas variáveis são criadas sem especificação do nome do <code>struct</code> (<a href="#sec-declaracao-struct-sem-nome" class="quarto-xref"><span>Seção 23.4.1</span></a>) para, em seguida, ser declarada uma terceira variável com <code>struct</code> idêntico no formato.</p>
<p>Segue um exemplo no qual duas variáveis são criadas sem especificação do nome do <code>struct</code> (<a href="#sec-declaracao-struct-sem-nome" class="quarto-xref"><span class="quarto-unresolved-ref">sec-declaracao-struct-sem-nome</span></a>) para, em seguida, ser declarada uma terceira variável com <code>struct</code> idêntico no formato.</p>
<div class="sourceCode cell-code" id="cb26" data-intentional-problems="true"><pre class="sourceCode c code-with-copy"><code class="sourceCode c"><span id="cb26-1"><a href="#cb26-1" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb26-2"><a href="#cb26-2" aria-hidden="true" tabindex="-1"></a><span class="co">/*</span></span>
<span id="cb26-3"><a href="#cb26-3" aria-hidden="true" tabindex="-1"></a><span class="co"> * Exemplo de struct sem nome</span></span>
Expand Down
Loading

0 comments on commit e902b26

Please sign in to comment.