| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500 | 
							- <!--
 
- MAC2166 - 2017 - Prof. Leo^nidas de Oliveira Branda~o
 
- -->
 
- <!DOCTYPE html>
 
- <html class='yui3-js-enabled' dir='ltr' xml:lang='pt-br' lang='pt-br'>
 
-  <head>
 
-   <title>Introdução às variáveis e expressões aritméticas</title>
 
-   <meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>
 
-   <meta name='keywords' content='mac0122, material, professore, leonidas de oliveira brandao'>
 
-   <link rel='stylesheet' type='text/css' href='css_img_js_conf/all.css'>
 
-   <script id='firstthemesheet' type='text/css'>/** Required in order to fix style inclusion problems in IE with YUI **/</script>
 
-   <style type="text/css">
 
-    .tbCodeLinCol { border-collapse:collapse; }
 
-    .tbCodeLinCol th { background-color:#8aaada; }
 
-    .tbCodeLinCol td, .tbCodeLinCol th { padding:5px;border:1px solid #000; font: 10px/12px Arial, Helvetica, sans-serif; }
 
-    .tbCode td, .tb th { border: 0; font: 10px/12px Arial, Helvetica, sans-serif; }
 
-    .tableCd { border-collapse:collapse; }
 
-    .thBg th { background-color:#8aaada; }
 
-    .trCd td, .tbCd td, .tbCd th { vertical-align: top; padding:5px; border-right:1px solid #000;  font-family: courier }
 
-    .cmd { color: #0000AA; }
 
-    .def { color: #9D009D; }
 
-    .fnc { color: #008866; }
 
-    .head { color: #000000; }
 
-    .var { color: #009A00; }
 
-    .tipo { color: #005A5A; }
 
-    .com { color: #AA0000; }
 
-    .versao { font-size: .6em; }
 
-    .rodape { font-size: .8em; }
 
-    div.exemplo {color:#006f3f;}
 
-   </style>
 
-   <link rel='stylesheet' type='text/css' href='./css/codigos_css.css'>
 
-   <script>
 
-     function openTab(evt, tabName, divPai) {
 
-     // Declare all variables
 
-     var i, tabcontent, tablinks;
 
-     // Get all elements with class="tabcontent" and hide them
 
-     tabcontent = document.getElementById(divPai).getElementsByClassName("tabcontent");
 
-     for (i = 0; i < tabcontent.length; i++) {
 
-       tabcontent[i].style.display = "none";
 
-     }
 
-     // Get all elements with class="tablinks" and remove the class "active"
 
-     tablinks = document.getElementById(divPai).getElementsByClassName("tablinks");
 
-     for (i = 0; i < tablinks.length; i++) {
 
-       tablinks[i].className = tablinks[i].className.replace(" active", "");
 
-     }
 
-     // Show the current tab, and add an "active" class to the button that opened the tab
 
-     document.getElementById(tabName).style.display = "block";
 
-     evt.currentTarget.className += " active";
 
-     }
 
-   </script>
 
-  </head>
 
- <body id='page-mod-page-view' class='format-topics gecko lang-pt_br pagelayout-incourse'>
 
- <div id='page-wrapper'>
 
-   <header role='banner' class='pos-f-t navbar navbar-full navbar-light bg-faded navbar-static-top'>
 
-     <div class='container-fluid navbar-nav'>
 
-       <a href='index.html' class='navbar-brand'>Introdução</a><!-- botao fundo azul -->
 
-       <!-- user_menu -->      <div class='usermenu'>      <div class='action-menu moodle-actionmenu nowrap-items' id='action-menu-1' data-enhance='moodle-core-actionmenu'>      <div class='menubar' id='action-menu-1-menubar' role='menubar'>
 
-       <div class='dropdown'>        <a href='http://www.ime.usp.br/~leo' title='sitio pessoal autor' role='button'>          <span class='userbutton'>            <span class='usertext'>Leônidas de Oliveira Brandão</span>             <span class='avatars'>              <span class='avatar current'><img src='css_img_js_conf/icone_leo.png' alt='Imagem de Leônidas de Oliveira Brandão' title='Imagem de Leônidas de Oliveira Brandão' class='userpicture' role='presentation' height='35' width='35'></span>             </span>          </span>        </a>    </div>  </header>
 
-   <div id='page' class='container-fluid'>
 
-    <header id='page-header' class='row'>
 
-     <div class='col-xs-12 p-a-1'>
 
-      <div class='card'>
 
-       <div class='card-block'>
 
-        <h1>Material didático para Introdução à Programação</h1>
 
-        <!-- caminho -->
 
-        <div class='clearfix w-100 pull-xs-left' id='page-navbar'>
 
-         <div class='breadcrumb-nav'>
 
-          <nav role='navigation'>
 
-           <ol class='breadcrumb'>
 
-            <li class='breadcrumb-item'><a href='http://www.ime.usp.br/~leo/'>Página inicial</a></li>
 
-            <li class='breadcrumb-item'><a href='index.html' title='inicio material'>Material de apoio didático</a></li>
 
-           </ol>
 
-          </nav>
 
-         </div>
 
-        </div>
 
-       </div>
 
-      </div>
 
-     </div>
 
-    </header>
 
- <center><p>[
 
-   <a href="memoria" title="sobre memoria, bits e bytese">Memória</a>   |  
 
-   <a href="#variaveis" title="variaveis inteiras e reais">Variáveis</a>   |  
 
-   <a href="#expressoes" title="expressoes aritmetics">Expressões</a>   |  
 
-   <a href="#contexto" title="resultado de uma expressao depende do contexto">Contexto</a>    
 
-  ]</p>
 
- </center>
 
- <span style="color: #0055AA;font-size:1.2em"><b>Introdução às variáveis e expressões aritméticas</b></span>
 
- <br/> 
 
- <p>
 
- Nesta seção apresentaremos o conceito de variáveis e de expressões aritméticas.
 
- </p>
 
- <a name="variaveis">
 
- <span style="color: #0055AA;font-size:1.1em">Ideia de variável</span></a>
 
- <p>
 
- Ilustraremos a ideia e necessidade de variáveis a partir de um exemplo simples: como realizar o
 
- cálculo de gastos usando uma calculadora muito elementar.
 
- </p>
 
- <p>
 
- <img src="img/t1/img_calc.png"
 
- style="float: left; margin-right: 1%; margin-bottom: 0.5em;justify-content: center;" title="imagem calculadora"/>
 
- Imagine uma calculadora simples, como ilustrado ao lado, dispondo de apenas um mostrador e
 
- as 4 operações básicas (soma, subtração, multiplicação e divisão).
 
- </p>
 
- <p>
 
- Caso você deseje computar os seus gastos, deve digitar sequencialmente os valores
 
- gastos, um a um, intercalados com o operador soma <tt>+</tt>, sendo que ao final você deve teclar
 
- <tt>=</tt> para visualizar o resultado das somas. <!--  e obtermos na tela o valor total gasto. -->
 
- Vamos supor que os valores dos gastos foram
 
- <tt>5</tt>, <tt>2</tt>, <tt>3</tt>, <tt>5</tt> e <tt>3</tt>, ao final teriamos o valor 18.
 
- </p>
 
- <p>
 
- Mas como foi possível obter a soma de todos os valores? Isso só foi possível por existir um
 
- "acumulador" (<tt>AC</tt>) para armazenar o primeiro valor digitado e depois disso, esse mesmo
 
- "acumulador" teve um novo valor a ele adicionado (ou acumulado):
 
- <tt>AC := <b>5</b></tt>, depois
 
- <tt>AC := 5+<b>2</b> = 7</tt>. depois
 
- <tt>AC := 7+<b>3</b> = 10</tt>. depois
 
- <tt>AC := 10+<b>5</b> = 15</tt> e por último
 
- <tt>AC := 15+<b>3</b> = 18</tt>.
 
- </p>
 
- <p>
 
- Usaremos o exemplo acima (da calculadora) para apresentar a ideia de <i>variáveis</i>.
 
- A calculadora pode ser entendida como um dos componentes de um computador, um componente que realiza os cálculos.
 
- O recurso da calculadora que armazena os valores computados (que denotamos por <tt>AC</tt>) seria o
 
- equivalente a uma posição de memória em um computador <em>(um pedaço da memória que pode armazenar valores)</em>.
 
- <details>
 
-   <summary class="tab">Curiosidade</summary>
 
-   <p class="paraConhecerMais" style="width: 600px">Para se ter uma noção da diferença, deve-se notar que um computador moderno dispõe de vários registradores e um memória muitas
 
-   ordens de grandeza maiores, hoje compra-se computadores com ao menos <i>2 Gb</i> de memória <i>RAM</i>
 
-   (<i>Gb</i> = <i>giga bytes</i> = 1 bilhão de <i>bytes</i>)</p>
 
- </details>
 
- <p>
 
- Deve-se destacar que o valor armazenado na <strike>registrador ou </strike> memória pode ser alterado, podendo-se dizer
 
- que os valores na memória <i>variam</i>, dai o nome de <b style="color: #0000AA">variável</b> adotado para representar esses
 
- locais em linguagens de programação.
 
- Usualmente, pode-se usar qualquer combinação de letras e números (iniciando por uma letra) para compor o
 
- nome de uma variável.
 
- Exemplo de uma instrução alterando o valor da variável de nome <tt>x</tt> em uma linguagem de programação
 
- qualquer:
 
- <div class ="codigo">
 
-   <span class="codigo"><tt>x = b*b - 4 * a * c</span><br />
 
-   </tt> <tt>x</tt> recebe o resultado da expressão "o quadrado do
 
-   valor armazenado em <tt>b</tt> menos <tt>4</tt> vezes o conteúdo em <tt>a</tt> vezes o conteúdo em <tt>c</tt>".
 
- </div>
 
- <!--
 
- No exemplo acima, a calculadora faz o papel de um <i>unidade central de processamento</i> (ou <i>CPU</i> no termo em Inglês)
 
- e o "acumulador" é um <i>registrador</i> que serve para armazenar valores.
 
- Em um computador digital, existe um número razoável de registradores e o restante das informações devem ser armazenadas
 
- na <i>memória</i> do computador, que não é tão rápido quanto um registrador, mas é muito mais barata.
 
- O registrador ou posições de memória podem ter seus valores trocados ao longo da execução do programa (código)
 
- e por isso cada uma dessas posições pode ser entendida como uma <b>variável</b>.
 
- -->
 
- </p>
 
- <p>
 
-   Sendo assim podemos dizer que uma variável:
 
-   <ul>
 
-     <li>É um espaço de memória utilizado para guardar e manipular uma informação;</li>
 
-     <li>Pode ter seu valor alterado;</li>
 
-     <li>Em geral deve ter seu nome inicializada por uma letra seguido de qualquer número de caracteres,
 
-        excetuando-se caracteres especiais;</li>
 
-     <li>Deve ter um nome descritivo, de forma que o leitor possa entender facilmente para que ela serve.</li>
 
-   </ul>
 
- </p>
 
- <p>
 
- Assim, toda <i>linguagem de programação</i> possibilita a manipulação de variáveis. Por exemplo na linguagem
 
- <i>C</i> pode-se declarar uma variável do tipo inteiro com o comando
 
- <tt style="color: #0000AA">int AC = 5;</tt>
 
- (no exemplo, além de declarar uma variável de nome <tt>AC</tt>, também a iniciamos com o valor <tt>5</tt>).
 
- </p>
 
- <!------------------------------------------------------------>
 
- <div id="codigos1">
 
- <div class="tab">
 
-   <button class="tablinks" onclick="openTab(event, 'C', 'codigos1')">C</button>
 
-   <button class="tablinks" onclick="openTab(event, 'Python', 'codigos1')">Python</button>
 
-   <button class="tablinks" onclick="openTab(event, 'iVProg', 'codigos1')" id="defaultOpen">iVProg</button>
 
- </div>
 
- <!-- Tab content -->
 
- <div id="C" class="tabcontent">
 
-   <img src="img/t1/cod1_c.png"/>
 
- </div>
 
- <div id="Python" class="tabcontent">
 
-   <img src="img/t1/cod1_py.png"/>
 
- </div>
 
- <div id="iVProg" class="tabcontent" >
 
-   <img src="img/t1/decl_iVProg.png"/>
 
- </div>
 
- </div>
 
- <p>
 
- Portanto, <b>variável</b> é essencial para que possamos fazer com que o programa receba algum dado de nosso interesse.
 
- Mesmo em um <i>editor de texto</i> isso ocorre, o texto que digitamos é armazenado (de alguma forma, em variáveis!).
 
- </p>
 
- <details>
 
-   <summary class="tab" style="margin:0; width:200px">Para conhecer mais</summary>
 
-   <div class="paraConhecerMais">
 
-     <p>
 
-     Para conhecer um pouco mais sobre como é possível implementar esse conceito em computadores digitais, estude o
 
-     restante desse texto.
 
-     </p>
 
-     <a name="memoria">
 
-     <span style="color: #0055AA;font-size:1.1em">Memória, <i>bits</i> e <i>bytes</i></span></a>
 
-     <p>
 
-     Um elemento essencial à computação é o conceito de variável, que significa de um ponto de vista mais
 
-     próximo da linguagem da máquina (<i>baixo nivel</i>), a possibilidade de armazenar e recuperar diferentes valores
 
-     em determinada posição de memória.
 
-     </p>
 
-     <p>
 
-     Em última análise, os dados presentes na memória do computador é uma sequência de <i>bits</i> e um <i>bit</i>
 
-     corresponde a uma posição de memória que pode armazenar o valor 0 ou o valor 1. No início da computação moderna
 
-     a menor quantidade de <i>bits</i> que podia acessar eram 8, que foi denominado por <i>byte</i>.
 
-     </p>
 
-     <center><img src="img/t1/var_memoria1.jpg" title="ilustracao de 4 sequencias de 8 bits em memoria"/>
 
-     </center>
 
-     <p>
 
-     Desse modo, toda informação armazenada no computador é uma sequência de <i>bytes</i> e o tratamento de cada
 
-     que se dá para cada uma dessas sequências pode variar, por exmeplo, pode considerar a sequência <tt>0010</tt>
 
-     com uma letra ou como um inteiro. Ou seja, de acordo com o <b>contexto</b>, se ela estiver associada a uma
 
-     variável do tipo inteiro pode-se interpretar a sequência como um número inteiro, se for uma variável do
 
-     tipo caractere, como um caractere.
 
-     </p>
 
-     <p>
 
-     E qual a relação disso com variável? Bem, por exemplo, é necessário contar e, para fazer usando o computador
 
-     precisamos pegar uma sequência de <i>bytes</i> interpretá-lo como inteiro, somar 1 e registrar o valor
 
-     alterado. Isso é feito utilizando a mesma posição de memória, que está assim <i>variando</i>, dai o nome
 
-     <i>variável</i>.
 
-     </p>
 
-   </div>
 
- </details>
 
- <br />
 
- <br />
 
- <a name="variaveis">
 
- <span style="color: #0055AA;font-size:1.1em">Variáveis inteiras e reais</span></a>
 
- <p>
 
- De um ponto de vista mais elevado (<i>alto-nivel</i>), utilizando uma linguagem de programação como <i>C</i>, <i>Python</i>
 
- ou <i>iVProg</i>, uma variável é representada por um nome, começado por letra e sem caracteres especiais (exceto "barra baixa" '_'
 
- que é permitido) e que não seja o nome de um comando da linguaguem (denominado de modo geral por <i>palavra reservada</i>).
 
- </p>
 
- <table class="tg">
 
-   <tr>
 
-     <th class="tab_titulo">Válidos<br></th>
 
-     <th class="tab_titulo">Inválidos<br></th>
 
-   </tr>
 
-   <tr>
 
-     <td class="tg-c3ow">abc<br></td>
 
-     <td class="tg-c3ow">ab c<br></td>
 
-   </tr>
 
-   <tr>
 
-     <td class="tg-c3ow">variavel123<br></td>
 
-     <td class="tg-c3ow">vari<span style="font-weight:bold">á</span>vel123<br></td>
 
-   </tr>
 
-   <tr>
 
-     <td class="tg-c3ow">var_1<br></td>
 
-     <td class="tg-c3ow"><span style="font-weight:bold">1</span>_var<br></td>
 
-   </tr>
 
- </table>
 
- <p>
 
- Além disso uma variável deve ter um tipo associado, os tipos básicos que examinaremos nesta seção são o
 
- inteiro (<i>int</i>) e o flutuante (<i>float</i>), este último para representar os valores reais.
 
- </p>
 
- <p>
 
- Para explicar melhor a necessidade de tipos, suporemos que o computador considerado utilize para uma variável
 
- <i>int</i> e para uma do tipo <i>float</i>, respectivamente, 2 e 4 <i title="cada byte tem 8 bits">bytes</i>.
 
- </p>
 
- <p>
 
- Desse modo, quando o citado computador precisa devolver o valor armazenado em uma variável do tipo inteiro, ele
 
- acessará a posição de memória associada à variável, pegará a partir dessa posição os próximos 16 <i>bits</i> e
 
- o interpretará como um valor inteiro.
 
- </p>
 
- <p>
 
- Do ponto de vista prático, vejamos como se usa variáveis do tipo <i>int</i> e do tipo <i>float</i> nas linguagens
 
- <i>C</i> e <i>Python</i>.
 
- </p>
 
- <div id="codigos2">
 
-   <div class="tab">
 
-     <button class="tablinks" onclick="openTab(event, 'C_2', 'codigos2')">C</button>
 
-     <button class="tablinks" onclick="openTab(event, 'Python_2', 'codigos2')">Python</button>
 
-     <button class="tablinks" onclick="openTab(event, 'iVProg_2', 'codigos2')" id="defaultOpen_2">iVProg</button>
 
-   </div>
 
-   <!-- Tab content -->
 
-   <div id="C_2" class="tabcontent">
 
-     <img src="img/t1/cod2_c.png"/>
 
-     <!--<p class="codigo">int n1, n2;<br />
 
-                       n1 = 1;<br />
 
-                       scanf("%d", &n2);<br />
 
-                       printf("n1=%d e n2=%d\n", n1, n2);</p>-->
 
-   </div>
 
-   <div id="Python_2" class="tabcontent">
 
-     <img src="img/t1/cod2_py.png"/>
 
-     <!--<p class="codigo"># desnecessário declarar em <i>Python</i><br />
 
-                       n1 = 1<br />
 
-                       n2 = int(input())<br />
 
-                       print("n1=", n1, " e n2=", n2)</p>-->
 
-   </div>
 
-   <div id="iVProg_2" class="tabcontent" >
 
-     <img src="img/t1/int_iVProg.png"/>
 
-   </div>
 
- </div>
 
- <p>
 
- Note as diferenças entre <i>C</i>, <i>Python</i> e <i>iVProg</i>:
 
- <table class="tg">
 
-   <tr>
 
-     <th class="tab_titulo"><br></th>
 
-     <th class="tab_titulo">C<br></th>
 
-     <th class="tab_titulo">Python</th>
 
-     <th class="tab_titulo">iVProg</th>
 
-   </tr>
 
-   <tr>
 
-     <td class="tg-c3ow">Finalizador de linha<br></td>
 
-     <td class="tg-c3ow"><span style="font-weight:bold">;</span><br></td>
 
-     <td class="tg-c3ow">Não necessita<br></td>
 
-     <td class="tg-c3ow">Não necessita<br></td>
 
-   </tr>
 
-   <tr>
 
-     <td class="tg-c3ow">Declaração de variável<br></td>
 
-     <td class="tg-c3ow"><span style="font-weight:bold">tipo</span> nome_variavel<br></td>
 
-     <td class="tg-c3ow">Não tem<br></td>
 
-     <td class="tg-c3ow"><span style="font-weight:bold">tipo</span> nome_variavel<br></td>
 
-   </tr>
 
-   <tr>
 
-     <td class="tg-c3ow">Leitura de dados<br></td>
 
-     <td class="tg-c3ow"><span style="font-weight:bold">scanf(..)</span> com formatador especial para forçar o
 
-                        computador a interpretar como inteiro, <span style="font-weight:bold">%d</span></td>
 
-     <td class="tg-c3ow"><span style="font-weight:bold">input</span> submetido à outra função
 
-                        pré-definida do Python o <span style="font-weight:bold">int(..)</span>)<br></td>
 
-     <td class="tg-c3ow"><span style="font-weight:bold">leia(..)</span><br></td>
 
-   </tr>
 
-   <tr>
 
-     <td class="tg-c3ow">Saida de dados<br></td>
 
-     <td class="tg-c3ow"><span style="font-weight:bold">printf(..)</span>, também com o formatador %d para inteiro
 
-                         a primeira parte entra aspas duplas e a segunda<br></td>
 
-     <td class="tg-c3ow"><span style="font-weight:bold">print(..)</span>, caracteres entre aspas separados por vírgula<br></td>
 
-     <td class="tg-c3ow"><span style="font-weight:bold">escreva(..)</span>, caracteres entre aspas separados pelo caractere da soma (+)<br></td>
 
-   </tr>
 
- </table>
 
- <!--<ul>
 
-  <li> De modo geral, todo comando em <i>C</i> precisa de ';' como finalizador.
 
-       </li>
 
-  <li> Na linha 1 percebe-se que tanto em <i>C</i> quanto no <i>iVProg</i> é obrigatório <b>declarar</b> as variáveis, enquanto que em <i>Python</i> não.
 
-    </li>
 
-  <li> Na linha 3 nota-se que <i>C</i> utiliza a função pré-definida de nome <i>scanf</i> para pegar valores digitados
 
-       pelo usuário enquanto <i>Python</i> usa o <i>input</i>. O <i>scanf</i> usa o formatador especial '%d' para forçar
 
-       o computador a interpretar os <i>bytes</i> como um inteiro, enquanto o <i>input</i> pega os <i>bytes</i>
 
-       digitados e o submete à outra função pré-definida <i>Python</i>, o <i>int(...)</i>, que converte os <i>bytes</i> lidos para um inteiro.
 
-       </li>
 
-  <li> Na linha 4 nota-se o mesmo tipo de diferença, <i>C</i> utiliza a função <i>printf</i> para imprimir também com
 
-       o formatador para inteiro '%d', além de separar em 2 blocos, o primeiro para formatar a saída, que é cercado
 
-       por aspas dupla e o segunda, uma lista de variáveis compatíveis com o formatador.
 
-       Já em <i>Python</i>, usa-se os caracteres entre aspas e as variáveis misturados, separador por vírgula.
 
-       </li>
 
-  <li> Vale destacar que a linha 4 apresenta a sintaxe do <i>Python</i> antes da versão 3, enquanto que a linha 5
 
-       apresenta o mesmo resultado mas para o <i>Python</i> a partir da sua versão 3.
 
-       </li>
 
- </ul>-->
 
- </p>
 
- <a name="expressoes">
 
- <span style="color: #0055AA;font-size:1.1em">Expressões aritméticas</span></a>
 
- <p>
 
- Do mesmo modo que em matemática é essencial efetuarmos operações aritméticas com valores numéricos,
 
- o mesmo ocorre com o computador, na verdade efetuar contas de modo
 
- rápido e "sem erro" foi a grande motivação para se construir os computadores.
 
- </p>
 
- <p>
 
- Neste, os agrupamentos de valores, variáveis e operadores aritméticos  recebem o nome de  <i>expressão aritmética</i>.
 
- De modo geral, podemos conceituar uma <i>expressão aritmética</i> <b>EA</b> como:
 
- <ol>
 
-  <li>EA := K: uma constante numérica é uma <i>expressão aritmética</i></li>
 
-  <li>EA := EA + EA | EA - EA | EA * EA | EA / EA: uma <i>expressão aritmética</i> seguida de um <b>operador binário</b>
 
-      (com 2 itens) e seguida por outra <i>expressão aritmética</i> é uma <i>expressão aritmética</i></li>
 
- </ol>
 
- Os <b>operadores artiméticos binários</b>, em <i>C</i>, <i>Python</i> e <i>iVProg</i> são:
 
- </p>
 
- <center><table class="tg">
 
-   <tr><th class="tab_titulo">Operação</td><th class="tab_titulo">Operador <th class="tab_titulo">Exemplo</td></tr>
 
-   <tr class="tg-c3ow"><td>soma         </td><td> +           <td> 2 + 4                          </td></tr>
 
-   <tr class="tg-c3ow"><td>subtração    </td><td> -           <td> n1 + 1                         </td></tr>
 
-   <tr class="tg-c3ow"><td>multiplicação</td><td > *           <td> 3 * n2                         </td></tr>
 
-   <tr class="tg-c3ow"><td>divisão      </td><td> /           <td> n1 / n2                        </td></tr>
 
- </table></center>
 
- <p>
 
- Note que foi usado espaço em branco entre os operando e operadores, mas isso não é obrigatório.
 
- </p>
 
- <a name="contexto">
 
- <span style="color: #0055AA;font-size:1.1em">O resultado de uma expressão aritmética depende do contexto</span></a>
 
- <p>
 
- É importante observar que dependendo do contexto o resultado de uma expressão é um ou outro, quer dizer,
 
- se os valores envolvidos forem todos eles inteiros, o resultado será inteiro, entretanto havendo um valor
 
- real, a resposta final será real.
 
- </p>
 
- <p>
 
- A importância disso fica clara ao examinar dois exemplos simples: <i>3 / 2 * 2</i> e <i>3.0 / 2 * 2</i>.
 
- Em várias linguagens de programação a primeira expressão resulta o valor <i>2</i>, enquanto a segunda <i>3.0</i>.
 
- A razão é que no primeiro caso todos valores são inteiros, então o cômputo é realizado com aritmética de precisão inteira,
 
- ou seja, ao realizar o primeiro cômputo <i>3/2</i>, o resultado é <i>1</i> (e não <i>1.5</i> como no segundo caso), daí
 
- o segundo operador é feito com os valores <i>1 * 2</i> resultando o valor <i>2</i>.
 
- </p>
 
- <div id="codigos3">
 
-   <div class="tab">
 
-     <button class="tablinks" onclick="openTab(event, 'C_3', 'codigos3')">C</button>
 
-     <button class="tablinks" onclick="openTab(event, 'Python_3', 'codigos3')">Python</button>
 
-     <button class="tablinks" onclick="openTab(event, 'iVProg_3', 'codigos3')" id="defaultOpen_3">iVProg</button>
 
-   </div>
 
-   <!-- Tab content -->
 
-   <div id="C_3" class="tabcontent">
 
-     <img src="img/t1/cod3_c.png" width="600"/>
 
-   </div>
 
-   <div id="Python_3" class="tabcontent">
 
-     <img src="img/t1/cod3_py.png" width="600"/>
 
-   </div>
 
-   <div id="iVProg_3" class="tabcontent" >
 
-     <img src="img/t1/cod3_iVProg.png" width="600"/>
 
-   </div>
 
- </div>
 
- <p>
 
- Leônidas de Oliveira Brandão<br/>
 
- http://line.ime.usp.br</p>
 
- <p class="rodape">
 
- <b>Alterações</b>:<br/>
 
- 2019/07/12: mudanças feitas a partir de observações dos alunos e adição do iVProg;
 
- 2019/06/05: as seções inicial ("Ideia de variável") e final ("O resultado de uma expressão aritmética depende do contexto") foram estendidas;<br/>
 
- 2019/06/04: adicionada nova seção (inicial) "Ideia de variável";<br/>
 
- 2017/04/14: adicionados novos itens (como explicação adicional sobre expressões aritméticas).
 
- </p>
 
- </div><!-- id='page-wrapper' -->
 
- <br/><footer id='page-footer' class='bg-inverse'>  <div class='container'>    <div id='course-footer'></div>      <p class='helplink'>Material didático - Prof. Leônidas de Oliveira Brandão</p>  </div></footer>
 
- </body>
 
- <script> document.getElementById("defaultOpen").click();
 
-          document.getElementById("defaultOpen_2").click();
 
-          document.getElementById("defaultOpen_3").click();
 
- </script>
 
- </html>
 
 
  |