{"id":1950,"date":"2022-07-04T17:46:51","date_gmt":"2022-07-04T20:46:51","guid":{"rendered":"https:\/\/liag.ft.unicamp.br\/act\/?p=1950"},"modified":"2023-02-03T21:12:46","modified_gmt":"2023-02-04T00:12:46","slug":"logica-de-programacao-e-github-no-act-aula-4","status":"publish","type":"post","link":"https:\/\/liag.ft.unicamp.br\/act\/2022\/07\/04\/logica-de-programacao-e-github-no-act-aula-4\/","title":{"rendered":"Programa\u00e7\u00e3o e GitHub &#8211; Aula 4"},"content":{"rendered":"\n<h2 class=\"has-text-align-center wp-block-heading\">L\u00f3gica de programa\u00e7\u00e3o e GitHub no ACT &#8211; Aula 4<\/h2>\n\n\n\n<div style=\"height:36px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Contantes, vari\u00e1veis e operadores<\/h3>\n\n\n\n<p>Na \u00faltima aula, vimos o conceito de algoritmos, que s\u00e3o a base para estruturar a nossa comunica\u00e7\u00e3o com os computadores. Por\u00e9m, diferentemente de n\u00f3s, os computadores n\u00e3o entendem palavras, substantivos, verbos e frases. A \u00fanica linguagem conhecida pelos computadores \u00e9 a da matem\u00e1tica. Mas, calma, n\u00e3o ser\u00e1 necess\u00e1rio entrar nos assuntos mais complexos da matem\u00e1tica ou ir \u00e0 fundo em express\u00f5es e c\u00e1lculos. A matem\u00e1tica que usaremos ser\u00e1 b\u00e1sica, aquela mais voltada \u00e0 l\u00f3gica e opera\u00e7\u00f5es b\u00e1sicas.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe title=\"Aprendendo Programa\u00e7\u00e3o e GitHub com Portugol Studios - Aula 4\" width=\"630\" height=\"354\" src=\"https:\/\/www.youtube.com\/embed\/pKiSDb6ArYU?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><figcaption class=\"wp-element-caption\"><sub>Inscreva-se no <a href=\"https:\/\/www.youtube.com\/channel\/UCCYzDDWYhHEt9-NODBosjqg\" target=\"_blank\" rel=\"noreferrer noopener\">canal!<\/a><\/sub><\/figcaption><\/figure>\n\n\n\n<p>Para fazer com que o computador obede\u00e7a a nossos comandos, vamos precisar traduzir os nossos algoritmos para uma linguagem que ele entenda. Faremos isso atrav\u00e9s de uma linguagem de programa\u00e7\u00e3o.<\/p>\n\n\n\n<p>Para sermos precisos, o computador n\u00e3o entende nenhuma linguagem de programa\u00e7\u00e3o. A \u00fanica linguagem que ele entende \u00e9 a linguagem de m\u00e1quina. Por isso, todo o c\u00f3digo escrito em qualquer linguagem de programa\u00e7\u00e3o precisa ser traduzido para linguagem de m\u00e1quina. A linguagem de m\u00e1quina \u00e9 tamb\u00e9m chamada de linguagem bin\u00e1ria, porque ela s\u00f3 pode ser representada por dois valores: 0 ou 1. Esses dois valores est\u00e3o associados aos circuitos do computador, que podem estar ligados (1) ou desligados (0).<\/p>\n\n\n\n<p>Linguagens compiladas usam um compilador para produzir um c\u00f3digo de m\u00e1quina, baseado no c\u00f3digo da linguagem de programa\u00e7\u00e3o. \u00c9 o c\u00f3digo de m\u00e1quina que \u00e9 executado pelo computador. Linguagens interpretadas usam um interpreter para interpretar as instru\u00e7\u00f5es do programa e execut\u00e1-las, sem que um c\u00f3digo de m\u00e1quina seja completamente gerado antes que o programa possa ser executado. Nos dois casos, h\u00e1 a gera\u00e7\u00e3o do c\u00f3digo de m\u00e1quina. Geralmente, voc\u00ea n\u00e3o escolhe qual ferramenta usar (compilador ou interpreter). Isso depende da linguagem de programa\u00e7\u00e3o.<\/p>\n\n\n\n<p>Em nosso curso, aprenderemos a linguagem Portugol. Ent\u00e3o, vamos come\u00e7ar a entender quais elementos comp\u00f5em essa linguagem.<\/p>\n\n\n\n<p>Um exemplo da estrutura b\u00e1sica de um programa no Portugol Studio, pode ser:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img fetchpriority=\"high\" decoding=\"async\" width=\"941\" height=\"139\" src=\"https:\/\/liag.ft.unicamp.br\/act\/wp-content\/uploads\/sites\/27\/2022\/07\/image-7.png\" alt=\"\" class=\"wp-image-1953\" srcset=\"https:\/\/liag.ft.unicamp.br\/act\/wp-content\/uploads\/sites\/27\/2022\/07\/image-7.png 941w, https:\/\/liag.ft.unicamp.br\/act\/wp-content\/uploads\/sites\/27\/2022\/07\/image-7-300x44.png 300w, https:\/\/liag.ft.unicamp.br\/act\/wp-content\/uploads\/sites\/27\/2022\/07\/image-7-768x113.png 768w\" sizes=\"(max-width: 941px) 100vw, 941px\" \/><\/figure>\n\n\n\n<div style=\"height:42px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Vari\u00e1veis<\/h4>\n\n\n\n<p>No caso de desejarmos apresentar dados ao computador, iremos utilizar as vari\u00e1veis.<\/p>\n\n\n\n<p>As vari\u00e1veis correspondem a um espa\u00e7o de mem\u00f3ria reservado para armazenar um certo tipo de dado e elas cont\u00eam um nome para referenciar o seu conte\u00fado.<\/p>\n\n\n\n<p>Por exemplo, declarando que utilizaremos uma vari\u00e1vel do tipo \u201cinteiro\u201d e dando a ela o nome de i:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>inteiro i<\/code><\/pre>\n\n\n\n<p>Agora, atribuindo a essa vari\u00e1vel i o valor 1. Para fazer a atribui\u00e7\u00e3o de um valor utilizamos o s\u00edmbolo =.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>i = 1<\/code><\/pre>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Tipos de vari\u00e1veis<\/h4>\n\n\n\n<p>O tipo de dado de uma vari\u00e1vel est\u00e1 associado ao conjunto de valores que a vari\u00e1vel pode assumir.<\/p>\n\n\n\n<p>Existem diversos tipos de vari\u00e1veis poss\u00edveis, por\u00e9m os mais comuns s\u00e3o:<\/p>\n\n\n\n<p><strong>inteiro: <\/strong>n\u00famero inteiro<\/p>\n\n\n\n<p><strong>real:&nbsp;&nbsp;&nbsp;&nbsp; <\/strong>valor real (com casas decimais) at\u00e9 uma certa precis\u00e3o<\/p>\n\n\n\n<p><strong>caracter: <\/strong>um \u00fanico caracter <\/p>\n\n\n\n<p><strong>cadeia: <\/strong>uma sequ\u00eancia de caracteres <\/p>\n\n\n\n<p><strong>logico: <\/strong>valor l\u00f3gico (verdadeiro ou falso)<\/p>\n\n\n\n<p>Ao nomearmos nossas vari\u00e1veis no Portugol Studio, \u00e9 necess\u00e1rio seguir algumas regras da linguagem:<\/p>\n\n\n\n<p>\u25aa O primeiro caractere deve ser sempre uma letra ou o sublinhado ( _ );<\/p>\n\n\n\n<p>\u25aa N\u00e3o s\u00e3o permitidos espa\u00e7os em branco ou caracteres especiais (@, $, +, %, etc.); \u25aa N\u00e3o podem ser usadas palavras reservadas.<\/p>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Constantes<\/h4>\n\n\n\n<p>Em alguns contextos, pode ser importante garantir que o valor inicialmente atribu\u00eddo a uma vari\u00e1vel n\u00e3o possa ser mudado ao longo da execu\u00e7\u00e3o do programa. Nesse caso, basta declarar a vari\u00e1vel adicionando a palavra reservada \u201cconst\u201d \u00e0 esquerda. Isso tende a ser particularmente \u00fatil para armazenar constantes matem\u00e1ticas ou definir valores m\u00e1ximos e m\u00ednimos.<\/p>\n\n\n\n<div style=\"height:38px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Operadores<\/h4>\n\n\n\n<p>A partir do momento que declaramos uma vari\u00e1vel num\u00e9rica, podemos manipul\u00e1-las, realizando opera\u00e7\u00f5es. Dentre as tais, podemos citar:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Opera\u00e7\u00e3o Aritm\u00e9tica \/ Relacional<\/strong><\/td><td><strong>S\u00edmbolo<\/strong><\/td><td>&nbsp;<\/td><\/tr><tr><td>Adi\u00e7\u00e3o<\/td><td>+<\/td><td>&nbsp;<\/td><\/tr><tr><td>Subtra\u00e7\u00e3o<\/td><td>&#8211;<\/td><td>&nbsp;<\/td><\/tr><tr><td>Multiplica\u00e7\u00e3o<\/td><td>*<\/td><td>&nbsp;<\/td><\/tr><tr><td>Divis\u00e3o<\/td><td>\/<\/td><td>&nbsp;<\/td><\/tr><tr><td>Igual a<\/td><td>==<\/td><td>&nbsp;<\/td><\/tr><tr><td>Diferente de<\/td><td>!=<\/td><td>&nbsp;<\/td><\/tr><tr><td>Maior que<\/td><td>&gt;&nbsp;<\/td><td>&nbsp;<\/td><\/tr><tr><td>Menor que<\/td><td>&lt;&nbsp;<\/td><td>&nbsp;<\/td><\/tr><tr><td>Maior ou igual a<\/td><td>&gt;=<\/td><td>&nbsp;<\/td><\/tr><tr><td>Menor ou igual a<\/td><td>&lt;=<\/td><td>&nbsp;<\/td><\/tr><tr><td><strong>Opera\u00e7\u00e3o L\u00f3gica<\/strong><\/td><td><strong>S\u00edmbolo<\/strong><\/td><\/tr><tr><td>E<\/td><td>&amp;&amp;<\/td><\/tr><tr><td>OU<\/td><td>||<\/td><\/tr><tr><td>N\u00c3O<\/td><td>!<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"625\" height=\"265\" src=\"https:\/\/liag.ft.unicamp.br\/act\/wp-content\/uploads\/sites\/27\/2022\/07\/image-8.png\" alt=\"\" class=\"wp-image-1955\" srcset=\"https:\/\/liag.ft.unicamp.br\/act\/wp-content\/uploads\/sites\/27\/2022\/07\/image-8.png 625w, https:\/\/liag.ft.unicamp.br\/act\/wp-content\/uploads\/sites\/27\/2022\/07\/image-8-300x127.png 300w\" sizes=\"(max-width: 625px) 100vw, 625px\" \/><\/figure>\n\n\n\n<p><strong>Alguns desses operadores tamb\u00e9m podem ser usados para manipular vari\u00e1veis n\u00e3o num\u00e9ricas, como veremos mais adiante nas aulas.<\/strong><\/p>\n\n\n\n<p>Com esses conhecimentos que adquirimos nesta aula, j\u00e1 ser\u00e1 poss\u00edvel fazer o nosso primeiro programa em Portugol, na pr\u00f3xima aula. Nos vemos l\u00e1!<\/p>\n\n\n\n<div style=\"height:24px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Bibliografia<\/h3>\n\n\n\n<p><a href=\"https:\/\/douglasmotta.com.br\/2019\/02\/05\/aprender-programacao-na-pratica-portugol-studio\/\">https:\/\/douglasmotta.com.br\/2019\/02\/05\/aprender-programacao-na-pratica-portugol-studio\/ <\/a><a href=\"https:\/\/devschannel.com\/logica-de-programacao\/portugol-studio\">https:\/\/devschannel.com\/logica-de-programacao\/portugol-studio <\/a><a href=\"https:\/\/portugol-webstudio.cubos.io\/ide\">https:\/\/portugol-webstudio.cubos.io\/ide <\/a><a href=\"https:\/\/jportugol.wordpress.com\/tag\/palavras-reservadas\/\">https:\/\/jportugol.wordpress.com\/tag\/palavras-reservadas\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>L\u00f3gica de programa\u00e7\u00e3o e GitHub no ACT &#8211; Aula 4 Contantes, vari\u00e1veis e operadores Na \u00faltima aula, vimos o conceito de algoritmos, que s\u00e3o a base para estruturar a nossa comunica\u00e7\u00e3o com os computadores. Por\u00e9m, diferentemente de n\u00f3s, os computadores n\u00e3o entendem palavras, substantivos, verbos e frases. A \u00fanica linguagem conhecida pelos computadores \u00e9 a [&hellip;]<\/p>\n","protected":false},"author":52,"featured_media":2856,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":"","_links_to":"","_links_to_target":""},"categories":[1],"tags":[],"class_list":["post-1950","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-sem-categoria"],"wps_subtitle":"","_links":{"self":[{"href":"https:\/\/liag.ft.unicamp.br\/act\/wp-json\/wp\/v2\/posts\/1950","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/liag.ft.unicamp.br\/act\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/liag.ft.unicamp.br\/act\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/liag.ft.unicamp.br\/act\/wp-json\/wp\/v2\/users\/52"}],"replies":[{"embeddable":true,"href":"https:\/\/liag.ft.unicamp.br\/act\/wp-json\/wp\/v2\/comments?post=1950"}],"version-history":[{"count":6,"href":"https:\/\/liag.ft.unicamp.br\/act\/wp-json\/wp\/v2\/posts\/1950\/revisions"}],"predecessor-version":[{"id":2676,"href":"https:\/\/liag.ft.unicamp.br\/act\/wp-json\/wp\/v2\/posts\/1950\/revisions\/2676"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/liag.ft.unicamp.br\/act\/wp-json\/wp\/v2\/media\/2856"}],"wp:attachment":[{"href":"https:\/\/liag.ft.unicamp.br\/act\/wp-json\/wp\/v2\/media?parent=1950"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/liag.ft.unicamp.br\/act\/wp-json\/wp\/v2\/categories?post=1950"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/liag.ft.unicamp.br\/act\/wp-json\/wp\/v2\/tags?post=1950"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}