{"id":24,"date":"2018-08-06T21:59:54","date_gmt":"2018-08-07T00:59:54","guid":{"rendered":"http:\/\/lucianodev.com.br\/blog\/?p=24"},"modified":"2022-06-09T01:39:51","modified_gmt":"2022-06-09T04:39:51","slug":"comecando-a-programar-algoritmos-introducao","status":"publish","type":"post","link":"https:\/\/lucianodev.com.br\/blog\/comecando-a-programar-algoritmos-introducao\/","title":{"rendered":"Come\u00e7ando a Programar: Algoritmos (Introdu\u00e7\u00e3o)"},"content":{"rendered":"<p><script async src=\"https:\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js?client=ca-pub-4648498281437791\"\n     crossorigin=\"anonymous\"><\/script><br \/>\n<ins class=\"adsbygoogle\"\n     style=\"display:block; text-align:center;\"\n     data-ad-layout=\"in-article\"\n     data-ad-format=\"fluid\"\n     data-ad-client=\"ca-pub-4648498281437791\"\n     data-ad-slot=\"6352579729\"><\/ins><br \/>\n<script>\n     (adsbygoogle = window.adsbygoogle || []).push({});\n<\/script><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #333333;\">Fala ai pessoal,<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #333333;\">Estou escrevendo mais um POST dedicado para aqueles que queiram aprender os princ\u00edpios b\u00e1sicos sobre programa\u00e7\u00e3o, para que possam aprender a desenvolver suas pr\u00f3prias aplica\u00e7\u00f5es (independente se ser\u00e1 um sistema comercial, um jogo, um pequeno aplicativo, uma p\u00e1gina web, um utilit\u00e1rio e etc).<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #333333;\">O princ\u00edpio para qualquer indiv\u00edduo que queira aprender a desenvolver sua aplica\u00e7\u00e3o \u00e9 aprender sobre <strong>L\u00d3GICA DE PROGRAMA\u00c7\u00c3O<\/strong> e <strong>ALGORITMOS<\/strong>.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #000000;\"><span style=\"color: #333333;\">Primeiramente, vamos entender esse conceito sobre a palavra <strong>ALGORITMOS.<\/strong> Possivelmente, algum de voc\u00eas que est\u00e3o lendo esse POST j\u00e1 devem ter ouvido falar dessa palavra em algum lugar (como na escola ou faculdade), e essa<\/span> <span style=\"color: #333333;\">palavra<\/span> <span style=\"color: #993300;\"><strong>N\u00c3O TEM NADA A VER<\/strong><\/span> <span style=\"color: #333333;\">com \u00e1lgebra, aritm\u00e9tica, c\u00e1lculos avan\u00e7ados, geometria e qualquer segmento da matem\u00e1tica.<\/span><\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #000000;\"><span style=\"color: #333333;\">O <strong>ALGORITMO <\/strong>(conceitualmente falando) NADA MAIS \u00c9 do que : <\/span><em><span style=\"color: #333333;\">Um conjunto de de etapas finitas que precisam ser executadas para<\/span> <span style=\"color: #3366ff;\"><strong>resolver um problema<\/strong>.<\/span><\/em><\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #333333;\">Vou dar aqui um exemplo b\u00e1sico para que possamos entender o real significado da palavra <strong>ALGORITMO<\/strong>.<\/span><\/p>\n<p><span style=\"color: #333333;\">Vamos supor que voc\u00ea est\u00e1 no trabalho e que agora voc\u00ea precise ir para sua casa, muito bem. O que voc\u00ea precisa fazer para , do seu trabalho, voc\u00ea possa chegar EM CASA (supondo que voc\u00ea n\u00e3o tenha nenhum ve\u00edculo e bastante somente um \u00fanico \u00f4nibus para ir pra casa) :<\/span><\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #333333;\">1) SAIR DO SEU TRABALHO<\/span><\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #333333;\">2) IR EM DIRE\u00c7\u00c3O AO PONTO DO \u00d4NIBUS<\/span><\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #333333;\">3) ESPERAR SEU \u00d4NIBUS CHEGAR<\/span><\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #333333;\">4) PEGAR SEU \u00d4NIBUS QUANDO CHEGAR<\/span><\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #333333;\">5) AGUARDAR SEU \u00d4NIBUS CHEGAR NO PONTO DESEJADO<\/span><\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #333333;\">6) SALTAR DO \u00d4NIBUS AO CHEGAR NO PONTO DESEJADO<\/span><\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #333333;\">7) CAMINHAR AT\u00c9 SUA CASA<\/span><\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #333333;\">8) ENTRAR EM CASA<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #333333;\">Como podemos observar acima, foi necess\u00e1rio a execu\u00e7\u00e3o de uma sequ\u00eancia de passos para que voc\u00ea pudesse sair do seu trabalho para em sua casa. <strong>ISSO \u00c9 UM ALGORITMO<\/strong>. Tudo aquilo que possui uma sequ\u00eancia para ser resolvido\/solucionado nada mais \u00e9 do que um <strong>ALGORITMO<\/strong>.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #333333;\">O exemplo que demonstrei acima nada mais \u00e9 do que um ALGORITMO DA VIDA REAL.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #333333;\">Na programa\u00e7\u00e3o para sistemas de computador o sentido \u00e9 o mesmo. O ALGORITMO \u00e9 uma sequ\u00eancia de passos, s\u00f3 que ESSES PASSOS s\u00e3o representados por COMANDOS(INSTRU\u00c7\u00d5ES) que ser\u00e3o executados pelo computador (mostrando algum resultado esperado).<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #333333;\">Voltando ao exemplo do &#8220;VOLTAR PARA CASA&#8221; , o mesmo algoritmo poderia ser executado com alguns passos a mais, demonstrando mais o seu detalhamento de execu\u00e7\u00e3o. Vejamos uma nova vers\u00e3o do ALGORITMO (com novos passos destacados <strong>EM NEGRITO<\/strong>):<\/span><\/p>\n<p style=\"padding-left: 30px; text-align: justify;\"><span style=\"color: #333333;\">1) SAIR DO SEU TRABALHO<\/span><\/p>\n<p style=\"padding-left: 30px; text-align: justify;\"><span style=\"color: #333333;\">2) ATRAVESSAR A RUA (QUANDO O SINAL ESTIVER VERDE)<\/span><\/p>\n<p style=\"padding-left: 30px; text-align: justify;\"><span style=\"color: #333333;\">3) VIRAR PARA A DIREITA<\/span><\/p>\n<p style=\"padding-left: 30px; text-align: justify;\"><span style=\"color: #333333;\">4) IR EM DIRE\u00c7\u00c3O AO PONTO DO \u00d4NIBUS<\/span><\/p>\n<p style=\"padding-left: 30px; text-align: justify;\"><span style=\"color: #333333;\">5) CHEGAR NO PONTO DE \u00d4NIBUS<\/span><\/p>\n<p style=\"padding-left: 30px; text-align: justify;\"><span style=\"color: #333333;\">6) ESPERAR SEU \u00d4NIBUS CHEGAR<\/span><\/p>\n<p style=\"padding-left: 30px; text-align: justify;\"><span style=\"color: #333333;\">7) AO AVISTAR SEU \u00d4NIBUS, FAZER SINAL PARA ELE PARAR<\/span><\/p>\n<p style=\"padding-left: 30px; text-align: justify;\"><span style=\"color: #333333;\">8) ENTRAR NO \u00d4NIBUS<\/span><\/p>\n<p style=\"padding-left: 30px; text-align: justify;\"><span style=\"color: #333333;\">9) SE VOC\u00ca TIVER SEU RIO-CARD<\/span><\/p>\n<p style=\"padding-left: 30px; text-align: justify;\"><span style=\"color: #333333;\">10) PASSAR SEU RIO-CARD NA MAQUINA (SE A CONDI\u00c7\u00c3O ACIMA FOR VERDADEIRA) E IR PARA O PASSO (12)<\/span><\/p>\n<p style=\"padding-left: 30px; text-align: justify;\"><span style=\"color: #333333;\">11) CASO CONTR\u00c1RIO , PAGAR COM SEU DINHEIRO PARA O MOTORISTA\/TROCADOR<\/span><\/p>\n<p style=\"padding-left: 30px; text-align: justify;\"><span style=\"color: #333333;\">12) ATRAVESSAR A ROLETA<\/span><\/p>\n<p style=\"padding-left: 30px; text-align: justify;\"><span style=\"color: #333333;\">13) PROCURAR UM LUGAR PARA SENTAR (SE HOUVER)<\/span><\/p>\n<p style=\"padding-left: 30px; text-align: justify;\"><span style=\"color: #333333;\">14) AGUARDAR SEU \u00d4NIBUS CHEGAR NO PONTO DESEJADO<\/span><\/p>\n<p style=\"padding-left: 30px; text-align: justify;\"><span style=\"color: #333333;\">15) SALTAR DO \u00d4NIBUS AO CHEGAR NO PONTO DESEJADO<\/span><\/p>\n<p style=\"padding-left: 30px; text-align: justify;\"><span style=\"color: #333333;\">16) CAMINHAR AT\u00c9 SUA CASA<\/span><\/p>\n<p style=\"padding-left: 30px; text-align: justify;\"><span style=\"color: #333333;\">17) ENTRAR EM CASA<\/span><\/p>\n<p style=\"padding-left: 30px; text-align: justify;\"><span style=\"color: #333333;\">18) FECHAR A PORTA DE CASA<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #333333;\">Como podemos ver, nosso novo algoritmo possui 18 passos (diferente dos 8 passos da primeira vers\u00e3o). Isso significa que o nosso primeiro algoritmo que desenvolvemos EST\u00c1 ERRADO ? N\u00c3O. Por incr\u00edvel que pare\u00e7a, nossa primeira vers\u00e3o do algoritmo est\u00e1 certa.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #333333;\">O conceito da palavra ALGORITMO \u00e9 a execu\u00e7\u00e3o de passos ordenados com o objetivo de solucionar um determinado problema, agora, n\u00e3o importa quantos passos ser\u00e3o necess\u00e1rios para atingir um objeto, O IMPORTANTE \u00c9 VOC\u00ca ATINGIR ESSE OBJETIVO.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #333333;\">Irei dar mais um exemplo pr\u00e1tico sobre ALGORITMO que realizamos no nosso dia-a-dia (no computador). Vamos supor que abra seu navegador (como o FireFox por exemplo), conforme mostra a figura:<\/span><\/p>\n<p style=\"text-align: justify;\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-46 size-full aligncenter\" src=\"https:\/\/lucianodev.com.br\/blog\/wp-content\/uploads\/2018\/08\/print_1_blog.jpg\" alt=\"\" width=\"845\" height=\"626\" srcset=\"https:\/\/lucianodev.com.br\/blog\/wp-content\/uploads\/2018\/08\/print_1_blog.jpg 845w, https:\/\/lucianodev.com.br\/blog\/wp-content\/uploads\/2018\/08\/print_1_blog-300x222.jpg 300w, https:\/\/lucianodev.com.br\/blog\/wp-content\/uploads\/2018\/08\/print_1_blog-768x569.jpg 768w, https:\/\/lucianodev.com.br\/blog\/wp-content\/uploads\/2018\/08\/print_1_blog-110x81.jpg 110w, https:\/\/lucianodev.com.br\/blog\/wp-content\/uploads\/2018\/08\/print_1_blog-420x311.jpg 420w, https:\/\/lucianodev.com.br\/blog\/wp-content\/uploads\/2018\/08\/print_1_blog-580x430.jpg 580w\" sizes=\"auto, (max-width: 845px) 100vw, 845px\" \/><br \/>\n<span style=\"color: #333333;\"> Agora vamos digitar na URL o endere\u00e7o do Google : http:\/\/www.google.com.br<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #333333;\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-47 size-full aligncenter\" src=\"https:\/\/lucianodev.com.br\/blog\/wp-content\/uploads\/2018\/08\/print_2_blog.png\" alt=\"\" width=\"338\" height=\"109\" srcset=\"https:\/\/lucianodev.com.br\/blog\/wp-content\/uploads\/2018\/08\/print_2_blog.png 338w, https:\/\/lucianodev.com.br\/blog\/wp-content\/uploads\/2018\/08\/print_2_blog-300x97.png 300w, https:\/\/lucianodev.com.br\/blog\/wp-content\/uploads\/2018\/08\/print_2_blog-110x35.png 110w\" sizes=\"auto, (max-width: 338px) 100vw, 338px\" \/><\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #333333;\">Se pressionarmos [ENTER], podemos ver que o site do Google foi carregado com sucesso.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #333333;\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-50 size-full aligncenter\" src=\"https:\/\/lucianodev.com.br\/blog\/wp-content\/uploads\/2018\/08\/print_3_blog.jpg\" alt=\"\" width=\"845\" height=\"626\" srcset=\"https:\/\/lucianodev.com.br\/blog\/wp-content\/uploads\/2018\/08\/print_3_blog.jpg 845w, https:\/\/lucianodev.com.br\/blog\/wp-content\/uploads\/2018\/08\/print_3_blog-300x222.jpg 300w, https:\/\/lucianodev.com.br\/blog\/wp-content\/uploads\/2018\/08\/print_3_blog-768x569.jpg 768w, https:\/\/lucianodev.com.br\/blog\/wp-content\/uploads\/2018\/08\/print_3_blog-110x81.jpg 110w, https:\/\/lucianodev.com.br\/blog\/wp-content\/uploads\/2018\/08\/print_3_blog-420x311.jpg 420w, https:\/\/lucianodev.com.br\/blog\/wp-content\/uploads\/2018\/08\/print_3_blog-580x430.jpg 580w\" sizes=\"auto, (max-width: 845px) 100vw, 845px\" \/><\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #333333;\">Bom, agora a pergunta que eu fa\u00e7o \u00e9 : O QUE FOI EXECUTADO POR TR\u00c1S para que a p\u00e1gina do Google fosse carregada ? <strong>NADA MAIS DO QUE UM ALGORITMO<\/strong>, ou seja, uma s\u00e9rie de comandos de computador foram executados para que a minha p\u00e1gina do Google fosse carregada.<strong><br \/>\n<\/strong><\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #333333;\">Mais um exemplo : Quando voc\u00ea est\u00e1 com o documento do WORD aberto e clica no bot\u00e3o IMPRIMIR, temos o nosso documento impresso no papel. Agora novamente pergunto, o que foi executado para que meu documento no WORD fosse impresso na papel atrav\u00e9s da impressora ? <strong>DE NOVO, UM ALGORITMO. <\/strong>Uma s\u00e9rie de comandos em linguagem de computador foi processado para que seu documento fosse impresso.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #333333;\">E ai, est\u00e1 come\u00e7ando a entender aos poucos o significado e como funciona essa quest\u00e3o de algoritmos ? Aposto que SIM \ud83d\ude42<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #333333;\">Agora vamos aprofundar mais um pouco.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #333333;\">O intuito deste POST \u00e9 mostrar o foco do desenvolvimento de algoritmos voltado para a cria\u00e7\u00e3o de programas de computador (sistemas de forma geral). Quando a gente desenvolve um algoritmo precisamos saber uma s\u00e9rie de etapas e crit\u00e9rios que envolvem o seu desenvolvimento, s\u00e3o eles :<\/span><\/p>\n<p style=\"padding-left: 30px; text-align: justify;\"><span style=\"color: #333333;\"><strong>1) Entender o problema: <\/strong>Est\u00e1 etapa \u00e9 uma das primeiras e importantes antes de desenvolvermos o nosso algoritmo. Nela analisamos o cen\u00e1rio do problema em quest\u00e3o para fazer os levantamentos necess\u00e1rios para a constru\u00e7\u00e3o do nosso algoritmo (em termos gerais, nosso programa de computador).<\/span><\/p>\n<p style=\"padding-left: 30px; text-align: justify;\"><span style=\"color: #333333;\"><strong>2) Desenvolvendo a solu\u00e7\u00e3o: <\/strong>A &#8220;SOLU\u00c7\u00c3O&#8221; aqui em quest\u00e3o nada mais \u00e9 do que o algoritmo (programa) desenvolvido para solucionar o problema.<\/span><\/p>\n<p style=\"padding-left: 30px; text-align: justify;\"><span style=\"color: #333333;\"><strong>3) Realizando Testes : <\/strong>Nessa etapa verificamos se o problema desenvolvido (na etapa 2) atende ao que foi proposto, mediante a realiza\u00e7\u00e3o de diversos testes.<\/span><\/p>\n<p style=\"padding-left: 30px; text-align: justify;\"><span style=\"color: #333333;\"><strong>4) Manuten\u00e7\u00e3o: <\/strong>Aqui nessa etapa verificamos a real necessidade de realizamos uma manuten\u00e7\u00e3o do nosso programa desenvolvido, de forma que possamos corrigi-lo (caso o mesmo apresente algum problema em algum m\u00f3dulo) ou melhora-lo.<\/span><\/p>\n<p style=\"padding-left: 30px; text-align: justify;\"><span style=\"color: #333333;\"><strong>5) Distribui\u00e7\u00e3o (aplica\u00e7\u00e3o em execu\u00e7\u00e3o): <\/strong>Aqui neste etapa \u00e9 que temos POR DEFINITIVO a nossa aplica\u00e7\u00e3o em execu\u00e7\u00e3o (algoritmo) para solucionar o problema.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #333333;\">Agora vamos entender melhor essas etapas mencionadas em uma situa\u00e7\u00e3o real (supondo de forma &#8220;intuitiva&#8221; a constru\u00e7\u00e3o do WhatsApp&#8221;) :<\/span><\/p>\n<p style=\"padding-left: 30px; text-align: justify;\"><span style=\"color: #333333;\"><em><strong>Situa\u00e7\u00e3o :<\/strong> Precisamos de um aplicativo m\u00f3vel em que as pessoas pudessem enviar mensagens, \u00e1udio, imagens e v\u00eddeos, de forma que essas informa\u00e7\u00f5es ficassem armazenadas somente nos dispositivos do remetente e destinat\u00e1rio (de forma isolada, sem que outras pessoas saibam). Uma das caracter\u00edsticas desse aplicativo \u00e9 que ele <strong>n\u00e3o consiste numa rede social<\/strong> e, que as pessoas pudessem adicionar seus contatos utilizando somente o n\u00famero de telefone (de uma forma simples e pr\u00e1tica).<\/em><\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #333333;\">Bom essa \u00e9 uma situa\u00e7\u00e3o real, em que n\u00f3s (equipe de desenvolvedores) precisamos realizar o <strong>ESTUDO DE VIABILIDADE (1\u00aa Etapa)<\/strong>, ou seja, analisar todos os requisitos necess\u00e1rios para a constru\u00e7\u00e3o de um aplicativo de acordo com a situa\u00e7\u00e3o acima.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #333333;\">Depois dos requisitos levantados, partirmos para a etapa de desenvolvimento (<strong>SOLU\u00c7\u00c3O, que \u00e9 a etapa 2<\/strong>), onde desenvolvemos os nossos m\u00f3dulos da aplica\u00e7\u00e3o.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #333333;\">A terceira etapa (<strong>TESTES<\/strong>) consiste em verificar se todos os m\u00f3dulos desenvolvidos (como o m\u00f3dulo de conversa, m\u00f3dulo para o envio de mensagens, envio de v\u00eddeos e etc) est\u00e3o atendendo aos requisitos propostos inicialmente.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #333333;\">A quarta etapa (<strong>MANUTEN\u00c7\u00c3O<\/strong>) consiste se a aplica\u00e7\u00e3o (formada por todos os m\u00f3dulos citados) precisa de alguma melhoria ou corre\u00e7\u00e3o (se por acaso algum desses m\u00f3dulos n\u00e3o funcionar de forma correta).<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #333333;\">A quinta e \u00faltima etapa (<strong>DISTRIBUI\u00c7\u00c3O<\/strong>) consiste na publica\u00e7\u00e3o do software (supondo o &#8220;WhatsApp&#8221;) no Play Store para download por parte dos usu\u00e1rios.<\/span><\/p>\n<p><script async src=\"https:\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js?client=ca-pub-4648498281437791\"\n     crossorigin=\"anonymous\"><\/script><br \/>\n<ins class=\"adsbygoogle\"\n     style=\"display:block; text-align:center;\"\n     data-ad-layout=\"in-article\"\n     data-ad-format=\"fluid\"\n     data-ad-client=\"ca-pub-4648498281437791\"\n     data-ad-slot=\"6352579729\"><\/ins><br \/>\n<script>\n     (adsbygoogle = window.adsbygoogle || []).push({});\n<\/script><\/p>\n<p>Bom, agora vamos partir para uma coisa mais legal. Iremos desenvolver nosso primeiro algoritmo a partir de um enunciado simples, proposto a seguir: <strong><span style=\"color: #333333;\"><em>Desenvolver um algoritmo para calcular e mostrar a m\u00e9dia de quatro notas de um aluno.<\/em><\/span><\/strong><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #333333;\">Bom , o enunciado acima pede que a gente desenvolva um algoritmo para calcular a m\u00e9dia de quatro notas do aluno. Fazendo um levantamento: Para a gente calcular algo, precisamos ter fontes (entradas) necess\u00e1rias para calcular esse &#8220;algo&#8221;. Como precisamos calcular a m\u00e9dia de quatro notas, o que a gente precisa fazer antes de calcular \u00c9 OBTER ESSAS QUATRO NOTAS. Segue abaixo de como seria a nossa solu\u00e7\u00e3o (algoritmo) :<\/span><\/p>\n<p style=\"padding-left: 30px; text-align: justify;\"><span style=\"color: #333333;\"><em>1) LER (OBTER) a primeira nota<\/em><\/span><\/p>\n<p style=\"padding-left: 30px; text-align: justify;\"><span style=\"color: #333333;\"><em>2) LER (OBTER) a segunda nota<\/em><\/span><\/p>\n<p style=\"padding-left: 30px; text-align: justify;\"><span style=\"color: #333333;\"><em>3) LER (OBTER) a terceira nota<\/em><\/span><\/p>\n<p style=\"padding-left: 30px; text-align: justify;\"><span style=\"color: #333333;\"><em>4) LER (OBTER) a quarta nota<\/em><\/span><\/p>\n<p style=\"padding-left: 30px; text-align: justify;\"><span style=\"color: #333333;\"><em>5) EFETUAR a soma das quatro notas e dividir por 4 (obtemos aqui a nossa m\u00e9dia)<\/em><\/span><\/p>\n<p style=\"padding-left: 30px; text-align: justify;\"><span style=\"color: #333333;\"><em>6) MOSTRAR a m\u00e9dia calculada<\/em><\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #333333;\">Com os passos mencionados acima, conseguiremos efetuar o c\u00e1lculo da nossa m\u00e9dia.<\/span><\/p>\n<h3 style=\"text-align: justify;\">Entrada, Processamento e Sa\u00edda de Dados<\/h3>\n<p style=\"text-align: justify;\"><span style=\"color: #333333;\">Bom, agora gostaria de falar uma coisa muito importante do a respeito do CICLO DA VIDA DE UM COMPUTADOR (sendo ele um PC, SMARTPHONE, TABLET e etc). Todo e qualquer dispositivo realiza o seguinte ciclo : ENTRADA , PROCESSAMENTO E SA\u00cdDA DE DADOS.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #333333;\">No exemplo anterior a respeito do c\u00e1lculo da m\u00e9dia , n\u00f3s <strong>OBTEMOS<\/strong> as NOTAS, <strong>EFETUAMOS<\/strong> o c\u00e1lculo m\u00e9dia e em seguida <strong>MOSTRAMOS<\/strong> a m\u00e9dia calculada.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #333333;\">Observe que eu (propositalmente) destaquei os verbos <strong>OBTEMOS<\/strong>, <strong>EFETUAMOS<\/strong> e <strong>MOSTRAMOS<\/strong>. Voc\u00ea vai entender.<\/span><\/p>\n<p style=\"padding-left: 30px; text-align: justify;\"><span style=\"color: #333333;\"><em><strong>OBTER<\/strong> as notas, nada mais \u00e9 do que realizar <strong>UMA ENTRADA DE DADOS<\/strong><\/em><\/span><\/p>\n<p style=\"padding-left: 30px; text-align: justify;\"><span style=\"color: #333333;\"><em><strong>EFETUARMOS <\/strong>o c\u00e1lculo da m\u00e9dia nada mais \u00e9 do que o <strong>PROCESSAMENTO<\/strong><\/em><\/span><\/p>\n<p style=\"padding-left: 30px; text-align: justify;\"><span style=\"color: #333333;\"><em><strong>MOSTRARMOS<\/strong> a m\u00e9dia calculada nada mais \u00e9 do que <strong>SA\u00cdDA DE DADOS<\/strong><\/em><\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #333333;\">No computador as notas deveriam ser obtidas de uma fonte (entrada), para que em seguida pudessem ser calculadas (processadas) e finalmente para que pudesse ser mostrada (sa\u00edda).<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #333333;\">O algoritmo realizado acima est\u00e1 expresso de uma forma que n\u00f3s, &#8220;HUMANOS&#8221;, conseguimos entender o que a gente tem que fazer passo a passo para calcular a m\u00e9dia. Agora, essa mesma express\u00e3o <strong>N\u00c3O \u00c9 COMPREENS\u00cdVEL<\/strong> para o computador. Ai que entra o que n\u00f3s chamamos de <strong>LINGUAGENS DE PROGRAMA\u00c7\u00c3O<\/strong>.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #333333;\">Uma LINGUAGEM DE PROGRAMA\u00c7\u00c3O nada mais \u00e9 do que um conjunto de <strong>REGRAS SINT\u00c1TICAS<\/strong>, que se seguidas corretamente, permite a constru\u00e7\u00e3o de um programa de computador. Exemplo de linguagens de programa\u00e7\u00e3o mais comuns e utilizadas hoje em dia s\u00e3o : Java, C#, Delphi, PHP, C\/C++, Javascript e etc.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #333333;\">Como seria ent\u00e3o, nosso algoritmo expresso em uma linguagem de programa\u00e7\u00e3o para que nosso programa pudesse ser executado por um computador ? Irei mostrar aqui uma demonstra\u00e7\u00e3o do mesmo algoritmo do c\u00e1lculo de m\u00e9dias escrito na linguagem de programa\u00e7\u00e3o C\/C++ (para aqueles que n\u00e3o viram linguagem de programa\u00e7\u00e3o , n\u00e3o se assuste). Seria assim :<\/span><\/p>\n<pre class=\"toolbar:2 lang:default decode:true \" title=\"C\u00f3digo em Linguagem C\">#include &lt;stdio.h&gt;\r\nint main(void)\r\n{\r\n\r\n  float nota1, nota2, nota3, nota4, media;\r\n\r\n  prinft(\"Digite as quatro notas :\\n\");\r\n\r\n  scanf(\"%d\",&amp;nota1);\r\n\r\n  scanf(\"%d\",&amp;nota2);\r\n\r\n  scanf(\"%d\",&amp;nota3);\r\n\r\n  scanf(\"%d\",&amp;nota4);\r\n\r\n  media = (nota1 + nota2 + nota3 + nota4) \/ 4;\r\n\r\n  printf(\"A m\u00e9dia \u00e9 : %.2f\",media);\r\n\r\n  return 0;\r\n\r\n}\r\n<\/pre>\n<p style=\"text-align: justify;\"><span style=\"color: #333333;\">Quem nunca viu linguagem de programa\u00e7\u00e3o deve estar MEIO PERDIDO nesse meio de c\u00f3digo &#8220;ESTRANHOS&#8221; sem entender o que cada linha significa. N\u00e3o se preocupe , isso \u00e9 natural.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #333333;\">O que acabamos de fazer \u00e9 <strong>TRADUZIR<\/strong> o que <strong>MENTALIZAMOS<\/strong> (e que tamb\u00e9m expressamos em passos) nosso algoritmos para um conjunto de comandos em linguagem de programa\u00e7\u00e3o : <strong>ISSO \u00c9 CONSTRUIR UM PROGRAMA<\/strong> \ud83d\ude42<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #000000;\">Ent\u00e3o acabamos nesse exato momento, de construir um programa em LINGUAGEM DE PROGRAMA\u00c7\u00c3O C.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #000000;\">Conforme havia falado no meu<\/span> <strong><a href=\"https:\/\/lucianodev.com.br\/blog\/programar-por-onde-comecar\/\">PRIMEIRO POST<\/a><\/strong> <span style=\"color: #333333;\"> sobre programa\u00e7\u00e3o aqui no blog, antes de algu\u00e9m come\u00e7ar a mexer com LINGUAGENS DE PROGRAMA\u00c7\u00c3O, deveria aprender primeiramente ALGORITMOS.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #333333;\">Normalmente quando se ensina ALGORITMOS para programa\u00e7\u00e3o, ADOTA-SE uma linguagem de programa\u00e7\u00e3o padr\u00e3o para ensino conhecida como <strong>PORTUGOL<\/strong> (ou portugu\u00eas estruturado), que consiste em um conjunto de comandos de linguagem de programa\u00e7\u00e3o , SO QUE ESCRITOS EM PORTUGU\u00caS (diferente das linguagens de programa\u00e7\u00e3o tradicionais, cujo os comandos s\u00e3o em ingl\u00eas).<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #333333;\">Algumas abordagens de ensino (contida em livros, ou at\u00e9 mesmo algumas escolas t\u00e9cnicas de ensino ou faculdades de programa\u00e7\u00e3o) adotam o ensino de algoritmos DIRETAMENTE em uma LINGUAGEM DE PROGRAMA\u00c7\u00c3O (sem utilizar o PORTUGOL). Confesso que N\u00c3O SOU MUITO F\u00c3 desse tipo de metodologia. Acho que primeiramente devemos aprender o PORTUGOL para depois aprendermos a traduzir o que realizamos no PORTUGOL em uma linguagem de programa\u00e7\u00e3o.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #333333;\">Bom pessoal, por hoje \u00e9 s\u00f3. <\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #333333;\">No pr\u00f3ximo post estarei ensinando como desenvolver nossos algoritmos no portugu\u00eas estruturado (PORTUGOL), por meio de exemplos b\u00e1sicos passo a passo.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"color: #333333;\">Um forte abra\u00e7o para voc\u00eas e at\u00e9 a pr\u00f3xima.<\/span><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Fala ai pessoal, Estou escrevendo mais um POST dedicado para aqueles que queiram aprender os princ\u00edpios b\u00e1sicos sobre programa\u00e7\u00e3o, para que possam aprender a desenvolver suas pr\u00f3prias aplica\u00e7\u00f5es (independente se&hellip;<\/p>\n","protected":false},"author":1,"featured_media":29,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,3],"tags":[],"class_list":["post-24","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-algoritmo","category-programacao"],"_links":{"self":[{"href":"https:\/\/lucianodev.com.br\/blog\/wp-json\/wp\/v2\/posts\/24","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lucianodev.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lucianodev.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lucianodev.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lucianodev.com.br\/blog\/wp-json\/wp\/v2\/comments?post=24"}],"version-history":[{"count":13,"href":"https:\/\/lucianodev.com.br\/blog\/wp-json\/wp\/v2\/posts\/24\/revisions"}],"predecessor-version":[{"id":732,"href":"https:\/\/lucianodev.com.br\/blog\/wp-json\/wp\/v2\/posts\/24\/revisions\/732"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/lucianodev.com.br\/blog\/wp-json\/wp\/v2\/media\/29"}],"wp:attachment":[{"href":"https:\/\/lucianodev.com.br\/blog\/wp-json\/wp\/v2\/media?parent=24"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lucianodev.com.br\/blog\/wp-json\/wp\/v2\/categories?post=24"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lucianodev.com.br\/blog\/wp-json\/wp\/v2\/tags?post=24"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}